aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2009-01-16 23:22:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2009-01-16 23:22:12 +0000
commit92ccfee87a595bfd279daae7cf99334eadaf8a6d (patch)
tree0a5c422bc31a772829ec7513504fe25a22e25c29
parent4b70817ef615990044b576371a7d28b847c060dd (diff)
svn merge -r142643:143403 svn+ssh://gcc.gnu.org/svn/gcc/trunk
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/c-4_5-branch@143450 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog58
-rw-r--r--MAINTAINERS11
-rw-r--r--boehm-gc/ChangeLog4
-rwxr-xr-xboehm-gc/configure194
-rwxr-xr-xconfig.guess4
-rwxr-xr-xconfig.sub10
-rw-r--r--config/ChangeLog5
-rw-r--r--config/unwind_ipinfo.m48
-rwxr-xr-xconfigure49
-rw-r--r--configure.ac43
-rw-r--r--fixincludes/ChangeLog32
-rwxr-xr-xfixincludes/configure34
-rw-r--r--fixincludes/fixincl.x115
-rw-r--r--fixincludes/inclhack.def60
-rw-r--r--fixincludes/tests/base/locale.h25
-rw-r--r--fixincludes/tests/base/stdarg.h14
-rw-r--r--gcc/ChangeLog28738
-rw-r--r--gcc/ChangeLog-20062
-rw-r--r--gcc/ChangeLog-200828961
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/Makefile.in22
-rw-r--r--gcc/ada/ChangeLog11
-rw-r--r--gcc/ada/gcc-interface/decl.c22
-rw-r--r--gcc/basic-block.h5
-rw-r--r--gcc/builtins.c44
-rw-r--r--gcc/c-common.c11
-rw-r--r--gcc/c-cppbuiltin.c15
-rw-r--r--gcc/c-parser.c23
-rw-r--r--gcc/c-pretty-print.c3
-rw-r--r--gcc/c-tree.h5
-rw-r--r--gcc/c-typeck.c107
-rw-r--r--gcc/calls.c53
-rw-r--r--gcc/cfgexpand.c65
-rw-r--r--gcc/combine.c26
-rw-r--r--gcc/config.gcc11
-rw-r--r--gcc/config.host21
-rw-r--r--gcc/config/alpha/alpha.c84
-rw-r--r--gcc/config/alpha/elf.h10
-rw-r--r--gcc/config/alpha/predicates.md3
-rw-r--r--gcc/config/alpha/sync.md10
-rw-r--r--gcc/config/arm/arm.c908
-rw-r--r--gcc/config/arm/arm.md11
-rw-r--r--gcc/config/arm/lib1funcs.asm2
-rw-r--r--gcc/config/arm/predicates.md4
-rw-r--r--gcc/config/arm/t-linux3
-rw-r--r--gcc/config/avr/avr.c9
-rw-r--r--gcc/config/avr/avr.h37
-rw-r--r--gcc/config/avr/avr.md2
-rw-r--r--gcc/config/avr/libgcc.S92
-rw-r--r--gcc/config/avr/t-avr10
-rw-r--r--gcc/config/fp-bit.c44
-rw-r--r--gcc/config/fp-bit.h4
-rw-r--r--gcc/config/i386/avxintrin.h80
-rw-r--r--gcc/config/i386/i386.c719
-rw-r--r--gcc/config/i386/i386.h16
-rw-r--r--gcc/config/i386/i386.md89
-rw-r--r--gcc/config/i386/sse.md47
-rw-r--r--gcc/config/i386/x86intrin.h73
-rw-r--r--gcc/config/ia64/sync.md15
-rw-r--r--gcc/config/m32r/rtems.h33
-rw-r--r--gcc/config/mips/mips-dsp.md66
-rw-r--r--gcc/config/mips/mips.c30
-rw-r--r--gcc/config/mips/mips.h5
-rw-r--r--gcc/config/mips/mips.md22
-rw-r--r--gcc/config/mips/sync.md15
-rw-r--r--gcc/config/pa/pa.c35
-rw-r--r--gcc/config/pa/pa64-hpux.h2
-rw-r--r--gcc/config/picochip/picochip.c17
-rw-r--r--gcc/config/picochip/picochip.md3
-rw-r--r--gcc/config/picochip/picochip.opt6
-rw-r--r--gcc/config/rs6000/rs6000.c29
-rw-r--r--gcc/config/rs6000/rs6000.md143
-rw-r--r--gcc/config/rs6000/spe.md48
-rw-r--r--gcc/config/rs6000/sync.md6
-rw-r--r--gcc/config/rs6000/x-linux-relax2
-rw-r--r--gcc/config/s390/s390.c103
-rw-r--r--gcc/config/s390/s390.md21
-rw-r--r--gcc/config/sh/symbian.c10
-rw-r--r--gcc/config/sparc/sparc.h16
-rw-r--r--gcc/config/sparc/sparc.md3
-rw-r--r--gcc/config/sparc/sync.md24
-rw-r--r--gcc/config/x-cflags-O15
-rw-r--r--gcc/config/xtensa/xtensa.md10
-rwxr-xr-xgcc/configure131
-rw-r--r--gcc/configure.ac10
-rw-r--r--gcc/cp/ChangeLog232
-rw-r--r--gcc/cp/call.c11
-rw-r--r--gcc/cp/class.c3
-rw-r--r--gcc/cp/cp-gimplify.c16
-rw-r--r--gcc/cp/cp-tree.h4
-rw-r--r--gcc/cp/decl.c19
-rw-r--r--gcc/cp/error.c3
-rw-r--r--gcc/cp/init.c26
-rw-r--r--gcc/cp/mangle.c87
-rw-r--r--gcc/cp/name-lookup.c86
-rw-r--r--gcc/cp/parser.c202
-rw-r--r--gcc/cp/pt.c237
-rw-r--r--gcc/cp/semantics.c146
-rw-r--r--gcc/cp/tree.c21
-rw-r--r--gcc/cp/typeck.c6
-rw-r--r--gcc/cp/typeck2.c27
-rw-r--r--gcc/cselib.c130
-rw-r--r--gcc/dce.c314
-rw-r--r--gcc/df-problems.c149
-rw-r--r--gcc/df-scan.c26
-rw-r--r--gcc/df.h14
-rw-r--r--gcc/doc/contrib.texi10
-rw-r--r--gcc/doc/extend.texi364
-rw-r--r--gcc/doc/gty.texi22
-rw-r--r--gcc/doc/install.texi62
-rw-r--r--gcc/doc/invoke.texi29
-rw-r--r--gcc/doc/md.texi13
-rw-r--r--gcc/doc/sourcebuild.texi27
-rw-r--r--gcc/dojump.c8
-rw-r--r--gcc/dse.c742
-rw-r--r--gcc/dwarf2out.c8
-rw-r--r--gcc/emit-rtl.c84
-rw-r--r--gcc/emutls.c8
-rw-r--r--gcc/expmed.c17
-rw-r--r--gcc/expr.c2
-rw-r--r--gcc/expr.h6
-rw-r--r--gcc/fixed-value.c4
-rw-r--r--gcc/fold-const.c47
-rw-r--r--gcc/fortran/ChangeLog4092
-rw-r--r--gcc/fortran/ChangeLog-20071
-rw-r--r--gcc/fortran/ChangeLog-20084135
-rw-r--r--gcc/fortran/Make-lang.in2
-rw-r--r--gcc/fortran/check.c67
-rw-r--r--gcc/fortran/dependency.c66
-rw-r--r--gcc/fortran/error.c10
-rw-r--r--gcc/fortran/expr.c12
-rw-r--r--gcc/fortran/gfortran.h8
-rw-r--r--gcc/fortran/gfortran.texi21
-rw-r--r--gcc/fortran/interface.c10
-rw-r--r--gcc/fortran/intrinsic.c7
-rw-r--r--gcc/fortran/intrinsic.h3
-rw-r--r--gcc/fortran/intrinsic.texi77
-rw-r--r--gcc/fortran/invoke.texi37
-rw-r--r--gcc/fortran/io.c16
-rw-r--r--gcc/fortran/module.c10
-rw-r--r--gcc/fortran/primary.c3
-rw-r--r--gcc/fortran/resolve.c69
-rw-r--r--gcc/fortran/simplify.c14
-rw-r--r--gcc/fortran/symbol.c4
-rw-r--r--gcc/fortran/target-memory.c11
-rw-r--r--gcc/fortran/trans-decl.c6
-rw-r--r--gcc/fortran/trans-expr.c40
-rw-r--r--gcc/fortran/trans-intrinsic.c34
-rw-r--r--gcc/fortran/trans-stmt.c10
-rw-r--r--gcc/fortran/trans-types.c5
-rw-r--r--gcc/fortran/trans.h4
-rw-r--r--gcc/function.c291
-rw-r--r--gcc/function.h3
-rw-r--r--gcc/gcc.c33
-rw-r--r--gcc/gengtype-lex.l1
-rw-r--r--gcc/gimple-pretty-print.c132
-rw-r--r--gcc/gimple.h8
-rw-r--r--gcc/gimplify.c8
-rw-r--r--gcc/ginclude/float.h16
-rw-r--r--gcc/global.c5
-rw-r--r--gcc/graphite.c2907
-rw-r--r--gcc/graphite.h160
-rw-r--r--gcc/ifcvt.c4
-rw-r--r--gcc/ipa-inline.c20
-rw-r--r--gcc/ira-build.c225
-rw-r--r--gcc/ira-color.c6
-rw-r--r--gcc/ira-conflicts.c68
-rw-r--r--gcc/ira-costs.c15
-rw-r--r--gcc/ira-emit.c53
-rw-r--r--gcc/ira-int.h4
-rw-r--r--gcc/ira-lives.c8
-rw-r--r--gcc/ira.c27
-rw-r--r--gcc/ira.h4
-rw-r--r--gcc/lambda-code.c10
-rw-r--r--gcc/lambda.h4
-rw-r--r--gcc/mips-tfile.c7
-rw-r--r--gcc/params.def5
-rw-r--r--gcc/params.h2
-rw-r--r--gcc/po/ChangeLog4
-rw-r--r--gcc/po/sv.po3502
-rw-r--r--gcc/ra-conflict.c2
-rw-r--r--gcc/real.c16
-rw-r--r--gcc/recog.c6
-rw-r--r--gcc/regclass.c32
-rw-r--r--gcc/regrename.c8
-rw-r--r--gcc/reload1.c33
-rw-r--r--gcc/reorg.c3
-rw-r--r--gcc/rtl-factoring.c10
-rw-r--r--gcc/sched-deps.c5
-rw-r--r--gcc/sel-sched.c2
-rw-r--r--gcc/testsuite/ChangeLog12520
-rw-r--r--gcc/testsuite/ChangeLog-200812920
-rw-r--r--gcc/testsuite/g++.dg/conversion/simd1.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/auto12.C52
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/auto13.C11
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/auto6.C29
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype15.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/defaulted7.C12
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/enum2.C5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist11.C18
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist12.C20
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr38795.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic65.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic82.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic83.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic92.C70
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic93.C11
-rw-r--r--gcc/testsuite/g++.dg/eh/check-vect.h5
-rw-r--r--gcc/testsuite/g++.dg/eh/simd-2.C4
-rw-r--r--gcc/testsuite/g++.dg/eh/weak1.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/string-1.C10
-rw-r--r--gcc/testsuite/g++.dg/expr/string-2.C10
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-2.C3
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-3.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-cell-2.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-cell-3.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-cell-4.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-types-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec_check.h27
-rw-r--r--gcc/testsuite/g++.dg/ext/attribute-test-1.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/attribute-test-2.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/attribute-test-3.C7
-rw-r--r--gcc/testsuite/g++.dg/ext/attribute-test-4.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/complex4.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/complex5.C6
-rw-r--r--gcc/testsuite/g++.dg/ext/fixed2.C7
-rw-r--r--gcc/testsuite/g++.dg/ext/label11.C46
-rw-r--r--gcc/testsuite/g++.dg/ext/spe1.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/vector15.C5
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr38633.C14
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr38639.C17
-rw-r--r--gcc/testsuite/g++.dg/init/ctor9.C8
-rw-r--r--gcc/testsuite/g++.dg/init/reference1.C11
-rw-r--r--gcc/testsuite/g++.dg/init/reference2.C13
-rw-r--r--gcc/testsuite/g++.dg/init/reference3.C13
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend11.C3
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend14.C17
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend15.C12
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class12.C24
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class13.C25
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class14.C23
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class15.C30
-rw-r--r--gcc/testsuite/g++.dg/lookup/hidden-class16.C27
-rw-r--r--gcc/testsuite/g++.dg/other/error31.C13
-rw-r--r--gcc/testsuite/g++.dg/other/i386-2.C9
-rw-r--r--gcc/testsuite/g++.dg/other/i386-3.C9
-rw-r--r--gcc/testsuite/g++.dg/other/i386-5.C9
-rw-r--r--gcc/testsuite/g++.dg/other/i386-6.C7
-rw-r--r--gcc/testsuite/g++.dg/other/opaque-1.C4
-rw-r--r--gcc/testsuite/g++.dg/other/opaque-2.C5
-rw-r--r--gcc/testsuite/g++.dg/other/opaque-3.C5
-rw-r--r--gcc/testsuite/g++.dg/other/pr38706.C19
-rw-r--r--gcc/testsuite/g++.dg/other/vararg-3.C16
-rw-r--r--gcc/testsuite/g++.dg/parse/cond4.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/crash50.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg13.C8
-rw-r--r--gcc/testsuite/g++.dg/parse/linkage3.C7
-rw-r--r--gcc/testsuite/g++.dg/parse/offsetof9.C32
-rw-r--r--gcc/testsuite/g++.dg/parse/pr37862.C25
-rw-r--r--gcc/testsuite/g++.dg/parse/typedef9.C8
-rw-r--r--gcc/testsuite/g++.dg/template/call6.C24
-rw-r--r--gcc/testsuite/g++.dg/template/crash87.C27
-rw-r--r--gcc/testsuite/g++.dg/template/function1.C27
-rw-r--r--gcc/testsuite/g++.dg/torture/pr36191.C16
-rw-r--r--gcc/testsuite/g++.dg/torture/pr37922.C502
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38565.C11
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38705.C27
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38811.C73
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr38572.C32
-rw-r--r--gcc/testsuite/g++.dg/warn/Wreturn-type-5.C21
-rw-r--r--gcc/testsuite/g++.dg/warn/pr36921.C27
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20001226-1.c4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20090107-1.c25
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38505.c23
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38564.c22
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38590-1.c6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38590-2.c6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38661-1.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38661.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38771.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38807.c23
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20081117-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20081218-1.c39
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr37573.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr38533.c21
-rw-r--r--gcc/testsuite/gcc.dg/20020103-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/20020425-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/20020919-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/array-quals-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/assert4.c2
-rw-r--r--gcc/testsuite/gcc.dg/dfp/decfloat-constants.c56
-rw-r--r--gcc/testsuite/gcc.dg/fixed-point/composite-type.c67
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr38633.c14
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr38676.c19
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-0.c2
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-2.c31
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-3.c25
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-4.c23
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-5.c26
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-6.c25
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr37485.c1
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr37684.c2
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr37883.c11
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr37928.c33
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38073.c9
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38125.c32
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38409.c24
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38413.c14
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38446.c14
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38498.c19
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38500.c29
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38510.c40
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38559.c14
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr38786.c20
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-15.c1
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-16.c6
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-17.c6
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-18.c8
-rw-r--r--gcc/testsuite/gcc.dg/pch/pch.exp1
-rw-r--r--gcc/testsuite/gcc.dg/pr32041.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr34027-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr34856.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr35442.c3
-rw-r--r--gcc/testsuite/gcc.dg/pr35742.c13
-rw-r--r--gcc/testsuite/gcc.dg/pr36489.c22
-rw-r--r--gcc/testsuite/gcc.dg/pr38245-3.c112
-rw-r--r--gcc/testsuite/gcc.dg/pr38245-3.h35
-rw-r--r--gcc/testsuite/gcc.dg/pr38245-4.c107
-rw-r--r--gcc/testsuite/gcc.dg/pr38364.c79
-rw-r--r--gcc/testsuite/gcc.dg/pr38616.c14
-rw-r--r--gcc/testsuite/gcc.dg/pr38645.c17
-rw-r--r--gcc/testsuite/gcc.dg/pr38700.c11
-rw-r--r--gcc/testsuite/gcc.dg/sibcall-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/sibcall-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/struct-ret-3.c38
-rw-r--r--gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c6
-rw-r--r--gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c4
-rw-r--r--gcc/testsuite/gcc.dg/struct/wo_prof_single_str_pointer.c4
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr38271.c18
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr38774.c16
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-3.c5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr27781.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr32044.c55
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr38385.c124
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr38533.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c28
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr38529.c18
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-105.c6
-rw-r--r--gcc/testsuite/gcc.dg/vector-3.c5
-rw-r--r--gcc/testsuite/gcc.target/arm/eabi1.c8
-rw-r--r--gcc/testsuite/gcc.target/arm/long-calls-1.c56
-rw-r--r--gcc/testsuite/gcc.target/arm/long-calls-2.c46
-rw-r--r--gcc/testsuite/gcc.target/arm/long-calls-3.c127
-rw-r--r--gcc/testsuite/gcc.target/arm/long-calls-4.c113
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-2.c4
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vmovntdq-256-1.c27
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vmovntpd-256-1.c25
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vmovntps-256-1.c26
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vpermil2pd-1.c55
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vpermil2pd-256-1.c57
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vpermil2ps-1.c62
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-vpermil2ps-256-1.c62
-rw-r--r--gcc/testsuite/gcc.target/i386/pr37843-3.c12
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-10.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-12.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-13.c41
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-14.c52
-rw-r--r--gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/20020620-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/asm-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/atomic-memory-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-cost-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-cost-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/cache-1.c10
-rw-r--r--gcc/testsuite/gcc.target/mips/call-saved-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/call-saved-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/call-saved-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/clear-cache-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/clear-cache-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dmult-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dse-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/dsp-ctrl.c25
-rw-r--r--gcc/testsuite/gcc.target/mips/dspr2-MULT.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/dspr2-MULTU.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/ext_ins.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-10.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-13.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-14.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-15.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-10.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fixed-scalar-type.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fixed-vector-type.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fpcmp-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpcmp-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-8.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/ins-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/ins-2.c27
-rw-r--r--gcc/testsuite/gcc.target/mips/int-moves-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/int-moves-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/lazy-binding-1.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/long-calls-pg.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-simd.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/memcpy-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-5.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-6.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-8.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-9.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-6.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-type-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-type.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-sched-madd.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips.exp1361
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16-attributes-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16-attributes-3.c1
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16-attributes.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16e-extends.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp-run.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp-type.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dspr2-type.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dspr2.c8
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/neg-abs-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/neg-abs-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-baddu-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-1.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-cins-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-cins-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-dmul-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-dmul-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-pop-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr26765.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33256.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33635-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33755.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr34831.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr35802.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr37362.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r3900-mult.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-5.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/sb1-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-lwxs.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/timode-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/timode-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/vr-mult-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/vr-mult-2.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20030218-1.c10
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20030505.c7
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20081204-1.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-macchw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-macchw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-machhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-machhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-1.c6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-10.c9
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-12.c7
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-24.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-3.c7
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c7
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-consts.c7
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-macros.c27
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c10
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/altivec_check.h43
-rw-r--r--gcc/testsuite/gcc.target/powerpc/darwin-longlong.c20
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-spe.c5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c1
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr35907.c6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/spe1.c7
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-do-run-sft-nocache-exp-P.c11
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c9
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-error-nocache-exp-P.c7
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-nocache-scanasm-exp-XF.c14
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-P.c9
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-U.c9
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-P.c9
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-XP.c9
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c6
-rw-r--r--gcc/testsuite/gcc.test-framework/test-framework.awk2
-rw-r--r--gcc/testsuite/gcc.test-framework/test-framework.exp10
-rw-r--r--gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f9031
-rw-r--r--gcc/testsuite/gfortran.dg/c_loc_pure_1.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/c_loc_tests_13.f9016
-rw-r--r--gcc/testsuite/gfortran.dg/c_loc_tests_14.f9029
-rw-r--r--gcc/testsuite/gfortran.dg/char_length_14.f9023
-rw-r--r--gcc/testsuite/gfortran.dg/char_pointer_assign_2.f904
-rw-r--r--gcc/testsuite/gfortran.dg/char_pointer_assign_4.f9020
-rw-r--r--gcc/testsuite/gfortran.dg/char_pointer_assign_5.f9023
-rw-r--r--gcc/testsuite/gfortran.dg/elemental_bind_c.f902
-rw-r--r--gcc/testsuite/gfortran.dg/elemental_dependency_2.f9036
-rw-r--r--gcc/testsuite/gfortran.dg/elemental_dependency_3.f9028
-rw-r--r--gcc/testsuite/gfortran.dg/elemental_subroutine_7.f9040
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_bz_bn.f2
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_bz_bn_err.f15
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_g0_1.f086
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_int_sign.f9016
-rw-r--r--gcc/testsuite/gfortran.dg/func_result_4.f9010
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/id-2.f9015
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/id-4.f9034
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr37852.f9013
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr37857.f909
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr37980.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr38083.f9016
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr38459.f9014
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_blockdata_1.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_blockdata_2.f9017
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_call_3.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_call_6.f9025
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_function_5.f9047
-rw-r--r--gcc/testsuite/gfortran.dg/host_assoc_function_6.f9035
-rw-r--r--gcc/testsuite/gfortran.dg/implicit_12.f902
-rw-r--r--gcc/testsuite/gfortran.dg/interface_proc_end.f902
-rw-r--r--gcc/testsuite/gfortran.dg/mapping_2.f902
-rw-r--r--gcc/testsuite/gfortran.dg/matmul_argument_types.f9032
-rw-r--r--gcc/testsuite/gfortran.dg/merge_char_3.f9019
-rw-r--r--gcc/testsuite/gfortran.dg/merge_init_expr.f9028
-rw-r--r--gcc/testsuite/gfortran.dg/module_commons_3.f9057
-rw-r--r--gcc/testsuite/gfortran.dg/pr23095.f4
-rw-r--r--gcc/testsuite/gfortran.dg/pr37243.f2
-rw-r--r--gcc/testsuite/gfortran.dg/pr38722.f9038
-rw-r--r--gcc/testsuite/gfortran.dg/random_seed_1.f9030
-rw-r--r--gcc/testsuite/gfortran.dg/transfer_null_1.f9020
-rw-r--r--gcc/testsuite/gfortran.dg/typebound_call_7.f032
-rw-r--r--gcc/testsuite/gfortran.dg/typebound_call_8.f032
-rw-r--r--gcc/testsuite/gnat.dg/unchecked_convert3.adb22
-rw-r--r--gcc/testsuite/lib/target-supports-dg.exp83
-rw-r--r--gcc/testsuite/lib/target-supports.exp160
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-1.mm4
-rw-r--r--gcc/testsuite/objc/execute/forward-1.m85
-rw-r--r--gcc/tree-cfg.c39
-rw-r--r--gcc/tree-chrec.c61
-rw-r--r--gcc/tree-chrec.h1
-rw-r--r--gcc/tree-complex.c11
-rw-r--r--gcc/tree-data-ref.h5
-rw-r--r--gcc/tree-flow.h6
-rw-r--r--gcc/tree-loop-distribution.c33
-rw-r--r--gcc/tree-loop-linear.c6
-rw-r--r--gcc/tree-parloops.c15
-rw-r--r--gcc/tree-phinodes.c13
-rw-r--r--gcc/tree-pretty-print.c34
-rw-r--r--gcc/tree-scalar-evolution.c60
-rw-r--r--gcc/tree-scalar-evolution.h1
-rw-r--r--gcc/tree-sra.c9
-rw-r--r--gcc/tree-ssa-ccp.c21
-rw-r--r--gcc/tree-ssa-dom.c40
-rw-r--r--gcc/tree-ssa-loop-ivopts.c9
-rw-r--r--gcc/tree-ssa-pre.c10
-rw-r--r--gcc/tree-ssa-reassoc.c62
-rw-r--r--gcc/tree-ssa-structalias.c35
-rw-r--r--gcc/tree-switch-conversion.c5
-rw-r--r--gcc/tree-vect-transform.c68
-rw-r--r--gcc/tree-vrp.c22
-rw-r--r--gcc/tree.def8
-rw-r--r--include/ChangeLog5
-rw-r--r--include/demangle.h13
-rw-r--r--libcpp/ChangeLog12
-rw-r--r--libcpp/Makefile.in6
-rw-r--r--libcpp/pch.c25
-rw-r--r--libffi/ChangeLog18
-rwxr-xr-xlibffi/configure118
-rw-r--r--libffi/configure.ac15
-rw-r--r--libffi/fficonfig.h.in3
-rw-r--r--libffi/src/x86/sysv.S28
-rw-r--r--libffi/src/x86/unix64.S14
-rw-r--r--libgcc/ChangeLog10
-rw-r--r--libgcc/config.host10
-rw-r--r--libgcc/config/t-softfp14
-rw-r--r--libgfortran/ChangeLog53
-rw-r--r--libgfortran/acinclude.m412
-rw-r--r--libgfortran/config.h.in3
-rwxr-xr-xlibgfortran/configure222
-rw-r--r--libgfortran/configure.ac3
-rw-r--r--libgfortran/intrinsics/c99_functions.c2
-rw-r--r--libgfortran/io/io.h4
-rw-r--r--libgfortran/io/read.c4
-rw-r--r--libgfortran/io/transfer.c7
-rw-r--r--libgfortran/io/unit.c2
-rw-r--r--libgfortran/io/write.c18
-rw-r--r--libgfortran/io/write_float.def35
-rw-r--r--libgomp/ChangeLog27
-rw-r--r--libgomp/acinclude.m410
-rw-r--r--libgomp/config.h.in3
-rwxr-xr-xlibgomp/configure260
-rw-r--r--libgomp/libgomp.h3
-rw-r--r--libgomp/testsuite/libgomp.c++/pr38650.C49
-rw-r--r--libgomp/testsuite/libgomp.c/atomic-6.c1
-rw-r--r--libgomp/testsuite/libgomp.c/collapse-1.c2
-rw-r--r--libgomp/testsuite/libgomp.c/pr38650.c49
-rw-r--r--libiberty/ChangeLog27
-rw-r--r--libiberty/cp-demangle.c58
-rw-r--r--libjava/ChangeLog1102
-rw-r--r--libjava/ChangeLog-20081109
-rw-r--r--libjava/Makefile.am6
-rw-r--r--libjava/Makefile.in14
-rw-r--r--libjava/classpath/ChangeLog4364
-rw-r--r--libjava/classpath/ChangeLog-20084443
-rw-r--r--libjava/classpath/ChangeLog.gcj10
-rw-r--r--libjava/classpath/INSTALL94
-rwxr-xr-xlibjava/classpath/configure204
-rw-r--r--libjava/classpath/doc/texinfo.tex437
-rw-r--r--libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java3
-rw-r--r--libjava/classpath/gnu/xml/transform/Bindings.java75
-rw-r--r--libjava/classpath/java/lang/String.java123
-rw-r--r--libjava/classpath/java/text/MessageFormat.java51
-rw-r--r--libjava/classpath/java/text/NumberFormat.java1
-rw-r--r--libjava/classpath/java/text/RuleBasedCollator.java104
-rw-r--r--libjava/classpath/java/text/SimpleDateFormat.java24
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.classbin10101 -> 10101 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/locale/LocaleData.classbin7402 -> 7402 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.classbin2889 -> 2992 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/Bindings.classbin5268 -> 5911 bytes
-rw-r--r--libjava/classpath/lib/java/text/MessageFormat$Field.classbin1206 -> 1206 bytes
-rw-r--r--libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.classbin2471 -> 2400 bytes
-rw-r--r--libjava/classpath/lib/java/text/MessageFormat.classbin11683 -> 12313 bytes
-rw-r--r--libjava/classpath/lib/java/text/NumberFormat$Field.classbin2128 -> 2128 bytes
-rw-r--r--libjava/classpath/lib/java/text/NumberFormat.classbin9372 -> 9372 bytes
-rw-r--r--libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.classbin925 -> 925 bytes
-rw-r--r--libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.classbin778 -> 1135 bytes
-rw-r--r--libjava/classpath/lib/java/text/RuleBasedCollator.classbin10140 -> 11122 bytes
-rw-r--r--libjava/classpath/lib/java/text/SimpleDateFormat.classbin18295 -> 18466 bytes
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c22
-rwxr-xr-xlibjava/configure289
-rw-r--r--libjava/configure.ac5
-rw-r--r--libjava/ecjx.cc1
-rw-r--r--libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h2
-rw-r--r--libjava/java/text/MessageFormat.h10
-rw-r--r--libjava/java/text/RuleBasedCollator$CollationSorter.h3
-rw-r--r--libjava/java/text/RuleBasedCollator.h2
-rw-r--r--libjava/java/text/SimpleDateFormat.h2
-rw-r--r--libjava/sun/misc/natUnsafe.cc4
-rw-r--r--libmudflap/ChangeLog4
-rwxr-xr-xlibmudflap/configure93
-rw-r--r--libobjc/ChangeLog4
-rwxr-xr-xlibobjc/configure95
-rw-r--r--libssp/ChangeLog4
-rwxr-xr-xlibssp/configure93
-rw-r--r--libstdc++-v3/ChangeLog367
-rw-r--r--libstdc++-v3/acinclude.m4238
-rw-r--r--libstdc++-v3/config.h.in18
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver23
-rw-r--r--libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h11
-rwxr-xr-xlibstdc++-v3/configure2012
-rw-r--r--libstdc++-v3/configure.ac10
-rw-r--r--libstdc++-v3/crossconfig.m442
-rw-r--r--libstdc++-v3/doc/doxygen/stdheader.cc3
-rw-r--r--libstdc++-v3/doc/doxygen/user.cfg.in524
-rw-r--r--libstdc++-v3/doc/xml/manual/configure.xml22
-rw-r--r--libstdc++-v3/include/Makefile.am4
-rw-r--r--libstdc++-v3/include/Makefile.in4
-rw-r--r--libstdc++-v3/include/bits/atomic_0.h468
-rw-r--r--libstdc++-v3/include/bits/atomic_2.h454
-rw-r--r--libstdc++-v3/include/bits/atomicfwd_c.h179
-rw-r--r--libstdc++-v3/include/bits/atomicfwd_cxx.h114
-rw-r--r--libstdc++-v3/include/bits/c++config28
-rw-r--r--libstdc++-v3/include/bits/forward_list.h6
-rw-r--r--libstdc++-v3/include/bits/stl_pair.h4
-rw-r--r--libstdc++-v3/include/c_compatibility/stdatomic.h261
-rw-r--r--libstdc++-v3/include/c_global/cstdatomic4346
-rw-r--r--libstdc++-v3/include/debug/debug.h26
-rw-r--r--libstdc++-v3/include/ext/concurrence.h2
-rw-r--r--libstdc++-v3/include/ext/pointer.h40
-rw-r--r--libstdc++-v3/include/parallel/base.h20
-rw-r--r--libstdc++-v3/include/std/mutex16
-rw-r--r--libstdc++-v3/include/std/thread57
-rw-r--r--libstdc++-v3/include/tr1_impl/functional17
-rw-r--r--libstdc++-v3/include/tr1_impl/regex43
-rw-r--r--libstdc++-v3/libsupc++/eh_alloc.cc10
-rw-r--r--libstdc++-v3/libsupc++/eh_ptr.cc27
-rw-r--r--libstdc++-v3/libsupc++/eh_throw.cc32
-rw-r--r--libstdc++-v3/libsupc++/unwind-cxx.h28
-rwxr-xr-xlibstdc++-v3/scripts/extract_symvers6
-rw-r--r--libstdc++-v3/src/Makefile.am4
-rw-r--r--libstdc++-v3/src/Makefile.in4
-rw-r--r--libstdc++-v3/src/atomic.cc125
-rw-r--r--libstdc++-v3/src/compatibility.cc8
-rw-r--r--libstdc++-v3/src/debug.cc25
-rw-r--r--libstdc++-v3/src/locale.cc12
-rw-r--r--libstdc++-v3/src/locale_init.cc8
-rw-r--r--libstdc++-v3/src/mt_allocator.cc44
-rw-r--r--libstdc++-v3/src/mutex.cc26
-rw-r--r--libstdc++-v3/src/pool_allocator.cc11
-rw-r--r--libstdc++-v3/src/thread.cc40
-rw-r--r--libstdc++-v3/testsuite/18_support/exception/38732.cc93
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc2
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc2
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc44
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc4
-rw-r--r--libstdc++-v3/testsuite/28_regex/init-list.cc13
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc30
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc (renamed from libstdc++-v3/testsuite/29_atomics/atomic/cons/explicit_value.cc)2
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc30
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc39
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc39
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc32
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/requirements/standard_layout.cc31
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_address/cons/copy_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_address/cons/single_value.cc (renamed from libstdc++-v3/testsuite/29_atomics/atomic_address/cons/explicit_value.cc)2
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc50
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc50
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc (renamed from libstdc++-v3/testsuite/29_atomics/atomic_flag/atomic_global_fence_compatibility.cc)8
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc44
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc45
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc40
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc45
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc41
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc41
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc32
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc14
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/macros.cc13
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c20
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c3
-rw-r--r--libstdc++-v3/testsuite/30_threads/thread/this_thread/2.cc3
-rw-r--r--libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc16
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc1
-rw-r--r--libstdc++-v3/testsuite/lib/dg-options.exp12
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp60
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc15
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc4
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc15
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_extended.cc4
-rw-r--r--libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp2
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_common_types.h305
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_hooks.h18
-rw-r--r--libtool.m485
-rw-r--r--zlib/ChangeLog.gcj4
-rwxr-xr-xzlib/configure93
948 files changed, 77553 insertions, 63096 deletions
diff --git a/ChangeLog b/ChangeLog
index ee366db9014..5b977b3d2e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,61 @@
+2009-01-15 Douglas B Rupp <rupp@gnat.com>
+
+ * configure.ac (ia64*-*-*vms*): Add case with no gdb or ld support.
+ * configure: Regenerate.
+
+2009-01-12 Ramana Radhakrishnan <ramana.r@gmail.com>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2009-01-12 Steven G. Kargl <sgk@troutmask.apl.washington.edu>
+
+ * MAINTAINERS: Add myself to reviewers (Fortran).
+
+2009-01-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/38515
+ * configure.ac (cloog-polylib): Removed.
+ (with_ppl, with_cloog): Test for "no".
+ * configure: Regenerated.
+
+2009-01-11 Daniel Franke <franke.daniel@gmail.com>
+
+ * MAINTAINERS: Moved myself to reviewers (Fortran).
+
+2009-01-06 Thomas Schwinge <tschwinge@gnu.org>
+
+ * MAINTAINERS (OS Port Maintainers): Add myself for GNU/Hurd.
+ (Write After Approval): Remove myself.
+
+2009-01-03 Diego Novillo <dnovillo@google.com>
+
+ * MAINTAINERS: Remove myself from alias maintainership.
+
+2009-01-02 David Ayers <ayers@fsfe.org>
+
+ * MAINTAINERS: Update e-mail address.
+
+2008-12-30 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * MAINTAINERS: Make whitespace consistent.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Backport from upstream Libtool:
+ * libltdl.m4 (_LT_SYS_DYNAMIC_LINKER, _LT_LINKER_SHLIBS):
+ Add cache variables to tests that require the linker to work.
+ For shlibpath_overrides_runpath, this also changes the semantics
+ to let the result from the C compiler take precedence.
+
+2008-12-02 Ben Elliston <bje@au.ibm.com>
+
+ * config.sub, config.guess: Update from upstream sources.
+
+2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * configure.ac (ppllibs): Add by default the lib flags.
+ * configure: Regenerate.
+
2008-12-08 Luis Machado <luisgpm@br.ibm.com>
* MAINTAINERS: Add myself to the write after approval list.
diff --git a/MAINTAINERS b/MAINTAINERS
index 5d38f8768d3..fcbd3a91e8b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -105,6 +105,7 @@ darwin port Eric Christopher echristo@apple.com
darwin port Stan Shebs stanshebs@earthlink.net
DJGPP DJ Delorie dj@delorie.com
freebsd Loren J. Rittle ljrittle@acm.org
+GNU/Hurd Thomas Schwinge tschwinge@gnu.org
hpux John David Anglin dave.anglin@nrc-cnrc.gc.ca
hpux Steve Ellcey sje@cup.hp.com
irix, osf Rainer Orth ro@TechFak.Uni-Bielefeld.DE
@@ -213,7 +214,6 @@ linear loop transforms Daniel Berlin dberlin@dberlin.org
profile feedback Jan Hubicka jh@suse.cz
type-safe vectors Nathan Sidwell nathan@codesourcery.com
alias analysis Daniel Berlin dberlin@dberlin.org
-alias analysis Diego Novillo dnovillo@google.com
reload Ulrich Weigand uweigand@de.ibm.com
reload Bernd Schmidt bernd.schmidt@analog.com
dfp.c, related Ben Elliston bje@au.ibm.com
@@ -247,6 +247,8 @@ Fortran Janne Blomqvist jb@gcc.gnu.org
Fortran Tobias Burnus burnus@net-b.de
Fortran Jerry DeLisle jvdelisle@gcc.gnu.org
Fortran Erik Edelmann erik.edelmann@iki.fi
+Fortran Daniel Franke franke.daniel@gmail.com
+Fortran Steven G. Kargl sgk@troutmask.apl.washington.edu
Fortran Thomas König tkoenig@gcc.gnu.org
Fortran Daniel Kraft d@domob.eu
Fortran Toon Moene toon@moene.org
@@ -271,7 +273,7 @@ from other maintainers or reviewers.
Mark G. Adams mark.g.adams@sympatico.ca
Raksit Ashok raksit@google.com
Matt Austern austern@google.com
-David Ayers d.ayers@inode.at
+David Ayers ayers@fsfe.org
Giovanni Bajo giovannibajo@gcc.gnu.org
Simon Baldwin simonb@google.com
Scott Bambrough scottb@netwinder.org
@@ -318,7 +320,6 @@ Doug Evans dje@google.com
Chris Fairles cfairles@gcc.gnu.org
Thomas Fitzsimmons fitzsim@redhat.com
Brian Ford ford@vss.fsi.com
-Daniel Franke franke.daniel@gmail.com
Nathan Froyd froydnj@codesourcery.com
Chao-ying Fu fu@mips.com
Kaveh Ghazi ghazi@caip.rutgers.edu
@@ -409,12 +410,13 @@ Jeffrey D. Oldham oldham@codesourcery.com
Andrea Ornstein andrea.ornstein@st.com
Seongbae Park seongbae.park@gmail.com
Devang Patel dpatel@apple.com
-Fernando Pereira pronesto@gmail.com
+Fernando Pereira pronesto@gmail.com
Nicolas Pitre nico@cam.org
Antoniu Pop antoniu.pop@gmail.com
Vladimir Prus vladimir@codesourcery.com
Jerry Quinn jlquinn@optonline.net
Dwarakanath Rajagopal dwarak.rajagopal@amd.com
+Ramana Radhakrishnan ramana.r@gmail.com
Rolf Rasmussen rolfwr@gcc.gnu.org
Volker Reichelt v.reichelt@netcologne.de
Bernhard Reutner-Fischer rep.dot.nop@gmail.com
@@ -427,7 +429,6 @@ Douglas Rupp rupp@gnat.com
Silvius Rus rus@google.com
Matthew Sachs msachs@apple.com
Duncan Sands baldrick@gcc.gnu.org
-Thomas Schwinge tschwinge@gnu.org
Dodji Seketeli dseketel@redhat.com
Svein Seldal svein@dev.seldal.com
Thiemo Seufer ths@networkno.de
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 6f80c297b18..0f58348c978 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Steve Ellcey <sje@cup.hp.com>
diff --git a/boehm-gc/configure b/boehm-gc/configure
index 4bda749b535..a7760a93066 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -9957,44 +9957,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -10574,12 +10580,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -10622,7 +10633,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -10632,8 +10643,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -11628,7 +11643,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11631 "configure"
+#line 11646 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11724,7 +11739,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11727 "configure"
+#line 11742 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13750,11 +13765,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13753: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13768: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13757: \$? = $ac_status" >&5
+ echo "$as_me:13772: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13849,11 +13864,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13852: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13867: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13856: \$? = $ac_status" >&5
+ echo "$as_me:13871: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13901,11 +13916,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13904: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13919: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13908: \$? = $ac_status" >&5
+ echo "$as_me:13923: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14013,44 +14028,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_CXX=no
- else
- archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ then
+ lt_cv_archive_cmds_need_lc_CXX=no
+ else
+ lt_cv_archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_CXX" >&6
+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
;;
esac
fi
@@ -14485,12 +14506,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -14533,7 +14559,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -14543,8 +14569,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
diff --git a/config.guess b/config.guess
index 7b24a8728ca..aeb53233ecb 100755
--- a/config.guess
+++ b/config.guess
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
-timestamp='2008-11-15'
+timestamp='2008-12-18'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -337,7 +337,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
diff --git a/config.sub b/config.sub
index 053e7381fa0..9489dc7867b 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
-timestamp='2008-09-08'
+timestamp='2008-12-11'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -249,6 +249,7 @@ case $basic_machine in
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
@@ -279,7 +280,7 @@ case $basic_machine in
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| score \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -331,6 +332,7 @@ case $basic_machine in
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
@@ -362,7 +364,7 @@ case $basic_machine in
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
@@ -1182,7 +1184,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
diff --git a/config/ChangeLog b/config/ChangeLog
index e5dfc5185c5..c57ec35e6a0 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-21 Andrew Pinski <pinskia@gmail.com>
+
+ PR target/38300
+ * unwind_ipinfo.m4: Darwin before 9 does not have _Unwind_GetIPInfo.
+
2008-11-21 Kai Tietz <kai.tietz@onevision.com>
Fix PR/25502
diff --git a/config/unwind_ipinfo.m4 b/config/unwind_ipinfo.m4
index a1dc6352b67..efc79903b77 100644
--- a/config/unwind_ipinfo.m4
+++ b/config/unwind_ipinfo.m4
@@ -22,7 +22,13 @@ AC_DEFUN([GCC_CHECK_UNWIND_GETIPINFO], [
*) have_unwind_getipinfo=yes ;;
esac
else
- have_unwind_getipinfo=yes
+ # Darwin before version 9 does not have _Unwind_GetIPInfo.
+ changequote(,)
+ case ${target} in
+ *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+ changequote([,])
fi
if test x$have_unwind_getipinfo = xyes; then
diff --git a/configure b/configure
index 403982c69fb..7536c5efa5b 100755
--- a/configure
+++ b/configure
@@ -979,7 +979,6 @@ Optional Packages:
plus --with-cloog-lib=PATH/lib
--with-cloog-include=PATH Specify directory for installed CLooG include files
--with-cloog-lib=PATH Specify the directory for the installed CLooG library
- --with-cloog-polylib=PATH Specify prefix directory for the installed CLooG-PolyLib package
--with-build-sysroot=SYSROOT
use sysroot as the system root during the build
--with-debug-prefix-map='A=B C=D ...'
@@ -2452,6 +2451,10 @@ case "${target}" in
# No gdb or ld support yet.
noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
;;
+ ia64*-*-*vms*)
+ # No gdb or ld support yet.
+ noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
+ ;;
i370-*-opened*)
;;
i[3456789]86-*-coff | i[3456789]86-*-elf)
@@ -4809,7 +4812,7 @@ fi
# Check for PPL
ppl_major_version=0
ppl_minor_version=10
-ppllibs=
+ppllibs=" -lppl_c -lppl -lgmpxx "
pplinc=
@@ -4831,11 +4834,16 @@ if test "${with_ppl_lib+set}" = set; then
fi;
-if test "x$with_ppl" != x; then
- ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
- pplinc="-I$with_ppl/include $pplinc"
- LIBS="$ppllibs $LIBS"
-fi
+case $with_ppl in
+ no)
+ ppllibs=
+ ;;
+ *)
+ ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
+ pplinc="-I$with_ppl/include $pplinc"
+ LIBS="$ppllibs $LIBS"
+ ;;
+esac
if test "x$with_ppl_include" != x; then
pplinc="-I$with_ppl_include $pplinc"
fi
@@ -4944,22 +4952,17 @@ if test "${with_cloog_lib+set}" = set; then
fi;
-# Check whether --with-cloog-polylib or --without-cloog-polylib was given.
-if test "${with_cloog_polylib+set}" = set; then
- withval="$with_cloog_polylib"
-
-fi;
-
-if test "x$with_cloog" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
- LIBS="$clooglibs $LIBS"
-fi
-if test "x$with_cloog_polylib" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include "
- LIBS="$clooglibs $LIBS"
-fi
+case $with_cloog in
+ no)
+ clooglibs=
+ clooginc=
+ ;;
+ *)
+ clooglibs="-L$with_cloog/lib -lcloog"
+ clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
+ LIBS="$clooglibs $LIBS"
+ ;;
+esac
if test "x$with_cloog_include" != x; then
clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
fi
diff --git a/configure.ac b/configure.ac
index 21fcf78ed49..6e6df1835ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -688,6 +688,10 @@ case "${target}" in
# No gdb or ld support yet.
noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
;;
+ ia64*-*-*vms*)
+ # No gdb or ld support yet.
+ noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
+ ;;
i370-*-opened*)
;;
i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
@@ -1315,7 +1319,7 @@ AC_SUBST(gmpinc)
# Check for PPL
ppl_major_version=0
ppl_minor_version=10
-ppllibs=
+ppllibs=" -lppl_c -lppl -lgmpxx "
pplinc=
AC_ARG_WITH(ppl, [ --with-ppl=PATH Specify prefix directory for the installed PPL package
@@ -1324,11 +1328,16 @@ AC_ARG_WITH(ppl, [ --with-ppl=PATH Specify prefix directory for the ins
AC_ARG_WITH(ppl_include, [ --with-ppl-include=PATH Specify directory for installed PPL include files])
AC_ARG_WITH(ppl_lib, [ --with-ppl-lib=PATH Specify the directory for the installed PPL library])
-if test "x$with_ppl" != x; then
- ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
- pplinc="-I$with_ppl/include $pplinc"
- LIBS="$ppllibs $LIBS"
-fi
+case $with_ppl in
+ no)
+ ppllibs=
+ ;;
+ *)
+ ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
+ pplinc="-I$with_ppl/include $pplinc"
+ LIBS="$ppllibs $LIBS"
+ ;;
+esac
if test "x$with_ppl_include" != x; then
pplinc="-I$with_ppl_include $pplinc"
fi
@@ -1373,18 +1382,18 @@ AC_ARG_WITH(cloog, [ --with-cloog=PATH Specify prefix directory for the i
plus --with-cloog-lib=PATH/lib])
AC_ARG_WITH(cloog_include, [ --with-cloog-include=PATH Specify directory for installed CLooG include files])
AC_ARG_WITH(cloog_lib, [ --with-cloog-lib=PATH Specify the directory for the installed CLooG library])
-AC_ARG_WITH(cloog-polylib, [ --with-cloog-polylib=PATH Specify prefix directory for the installed CLooG-PolyLib package])
-if test "x$with_cloog" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
- LIBS="$clooglibs $LIBS"
-fi
-if test "x$with_cloog_polylib" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include "
- LIBS="$clooglibs $LIBS"
-fi
+case $with_cloog in
+ no)
+ clooglibs=
+ clooginc=
+ ;;
+ *)
+ clooglibs="-L$with_cloog/lib -lcloog"
+ clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
+ LIBS="$clooglibs $LIBS"
+ ;;
+esac
if test "x$with_cloog_include" != x; then
clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
fi
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 94b49ebe18a..ca308109296 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,35 @@
+2009-01-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ * tests/base/locale.h: Add new test.
+ * tests/base/stdarg.h: Likewise.
+
+2009-01-05 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_spu_info): Add files line.
+ * fixincl.x: Regenerate.
+
+2009-01-01 Andreas Tobler <a.tobler@schweiz.org>
+
+ * inclhack.def (openbsd_null_definition): Redefine NULL to (void *)0
+ in case of C.
+ * fixincl.x: Regenerate.
+
+2008-12-31 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR target/35460
+ * inclhack.def (openbsd_va_start): Use __builtin_va_start
+ for OpenBSD.
+ * fixincl.x: Regenerate.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-15 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_spu_info): Match PA as well as IA64.
+ * fixincl.x: Regenerate.
+
2008-09-06 H.J. Lu <hongjiu.lu@intel.com>
* configure.ac: Fix a typo.
diff --git a/fixincludes/configure b/fixincludes/configure
index 872e8e0c82c..e14e8160dd6 100755
--- a/fixincludes/configure
+++ b/fixincludes/configure
@@ -1357,11 +1357,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
@@ -1369,7 +1367,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-# serial 53 LT_INIT
+# serial 56 LT_INIT
# LT_PREREQ(VERSION)
@@ -1378,9 +1376,15 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+
+
+
# LT_INIT([OPTIONS])
# ------------------
-# _LT_INIT
+# LT_INIT
# Old names:
@@ -1645,6 +1649,15 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# the simple link test code.
# _LT_LINKER_BOILERPLATE
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+
# _LT_SYS_MODULE_PATH_AIX
# -----------------------
@@ -1949,6 +1962,13 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+
+
+
# _LT_DECL_SED
# ------------
# Check for a fully-functional sed program, that truncates
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index 9d63f0392e5..5a77bb7cb6a 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
- * It has been AutoGen-ed Thursday November 6, 2008 at 11:04:40 PM UTC
+ * It has been AutoGen-ed Friday January 16, 2009 at 04:40:32 PM UTC
* From the definitions inclhack.def
* and the template file fixincl
*/
-/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Nov 6 23:04:40 UTC 2008
+/* DO NOT SVN-MERGE THIS FILE, EITHER Fri Jan 16 16:40:32 UTC 2009
*
* You must regenerate it. Use the ./genfixes script.
*
@@ -15,7 +15,7 @@
* certain ANSI-incompatible system header files which are fixed to work
* correctly with ANSI C and placed in a directory that GNU C will search.
*
- * This file contains 180 fixup descriptions.
+ * This file contains 182 fixup descriptions.
*
* See README for more information.
*
@@ -3176,7 +3176,7 @@ tSCC zHpux_Spu_InfoName[] =
* File name selection pattern
*/
tSCC zHpux_Spu_InfoList[] =
- "ia64/sys/getppdp.h\0";
+ "ia64/sys/getppdp.h\0*/sys/getppdp.h\0";
/*
* Machine/OS name selection pattern
*/
@@ -4832,6 +4832,60 @@ static const char* apzNodeent_SyntaxPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Openbsd_Null_Definition fix
+ */
+tSCC zOpenbsd_Null_DefinitionName[] =
+ "openbsd_null_definition";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOpenbsd_Null_DefinitionList[] =
+ "locale.h\0stddef.h\0stdio.h\0string.h\0time.h\0unistd.h\0wchar.h\0sys/param.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzOpenbsd_Null_DefinitionMachs[] = {
+ "*-*-openbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zOpenbsd_Null_DefinitionSelect0[] =
+ "__GNUG__";
+
+#define OPENBSD_NULL_DEFINITION_TEST_CT 1
+static tTestDesc aOpenbsd_Null_DefinitionTests[] = {
+ { TT_EGREP, zOpenbsd_Null_DefinitionSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Openbsd_Null_Definition
+ */
+static const char* apzOpenbsd_Null_DefinitionPatch[] = {
+ "format",
+ "#ifndef NULL\n\
+#ifdef __cplusplus\n\
+#ifdef __GNUG__\n\
+#define NULL\t__null\n\
+#else\t /* ! __GNUG__ */\n\
+#define NULL\t0L\n\
+#endif\t /* __GNUG__ */\n\
+#else\t /* ! __cplusplus */\n\
+#define NULL\t((void *)0)\n\
+#endif\t /* __cplusplus */\n\
+#endif\t /* !NULL */",
+ "^#ifndef[ \t]*NULL\n\
+^#ifdef[ \t]*__GNUG__\n\
+^#define[ \t]*NULL[ \t]*__null\n\
+^#else\n\
+^#define[ \t]*NULL[ \t]*0L\n\
+^#endif\n\
+^#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Obstack_Lvalue_Cast fix
*/
tSCC zObstack_Lvalue_CastName[] =
@@ -4867,6 +4921,43 @@ static const char* apzObstack_Lvalue_CastPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Openbsd_Va_Start fix
+ */
+tSCC zOpenbsd_Va_StartName[] =
+ "openbsd_va_start";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOpenbsd_Va_StartList[] =
+ "stdarg.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzOpenbsd_Va_StartMachs[] = {
+ "*-*-openbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zOpenbsd_Va_StartSelect0[] =
+ "__builtin_stdarg_start";
+
+#define OPENBSD_VA_START_TEST_CT 1
+static tTestDesc aOpenbsd_Va_StartTests[] = {
+ { TT_EGREP, zOpenbsd_Va_StartSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Openbsd_Va_Start
+ */
+static const char* apzOpenbsd_Va_StartPatch[] = {
+ "format",
+ "__builtin_va_start",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Osf_Namespace_A fix
*/
tSCC zOsf_Namespace_AName[] =
@@ -7315,9 +7406,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 227
+#define REGEX_COUNT 229
#define MACH_LIST_SIZE_LIMIT 181
-#define FIX_COUNT 180
+#define FIX_COUNT 182
/*
* Enumerate the fixes
@@ -7442,7 +7533,9 @@ typedef enum {
NEXT_VOLITILE_FIXIDX,
NEXT_WAIT_UNION_FIXIDX,
NODEENT_SYNTAX_FIXIDX,
+ OPENBSD_NULL_DEFINITION_FIXIDX,
OBSTACK_LVALUE_CAST_FIXIDX,
+ OPENBSD_VA_START_FIXIDX,
OSF_NAMESPACE_A_FIXIDX,
OSF_NAMESPACE_C_FIXIDX,
PTHREAD_PAGE_SIZE_FIXIDX,
@@ -8101,11 +8194,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aNodeent_SyntaxTests, apzNodeent_SyntaxPatch, 0 },
+ { zOpenbsd_Null_DefinitionName, zOpenbsd_Null_DefinitionList,
+ apzOpenbsd_Null_DefinitionMachs,
+ OPENBSD_NULL_DEFINITION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOpenbsd_Null_DefinitionTests, apzOpenbsd_Null_DefinitionPatch, 0 },
+
{ zObstack_Lvalue_CastName, zObstack_Lvalue_CastList,
apzObstack_Lvalue_CastMachs,
OBSTACK_LVALUE_CAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aObstack_Lvalue_CastTests, apzObstack_Lvalue_CastPatch, 0 },
+ { zOpenbsd_Va_StartName, zOpenbsd_Va_StartList,
+ apzOpenbsd_Va_StartMachs,
+ OPENBSD_VA_START_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOpenbsd_Va_StartTests, apzOpenbsd_Va_StartPatch, 0 },
+
{ zOsf_Namespace_AName, zOsf_Namespace_AList,
apzOsf_Namespace_AMachs,
OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 9bd933343a1..29a970da5db 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -1769,7 +1769,14 @@ fix = {
fix = {
hackname = hpux_spu_info;
mach = "*-hp-hpux*";
- files = ia64/sys/getppdp.h;
+ /*
+ * It is tempting to omit the first "files" entry. Do not.
+ * The testing machinery will take the first "files" entry as the name
+ * of a test file to play with. It would be a nuisance to have a directory
+ * with the name "*".
+ */
+ files = "ia64/sys/getppdp.h";
+ files = "*/sys/getppdp.h";
select = "^.*extern.*spu_info.*";
c_fix = format;
@@ -2587,6 +2594,44 @@ fix = {
test_text = "char *na_addr\t";
};
+/*
+ * Fix OpenBSD's NULL definition.
+ */
+fix = {
+ hackname = openbsd_null_definition;
+ mach = "*-*-openbsd*";
+ files = locale.h, stddef.h, stdio.h, string.h,
+ time.h, unistd.h, wchar.h, sys/param.h;
+ select = "__GNUG__";
+ c_fix = format;
+ c_fix_arg = "#ifndef NULL\n"
+ "#ifdef __cplusplus\n"
+ "#ifdef __GNUG__\n"
+ "#define NULL\t__null\n"
+ "#else\t /* ! __GNUG__ */\n"
+ "#define NULL\t0L\n"
+ "#endif\t /* __GNUG__ */\n"
+ "#else\t /* ! __cplusplus */\n"
+ "#define NULL\t((void *)0)\n"
+ "#endif\t /* __cplusplus */\n"
+ "#endif\t /* !NULL */";
+
+ c_fix_arg = "^#ifndef[ \t]*NULL\n"
+ "^#ifdef[ \t]*__GNUG__\n"
+ "^#define[ \t]*NULL[ \t]*__null\n"
+ "^#else\n"
+ "^#define[ \t]*NULL[ \t]*0L\n"
+ "^#endif\n"
+ "^#endif";
+ test_text =
+ "#ifndef NULL\n"
+ "#ifdef __GNUG__\n"
+ "#define NULL __null\n"
+ "#else\n"
+ "#define NULL 0L\n"
+ "#endif\n"
+ "#endif\n";
+};
/*
* obstack.h used casts as lvalues.
@@ -2612,6 +2657,19 @@ fix = {
test_text = "*((void **) (h)->next_free)++ = (aptr)";
};
+/*
+ * Fix OpenBSD's va_start define.
+ */
+fix = {
+ hackname = openbsd_va_start;
+ mach = "*-*-openbsd*";
+ files = stdarg.h;
+ select = '__builtin_stdarg_start';
+ c_fix = format;
+ c_fix_arg = __builtin_va_start;
+
+ test_text = "#define va_start(v,l) __builtin_stdarg_start((v),l)";
+};
/*
* sys/lc_core.h on some versions of OSF1/4.x pollutes the namespace by
diff --git a/fixincludes/tests/base/locale.h b/fixincludes/tests/base/locale.h
new file mode 100644
index 00000000000..7a7273e1053
--- /dev/null
+++ b/fixincludes/tests/base/locale.h
@@ -0,0 +1,25 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/locale.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OPENBSD_NULL_DEFINITION_CHECK )
+#ifndef NULL
+#ifdef __cplusplus
+#ifdef __GNUG__
+#define NULL __null
+#else /* ! __GNUG__ */
+#define NULL 0L
+#endif /* __GNUG__ */
+#else /* ! __cplusplus */
+#define NULL ((void *)0)
+#endif /* __cplusplus */
+#endif /* !NULL */
+
+#endif /* OPENBSD_NULL_DEFINITION_CHECK */
diff --git a/fixincludes/tests/base/stdarg.h b/fixincludes/tests/base/stdarg.h
new file mode 100644
index 00000000000..686d0b3d6ea
--- /dev/null
+++ b/fixincludes/tests/base/stdarg.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdarg.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OPENBSD_VA_START_CHECK )
+#define va_start(v,l) __builtin_va_start((v),l)
+#endif /* OPENBSD_VA_START_CHECK */
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d7e876707c9..4afe53fec25 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,28181 +1,807 @@
-2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
-
- PR target/37170
- PR target/38448
- * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
- on the associated SYMBOL_REF_DECL node, if any.
-
-2008-12-09 David Daney <ddaney@caviumnetworks.com>
-
- * config/mips/sync.md (sync_<optab>_12): Replace
- MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
- (sync_old_<optab>_12): Remove third paramater to
- MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
- with MIPS_SYNC_OLD_OP_12_AND.
- (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
- with MIPS_SYNC_NEW_OP_12_AND.
- (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
- MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
- (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
- macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
- MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
- (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
- MIPS_SYNC_NEW_OP_12_XOR.
- * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
- MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
- MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
- MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
- MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
- to implement new __sync_nand semantics.
- (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
- remove third parameter.
- (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
- MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
- (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
- (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
- (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
- (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
- (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
- (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
-
-2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
-
- * graphite.c (graphite_transform_loops): Always call find_transform ()
- in ENABLE_CHECKING. So we test these code paths, even if we do not
- generate code.
-
-2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
-
- * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
-
-2008-12-09 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38454
- * function.h (struct function): Add always_inline_functions_inlined.
- * ipa-inline.c (cgraph_early_inlining): Set it to true.
- * tree-optimize.c (execute_fixup_cfg): Likewise.
- * builtins.c (avoid_folding_inline_builtin): New function.
- (fold_call_expr): Don't optimize always_inline builtins before
- inlining.
- (fold_call_stmt): Likewise.
- (fold_builtin_call_array): Likewise. Don't call
- fold_builtin_varargs for BUILT_IN_MD builtins.
-
- PR tree-optimization/37416
- * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
-
-2008-12-09 Janis Johnson <janis187@us.ibm.com>
-
- * doc/sourcebuild.texi (Test Directives): Fix formatting.
-
-2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
-
- * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
-
- * doc/invoke.texi (-fira-region): Describe new option.
- (-fira-algorithm): Change the values.
-
- * ira-conflicts.c (build_conflict_bit_table,
- build_allocno_conflicts): Use ira_reg_classes_intersect_p.
- (ira_build_conflicts): Use flag flag_ira_region instead of
- flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
- base registers for allocnos crossing calls.
-
- * flags.h (enum ira_algorithm): Redefine.
- (enum ira_region): New.
- (flag_ira_region): New.
-
- * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
- instead of flag_ira_algorithm.
-
- * toplev.c (flag_ira_algorithm): Change the initial value.
- (flag_ira_region): New.
-
- * ira-int.h (ira_reg_classes_intersect_p,
- ira_reg_class_super_classes): New.
-
- * ira-color.c (update_copy_costs): Use
- ira_reg_classes_intersect_p. Use right class to find hard reg
- index.
- (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
- (assign_hard_reg): Ditto. Pass additional argument to
- update_conflict_hard_regno_costs. Do not uncoalesce for priority
- coloring.
- (allocno_priorities, setup_allocno_priorities,
- allocno_priority_compare_func): Move before color_allocnos.
- (color_allocnos): Add priority coloring. Use flag flag_ira_region
- instead of flag_ira_algorithm.
- (move_spill_restore): Check classes of the same reg allocno from
- different regions.
- (update_curr_costs): Use ira_reg_classes_intersect_p.
- (ira_reassign_conflict_allocnos): Ditto.
-
- * opts.c (decode_options): Always set up flag_ira. Set up
- flag_ira_algorithm. Warn CB can not be used for architecture.
- (common_handle_option): Modify code for -fira-algorithm. Add code
- to process -fira-region.
-
- * ira-lives.c (update_allocno_pressure_excess_length): Process
- superclasses too.
- (set_allocno_live, clear_allocno_live, mark_reg_live,
- mark_reg_dead, process_bb_node_lives): Ditto.
-
- * ira-emit.c (ira_emit): Fix insn codes.
-
- * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
- instead of flag_ira_algorithm.
- (allocno_range_compare_func): Ignore classes for priority
- coloring.
- (setup_min_max_conflict_allocno_ids): Ditto.
- (ira_flattening): Use ira_reg_classes_intersect_p.
-
- * genpreds.c (write_enum_constraint_num): Output
- CONSTRAINT__LIMIT.
-
- * common.opt (fira-algorithm): Modify.
- (fira-region): New.
-
- * ira.c (setup_class_hard_regs): Initialize.
- (setup_cover_and_important_classes): Modify code setting class
- related info for priority coloring.
- (setup_class_translate): Ditto.
- (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
- (setup_reg_class_intersect_union): Rename to
- setup_reg_class_relations. Add code for setting up new variables.
- (find_reg_class_closure): Do not check targetm.ira_cover_classes.
- (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
-
- * ira-costs.c (common_classes): New.
- (print_costs): Use flag flag_ira_region instead of
- flag_ira_algorithm.
- (find_allocno_class_costs): Ditto. Use common_classes. Translate
- alt_class.
- (ira_costs): Allocate/deallocate common_classes.
-
- * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
- (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
- R02A_REGS.
-
- * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
- smallest_mode_for_size.
-
-2008-12-10 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/linux-unwind.h (get_regs): Constify casts.
-
-2008-12-09 Jan Hubicka <jh@suse.cz>
-
- * predict.c (estimate_bb_frequencies): Fix test if profile is present.
-
-2008-12-09 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/35468
- * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
- string on LHS.
-
-2008-12-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/38445
- * tree-ssa-structalias.c (emit_pointer_definition): Only visit
- names once.
- (emit_alias_warning): Adjust.
-
-2008-12-09 Andrew Haley <aph@redhat.com>
-
- * fixed-value.c (do_fixed_add): Add comment.
- * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
- * builtins.c (fold_builtin_sqrt): Likewise.
-
-2008-12-09 Kai Tietz <kai.tietz@onevision.com>
-
- PR/38366
- * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
- case.
- * calls.c (nitialize_argument_information): Add fntype argument
- and use it for calls.promote_function_args.
- (expand_call): Pass fntype to aggregate_value_p if no fndecl
- available and pass additional fntype to
- initialize_argument_information.
- * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
- to get function abi type.
- (init_cumulative_args): Use for abi kind detection fntype, when no
- fndecl is available.
-
-2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.md (movti, movdi_64, movdi_31,
- *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
- *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
- Q->Q alternative.
- (Integer->BLKmode splitter): Removed.
-
-2008-12-08 Uros Bizjak <ubizjak@gmail.com>
-
- * config/alpha/alpha.c (alpha_set_memflags): Process memory
- references in full insn sequence.
-
-2008-12-09 Jason Merrill <jason@redhat.com>
-
- * gimplify.c (gimplify_init_constructor): Revert to using < rather
- than <= for sparseness test.
-
- PR c++/38410
- * gimplify.c (gimplify_init_constructor): Don't write out a static
- copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
- initializers.
-
-2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
-
- PR middle-end/38084
- Fix testsuite/gfortran.dg/graphite/id-3.f90.
- * graphite.c (scopdet_basic_block_info): Fix bug that found some
- regions more than once.
- * testsuite/gfortran.dg/graphite/id-3.f90: New.
- * gcc/testsuite/gcc.dg/graphite/pr38084.c: New.
-
-2008-12-09 Ben Elliston <bje@au.ibm.com>
-
- * emutls.c (__emutls_get_address): Prototype.
- (__emutls_register_common): Likewise.
-
- * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
-
-2008-12-09 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
-
-2008-12-08 Steve Ellcey <sje@cup.hp.com>
-
- * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
- (nonlocal_goto_receiver): New instruction.
-
-2008-12-08 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35443
- * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
-
- PR c/35442
- * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
- VIEW_CONVERT_EXPR the same as CASE_CONVERT.
-
-2008-12-08 Richard Henderson <rth@redhat.com>
-
- PR 38240
- * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
- (SET_TYPE_MODE): New.
- * c-decl.c (parser_xref_tag): Use it.
- (finish_enum): Likewise.
- * tree.c (build_pointer_type_for_mode): Likewise.
- (build_reference_type_for_mode, build_index_type): Likewise.
- (build_range_type, make_vector_type): Likewise.
- (build_common_tree_nodes_2): Likewise.
- * stor-layout.c (compute_record_mode): Likewise.
- (finalize_type_size, layout_type, make_fract_type): Likewise.
- (make_accum_type, initialize_sizetypes): Likewise.
- (vector_type_mode): New.
- * function.c (allocate_struct_function): Call
- invoke_set_current_function_hook before querying anything else.
-
- * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
-
-2008-12-08 Luis Machado <luisgpm@br.ibm.com>
-
- * alias.c (find_base_term): Synch LO_SUM handling with what
- find_base_value does.
-
-2008-12-08 Andrew Haley <aph@redhat.com>
- Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
-
- * gimple.h (gimple_build_try): Fix declaration.
-
- * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
- * fixed-value.c (do_fixed_add): Likewise.
- * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
-
-2008-12-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36802
- * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
- on parallel and task contexts.
-
-2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
-
-2008-12-07 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/38405
- * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
- not sign-extend truth values.
-
-2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-sra.c (scalarize_use): Create another temporary with the proper
- type for signed types in the use_all && !is_output bitfield case.
-
-2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
-
- PR rtl-optimization/36365
- * df-core.c (df_worklist_dataflow_overeager): Remove.
- (df_worklist_dataflow): Don't call it, use double-queue only.
- * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
-
-2008-12-06 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38428
- * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
- gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
-
-2008-12-07 Ben Elliston <bje@au.ibm.com>
-
- * gthr-single.h (__gthread_once): Adjust prototype to match all
- other gthreads models.
-
-2008-12-06 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.c (override_options): Use CPU_AMDFAM10
- instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
-
- PR middle-end/38422
- * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
- operands to mult_type if it isn't narrower than op0's type.
-
-2008-12-06 Jan Hubicka <jh@suse.cz>
- Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/38074
- * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
- entry frequency.
- * predict.c (combine_predictions_for_bb): Ignore predictor predicting
- in both dirrection for first match heuristics.
- (tree_bb_level_predictions): Disable noreturn heuristic when there
- is no returning path.
-
-2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
-
- PR rtl-optimization/38272
- * reload1.c (choose_reload_regs): Keep reload_spill_index correct
- in all cases.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35336
- * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
- (pp_c_expression): Likewise.
-
-2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
-
- PR c/38416
- * c-parser.c (struct c_token): Make pragma_kind 8 bits.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37248
- * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
- arguments to HOST_WIDE_INT. If type has different signedness
- than unsignedp or different precision from bitsize, create
- the right type for BIT_FIELD_REF and cast to type.
- (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
-
- Revert:
- 2008-03-05 Richard Guenther <rguenther@suse.de>
- PR c++/35336
- * fold-const.c (fold_truthop): Remove code generating
- BIT_FIELD_REFs of structure bases.
- (fold_binary): Likewise.
- (make_bit_field_ref): Remove.
- (optimize_bit_field_compare): Remove.
- (all_ones_mask_p): Remove.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- * tree-sra.c (sra_explode_bitfield_assignment): Always
- call unsigned_type_for, if the precision is higher than
- needed, call build_nonstandard_integer_type.
-
- PR debug/38367
- * function.c (assign_parm_find_stack_rtl): If promoted_mode
- is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
- big endian.
-
- PR middle-end/38338
- * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
- only if internal_arg_pointer is a non-virtual pseudo.
-
-2008-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
- TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
- * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37716
- * gimplify.c (gimplify_expr): Allow COND_EXPR if
- gimplify_ctxp->allow_rhs_cond_expr.
-
-2008-12-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
- VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
-
- (alpha_emit_conditional_branch): Do not generate direct branch
- for UNORDERED comparisons.
-
-2008-12-05 Andreas Schwab <schwab@suse.de>
-
- * config/rs6000/linux-unwind.h (frob_update_context): Check for
- NULL lr.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR c/38408
- * fold-const.c (fold_checksum_tree): Change buf type to union
- tree_node.
-
-2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
-
- PR bootstrap/38262
- * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
- (BACKENDLIBS): New.
- (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
-
-2008-12-05 Ben Elliston <bje@au.ibm.com>
-
- * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
- comma_loc.
- (c_parser_initelt): Initialise des_loc and ellipsis_loc.
-
-2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
- Gary Funck <gary@intrepid.com>
-
- * cse.c (lookup_as_function): Delete mode frobbing code.
- (equiv_constant): Re-implement it there for SUBREGs.
-
-2008-12-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36509
- * Makefile.in (tree-ssa-alias-warnings.o): Remove.
- (tree-ssa-structalias.o): Remove errors.h dependency.
- (tree-ssa-reassoc.o): Likewise.
- * tree-ssa-reassoc.c: Do not include errors.h.
- * tree-ssa-alias-warnings.c: Remove.
- * tree-ssa-alias.c (compute_may_aliases): Remove call to
- strict_aliasing_warning_backend.
- * tree-ssa-structalias.c (emit_pointer_definition): New function.
- (emit_alias_warning): Likewise.
- (set_uids_in_ptset): Warn for clear cases of type-punning.
- * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
- on INDIRECT_REFs.
-
-2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * cse.c (equiv_constant): Fix pasto.
-
-2008-12-04 Nick Clifton <nickc@redhat.com>
-
- * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
- * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
- formatting of quotes.
-
-2008-12-04 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38371
- * fold-const.c (fold_checksum_tree): Allow modification of
- TYPE_NEXT_VARIANT.
-
-2008-12-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38360
- * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
- have the right number of arguments.
-
-2008-12-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36326
- * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
- non-BLKmode types.
-
-2008-12-03 Tomas Bily <tbily@suse.cz>
-
- PR middle-end/38250
- * tree-loop-distribution.c (build_size_arg): New function.
- (generate_memset_zero): Checks if dr_analyze_innermost succeed.
- Reorganized generating of stmts.
- * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
- * tree-data-ref.c (dr_analyze_innermost): Returns bool.
- Indicate if analysis succeed.
- * tree-data-ref.h (dr_analyze_innermost): Returns bool.
- * tree-predcom.c (valid_initializer_p, find_looparound_phi):
- Uses new definition of dr_analyze_innermost.
-
-2008-12-03 Ben Elliston <bje@au.ibm.com>
-
- * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
-
-2008-12-03 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37716
- * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
- all the needed operations as trees and gimplify_assign it to dst.
-
- PR target/37610
- * configure.ac (gcc_cv_readelf): Look for readelf.
- (gcc_cv_as_cfi_advance_working): Check for working
- cfi advances with code alignment factor > 1.
- (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
- don't work properly.
- * configure: Regenerated.
-
-2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
- Jakub Jelinek <jakub@redhat.com>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-optimization/38281
- * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
- set it to NULL_RTX afterwards.
-
- * emit-rtl.c (set_insn_deleted): Fix formatting.
-
-2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
- error return value.
- * config/mips/mips.md (IMOVE32): New mode iterator.
- (movsi): Generalize with IMOVE32.
- (*movsi_internal): Likewise.
- (*mov<mode>_mips16): Likewise.
- (*lwxs): Likewise.
-
-2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
- PC-relative addressing when compiling for uclinux PIC.
- (__cmpdf_internal, __cmpsf_internal): Hide.
- (__cmpdf, __cmpsf): Use PIC call sequence.
-
-2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
- Jack Howarth <howarth@bromo.med.uc.edu>
-
- * config/i386/t-darwin64: Add m32 multilib support.
-
-2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
-
- * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
-
-2008-12-02 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38343
- * builtins.c (fold_builtin_memory_op): Convert len to sizetype
- before using it in POINTER_PLUS_EXPR.
-
-2008-12-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/38359
- * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
- non-negative x.
-
-2008-12-02 Martin Jambor <mjambor@suse.cz>
-
- PR middle-end/37861
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
- for INDIRECT_REFs.
- (forward_propagate_addr_into_variable_array_index): Check that the
- offset is not computed from a MULT_EXPR, use is_gimple_assign rather
- than the gimple code directly.
-
-2008-12-02 Ben Elliston <bje@au.ibm.com>
-
- * config/spu/float_disf.c (__floatdisf): Prototype.
- * config/spu/float_unsdisf.c (__float_undisf): Likewise.
- * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
- * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
-
-2008-12-02 DJ Delorie <dj@redhat.com>
-
- * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
- (DWARF_CIE_DATA_ALIGNMENT): Define.
-
- * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
- Invert add/sub for INCOMING_FRAME_SP_OFFSET.
- (xstormy16_expand_prologue): Likewise.
- (xstormy16_expand_builtin_va_start): Likewise.
- (xstormy16_gimplify_va_arg_expr): Likewise.
-
-2008-12-02 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38343
- * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
- potentially returned from folding memcpy.
- (expand_builtin_stpcpy_args): Similarly for folding strcpy.
- (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
-
-2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR target/38054
- * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
- decoration of function RTL names here on Ada language.
-
-2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/38280
- * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
- ira_rebuild_regno_allocno_list): New functions.
- (regno_allocnos): New static variable.
- (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
- Call ira_rebuild_regno_allocno_list.
-
-2008-12-01 David Daney <ddaney@caviumnetworks.com>
- Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
- LINUX_DRIVER_SELF_SPECS.
-
-2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/37514
- * reload1.c (reload_as_needed): Invalidate reg_last_reload
- from previous insns.
-
-2008-12-01 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/38348
- * c-omp.c (c_finish_omp_for): Only transform pointer
- ++ or -- into MODIFY_EXPR if second argument is non-NULL.
-
- PR rtl-optimization/38245
- * tree-vrp.c (abs_extent_range): New function.
- (extract_range_from_binary_expr): Compute range
- for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
- or includes zero or if vr1 is VR_RANGE and op0 has some
- other range.
-
-2008-12-01 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37908
- * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
- case by calculating ~(new_reg & val) instead of (~new_reg & val).
- * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
- to (not:I48MODE (and:I48MODE (...))).
- (sync_old_nand<mode>): Ditto.
- (sync_new_nand<mode>): Ditto.
-
-2008-12-01 Nick Clifton <nickc@redhat.com>
-
- * config/stormy16/stormy16.md (CARRY_REG): New constant.
- Replace uses of the "y" register class with direct references to
- the CARRY_REG register.
- * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
- register with clobbers of the carry register.
- (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
- (xstormy16_split_cbranch): Remove redundant carry parameter.
- (xstormy16_expand_arith): Likewise.
- * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
- (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
- REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
- (CARRY_REGNUM): Define.
- * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
- Update prototype.
- (xstormy16_expand_arith): Likewise.
-
-2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
-
- * config/score/score.h (IRA_COVER_CLASSES): Define.
-
-2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
-
- PR target/38287
- * config/sparc/sparc.md (divsi3 expander): Remove constraints.
- (divsi3_sp32): Add new alternative with 'K' for operand #2.
- (cmp_sdiv_cc_set): Factor common string.
- (udivsi3_sp32): Add new alternative with 'K' for operand #2.
- Add TARGET_V9 case.
- (cmp_udiv_cc_set): Factor common string.
-
-2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR middle-end/38283
- * varasm.c (emutls_finish): Fix common registration.
-
-2008-11-29 Jakub Jelinek <jakub@redhat.com>
-
- PR target/29987
- * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
-
-2008-11-29 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
- operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
- (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
- * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
- Call rs6000_emit_sync with CODE=NOT and unmodified operands.
- Ignore sub-word case for now.
- (sync_nand<mode>_internal): Represent NAND in RTL.
- (sync_old_nand<mode): Same.
- (sync_old_name<mode>_internal): Same.
- (sync_new_nand<mode>): Same.
- (sync_new_nand<mode>_internal): Same.
- (sync_boolcshort_internal): Expect NAND.
-
-2008-11-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37955
- PR tree-optimization/37742
- * tree-vect-transform.c (vectorizable_store): Remove assert for
- compatible aliases.
- (vectorizable_load): Likewise.
-
-2008-11-27 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (intra_create_variable_infos): Make
- a constraint for the static chain parameter.
-
-2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.opt (micplb): New option.
- * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
- * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
- ENABLE_WA_INDIRECT_CALLS): New macros.
- * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
- all 54x CPUs.
- (indirect_call_p): New function.
- (workaround_speculation): Handle anomaly 05-00-0426 when
- ENABLE_WA_INDIRECT_CALLS is true.
- * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
- __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
- * doc/invoke.texi (Blackfin Options): Document -micplb.
-
-2008-11-26 DJ Delorie <dj@redhat.com>
-
- * config/m32c/mov.md ("extendhipsi2"): New.
-
- * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
-
- * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
- * config/m32c/mov.md (zero_extendqihi2): Likewise.
-
-2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.md (clear_hazard): Rename to
- clear_hazard_<mode>. Use mode-specific addition.
- (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
- or gen_clear_hazard_di depending on the size of Pmode.
-
-2008-11-26 DJ Delorie <dj@redhat.com>
-
- * configure.ac: Test m32c-elf-gas for .loc.
- * configure: Likewise.
-
-2008-11-26 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/28870
- * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
- dg-timeout-factor.
-
-2008-11-26 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/sync.md (memory_barrier_nosse): Disable also for
- TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
- (memory_barrier): Do not generate memory_barrier_nosse instruction
- for TARGET_64BIT.
- * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
-
-2008-11-26 Fredrik Unger <fred@tree.se>
-
- * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
- function name from __floatundisf.
- * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
- DFtype.
-
-2008-11-25 Daniel Berlin <dberlin@dberlin.org>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37869
- * tree-ssa-structalias.c (struct constraint_graph): Remove
- pt_used and number_incoming members.
- (build_pred_graph): Do not allocate them.
- (condense_visit): Do not use them.
- (label_visit): Likewise.
- (free_var_substitution_info): Do not free them.
-
-2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
-
- * doc/invoke.texi (ira-max-loops-num): Change semantics.
-
- * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
-
- * ira-color.c (allocno_spill_priority): New function.
- (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
- Print more info about the spilled allocno.
- (push_allocnos_to_stack): Use allocno_spill_priority. Add more
- checks on bad spill.
-
- * ira-build.c (loop_node_to_be_removed_p): Remove.
- (loop_compare_func, mark_loops_for_removal): New functions.
- (remove_uneccesary_loop_nodes_from_loop_t): Use member
- to_remove_p.
- (remove_unnecessary_allocnos): Call mark_loops_for_removal.
-
- * ira.c (ira): Don't change flag_ira_algorithm.
-
- * params.def (ira-max-loops-num): Change the value.
-
-2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
- Disable unsupported alternative for ColdFire,
- add new alternative that ColdFire can handle.
-
-2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * regrename.c (merge_overlapping_regs): Add registers artificially
- defined at the top of the basic block to the set of live ones just
- before the first insn.
-
-2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
Joey Ye <joey.ye@intel.com>
PR middle-end/37843
- * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
- false if we need to align the outgoing stack.
- (ix86_update_stack_boundary): Check parm_stack_boundary.
-
-2008-11-25 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/38151
- PR middle-end/38236
- * tree-ssa-alias.c (struct alias_info): Remove written_vars.
- Remove dereferenced_ptrs_store and dereferenced_ptrs_load
- in favor of dereferenced_ptrs.
- (init_alias_info): Adjust.
- (delete_alias_info): Likewise.
- (compute_flow_insensitive_aliasing): Properly
- include all aliased variables.
- (update_alias_info_1): Use dereferenced_ptrs.
- (setup_pointers_and_addressables): Likewise.
- (get_smt_for): Honor ref-all pointers and pointers with known alias
- set properly.
- * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
-
-2008-11-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/38254
- * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
- (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
-
-2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
-
-2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
-
-2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- PR target/35018
- * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
- (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
-
-2008-11-24 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
- UNSPECV_CMPXCHG_[12].
- * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
- UNSPECV_CMPXCHG_[12].
-
- PR target/36793
- * config/i386/sync.md (memory_barrier): New expander.
-
-2008-11-24 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37135
- * dse.c (find_shift_sequence): Optimize extraction from a constant.
-
-2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * pa.c (function_arg): Revert 2008-10-26 change.
-
-2008-11-23 Helge Deller <deller@gmx.de>
-
- * pa/linux-atomic.c (EBUSY): Define if not _LP64.
- (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
- succeeded and lws_ret is not equal to oldval.
-
-2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
-
-2008-11-22 Andreas Schwab <schwab@suse.de>
-
- * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
- -dA and -dP.
-
-2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
- Use constant 1 as the operand.
- * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
- Rename gen_rdhwr to gen_rdhwr_synci_step_si or
- gen_rdhwr_synci_step_di depending on the size of Pmode.
-
-2008-11-22 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/38222
- * config/i386/i386.md (SWI248): New mode iterator.
- (SWI32): Remove mode iterator.
- (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
- popcounthi2 insn patterns. Macroize pattern using SWI248 mode
- iterator. Generate popcnt mnemonic without mode extensions
- for Darwin x86 targets.
- (*popcount<mode>2_cmp): Ditto.
- (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
- extensions for Darwin x86 targets.
-
-2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
- only if HAVE_AS_SPARC_UA_PCREL is defined.
-
-2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
-
- * ira-costs.c (find_allocno_class_costs): Work out the maximum
- allocno_costs value of the classees with the lowest total_costs
- value. Use this to set ALLOCNO_COVER_CLASS_COST here...
- (setup_allocno_cover_class_and_costs): ...rather than here.
- Use the ALLOCNO_COVER_CLASS_COST for all registers in the
- preferred class.
-
-2008-11-22 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37323
- * builtins.c (expand_builtin_apply_args): Emit sequence before
- parm_birth_insn instead of after entry_of_function's first insn.
-
- PR middle-end/37316
- * function.c (assign_parm_remove_parallels): Pass
- data->passed_type as third argument to emit_group_store.
-
- PR target/37170
- * final.c (mark_symbol_refs_as_used): New function.
- * output.h (mark_symbol_refs_as_used): New prototype.
- * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
- (s390_output_pool_entry): Use mark_symbol_refs_as_used.
- * config/arm/arm.md (consttable_4): Likewise.
-
- PR target/37880
- * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
-
-2008-11-21 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38200
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
- propagate x = &a into *x = b if conversion from b to a's type is
- useless.
-
-2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
-
- * caller-save.c (insert_one_insn): Take into account REG_INC notes
- for the liveness computation of the new insn.
-
-2008-11-21 DJ Delorie <dj@redhat.com>
-
- * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
- Moves to/from below100 space (W) can only use r0-r7.
-
-2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR other/38214
- * doc/invoke.texi (Optimization Options): Fix typo.
-
-2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
- Xuepeng Guo <xuepeng.guo@intel.com>
-
- * config.gcc (extra_headers): For x86 and x86-64, remove
- gmmintrin.h, add immintrin.h and avxintrin.h.
-
- * config/i386/gmmintrin.h: Renamed to ...
- * config/i386/avxintrin.h: This. Issue an error if
- _IMMINTRIN_H_INCLUDED is undedined.
-
- * config/i386/immintrin.h: New.
-
-2008-11-21 Jakub Jelinek <jakub@redhat.com>
-
- PR target/38208
- * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
- mode of PLUS, not mode of the eliminated register.
-
-2008-11-21 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
- * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
- (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
- (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
- (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
- (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
- (*nand<mode>3): Rename to *andnot<mode>3.
- (*nandtf3): rename to *andnottf3.
- * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
- Use CODE_FOR_mmx_andnotv2si3.
- [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
- [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
- [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
- [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
- [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
-
-2008-11-21 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37908
- * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
- case by calculating ~(new_reg & val) instead of (~new_reg & val).
- * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
- to (not:IMODE (and:IMODE (...))).
- (sync_old_nand<mode>): Ditto.
- (sync_new_nand<mode>): Ditto.
-
-2008-11-20 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/thumb2.md (thumb2_casesi_internal,
- thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
-
-2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
- nand to the changed 4.4 semantic.
-
-2008-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/29215
- * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
- (fold_builtin_memory_op): Handle even the case where just one
- of src and dest is an address of a var decl component, using
- TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
- and readonly_data_expr src check.
- * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
- up warnings.
-
- PR rtl-optimization/36998
- * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
- arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
- (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
- stack_adjust_offset callers.
- (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
- branches properly.
- (compute_barrier_args_size): Handle insns in annulled branches
- properly.
-
-2008-11-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/38151
- * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
- Handle cases when integer argument crosses argument register boundary.
-
-2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- PR bootstrap/33100
- * config.gcc (i[34567]86-*-solaris2*): Don't include
- i386/t-crtstuff here.
- Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
- * config/i386/t-sol2: Move to libgcc/config/i386.
-
-2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- PR driver/21706
- * tlink.c: Include "libiberty.h".
- (initial_cwd): Change type into char *.
- (tlink_init): Call getpwd instead of getcwd.
-
-2008-11-19 Zdenek Dvorak <ook@ucw.cz>
-
- PR rtl-optimization/32283
- * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
- of the induction variable to decide whether it may wrap.
- * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
- initialization of the bound before the loop.
- * simplify-rtx.c (simplify_binary_operation_1): Add two
- simplifications regarding AND.
- (simplify_plus_minus): Only fail if no simplification is possible.
- * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
-
-2008-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36631
- * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
- checking until GIMPLE lowering.
- * gimple-low.c (check_call_args): New function.
- (lower_stmt) <case GIMPLE_CALL>: Call it.
-
-2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
- with the same type as the first operand of the AND expression.
-
-2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
-
- PR bootstrap/37859
- * ira-int.h (struct ira_loop_tree_node): New member
- entered_from_non_parent_p.
-
- * ira-color.c (print_loop_title): Print loop bbs.
-
- * ira-emit.c (entered_from_non_parent_p,
- setup_entered_from_non_parent_p): New functions.
- (not_modified_p): Rename to store_can_be_removed_p. Check there
- is no side entries.
- (generate_edge_moves): Use store_can_be_removed_p instead of
- not_modified_p.
- (ira_emit): Call setup_entered_from_non_parent_p.
-
- * ira-build.c (copy_info_to_removed_store_destinations):
- Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
- ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
- (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
- update all accumulated attributes.
-
-2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
-
- PR bootstrap/37790
- * ira-int.h (ira_copy_allocno_live_range_list,
- ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
- ira_finish_allocno_live_range_list): New prototypes.
- (ira_allocno_live_ranges_intersect_p,
- ira_pseudo_live_ranges_intersect_p): Remove.
-
- * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
- ira_pseudo_live_ranges_intersect_p): Rename to
- allocnos_have_intersected_live_ranges_p and
- pseudos_have_intersected_live_ranges_p. Move them from here to ...
-
- * ira-color.c: ... here
- (coalesced_allocno_conflict_p): Use
- allocnos_have_intersected_live_ranges_p.
- (coalesced_allocnos_living_at_program_points,
- coalesced_allocnos_live_at_points_p,
- set_coalesced_allocnos_live_points): Remove.
- (slot_coalesced_allocnos_live_ranges,
- slot_coalesced_allocno_live_ranges_intersect_p,
- setup_slot_coalesced_allocno_live_ranges): New.
- (coalesce_spill_slots): Use ranges of coalesced allocnos.
- (ira_sort_regnos_for_alter_reg): Use
- allocnos_have_intersected_live_ranges_p.
- (ira_reuse_stack_slot): Use
- pseudos_have_intersected_live_ranges_p.
-
- * global.c (pseudo_for_reload_consideration_p): Check
- flag_ira_share_spill_slots too.
-
- * ira-build.c (copy_allocno_live_range_list): Rename to
- ira_copy_allocno_live_range_list. Make it external.
- (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
- external.
- (ira_allocno_live_ranges_intersect_p): New.
- (ira_finish_allocno_live_range_list): New.
- (finish_allocno): Use it.
- (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
- (copy_info_to_removed_store_destinations): Ditto. Use
- ira_copy_allocno_live_range_list.
- (ira_flattening): Use ira_merge_allocno_live_ranges.
-
- * ira.c (too_high_register_pressure_p): New function.
- (ira): Switch off sharing spill slots if the pressure is too high.
-
-2008-11-19 Richard Guenther <rguenther@suse.de>
-
- * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
- non-sizetype offsets if their precision matches that of the pointer.
- * expr.c (expand_expr_real_1): Always sign-extend the offset
- operand of a POINTER_PLUS_EXPR.
-
-2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * config.gcc: Unobsolete mips-sgi-irix[56]*.
- (mips-sgi-irix[56]*): No need to use fixproto.
-
-2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
- Paul Brook <paul@codesourcery.com>
-
- * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
- executable stack.
-
-2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
-
-2008-11-19 Razya Ladelsky <razya@il.ibm.com>
-
- PR target/38156
- * tree-parloops.c (loop_parallel_p): NULL vect_dump.
- (separate_decls_in_region): Create shared struct even when there
- are only reductions.
-
-2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
-
- * config/picochip/picochip.c (headers): Remove an unnecessary
- header file.
-
-2008-11-19 Andrew Stubbs <ams@codesourcery.com>
-
- PR target/36133
- * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
- * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
- shift instructions.
- * config/m68k/m68k.md: Adjust all conditional branches that use the
- carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
-
-2008-11-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/37362
- * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
- is a register or zero operand in the correct mode before generating
- mtch1 insn or a register operand in the correct mode before generating
- mfch1 insn.
- (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
-
-2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
-
- * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
- (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
- mipsisa*-*-elf*. Handle mipsisa64r2*.
- * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
- * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
- mips64r2.
- (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
- * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
- mips64r2.
- (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
- Fix mips16 if mips64 or mips64r2 are multilib defaults.
- * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
- mips64r2.
-
-2008-11-18 Jakub Jelinek <jakub@redhat.com>
-
- PR target/38130
- * config/i386/i386.md (allocate_stack_worker_32,
- allocate_stack_worker_64): Don't use match_dup between input and
- output operand.
- (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
- * config/i386/i386.c (ix86_expand_prologue): Likewise.
-
-2008-11-18 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
- is forced when trying to do a symbol link for it.
-
-2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
-
- * expmed.c (extract_bit_field_1): Also use a temporary and
- convert_extracted_bit_field when the conversion from ext_mode to
- the target mode requires explicit truncation.
-
-2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
- Tweak formatting.
- * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
- registers when not optimizing.
-
-2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.md (*mul_acc_si): Remove middle alternative
- and its associated define_split. Expose the all-d alternative
- to the register allocator, but mark it with "?". Mark the first
- alternative with "*?*?".
- (*mul_sub_si): Likewise.
- (*mul_acc_si_r3900): New pattern.
-
-2008-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38140
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
- propagating x = &a into *x = b, add a cast if not useless
- type conversion or don't optimize if another stmt would be
- needed.
-
-2008-11-17 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37908
- * optabs.c (expand_sync_operation): Properly handle NAND case
- by calculating ~(t1 & val) instead of (~t1 & val).
- * builtins.c (expand_builtin_sync_operation): Warn for changed
- semantics in NAND builtins.
- * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
-
- * doc/invoke.texi (Warning options): Add Wsync-nand.
- * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
- __sync_fetch_and_nand builtin operation in the example. Add a note
- about changed semantics in GCC 4.4.
- [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
- operation in the example. Add a note about changed semantics in
- GCC 4.4.
-
-2008-11-16 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_function_body_availability): Fix test of externally
- visible.
-
-2008-11-16 Joshua Kinard <kumba@gentoo.org>
-
- * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
- to -mips4.
-
-2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR target/38052
- * config/mips/mips.c (mips_cfun_call_saved_reg_p)
- (mips_cfun_might_clobber_call_saved_reg_p): New functions,
- split out from...
- (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
- rather than call_really_used_regs when handling $gp.
-
-2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR target/38052
- * config/mips/mips.c (machine_function): Update the comment
- above global_pointer.
- (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
- that a function doesn't need a global pointer.
- (mips_current_loadgp_style): Update accordingly.
- (mips_restore_gp): Likewise.
- (mips_output_cplocal): Likewise.
- (mips_expand_prologue): Likewise.
-
-2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
- parameter. Use DImode for computing the number of registers.
- (function_arg): Adjust for above change.
- (function_value): Likewise.
-
-2008-11-15 Zdenek Dvorak <ook@ucw.cz>
-
- PR tree-optimization/37950
- * tree-flow-inline.h (memory_partition): Return NULL when aliases were
- not computed for the current function.
-
-2008-11-15 Jakub Jelinek <jakub@redhat.com>
-
- PR target/38123
- * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
- gpr and other COMPONENT_REFs.
-
-2008-11-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/38051
- * tree-ssa-alias.c (update_alias_info_1): Manually find
- written variables.
-
-2008-11-15 Joshua Kinard <kumba@gentoo.org>
-
- * doc/invoke.texi (-mfix-r10000): Document.
- * config/mips/mips.opt (mfix-r10000): New option.
- * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
- * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
- (MIPS_COMPARE_AND_SWAP_12): Likewise.
- (MIPS_SYNC_OP): Likewise.
- (MIPS_SYNC_OP_12): Likewise.
- (MIPS_SYNC_OLD_OP_12): Likewise.
- (MIPS_SYNC_NEW_OP_12): Likewise.
- (MIPS_SYNC_OLD_OP): Likewise.
- (MIPS_SYNC_NAND): Likewise.
- (MIPS_SYNC_OLD_NAND): Likewise.
- (MIPS_SYNC_EXCHANGE): Likewise.
- (MIPS_SYNC_EXCHANGE_12): Likewise.
- (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
- delay slots.
- (MIPS_SYNC_NEW_NAND): Likewise.
- * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
- (mips_init_print_operand_punct): Treat '~' as a punctuation character.
- (mips_output_sync_loop): New function.
- (mips_override_options): Make -march=r10000 imply -mfix-r10000.
- Make -mfix-r10000 require branch-likely instructions.
- * config/mips/sync.md (sync_compare_and_swap<mode>): Use
- mips_output_sync_loop.
- (compare_and_swap_12): Likewise.
- (sync_add<mode>): Likewise.
- (sync_<optab>_12): Likewise.
- (sync_old_<optab>_12): Likewise.
- (sync_new_<optab>_12): Likewise.
- (sync_nand_12): Likewise.
- (sync_old_nand_12): Likewise.
- (sync_new_nand_12): Likewise.
- (sync_sub<mode>): Likewise.
- (sync_old_add<mode>): Likewise.
- (sync_old_sub<mode>): Likewise.
- (sync_new_add<mode>): Likewise.
- (sync_new_sub<mode>): Likewise.
- (sync_<optab><mode>): Likewise.
- (sync_old_<optab><mode>): Likewise.
- (sync_new_<optab><mode>): Likewise.
- (sync_nand<mode>): Likewise.
- (sync_old_nand<mode>): Likewise.
- (sync_new_nand<mode>): Likewise.
- (sync_lock_test_and_set<mode>): Likewise.
- (test_and_set_12): Likewise.
-
-2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c (cc1_options): Fix comment.
-
-2008-11-15 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37561
- * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
- argtype instead of result_type.
-
-2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
-
- * ira-int.h (struct ira_loop_tree_node): Improve comments for
- subloop_next/next and subloops/childen fields.
-
-2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
- (STANDARD_INCLUDE_DIR): Redefine to "/include".
- (LOCAL_INCLUDE_DIR): Undefine.
- * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
-
-2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/37397
- * ira-int.h (struct ira_allocno): New member bad_spill_p.
- (ALLOCNO_BAD_SPILL_P): New macro.
-
- * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
-
- * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
- (create_cap_allocno, propagate_allocno_info,
- remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
- (update_bad_spill_attribute): New function.
- (ira_build): Call it.
-
- * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
-
-2008-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/38104
- * gimplify.c (gimple_regimplify_operands): Add referenced vars
- before calling mark_symbols_for_renaming, not after it.
-
-2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
- (OVERRIDE_OPTIONS): Likewise.
-
-2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
- Andrew Stubbs <ams@codesourcery.com>
- Gunnar Von Boehn <gunnar@genesi-usa.com>
-
- PR target/36134
- * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
- the shorter LEA insn over ADD.L where possible.
-
-2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
-
- * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
- systems, which are assumend to always provide SSP-support in glibc.
- Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
- case.
- * configure: Regenerate.
-
-2008-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36125
- * function.c (gimplify_parameters): For callee copies parameters,
- move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
-
-2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
-
- PR target/28102
- * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
- x86 parts into the `i[34567]86-*-linux*' and parts that are
- independent of the processor architecture into the `*-*-linux*' cases.
- (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
- * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
- (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
- [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
- * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
- (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
- (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
-
-2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
-
- * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
- * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
- (ls2_idiv): Likewise idiv3.
- (ls2_prefetch): New reservation.
- * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
- * config/mips/mips.md (type): Add imul3nc and idiv3.
- (length): Handle idiv3.
- (any_mod): New code_iterator.
- (u): Handle MOD and UMOD.
- (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
- (prefetch): Handle TARGET_LOONGSON_2EF.
-
-2008-11-13 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/27017
- * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
- (prune_unused_types_walk): Call it for non-perennial local classes.
- Set die_mark to 2 if recursing on children. If die_mark is 1 on
- entry, just set it to 2 and recurse on children, don't walk attributes
- again.
-
-2008-11-13 Martin Michlmayr <tbm@cyrius.com>
-
- * c-common.c (warn_about_parentheses): Add missing whitespace
- in warning.
-
-2008-11-13 Paul Brook <paul@codesourcery.com>
-
- * doc/invoke.texi: Document --fix-cortex-m3.
- * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
- Cortex-M3 cpu is selected.
- (output_move_double): Avoid overlapping base register and first
- destination register when fix_cm3_ldrd.
- * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
-
-2008-11-13 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/38100
- * gimple.h (gimple_range_check_failed): Remove prototype.
- * gimple.c (gimple_check_failed): Don't check GCC_VERSION
- in guarding #if.
- (gimple_range_check_failed): Removed.
-
-2008-11-13 Andrew Haley <aph@redhat.com>
-
- PR bootstrap/38088
- * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
- __LONG_LONG_MAX__.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36478
- Revert:
- 2007-05-07 Mike Stump <mrs@apple.com>
- * doc/invoke.texi (Warning Options): Document that -Wempty-body
- also checks for and while statements in C++.
-
-2008-11-12 Dodji Seketeli <dodji@redhat.com>
-
- PR debug/27574
- * cgraph.h: New abstract_and_needed member to struct cgraph_node.
- * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
- - which clones are reachable - as "abstract and needed".
- * cgraph.c (cgraph_release_function_body): If a node is
- "abstract and needed", do not release its DECL_INITIAL() content
- that will be needed to emit debug info.
-
-2008-11-12 Steve Ellcey <sje@cup.hp.com>
-
- PR target/27880
- * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
- to set HAVE_GETIPINFO.
- * aclocal.m4: Include ../config/unwind_ipinfo.m4.
- * configure: Regenerate.
- * config.in: Regenerate.
-
-2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
-
- PR bootstrap/38010
- * gcc/config.gcc: Use darwin9.h on darwin10 as well.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- Revert:
- 2008-10-21 Jakub Jelinek <jakub@redhat.com>
- * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
-
-2008-11-12 Jason Merrill <jason@redhat.com>
-
- PR c++/38007
- * c-common.c (c_common_signed_or_unsigned_type): Remove C++
- special casing.
-
-2008-11-12 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
- atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
- atmega32u6 devices.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
- * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
-
-2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
- packed-stack special handling.
- (FRAME_ADDR_RTX): Add definition.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35366
- * fold-const.c (native_encode_string): New function.
- (native_encode_expr): Use it for STRING_CST.
-
-2008-11-12 DJ Delorie <dj@redhat.com>
-
- * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
- insns if the intermediate value will be used later.
-
-2008-11-12 Andreas Schwab <schwab@suse.de>
-
- * config/m68k/m68k.c (print_operand): Mask off extra extension
- bits when writing out the representation of real values.
-
-2008-11-12 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/38079
- * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
- with vect_dump.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35334
- * c-pretty-print.c (pp_c_complex_expr): New function.
- (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
-
- PR target/35366
- * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
- than INNER and INNER is a constant, forcibly align INNER as much
- as needed.
-
-2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
-
- * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
-
-2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR rtl-optimization/37363
- * simplify-rtx.c (simplify_plus_minus): Don't create
- (const (minus ...)) expresisons.
-
-2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
- handling.
-
-2008-11-10 Catherine Moore <clm@codesourcery.com>
-
- * config.gcc (mips64vrel-*-elf*): Include the tm_file
- prior to vr.h.
- * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
- (BASE_DRIVER_SELF_SPECS): Remove.
- (DRIVER_SELF_SPECS): New definition.
- * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
- BASE_DRIVER_SELF_SPECS.
- * config/mips/sde.h: Likewise.
- * config/mips/iris6.h: Likewise.
- * config/mips/vr.h: Likewise.
- * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
-
-2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimizations/37948
- * ira-int.h (struct ira_allocno_copy): New member constraint_p.
- (ira_create_copy, ira_add_allocno_copy): New parameter.
-
- * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
- to ira_add_allocno_copy.
- (process_reg_shuffles, add_insn_allocno_copies): Pass a new
- parameter to process_regs_for_copy.
- (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
- Fix typo in passing second allocno to ira_add_allocno_copy.
-
- * ira-color.c (update_conflict_hard_regno_costs): Use head of
- coalesced allocnos list.
- (assign_hard_reg): Ditto. Check that assigned allocnos are not in
- the graph.
- (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
- (add_ira_allocno_to_ordered_bucket): Rename to
- add_allocno_to_ordered_bucket.
- (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
- head of coalesced allocnos list.
- (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
- Check that it is aready calculated.
- (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
- (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
- list.
- (coalesce_allocnos): Do extended coalescing too.
-
- * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
- parameter to ira_add_allocno_copy.
-
- * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
- parameter.
- (print_copy): Print copy origination too.
-
- * ira-costs.c (scan_one_insn): Use alloc_pref for load from
- equivalent memory.
-
-2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR rtl-optimization/37514
- * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
- flag_ira_share_spill_slots to 2 if it's already non-zero.
- (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
- flag_ira_share_spill_slots is 2.
-
-2008-11-10 Kevin Buettner <kevinb@redhat.com>
-
- * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
- (prologue_enter_32): Set FB to SP - 4.
-
-2008-11-10 DJ Delorie <dj@redhat.com>
-
- * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
- constraint for single-bit-clear in lower byte of HI constant, vs
- Imb which just ignores the upper byte.
- * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
- * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
- (iorhi3_16): Check for single bit set, not single bit clear.
-
-2008-11-10 Janis Johnson <janis187@us.ibm.com>
-
- * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
-
- * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
-
-2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
-
- * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
- values living in memory and use more precise alignment information.
-
-2008-11-10 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35314
- * tree-mudflap.c (mf_build_check_statement_for): Split then_block
- after __mf_check call if the call must end a bb.
-
-2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
-
- PR middle-end/37807
- PR middle-end/37809
- * combine.c (force_to_mode): Do not process vector types.
-
- * rtlanal.c (nonzero_bits1): Do not process vector types.
- (num_sign_bit_copies1): Likewise.
-
-2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
-
- * config/i386/gnu.h: Add copyright and licensing header.
- * config/gnu.h: Likewise.
-
-2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * fwprop.c (fwprop_done): Call df_remove_problem.
-
-2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
-
- PR middle-end/37379
- * tree-scalar-evolution.c (instantiate_scev_1): Return
- chrec_dont_know for VL_EXP_CLASS_P.
-
-2008-11-06 Uros Bizjak <ubizjak@gmail.com>
-
- * reg-stack.c (reg_to_stack): Add missing braces in memset
- size calculation.
-
-2008-11-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/arm/bpabi.h (PROFILE_HOOK): New undef.
- (NO_PROFILE_COUNTERS): New define.
-
-2008-11-06 David Edelsohn <edelsohn@gnu.org>
-
- PR target/26397
- * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
-
-2008-11-06 Kazu Hirata <kazu@codesourcery.com>
-
- PR target/35574
- * config/sparc/constraints.md (D): New.
- * config/sparc/predicates.md (const_double_or_vector_operand): New.
- * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
- 'D' constraint.
- * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
- Use the 'D' constraint in addition to 'F' in some alternatives.
- (DF splitter): Generalize for V64mode.
- * doc/md.texi (SPARC): Document the 'D' constraint.
-
-2008-11-06 Uros Bizjak <ubizjak@gmail.com>
-
- * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
-
-2008-11-06 Ben Elliston <bje@au.ibm.com>
-
- * gcc.c: Remove ancient comment about a bug in Sun cc.
-
-2008-11-05 Janis Johnson <janis187@us.ibm.com>
-
- * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
-
-2008-11-06 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
-
-2008-11-06 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
- description.
-
-2008-11-05 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/38016
- * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
- just MEM_P.
-
-2008-11-05 Martin Jambor <mjambor@suse.cz>
-
- PR middle-end/37861
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
- pointer arithmetics into array_ref if the array is accessed
- through an indirect_ref.
-
-2008-11-05 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37742
- * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
- qualified pointer conversion before stripping qualifiers.
- * gimplify.c (create_tmp_from_val): Use correctly qualified type.
- * tree-flow.h (may_propagate_address_into_dereference): Declare.
- * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
- function.
- (ccp_fold): Use it.
- * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
- properly canonicalize binary ops.
- (forward_propagate_addr_expr_1): Use
- may_propagate_address_into_dereference.
-
-2008-11-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37286
- * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
- Initialize uninitialized input registers with a NaN.
-
-2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
-
- PR middle-end/37833
-
- * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
-
-2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
-
- PR middle-end/37943
-
- * graphite.c (scopdet_basic_block_info): Fix loops with multiple
- exits and conditions.
- * testsuite/gcc.dg/graphite/pr37943.c: New.
-
-2008-11-04 Jakub Jelinek <jakub@redhat.com>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR c/35430
- * c-common.c (warn_for_sign_compare): For complex result_type
- use component's type.
-
-2008-11-04 Jakub Jelinek <jakuB@redhat.com>
-
- * print-tree.c (print_node): Use code instead of TREE_CODE (node).
-
- * print-tree.c (print_node): Don't print DECL_INITIAL
- for PARM_DECL.
-
- PR c/37106
- * c-common.c (parse_optimize_options): Save and restore
- flag_strict_aliasing around decode_options call.
-
-2008-11-04 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/driver-i386.c (enum vendor_signatures): New enum.
- (host_detect_local_cpu): Use it instead of casted strings to
- compare vendor signatures.
-
-2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
-
- PR target/37989
- * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
- or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
-
-2008-11-03 Catherine Moore <clm@codesourcery.com>
-
- * config/mips.c (mips_conditional_register_usage): Handle the
- DSP control register.
- * doc/extend.texi: Document the DSP control register.
-
-2008-11-03 Steve Ellcey <sje@cup.hp.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * omp-low.c (expand_omp_for_generic): If iter_type has different
- precision than type and type is a pointer type, cast n1 and n2
- first to an integer type with the same precision as pointers
- and only afterwards to iter_type.
-
-2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
- (UNSPEC_GOTSYM_OFF): New unspec.
- (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
- (pic_add_dot_plus_eight): Likewise.
- (tls_load_dot_plus_eight): Likewise. Update peephole2.
- * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
- UNSPEC_PIC_BASE operands.
- * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
- (arm_output_addr_const_extra): Handle it.
-
-2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
- integer class to full integer class if the offset is not word-aligned.
-
-2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-opt/37782
- * loop-doloop.c (doloop_modify): Add from_mode argument that says what
- mode count is in.
- (doloop_optimize): Update call to doloop_modify.
-
-2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-sra.c (bitfield_overlaps_p): Fix oversight.
-
-2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- PR other/37463
- * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
- gcc_cv_as_cfi_directive.
- (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
- merging read-only and read-write sections or assembler emits
- read-write .eh_frame sections.
- * configure: Regenerate.
-
-2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
-
- Revert:
- 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
- problem.
- (rs6000_emit_prologue): Invert logic.
- * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
- (reg:P 11) instead of match_operand.
- (*save_fpregs_<mode>): Likewise.
- (*restore_gpregs_<mode>): Likewise.
- (*return_and_restore_gpregs_<mode>): Likewise.
- (*return_and_restore_fpregs_<mode>): Likewise.
- * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
- (reg:P 11) insted of match_operand.
- (*restore_gpregs_spe): Likewise.
- (*return_and_restore_gpregs_spe): Likewise.
-
-2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
-
- PR tree-optimization/37684
- * gcc.dg/graphite/pr37684.c: New.
- * graphite.c (exclude_component_ref): New.
- (is_simple_operand): Call exclude_component_ref.
-
-2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36908
- * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
- * tree-loop-distribution.c (number_of_rw_in_rdg): New.
- (number_of_rw_in_partition): New.
- (partition_contains_all_rw): New.
- (ldist_gen): Do not distribute when one of the partitions
- contains all the memory operations.
-
-2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
-
- * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
- EDGE_IRREDUCIBLE_LOOP.
-
-2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
- where we have one entry point in the loop which isn't the head.
-
-2008-11-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37573
- * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
-
-2008-11-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37858
- * passes.c (execute_one_pass): Don't look at cfun->curr_properties
- for ipa and simple ipa passes.
-
-2008-11-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37542
- * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
- * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
- (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
- (vn_nary_op_insert_stmt): Likewise.
- (visit_use): Likewise.
-
-2008-11-02 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
- (*swap): Remove.
- (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
- rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
- (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
- ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
- lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
- peephole2's): Replace unspec with rotate.
- * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
-
-2008-11-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37991
- * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
- * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
- (set_ssa_val_to): Print if the value changed.
- (simplify_binary_expression): Strip useless conversions.
-
-2008-11-01 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/37939
- * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
- operand.
-
-2008-11-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37976
- * builtins.c (fold_builtin_strspn): Return a size_t.
- (fold_builtin_strcspn): Likewise.
-
-2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
- attribute for struct return convention.
-
-2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/crtsavres.asm: Really, really delete.
-
-2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
- problem.
- (rs6000_emit_prologue): Invert logic.
- * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
- (reg:P 11) instead of match_operand.
- (*save_fpregs_<mode>): Likewise.
- (*restore_gpregs_<mode>): Likewise.
- (*return_and_restore_gpregs_<mode>): Likewise.
- (*return_and_restore_fpregs_<mode>): Likewise.
- * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
- (reg:P 11) insted of match_operand.
- (*restore_gpregs_spe): Likewise.
- (*return_and_restore_gpregs_spe): Likewise.
-
-2008-10-28 Luis Machado <luisgpm@br.ibm.com>
-
- * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
- list of word switches that take args.
-
-2008-10-30 Jakub Jelinek <jakub@redhat.com>
-
- * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
- (s390_output_pool_entry): Call it through for_each_rtx.
-
- PR middle-end/37730
- * expr.c (store_constructor): For vectors, if target is a MEM, use
- target's MEM_ALIAS_SET instead of elttype alias set.
-
-2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/37909
- * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
- no address.
-
-2008-10-29 David Edelsohn <edelsohn@gnu.org>
-
- PR target/37878
- * config/rs6000/predicates.md (word_offset_memref_operand):
- Restructure code and look inside auto-inc/dec addresses.
-
-2008-10-29 Steve Ellcey <sje@cup.hp.com>
-
- PR target/32277
- * libgcov.c ( __gcov_indirect_call_profiler): Check
- TARGET_VTABLE_USES_DESCRIPTORS.
-
-2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
-
- * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
- (INITIAL_FRAME_POINTER_OFFSET): Remove.
- * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
- offset if eliminating soft frame pointer.
- * config/spu/spu.md (stack_protect_set, stack_protect_test)
- (stack_protect_test_si): Add initial machine description
- for Stack Smashing Protector
-
-2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 11492
- * c-common.c (min_precision): Move to...
- * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
- * tree.h (tree_int_cst_min_precision): Declare.
- * c-common.h (min_precision): Delete declaration.
- * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
- multiplication of non-negative integer constants.
- * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
- tree_int_cst_min_precision.
- (finish_enum): Likewise.
-
-2008-10-29 Joseph Myers <joseph@codesourcery.com>
-
- PR middle-end/36578
- * convert.c (convert_to_real): Do not optimize conversions of
- binary arithmetic operations between binary and decimal
- floating-point types. Consider mode of target type in determining
- decimal type for arithmetic. Unless
- flag_unsafe_math_optimizations, do not optimize binary conversions
- where this may change rounding behavior.
- * real.c (real_can_shorten_arithmetic): New.
- * real.h (real_can_shorten_arithmetic): Declare.
-
-2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
- ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
- * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
- appropriate.
- (must_save_p): For some workarounds, interrupts need to clobber a
- P register.
- (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
- and LC1 for WA_05000257.
- (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
- WA_05000283 and WA_05000315.
- * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
- (movbi): Add alternative to set CC to 1; improve code for setting
- CC to 0.
- (dummy_load): New pattern.
-
-2008-10-29 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37870
- * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
- BLKmode for non-memory, convert using a wider MODE_INT mode
- or through memory.
-
- PR middle-end/37913
- * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
- that haven't been removed yet.
-
-2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (struct machine_function): New member
- has_loopreg_clobber.
- (bfin_expand_movmem): Set it when generating memcpy insns.
- (n_regs_saved_by_prologue, expand_prologue_reg_save,
- expand_epilogue_reg_restore): If we have hardware loops,
- memcpy insns (indicated by has_loopreg_clobber) or function
- calls, we need to save the loop registers.
-
-2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (core2_cost): Fix typos in comments.
-
-2008-10-28 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37924
- * combine.c (make_compound_operation): Don't call make_extraction with
- non-positive length.
- (simplify_shift_const_1): Canonicalize count even if complement_p.
-
-2008-10-28 Joseph Myers <joseph@codesourcery.com>
-
- * convert.c (strip_float_extensions): Do not remove or introduce
- conversions between binary and decimal floating-point types.
-
-2008-10-28 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37931
- * fold-const.c (distribute_bit_expr): Convert common, left and
- right arguments to type.
-
-2008-10-28 Nick Clifton <nickc@redhat.com>
-
- * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
- * config/mn10300/mn10300.c (fp_regs_to_save): Test the
- call_really_used_regs array rather than the call_used_regs array.
- (mn10300_get_live_callee_saved_regs, expand_prologue,
- expand_epilogue, output_tst): Likewise.
-
-2008-10-27 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37378
- * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
- (df_get_entry_block_def_set): Neither here.
- (df_get_regular_block_artificial_uses): Add EH_USES registers.
-
- PR tree-optimization/37879
- * predict.c (tree_estimate_probability): Check if last_stmt is
- non-NULL before dereferencing it.
-
-2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
- (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
- (ira_fast_allocation): Remove the prototype.
-
- * ira-color.c (update_copy_costs, allocno_cost_compare_func,
- assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
- (color_pass): Modify the updated costs.
- (ira_color): Rename to color. Make it static.
- (ira_fast_allocation): Rename to fast_allocation. Make it static.
- (ira_color): New function.
-
- * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
- change.
-
- * ira-lives.c (last_call_num, allocno_saved_at_call): New
- variables.
- (set_allocno_live, clear_allocno_live, mark_ref_live,
- mark_ref_dead): Invalidate corresponding element of
- allocno_saved_at_call.
- (process_bb_node_lives): Increment last_call_num. Setup
- allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
- allocno was already saved.
- (ira_create_allocno_live_ranges): Initiate last_call_num and
- allocno_saved_at_call.
-
- * ira-build.c (ira_create_allocno): Initiate
- ALLOCNO_UPDATED_COVER_CLASS_COST.
- (create_cap_allocno, propagate_allocno_info,
- remove_unnecessary_allocnos): Remove setting updated costs.
- (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
-
- * ira.c (ira): Don't call ira_fast_allocation.
-
- * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
- updated costs.
-
-2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37813
- * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
-
- * ira-int.h (ira_hard_regno_cover_class): New.
-
- * ira-lives.c (mark_reg_live, mark_reg_dead,
- process_bb_node_lives): Use ira_hard_regno_cover_class.
-
- * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
- (setup_hard_regno_cover_class): New function.
- (ira_init): Call setup_hard_regno_cover_class.
-
- * ira-costs.c (cost_class_nums): Add comment.
- (find_allocno_class_costs): Initiate cost_class_nums.
- (setup_allocno_cover_class_and_costs): Check cost_class_nums.
-
-2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37884
- * ira-build.c (copy_live_ranges_to_removed_store_destinations):
- Rename to copy_info_to_removed_store_destinations. Propagate
- conflict hard regs and register stack attribute.
-
-2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR middle-end/37316
- * pa.c (function_arg_padding): Pad complex and vector types
- upward in 64-bit runtime.
- (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
-
-2008-10-26 Matthias Klose <doko@ubuntu.com>
-
- * doc/install.texi: Document requirements on antlr.
-
-2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
- first.
-
-2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
-
- PR target/37841
- * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
- is defined, use it to modify the constant offset.
-
- * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
-
- * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
- and short arguments to the correct location as mandated by the ABI.
-
-2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR rtl-optimization/37769
- * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
-
-2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
- unwind-dw2-Os-4-200.o.
-
-2008-10-24 Joseph Myers <joseph@codesourcery.com>
-
- * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
- (convert_for_assignment): Remove ic_argpass_nonproto cases.
-
-2008-10-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36038
- * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
- add sizetype IV with initial value zero instead of pointer type.
-
-2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/7543
- * value-prof.c (gimple_stringop_fixed_value): Use parentheses
- around bit operation.
- * profile.c (is_edge_inconsistent): Likewise.
- * fold-const.c (truth_value_p): Move from here...
- * tree.h (truth_value_p): ... to here.
- * c-tree.h (c_expr): Update description of original_code.
- * c-typeck.c (parser_build_unary_op): Set original_code.
- (parser_build_binary_op): Update call to warn_about_parentheses.
- * c-common.c (warn_about_parentheses): Take two additional
- arguments of the operands. Use a switch. Quote operators
- appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
- Add warning about !x | y and !x & y.
- * c-common.h (warn_about_parentheses): Update declaration.
-
-2008-10-24 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
- check_p_tool, check_p_vars, check_p_subno, check_p_comma,
- check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
- New variables.
- (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
- (check-%): For test targets listed in lang_checks_parallelized
- if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
- run the testing in multiple make goals, possibly parallel, and
- afterwards run dg-extract-results.sh to merge the sum and log files.
-
-2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_canonicalize_move_class): New function.
- (mips_move_to_gpr_cost): Likewise.
- (mips_move_from_gpr_cost): Likewise.
- (mips_register_move_cost): Make more fine-grained.
-
-2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
-
- * graphite.c (graphite_apply_transformations): Check for
- -fgraphite-identity.
- * toplev.c (process_options): Add graphite_identity.
- * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
-
-2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
- mulhisihl and mulhisihh builtins.
-
- From Jie Zhang <jie.zhang@analog.com>
- * config/bfin/bfin.md (composev2hi): Put operands into vector
- with correct order.
-
-2008-10-22 Chao-ying Fu <fu@mips.com>
-
- * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
-
-2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
-
- From Mike Frysinger <michael.frysinger@analog.com>
- * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
- BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
- * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
- and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
- Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
- Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
- * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
- for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
- for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
- __ADSPBF51x__ for all of them.
- * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
- -mcpu bf512, bf514, bf516, and bf518.
- * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
- bf512-none, bf514-none, bf516-none, and bf518-none.
- * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
- * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
- * doc/invoke.texi (Blackfin Options): Document that
- -mcpu now accepts bf512, bf514, bf516, and bf518.
-
-2008-10-22 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37882
- * fold-const.c (build_range_type): For 1 .. signed_max
- range call build_nonstandard_inter_type if signed_type_for
- returned a type with bigger precision.
-
-2008-10-22 Richard Guenther <rguenther@suse.de>
-
- * tree.def (COMPLEX_TYPE): Constrain element type.
- * tree.c (build_complex_type): Assert that.
- * tree-ssa-structalias.c (could_have_pointers): Complex types
- cannot have pointers.
-
-2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/30949
- * c-typeck.c (convert_for_assignment): Do not give declaration's
- location for builtins. Spell out which type was expected and which
- was given.
-
-2008-10-22 Nick Clifton <nickc@redhat.com>
-
- * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
- the fdpic register to be a target when running in fdpic mode.
-
-2008-10-22 Rafael Espindola <espindola@google.com>
-
- * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
- newly created statements.
-
-2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/37633
- * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
- * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
- * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
-
-2008-10-22 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37880
- * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
- Adjust -mcmodel=medium description for 2005-07-31 changes.
-
-2008-10-22 Jan Hubicka <jh@suse.cz>
- Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35853
- * doc/invoke.texi: Remove references to obsoleted -d dumps.
-
-2008-10-21 Richard Henderson <rth@redhat.com>
-
- PR 37815
- * emit-rtl.c (get_spill_slot_decl): Export.
- * emit-rtl.h (get_spill_slot_decl): Declare.
- * var-tracking.c (vt_add_function_parameters): Relax assertion
- on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
-
-2008-10-21 Bob Wilson <bob.wilson@acm.org>
-
- * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
- REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
- of from insn.
-
-2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
-
- PR middle-end/37669
- * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
- processed by get_maxval_strlen.
-
-2008-10-21 David Edelsohn <edelsohn@gnu.org>
-
- PR target/35485
- * tree.c (get_file_function_name): Copy first_global_object_name.
- Centralize call to clean_symbol_name.
-
-2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
-
- * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
- * config/svr4.h (SVR4_ASM_SPEC): New.
- (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
- * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
-
- * doc/invoke.texi (Option Summary): Add -T to linker options.
- (Link Options): Document -T.
-
-2008-10-21 Jakub Jelinek <jakub@redhat.com>
-
- * tree-inline.c (tree_inlinable_function_p): Remove tuples
- debugging hack.
-
- * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
-
- PR debug/37020
- * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
-
-2008-10-20 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
- part of expression.
-
-2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
-
- * doc/install.texi: Fix typos in previous patch.
-
-2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
-
- * doc/install.texi: Document in-tree building of gcc and mpfr.
-
-2008-10-19 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
-
-2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/30260
- * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
- (build_enumerator): Convert enumerators that fit in integer to
- integer type.
-
-2008-10-18 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (unnamed peephole2): Do not force memory
- operands of arith or logical instructions into registers for
- non-TARGET_READ_MODIFY targets.
-
- (ffs_cmove): Change operand 0 predicate to register_operand.
- Change operand 1 predicate to nonimmediate_operand.
- (ffsdi2): Ditto.
- (*ffs_no_cmove): Change operand 0 predicate to register_operand.
-
-2008-10-18 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
- VIEW_CONVERT_EXPR case against invalid gimple.
-
-2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * c-parser.c (c_parser_binary_expression): Silence the
- uninitialized variable warning emitted for binary_loc.
-
-2008-10-16 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-pre.c (phi_translate_set): Add constants to phi
- translation cache.
-
-2008-10-16 Joseph Myers <joseph@codesourcery.com>
-
- PR c/33192
- * c-typeck.c (build_unary_op): Use omit_one_operand for
- IMAGPART_EXPR of real argument.
-
-2008-10-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37664
- * fold-const.c (fold_binary): When optimizing comparison with
- highest or lowest type's value, don't consider TREE_OVERFLOW.
-
-2008-10-16 David Edelsohn <edelsohn@gnu.org>
-
- PR target/35483
- * Makefile.in (coverage.o): Depend on $(TM_P_H).
- * coverage.c: Include tm_p.h.
- * config/rs6000/x-aix (jc1): Override LDFLAGS.
- * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
- dollar signs from PREFIX.
- * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
- instead of manual strip_name_encoding.
-
-2008-10-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37418
- * tree-ssa.c (useless_type_conversion_p_1): Do not treat
- volatile qualified functions or methods as relevant.
-
-2008-10-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37525
- * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
- sizetype unsigned constants, both in the case of C and bounds.
-
-2008-10-15 Jan Hubicka <jh@suse.cz>
-
- * ira-emit.c (change_regs): Return false when replacing reg by itself.
-
-2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
-
- PR target/37633
- * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
- HARD_REGNO_CALL_PART_CLOBBERED.
-
-2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37535
- * ira-lives.c (mark_early_clobbers): Remove.
- (make_pseudo_conflict, check_and_make_def_use_conflicts,
- check_and_make_def_conflicts,
- make_early_clobber_and_input_conflicts,
- mark_hard_reg_early_clobbers): New functions.
- (process_bb_node_lives): Call
- make_early_clobber_and_input_conflicts and
- mark_hard_reg_early_clobbers. Make hard register inputs live again.
-
- * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
- early clobbers of pseudo-registers.
-
-2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37674
- * ira-build.c (ira_flattening): Recalculate
- ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
- from the scratch instead of the propagation.
-
-2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/rtl.texi (const_double): Remove the "addr" operand.
- Describe CONST_DOUBLE_* macros under const_double rather
- than const_vector.
- (const_fixed): Fix the operand description.
- (const): Add an @findex directive.
- (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
- after the constant rtl table.
- (fix): Combine floating-point and fixed-point descriptions.
- Fix hyphenation.
- * sched-deps.c (sched_analyze_2): Remove reference to
- CONST_DOUBLE_CHAIN.
-
-2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
- UNSPEC_GOTSYM_OFFs.
- * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
- for UNSPEC_GOTSYM_OFFs.
- * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
- (add_GOT_to_pic_reg): Use it.
- * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
-
-2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
-
- PR tree-optimization/37485
- * graphite.c (gmp_cst_to_tree): Moved.
- (iv_stack_entry_is_constant): New.
- (iv_stack_entry_is_iv): New.
- (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
- (loop_iv_stack_insert_constant): New.
- (loop_iv_stack_pop): Use new datatpype.
- (loop_iv_stack_get_iv): Same.
- (loop_iv_stack_get_iv_from_name): Same.
- (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
- (loop_iv_stack_patch_for_consts): New.
- (loop_iv_stack_remove_constants): New.
- (graphite_create_new_loop): Use loop_iv_stack_push_iv.
- (translate_clast): Call loop_iv_stack_patch_for_consts and
- loop_iv_stack_remove_constants.
- (gloog): Use new datatype. Redirect construction edge to end
- block to avoid accidental deletion.
- * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
- iv stack entry.
- (union iv_stack_entry_data): New. Data in iv stack entry.
- (struct iv_stack_entry): New. Datatype for iv stack entries.
-
-2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
- * graphite.c (free_scop): Same.
- (build_scops): Same.
- (free_scattering): New.
- (build_cloog_prog): Call free_scattering.
- (patch_phis_for_virtual_defs): Fix memleak.
- (graphite_trans_bb_strip_mine): Same.
- (limit_scops): Same.
-
-2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
-
- PR tree-optimization/37828
- * graphite.c (graphite_trans_loop_block): Do not loop block
- single nested loops.
-
-2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/37686
- * tree-loop-linear.c (linear_transform_loops): Build a
- loop nest vector. Pass it to lambda_compute_access_matrices.
- * tree-data-ref.h (struct access_matrix): Store the loop nest
- relative to which it encodes the information.
- (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
- (am_vector_index_for_loop): Reimplemented: iterate over the
- loop nest for finding the loop index in the access matrix.
- (lambda_compute_access_matrices): Update declaration.
- * lambda-code.c (build_access_matrix): Pass the loop nest and
- record it.
- (lambda_compute_access_matrices): Same.
-
-2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
- * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
- TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
- already implies hard float. Also fix several insn condition
- with TARGET_DFP which shall require TARGET_HARD_DFP instead.
-
-2008-10-15 David Edelsohn <edelsohn@gnu.org>
-
- PR target/35483
- Based on patches by Laurent Vivier.
- * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
- * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
- * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
- dollar sign to underscore.
- (ASM_OUTPUT_EXTERNAL): Same.
- (ASM_OUTPUT_LABELREF): New.
- * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
-
- * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
- * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
- * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
- * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
-
-2008-10-15 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36881
- * tree-switch-conversion.c (check_final_bb): For flag_pic, check
- that each value doesn't need runtime relocations, for !flag_pic
- check that each value is just a valid initializer constant.
-
-2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
- LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
- COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
- Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
- GR_AND_ACC_REGS.
- (REG_CLASS_NAMES): Update accordingly.
- (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
- rather than an unpredictable descriptive string.
- * config/mips/mips.c (mips_register_move_cost): Remove comment.
- (mips_register_move_cost): Check for specific COP*_REGS classes,
- instead of ALL_COP_AND_GR_REGS.
- (mips_ira_cover_classes): New function.
- (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
- (TARGET_IRA_COVER_CLASSES): Define.
-
-2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/37553
- * tree.c (build_type_attribute_qual_variant): Hash on the
- unqualified type, and don't overwrite an existing
- (type_hash_eq): Make the TYPE_NAME of the types significant, to
- allow distinguishing between wchar_t and its underlying type. This
- also means that we'll retain a little more typedef information.
-
-2008-10-14 Andrey Belevantsev <abel@ispras.ru>
- Dmitry Melnik <dm@ispras.ru>
- Dmitry Zhurikhin <zhur@ispras.ru>
- Alexander Monakov <amonakov@ispras.ru>
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * target.h (struct gcc_target): Update prototypes of needs_block_p
- and gen_spec_check.
- * haifa-sched.c (create_check_block_twin): Update calls to the above.
- * sel-sched.c (create_speculation_check): Likewise.
- * doc/tm.texi: Provide documentation for new target hooks.
-
- * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
- (ia64_gen_spec_insn): Removed.
- (get_spec_check_gen_function, insn_can_be_in_speculative_p,
- ia64_gen_spec_check): New static functions.
- (ia64_alloc_sched_context, ia64_init_sched_context,
- ia64_set_sched_context, ia64_clear_sched_context,
- ia64_free_sched_context, ia64_get_insn_spec_ds,
- ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
- (ia64_needs_block_p): Change prototype.
- (ia64_gen_check): Rename to ia64_gen_spec_check.
- (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
- into declaration, add special memory dependencies handling.
- (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
- TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
- TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
- TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
- Define new target hooks.
- (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
- (ia64_optimization_options): Turn on selective scheduling with -O3,
- disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
- default with selective scheduling.
- (ia64_override_options): Initialize align_loops and align_functions
- to 32 and 64, respectively. Set global selective scheduling flags
- according to target-dependent flags.
- (rtx_needs_barrier): Support UNSPEC_LDS_A.
- (group_barrier_needed): Use new mstop-bit-before-check flag.
- Add heuristic.
- (dfa_state_size): Make global.
- (spec_check_no, max_uid): Remove.
- (mem_ops_in_group, current_cycle): New variables.
- (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
- Initialize new variables.
- (is_load_p, record_memory_reference): New functions.
- (ia64_dfa_sched_reorder): Lower priority of loads when limit is
- reached.
- (ia64_variable_issue): Change use of current_sched_info to
- sched_deps_info. Update comment. Note if a load or a store is issued.
- (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
- advance if maximal number of loads or stores was issued on current
- cycle.
- (scheduled_good_insn): New static helper function.
- (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
- a group barrier is needed. Fix vertical spacing. Guard the code
- doing state transition with last_scheduled_insn check.
- Mark that a stop bit should be before current insn if there was a
- cycle advance. Update current_cycle and mem_ops_in_group.
- (ia64_h_i_d_extended): Change use of current_sched_info to
- sched_deps_info. Reallocate stops_p by larger chunks.
- (struct _ia64_sched_context): New structure.
- (ia64_sched_context_t): New typedef.
- (ia64_alloc_sched_context, ia64_init_sched_context,
- ia64_set_sched_context, ia64_clear_sched_context,
- ia64_free_sched_context): New static functions.
- (gen_func_t): New typedef.
- (get_spec_load_gen_function): New function.
- (SPEC_GEN_EXTEND_OFFSET): Declare.
- (ia64_set_sched_flags): Check common_sched_info instead of *flags.
- (get_mode_no_for_insn): Change the condition that prevents use of
- special hardware registers so it can now handle pseudos.
- (get_spec_unspec_code): New function.
- (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
- ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
- (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
- during selective scheduling.
- (ia64_speculate_insn): Use ds_get_speculation_types when
- determining whether we need to change the pattern.
- (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
- (ia64_spec_check_src_p): Support new speculation/check codes.
- (struct bundle_state): New field.
- (issue_nops_and_insn): Initialize it.
- (insert_bundle_state): Minimize mid-bundle stop bits.
- (important_for_bundling_p): New function.
- (get_next_important_insn): Use important_for_bundling_p.
- (bundling): When shifting TImode from unimportant insns, ignore
- also group barriers. Assert that best state is found before
- the backward bundling pass. Print number of mid-bundle stop bits.
- Minimize mid-bundle stop bits. Check correct calculation of
- mid-bundle stop bits.
- (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
- (final_emit_insn_group_barriers): Emit stop bits before insns starting
- a new cycle.
- (sel2_run): New variable.
- (ia64_reorg): When flag_selective_scheduling2 is set, run the
- selective scheduling pass instead of schedule_ebbs.
-
- * config/ia64/ia64.md (speculable1, speculable2): New attributes.
- (UNSPEC_LDS_A): New UNSPEC.
- (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
- movti_internal, movsf_internal, movdf_internal,
- movxf_internal): Make visible. Add speculable* attributes.
- (output_c_nc): New mode attribute.
- (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
- mov<mode>_nc, zero_extend<mode>di2_nc,
- advanced_load_check_nc_<mode>): New insns.
- (zero_extend*): Add speculable* attributes.
-
- * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
- (msched-stop-bits-after-every-cycle): Likewise.
- (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
- Likewise.
- (msched-spec-verbose): Remove.
- (msched-prefer-non-data-spec-insns,
- msched-prefer-non-control-spec-insns,
- msched-count-spec-in-critical-path,
- msel-sched-dont-check-control-spec): Use Target Report Var
- instead of Common Report Var.
-
- * config/ia64/itanium2.md: Remove incorrect bypass.
-
- * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
-
-2008-10-14 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37805
- * opts.c (common_handle_option): Don't ICE on -fhelp=joined
- and -fhelp=separate.
-
-2008-10-14 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000.md (cell_micro): Fix formatting.
-
-2008-10-13 Joseph Myers <joseph@codesourcery.com>
-
- * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
- non-integer modes.
-
-2008-10-13 Matthias Klose <doko@ubuntu.com>
-
- * config/pa/linux-atomic.c: Work around missing header file
- for hppa64-linux-gnu targets.
-
-2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
- Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
- Grace Cao <grace_cao@playstation.sony.com>
-
- * doc/invoke.texi (-mgen-cell-microcode): Document.
- (-mwarn-cell-microcode): Document.
- * cfglayout.c (locator_location): Export.
- * rtl.h (locator_location): Define prototype.
- * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
- New predicate.
- * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
- * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
- (mwarn-cell-microcode): New option.
- * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
- (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
- cell and not already set.
- Turn off string instructions if not generating cell microcode.
- (rs6000_final_prescan_insn): New function that warns about microcoded
- instructions.
- * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
- * config/rs6000/rs6000.md
- Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
- the instruction would have been microcoded on the Cell. Set
- cell_micro to always on unnamed patterns for the string instructions.
- (cell_micro): Update definition, remove load/store conditional
- microcoded.
- (sign_extend:DI): Define new pattern for non microcoded version.
- (sign_extend:SI): Likewise.
- (compare (div:P)): Set cell_micro to not.
- (andsi3): Define as an expand.
- (andsi3_mc): New pattern.
- (andsi3_nomc): New pattern.
- (andsi3_internal0_nomc): New pattern.
- (andsi3_internal2): Rename to ...
- (andsi3_internal2_mc): this and enable iff generating microcode.
- (andsi3_internal3): Rename to ...
- (andsi3_internal3_mc): this and enable iff generating microcode.
- (andsi3_internal4): Enable iif generating microcode.
- (andsi3_internal5): Rename to ..
- (andsi3_internal5_mc): this and enable iff generating microcode.
- (andsi3_internal5_nomc): New pattern.
- (extzvdi_internal1): Enable iff generating microcode.
- (extzvdi_internal2): Likewise.
- (rotlsi3_internal7): Set cell_micro to always if non immediate form.
- (anddi3): Change to expand.
- (anddi3_mc): Rename from anddi3.
- (anddi3_no_mc): New pattern.
- (anddi3_internal2): Rename to ..
- (anddi3_internal2_mc): this and enable iff generating microcode.
- (anddi3_internal2_nomc): New pattern.
- (anddi3_internal3): Rename to ..
- (anddi3_internal3_mc): this and enable iff generating microcode.
- (anddi3_internal3_nomc): New pattern.
- (movti_string): Set cell_micro to always if TARGET_STRING.
- (stmsi8): Set cell_micro to always.
- (stmsi7): Likewise.
- (stmsi6): Likewise.
- (stmsi5): Likewise.
- (stmsi4): Likewise.
- (stmsi3): Likewise.
- (stmsi8_power): Likewise.
- (stmsi7_power): Likewise.
- (stmsi6_power): Likewise.
- (stmsi5_power): Likewise.
- (stmsi4_power): Likewise.
- (stmsi3_power): Likewise.
- (movsi_update2): Enable iff generating microcode.
- (movhi_update3): Likewise.
- (lmw): Set cell_micro to always.
-
-2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
- * config/s390/s390.c (machine_function): Remove
- decomposed_literal_pool_addresses_ok_p.
- (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
- the difference of two labels.
- (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
- (s390_pool_offset): New function.
- (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
- (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
-
-2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
-
- * doc/install.texi (powerpc-*-*): Require binutils 2.15.
- (powerpc*-*-linux-gnu*): Describe.
- * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
- * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
- config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
- config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
- config/rs6000/e500crtres32gpr.asm,
- config/rs6000/e500crtres64gpr.asm,
- config/rs6000/e500crtres64gprctr.asm,
- config/rs6000/e500crtrest32gpr.asm,
- config/rs6000/e500crtrest64gpr.asm,
- config/rs6000/e500crtresx32gpr.asm,
- config/rs6000/e500crtresx64gpr.asm,
- config/rs6000/e500crtsav32gpr.asm,
- config/rs6000/e500crtsav64gpr.asm,
- config/rs6000/e500crtsav64gprctr.asm,
- config/rs6000/e500crtsavg32gpr.asm,
- config/rs6000/e500crtsavg64gpr.asm,
- config/rs6000/e500crtsavg64gprctr.asm: Use it.
- * config/rs6000/crtsavres.asm: Really remove.
-
-2008-10-13 Kai Tietz <kai.tietz@onevision.com>
-
- Fix PR/25502
- * c-format.c (convert_format_name_to_system_name): Use
- TARGET_OVERRIDES_FORMAT_INIT.
- * config.gcc (extra_options): Add for mingw targets mingw.opt.
- * config/i386/mingw.opt: New.
- * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
- * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
- (ms_printf_length_specs): Removed const specifier.
- * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
- * doc/invoke.texi (Wno-pedantic-ms-format): New.
-
-2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
- * doc/install.texi: Bump recommended MPFR to 2.3.2.
-
-2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR middle-end/37808
- * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
- sure that ref has valid bb.
-
-2008-10-12 Richard Henderson <rth@redhat.com>
-
- PR middle-end/37447
- * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
- * alias.c (value_addr_p, stack_addr_p): Remove.
- (nonoverlapping_memrefs_p): Remove IRA special case.
- * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
- * emit-rtl.h (set_mem_attrs_for_spill): Declare.
- * reload1.c (alter_reg): Use it.
-
-2008-10-12 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
- of registers instead of eax, ebx, ecx and edx. Use for loop
- and check register for non-zero value before the call
- to decode_caches_intel.
-
-2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/37448
- * df.h: (df_ref_class): New enum.
- (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
- (struct df_ref): Replaced with union df_ref_d.
- (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
- New members of df_ref_d union.
- (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
- DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
- DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
- DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
- DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
- DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
- (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
- (df_scan_bb_info, df_bb_regno_first_def_find,
- df_bb_regno_last_def_find, df_find_def, df_find_use,
- df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
- debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
- df_ref_create, df_ref_remove, df_compute_accessed_bytes,
- df_get_artificial_defs, df_get_artificial_uses, union_defs)
- Replaced struct df_ref * with df_ref.
- * df-scan.c (df_collection_rec, df_null_ref_rec,
- df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
- df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
- df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
- df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
- df_reorganize_refs_by_reg_by_reg,
- df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
- df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
- df_sort_and_compress_refs, df_install_ref, df_install_refs,
- df_ref_record, df_get_conditional_uses, df_get_call_refs,
- df_bb_refs_record, df_exit_block_uses_collect,
- df_record_exit_block_uses, df_reg_chain_mark,
- df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
- df_ref * with df_ref.
- (df_ref_record, df_uses_record, df_ref_create_structure): Added
- df_ref_class parameter.
- (df_scan_problem_data): Added new pools for different types of refs.
- (df_scan_free_internal, df_scan_alloc, df_free_ref,
- df_ref_create_structure): Processed new ref pools.
- (df_scan_start_dump): Added counts of refs and insns.
- (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
- df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
- df_entry_block_defs_collect, df_exit_block_uses_collect): Added
- code to pass df_ref_class down to ref creation functions.
- (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
- df_reg_chain_mark): Use macros to hide references to df_refs.
- (df_ref_chain_change_bb): Removed.
- (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
- (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
- Enhanced to understand df_ref union structure.
- * fwprop.c (local_ref_killed_between_p, use_killed_between,
- all_uses_available_at, update_df, try_fwprop_subst,
- forward_propagate_subreg, forward_propagate_and_simplify,
- forward_propagate_into, fwprop, fwprop_addr): Replaced struct
- df_ref * with df_ref.
- (use_killed_between, all_uses_available_at): Use macros to hide
- references to df_refs.
- * regstat.c (regstat_bb_compute_ri,
- regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
- df_ref.
- * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
- see_handle_relevant_refs, see_analyze_one_def,
- see_update_relevancy, see_propagate_extensions_to_uses): Replaced
- struct df_ref * with df_ref.
- * ra-conflict.c (record_one_conflict, clear_reg_in_live,
- global_conflicts): Replaced struct df_ref * with df_ref.
- * ddg.c (create_ddg_dep_from_intra_loop_link,
- add_cross_iteration_register_deps, build_inter_loop_deps):
- Replaced struct df_ref * with df_ref.
- (create_ddg_dep_from_intra_loop_link,
- add_cross_iteration_register_deps): Use macros to hide references
- to df_refs.
- * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
- df_ref * with df_ref.
- * df-core.c (df_bb_regno_first_def_find,
- df_bb_regno_last_def_find, df_find_def, df_find_use,
- df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
- debug_df_ref): Replaced struct df_ref * with df_ref.
- (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
- * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
- df_ref.
- * web.c (union_defs, entry_register, replace_ref, web_main):
- Replaced struct df_ref * with df_ref.
- (union_defs, replace_ref): Use macros to hide references to df_refs.
- * global.c (compute_regs_asm_clobbered, build_insn_chain):
- Replaced struct df_ref * with df_ref.
- * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
- * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
- Replaced struct df_ref * with df_ref.
- * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
- mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
- with df_ref.
- * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
- * df-byte-scan.c (df_compute_accessed_bytes_extract,
- df_compute_accessed_bytes_strict_low_part,
- df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
- Replaced struct df_ref * with df_ref.
- (df_compute_accessed_bytes): Use macros to hide references to df_refs.
- * init-regs.c (initialize_uninitialized_regs): Replaced struct
- df_ref * with df_ref.
- * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
- check_dependency, check_dependencies, record_uses): Replaced
- struct df_ref * with df_ref.
- (invariant_for_use, check_dependency): Use macros to hide
- references to df_refs.
- * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
- get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
- iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
- (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
- references to df_refs.
- * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
- with df_ref.
- * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
- * df-problems.c (df_rd_bb_local_compute_process_def,
- df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
- df_chain_unlink_1, df_chain_unlink, df_chain_copy,
- df_chain_remove_problem, df_chain_create_bb_process_use,
- df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
- df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
- df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
- df_byte_lr_simulate_artificial_refs_at_top,
- df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
- df_note_bb_compute, df_note_add_problem, df_simulate_defs,
- df_simulate_uses, df_simulate_artificial_refs_at_end,
- df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
- df_ref.
- (df_chain_dump): Use macros to hide references to df_refs.
- * config/mips/mips.c (r10k_simplify_address): Replaced struct
- df_ref * with df_ref.
- * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
- mark_artificial_uses, mark_reg_dependencies,
- byte_dce_process_block): Replaced struct df_ref * with df_ref.
-
-2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
- head comment.
- (array_ref_element_size): Likewise.
- (array_ref_low_bound): Likewise.
- (array_ref_up_bound): Likewise.
- * expr.c (contains_packed_reference): Likewise.
- (array_ref_element_size): Likewise.
- (array_ref_low_bound): Likewise.
- (array_ref_up_bound): Likewise.
- * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
- with ARRAY_RANGE_REF.
- (idx_find_step): Likewise.
- (idx_record_use): Likewise.
- (strip_offset_1): Likewise.
- (idx_remove_ssa_names): Likewise.
-
-2008-10-11 Uros Bizjak <ubizjak@gmail.com>
- Andi Kleen <ak@linux.intel.com>
-
- * config/i386/cpuid.h (__cpuid_count): New defines.
- * config/i386/driver-i386.c (struct cache_desc): New structure.
- (describe_cache): Use struct cache_desc to pass cache descriptions.
- (detect_l2_cache): Ditto. Rename from decode_l2_cache.
- (detect_caches_amd): Use struct cache_desc to describe caches.
- (decode_caches_intel): Use struct cache_desc to pass cache
- descriptions. Update descriptions to match latest (rev -032,
- December 2007) CPUID documentation. Do not check valid bit here.
- Check for Xeon MP value 0x49 problems.
- (detect_caches_cpuid2): New function, split from detect_caches_intel.
- Check valid bit before calling decode_caches_intel. Detect number
- of times to repeat CPUID instruction.
- (detect_caches_cpuid4): New function.
- (detect_caches_intel): Depending on max_level, call
- detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
- only when other methods fail to provide valid L2 cache description.
-
-2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR middle-end/37608
- * pa.md (call, call_value): Generate an rtx for register r4 and pass
- it to PIC call patterns.
- (call_symref_pic): Revise pattern to expose PIC register save. Remove
- code generation and attributes from pattern. Change peephole2 to
- split for noreturn case. Revise split pattern for non noreturn case.
- (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
- call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
- * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
- asserts.
-
-2008-10-11 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
- (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
- and fp_type.
- (divdf3): Reformat long line.
-
-2008-10-11 Michael J. Eager <eager@eagercon.com>
-
- * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
- -mfpu options.
- (rs6000_handle_option): Process -mfpu options.
- * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
- (enum fpu_type_t): New.
- * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
- (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
- fp_type.
- (floatsisf2): Remove TARGET_SINGLE_FPU condition.
- (floatdidf2): Add TARGET_SINGLE_FPU condition.
- * config/rs6000/rs6000.opt (-mfpu): New.
- (-mxilinx-fpu): New.
- * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
- * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
- * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
- * gcc/config.gcc: powerpc-xilinx-eabi target: New.
- * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
-
-2008-10-11 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35760
- * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
- LO_SUM on Darwin if mode has just one unit.
-
-2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR debug/37002
- * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
- has been optimized out.
-
-2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
- instead of PIC_DIRECT_ADDR_P.
- (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
- (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
- (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
- (PIC_OFFSET_P): Rename to...
- (PCREL_SYMOFF_P): ...this.
- (PIC_DIRECT_ADDR_P): Delete.
- (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
- PIC_OFFSET_P.
- (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
- single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
- UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
- * config/sh/sh.c (print_operand): Remove CONST handling.
- (unspec_caller_rtx_p): Rewrite to use split_const and check
- the operands of UNSPEC bases.
- (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
- with (unspec [A B] UNSPEC_SYMOFF).
- (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
- UNSPEC_PCREL_SYMOFF.
- (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
- * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
- (UNSPEC_EXTRACT_U16): Likewise.
- (UNSPEC_SYMOFF): Likewise.
- (UNSPEC_PCREL_SYMOFF): Likewise.
- (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
- of constants.
- (movsi_const_16bit): Likewise.
- (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
- (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
- with (unspec [A B] UNSPEC_PCREL_SYMOFF).
- (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
- with (unspec [A B] UNSPEC_SYMOFF).
- (symPLT_label2reg): Replace (minus A (minus B pc)) with
- (unspec [A B] PCREL_UNSPEC_SYMOFF).
- * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
- (Csu): Likewise UNSPEC_EXTRACT_U16.
- (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
- (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
-
-2008-10-10 Stepan Kasal <skasal@redhat.com>
-
- * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
- for loop strip mining and loop blocking.
-
-2008-10-10 Alexandre Oliva <aoliva@redhat.com>
-
- * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
- vary types depending on debug info.
-
-2008-10-10 Alexandre Oliva <aoliva@redhat.com>
-
- * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
- before ensuring it's already computed.
-
-2008-10-09 Jakub Jelinek <jakub@redhat.com>
-
- * rtl.h (locator_eq): New decl.
- * cfglayout.c (locator_scope): New function.
- (insn_scope): Use it.
- (locator_eq): New function.
- (fixup_reorder_chain): Search for last insn in src bb
- that has locator set or first insn in dest bb. Use
- locator_eq instead of == to compare locators.
- * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
- * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
- == to compare locators.
-
- * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
- as used.
- * gimple-low.c (lower_function_body, lower_gimple_return,
- lower_builtin_setjmp): Set gimple_block on the newly created stmts.
- * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
- goto_block on edges if goto_locus is known.
-
- PR middle-end/37774
- * tree.h (get_object_alignment): Declare.
- * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
- get_object_alignment if needed.
- * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
- handling to ...
- (get_object_alignment): ... here. New function. Try harder to
- determine alignment from get_inner_reference returned offset.
-
-2008-10-08 Jakub Jelinek <jakub@redhat.com>
-
- * graphite.c (gloog): Don't call find_unreachable_blocks
- before delte_unreachable_blocks.
-
- * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
- goto_locus of true_edge into RTL locator.
-
-2008-10-08 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
- (*jcc_btdi_mask_rex64): Ditto.
- (*jcc_btsi): Ditto.
- (*jcc_btsi_mask): Ditto.
- (*jcc_btsi_1): Ditto.
- (*jcc_btsi_mask_1): Ditto.
-
-2008-10-08 Paul Brook <paul@codesourcery.com>
-
- * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
- compatible profiler (__gnu_mcount_nc).
- (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
-
-2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (initial_ix86_tune_features): Add
- X86_TUNE_USE_VECTOR_FP_CONVERTS.
- * config/i386/i386.h (ix86_tune_indices): Likewise.
- (TARGET_USE_VECTOR_FP_CONVERTS): New.
-
- * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
- instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
- for FP to FP splitters.
-
-2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
- splitter.
-
-2008-10-08 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36635
- PR target/37290
- PR rtl-optimization/37341
- * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
- to ORIG_BB, pass through ORIG_BB recursively.
- (cse_condition_code_reg): Adjust caller.
-
-2008-10-08 Kai Tietz <kai.tietz@onevision.com>
-
- * sdbout.c (sdbout_one_type): Treat the value type
- CONST_DECL for enumerals.
-
-2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md: Remove trailing white spaces.
-
-2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/37448
- * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
- (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
- Make unsigned long.
- (struct output_info) [count]: Renamed total_created and made
- unsigned long.
- (struct output_info) [size]: Renamed total_allocated and made
- unsigned long.
- (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
- Properly keep track of desc->size.
- (print_statistics, dump_alloc_pool_statistics): Enhance the
- printing of statistics to print the number of elements and to use
- unsigned longs.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37576
- * opts.h (CL_SAVE): Move up to flags range.
- (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
- CL_COMMON): Renumber.
- (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
- * opts.c (common_handle_option): Revert last change.
-
-2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386-protos.h (ix86_schedule): New.
-
- * config/i386/i386.c (ix86_schedule): New.
- (override_options): Add schedule to processor_alias_table. Set
- ix86_schedule from the schedule field in processor_alias_table.
- (ix86_function_specific_save): Save ix86_schedule.
- (ix86_function_specific_restore): Restore ix86_schedule.
-
- * config/i386/i386.md (cpu): Map to ix86_schedule instead of
- ix86_tune. Add none and remove i386, i486, pentium4, nocona
- and generic32.
-
- * config/i386/i386.opt: Add schedule.
-
- * config/i386/ppro.md: Remove generic32.
-
-2008-10-07 Simon Martin <simartin@users.sourceforge.net>
-
- PR c/35437
- * expr.c (count_type_elements): Handle ERROR_MARK.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/29609
- PR debug/36690
- PR debug/37616
- * basic-block.h (struct edge_def): Add goto_block field.
- * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
- one insn with locus corresponding to edge's goto_locus if !optimize.
- * profile.c (branch_prob): Copy edge's goto_block.
- * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
- emitted jumps.
- (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
- locator in between the merged basic blocks if !optimize and needed.
- * cfgexpand.c (expand_gimple_cond): Convert goto_block and
- goto_locus into RTL locator. For unconditional jump use that
- locator for the jump insn.
- (expand_gimple_cond): Convert goto_block and goto_locus into
- RTL locator for all remaining edges. For unconditional jump
- use that locator for the jump insn.
- * cfgcleanup.c (try_forward_edges): Avoid the optimization if
- there is more than one edge or insn locator along the forwarding
- edges and !optimize. If there is just one, set e->goto_locus.
- * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
- edge's goto_block.
- (move_block_to_fn): Adjust edge's goto_block.
-
-2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37731
- * expmed.c (expand_mult): Properly check DImode constant in
- CONST_DOUBLE.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37738
- * dwarf2out.c (common_block_die_table): New variable.
- (common_block_die_table_hash, common_block_die_table_eq): New
- functions.
- (gen_variable_die): Look up a DW_TAG_common_block die for a particular
- COMMON block in the current scope rather than globally. Optimize
- DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
- DW_OP_addr SYMBOL_REF+off.
-
-2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
- Return true for non-addressable GIMPLE operands.
-
-2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/24765
- * config/i386/i386.c (initial_ix86_tune_features): Remove
- X86_TUNE_USE_BIT_TEST.
- * config/i386/i386.h (ix86_tune_indices): Likewise.
- (TARGET_USE_BIT_TEST): Removed.
-
-2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
-
-2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
- (mul<mode>3_mul3): ... into this new template.
-
-2008-10-06 Aldy Hernandez <aldyh@redhat.com>
-
- * gimplify.c (gimplify_arg): Add location argument. Use it.
- (gimplify_call_expr): Pass location to gimplify_arg.
- (gimplify_modify_expr_to_memcpy): Same.
- (gimplify_modify_expr_to_memset): Same.
-
-2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
- Update calls to build_unary_op and build_indirect_ref for location
- changes.
-
-2008-10-06 Aldy Hernandez <aldyh@redhat.com>
-
- build_modify_expr.
- * c-decl.c (finish_decl): Pass input_location to build_unary_op.
- * c-typeck.c (array_to_pointer_conversion): Pass location to
- build_unary_op.
- (function_to_pointer_conversion): Use error_at and warning_at.
- (build_indirect_ref): Same.
- (build_array_ref): Pass location to build_binary_op.
- (parser_build_unary_op): Do not set location after calling
- build_unary_op.
- (build_unary_op): Add location argument. Use it throughout. Set
- EXPR_LOCATION before returning new tree.
- (build_modify_expr): Same.
- (build_binary_op): Use location throughout. Set EXPR_LOCATION before
- returning node.
- * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
- build_indirect_ref, build_modify_expr.
- (c_finish_omp_for): Same. Use error_at instead of error.
- * c-common.c (c_common_truthvalue_conversion): Pass location to
- build_unary_op.
- (warn_for_div_by_zero): Add location argument.
- * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
- build_unary_op, warn_for_div_by_zero.
- * c-parser.c (c_parser_typeof_specifier): Use
- protected_set_expr_location.
- (c_parser_statement_after_labels): Same.
- (c_parser_condition): Same.
- (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
- (c_parser_conditional_expression): Use protected_set_expr_location.
- (c_parser_unary_expression): Pass location to build_indirect_ref.
- (c_parser_postfix_expression_after_primary): Pass location to
- build_indirect_ref, build_unary_op.
- (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
-
-2008-10-06 Joshua Kinard <kumba@gentoo.org>
-
- * doc/invoke.texi: List r1x000 family under the -march MIPS option.
- * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
- * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
- r14000 and r16000.
- (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
- (mips_issue_rate): Handle PROCESSOR_R10000.
- * config/mips/mips.md (cpu): Add r10000.
- Include r10000.md.
- * config/mips/10000.md: New file.
-
-2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
- * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
- * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
-
-2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/darwin-protos.h (machopic_function_base_name): Delete.
- (machopic_function_base_sym): Likewise.
- (machopic_gen_offset): Declare.
- * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
- (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
- * config/darwin.c (machopic_function_base_name): Delete.
- (machopic_function_base_sym): Likewise.
- (gen_pic_offset): Rename to...
- (machopic_gen_offset): ...this and remove the pic_base argument.
- Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
- is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
- crtl->uses_pic_offset_table.
- (machopic_indirect_data_reference): Use new machopic_gen_offset
- interface.
- (machopic_legitimize_pic_address): Likewise.
- (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
-
- * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
- MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
- * config/i386/i386.c (output_set_got): Likewise.
- (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
- instead of a MINUS.
- (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
- (legitimate_address_p): Likewise.
- (output_pic_addr_const): Likewise.
- (output_addr_const_extra): Likewise.
- (ix86_delegitimize_address): Expect darwin_local_data_pic to
- match an UNSPEC rather than a MINUS.
- * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
- (builtin_setjmp_receiver): Use machopic_gen_offset.
- * config/i386/predicates.md (pic_symbolic_operand): Handle
- UNSPEC_MACHOPIC_OFFSET.
-
- * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
- Use machopic_gen_offset and machopic_operand_p.
- (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
- (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
- * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
- (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
- Set crtl->uses_pic_offset_table.
-
-2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
- Declare.
- * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
- * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
- * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
- (constant_pool_expr_p): Use split_const and check the base.
- (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
- instead of a MINUS.
- (legitimate_constant_pool_address_p): Check toc_relative_p
- instead of constant_pool_expr_p.
- (print_operand_address): Always use output_addr_const for
- constant pool addresses.
- (rs6000_output_addr_const_extra): New function.
- (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
-
-2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37535
-
- * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
- (mark_ref_live, mark_ref_dead): Use them.
- (def_conflicts_with_inputs_p): Remove.
- (mark_early_clobbers): New function.
- (process_bb_node_lives): Call preprocess_constraints and
- mark_early_clobbers.
-
- * doc/rtx.texi (clobber): Change how RA deals with clobbers.
-
-2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
- lib with -mthread switch.
-
-2008-10-05 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/37410
- * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
- function in two, making it call a new and reusable
- dwarf2out_imported_module_or_decl() that takes the containing
- BLOCK of the declaration in argument.
- (dwarf2out_imported_module_or_decl_real): New function.
- (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
- IMPORTED_DECL in account.
- * tree.def: Added IMPORTED_DECL node type.
- * tree.h: Added accessors for IMPORTED_DECL nodes.
- * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
-
-2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/gimple.texi: Fix some typos, wrap some long lines,
- fix some broken wraps with continuations.
- * tree-ssa-reassoc.c: Fix comment typos.
-
-2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR target/37603
- * pa.c (legitimize_pic_address): Force function labels to memory in
- word mode.
-
-2008-10-04 Anton Blanchard <anton@samba.org>
-
- * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
- (rs6000_split_atomic_op): Same.
- (rs6000_split_compare_and_swap): Same.
- (rs6000_split_compare_and_swapqhi): Same.
-
-2008-10-04 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
- instead of pointer equality.
- (vn_nary_op_eq): Likewise.
-
-2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
- condition.
- (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
- TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
-
-2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
- Revert previous change.
-
-2008-10-03 Tom Tromey <tromey@redhat.com>
-
- * stringpool.c (ggc_alloc_string): Terminate string.
-
-2008-10-03 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.c (gimplify_function_tree): For -finstrument-functions
- use gimple_bind_{,set_}block instead of gimple_{,set_}block.
- * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
-
- PR debug/37726
- * gimplify.c (declare_vars): Use gimple_bind_block instead of
- gimple_block.
-
-2008-10-03 Pascal Obry <obry@adacore.com>
-
- * gcov.c (create_file_names): Properly handle UNIX and DOS
- directory separators.
- (make_gcov_file_name): Likewise + convert the ':' DOS drive
- separator to '~' to ensure clean filenames on Windows.
-
-2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
- Add a null terminator to the stripped name.
-
-2008-10-02 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
- TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
- (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
- (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
- (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
-
-2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
-
- * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
-
-2008-10-02 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37713
- * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
- and VECTOR_TYPE recurse with useless_type_conversion_p which
- properly handles void pointer conversion.
-
-2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR target/37528
- * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
- (REAL_LIBGCC_SPEC): New. Always include -lgcc.
-
-2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
- Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
- ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
- they translate to non builtins.
- * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
- opaque_ftype_opaque. Define builtins __builtin_vec_splats,
- __builtin_vec_promote, __builtin_vec_extract, and
- __builtin_vec_insert.
- * config/rs6000/rs6000.h (enum rs6000_builtins): Add
- ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
- ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
- * config/rs6000/altivec.h (vec_extract): Define
- (vec_insert): Define.
- (vec_splats): Define.
- (vec_promote): Define.
-
-2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Yukishige Shibata <shibata@rd.scei.sony.co.jp>
- Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
-
- * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
- Altivec intrinsics.
- * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
- prototype. Add new parameter, blk.
- Use BLKmode for the MEM if blk is true.
- (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
- ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
- ALTIVEC_BUILTIN_STVRXL.
- Update usage of altivec_expand_lv_builtin.
- Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
- ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
- (altivec_init_builtins): If compiling for the Cell, also define the
- cell VMX builtins.
- * config/rs6000/rs6000.h (rs6000_builtins): Define
- ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
- ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
- ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
- ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
- ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
- ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
- ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
- * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
- UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
- UNSPEC_STVRX, and UNSPEC_STVRXL.
- (altivec_lvlx): New pattern.
- (altivec_lvlxl): New pattern.
- (altivec_lvrx): New pattern.
- (altivec_lvrxl): New pattern.
- (altivec_stvlx): New pattern.
- (altivec_stvlxl): New pattern.
- (altivec_stvrx): New pattern.
- (altivec_stvrxl): New pattern.
- * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
- (vec_lvlxl): Likewise.
- (vec_lvrx): Define if PPU is defined.
- (vec_lvrxl): Likewise.
- (vec_stvlx): Define if PPU is defined.
- (vec_stvlxl): Likewise.
- (vec_stvrx): Define if PPU is defined.
- (vec_stvrxl): Likewise.
-
-2008-10-01 Geert Bosch <bosch@adacore.com>
-
- * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
-
-2008-10-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37617
- * tree-ssa-pre.c (create_expression_by_pieces): During FRE
- do not add to the NEW_SETS.
-
-2008-10-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37285
- * tree-vrp.c (execute_vrp): If we optimized away the default
- case make sure to promote the label that got in place of it
- to a default case label.
-
-2008-10-01 Richard Henderson <rth@redhat.com>
-
- PR tree-opt/35737
- * tree-complex.c (set_component_ssa_name): Don't optimize
- is_gimple_min_invariant values with ssa_names in abnormal phis.
-
-2008-09-30 Paolo Bonzini <bonzini@gnu.org>
-
- PR tree-optimization/37662
- * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
- commutative binary operation if they are in the wrong order and
- fold_build2 produces non-GIMPLE.
-
-2008-09-30 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37662
- PR tree-optimization/37663
- * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
- get_value_range with non-SSA_NAME. Don't assert operands have been
- folded, instead just bail out.
-
-2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
-
-2008-09-30 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37491
- * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
- build restrict-qualified pointers.
- (vectorizable_store): Move alias check later.
- (vectorizable_load): Likewise.
-
-2008-09-30 Paolo Bonzini <bonzini@gnu.org>
-
- * c-common.c (empty_if_body_warning): Remove.
- * c-common.h (empty_if_body_warning): Remove.
- * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
- here the -Wempty-body warning for `if' and `else' statements.
- * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
-
-2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.opt: Add msse2avx.
-
- * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
- * config/i386/linux64.h (ASM_SPEC): Likewise.
-
- * doc/invoke.texi: Document -msse2avx.
-
-2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
-
-2008-09-29 Joseph Myers <joseph@codesourcery.com>
-
- * ifcvt.c (noce_emit_store_flag): If using condition from original
- jump, reverse it if if_info->cond was reversed.
-
-2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
- non-constant memory if it cannot be forced to constant memory.
- Overhaul surrounding code and factor out common condition.
-
-2008-09-29 Jeff Law <law@redhat.com>
-
- * reload1.c (alter_reg): Add missing curly braces.
-
-2008-09-29 Michael J. Eager <eager@eagercon.com>
-
- * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
- are easy.
- * config/rs6000/rs6000.c (rs6000_override_options): Move
- rs6000_init_hard_regno_mode_ok after all options changed.
- Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
- (rs6000_handle_option): Process -msingle-float, -mdouble-float,
- -msimple-fpu flags. Add warning messages if single FP not configured.
- (rs6000_file_start): Output gnu_attribute for single-float.
- (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_legitimize_address): Likewise.
- (rs6000_legitimize_reload_address): Likewise.
- (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (function_arg_advance): Likewise (partial conversion).
- (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_emit_prologue): Likewise.
- (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (rs6000_libcall_value): Likewise.
- * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
- (TARGET_DOUBLE_FLOAT): New default to 1
- (TARGET_SIMPLE_FPU): New default to 0
- (TARGET_SINGLE_FPU): New default to 0
- (TARGET_SINGLE_FLOAT_MODE): New.
- (TARGET_DOUBLE_FLOAT_MODE): New.
- * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
- TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
- UNITS_PER_FP_WORD
- * config/rs6000/rs6000.md (define_mode_iterator): Condition on
- TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
- (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
- copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
- nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
- muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
- movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
- floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
- *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
- fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
- rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
- floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
- movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
- extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
- abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
- cmptf_internal1, *cmptf_internal2): Condition on
- TARGET_DOUBLE_FLOAT.
- (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
- mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
- *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
- btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
- floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
- *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
- TARGET_SINGLE_FLOAT.
- (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
- * config/rs6000/rs6000.opt (-msingle-float): New.
- (-mdouble-float): New.
- (-msimple-fpu): New.
- * doc/invoke.texi (RS/6000 and PowerPC Options): Add
- -msingle-float, -mdouble-float, -msimple-fpu options.
- * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
- _SOFT_DOUBLE for -msingle-float.
- * config.gcc: New config for target=powerpc-xilinx-eabi.
-
-2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
-
- * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
- have exit and entry.
- (new_scop): Take entry and exit edge to define new SCoP.
- (sd_region_p): New structure used during SCoP detection.
- (move_scops): Delete.
- (move_sd_regions): New.
- (scopdet_info): Change the definition from edges back to basic_blocks.
- (scopdet_edge_info): Work on basic_blocks and rename to
- scopdet_basic_block_info.
- (split_difficult_bb): At the moment removed. We should later
- add it at another place.
- (build_scops_1): Work on basic_blocks.
- (bb_in_sd_region): New.
- (find_single_entry_edge): New.
- (find_single_exit_edge): New.
- (create_single_entry_edge): New.
- (sd_region_without_exit): New.
- (create_single_exit_edge): New.
- (unmark_exit_edges): New.
- (mark_exit_edges): New.
- (create_sese_edges): New.
- (build_graphite_scops): New.
- (build_scops): Make SCoPs SESE.
- (limit_scops): Use the new functions.
-
-2008-09-29 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.h (IRA_COVER_CLASSES): Define.
-
-2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/37640
- * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
- address to a register before taking the lower part.
-
-2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
- for SHmedia.
-
-2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
-
- PR tree-opt/36891
- * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
- the newly created variable.
- Create a VECTOR_CST of all 1s for vector types.
-
-2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/36575
- * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
-
-2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
-
- * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
- order to convert between modes.
- (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
-
-2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
- if needed.
-
-2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
-
- Revert:
- 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
- * ira-lives.c:...
- * doc/rtl.texi:...
-
-2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
- ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
- them to yield false with MIPS16.
-
-2008-09-26 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37275
- * dwarf2out.c (tls_mem_loc_descriptor): New function.
- (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
- mem_loc_descriptor failed. Accept UNSPEC.
- (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
- fail if one of the loc_descriptor calls for pieces failed.
- (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
- as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
- if loc_descriptor_from_tree_1 on offset failed.
-
- PR middle-end/37576
- * opts.c (common_handle_option): Don't call print_specific_help with
- CL_SAVE as first argument.
-
-2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
- Steve Ellcey <sje@cup.hp.com>
-
- * configure: Regenerate for new libtool.
- * aclocal.m4: Ditto.
-
-2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
-
- * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
- alias set on MEM when saving stack pointer.
- * config/rs6000/rs6000.md (allocate_stack): Likewise
-
-2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
-
- PR tree-optimization/37574
- * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
- * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
- instead of vector_type for constants. Take computation out of loop.
- (vect_get_vec_def_for_operand): Use only vectype for constant case,
- and use only vector_type for invariant case.
- (get_initial_def_for_reduction): Use vectype instead of vector_type.
-
-2008-09-25 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37645
- * c-common.c (handle_weakref_attribute): Ignore the attribute unless
- the decl is a VAR_DECL or FUNCTION_DECL.
-
-2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37535
- * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
- (mark_ref_live, mark_ref_dead): Use them.
- (def_conflicts_with_inputs_p): Remove.
- (mark_early_clobbers): New function.
- (process_bb_node_lives): Call preprocess_constraints and
- mark_early_clobbers.
-
- * doc/rtl.texi (clobber): Change how RA deals with clobbers.
-
-2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37448
- * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
- (ira_compress_allocno_live_ranges): New prototype.
-
- * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
- (coalesced_allocnos_living_at_program_points): New.
- (coalesced_allocnos_live_at_points_p,
- set_coalesced_allocnos_live_points): New functions.
- (coalesce_spill_slots): Rewrite.
-
- * ira-lives.c (remove_some_program_points_and_update_live_ranges,
- ira_compress_allocno_live_ranges): New functions.
-
- * ira-build.c (ira_flattening): Call
- ira_compress_allocno_live_ranges.
- (ira_build): Ditto.
-
-2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
- optimization.
-
-2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
-
- * combine.c (make_compound_operation): Handle the 'E' format.
- (count_rtxs): Likewise.
- (update_table_tick): Likewise.
- (get_last_value_validate): Likewise.
-
-2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
-
-2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
-
- * matrix-reorg.c (transform_allocation_sites): Initializers
- added to avoid the warning.
-
-2008-09-25 Martin Jambor <mjambor@suse.cz>
-
- * cgraph.c (free_nodes): New variable.
- (NEXT_FREE_NODE): New macro.
- (cgraph_create_node): Reuse nodes from the free list. Do not
- update uid if doing so.
- (cgraph_remove_node): Add the node to the free list.
-
-2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
-
- * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
-
-2008-09-24 Richard Henderson <rth@redhat.com>
-
- * dwarf2.h (DW_OP_GNU_encoded_addr): New.
- * unwind-dw2.c (execute_stack_op): Handle it.
-
-2008-09-24 David Edelsohn <edelsohn@gnu.org>
-
- Revert:
- 2008-09-24 Michael J. Eager <eager@eagercon.com>
-
-2008-09-24 Aldy Hernandez <aldyh@redhat.com>
-
- * c-common.c (fname_decl): New location argument.
- * c-common.h (fname_decl): Same.
- * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
- {warning,error}.
- (c_parser_typeof_specifier): Same.
- (c_parser_parms_list_declarator): Same.
- (c_parser_asm_string_literal): Same.
- (c_parser_compound_statement_nostart): Same.
- (c_parser_label): Same.
- (c_parser_do_statement): Same.
- (c_parser_asm_statement): Same.
- (c_parser_unary_expression): Same.
- (c_parser_sizeof_expression): Same.
- (c_parser_postfix_expression): Same.
- (c_parser_pragma): Same.
- (c_parser_omp_clause_collapse): Same.
- (c_parser_omp_clause_num_threads): Same.
- (c_parser_omp_clause_schedule): Same.
- (c_parser_omp_all_clauses): Same.
- (c_parser_omp_sections_scope): Same.
- (c_parser_omp_for_loop): Same. Pass condition's location to
- c_objc_common_truthvalue_conversion.
- (c_parser_enum_specifier): Remove comment.
-
-2008-09-24 Michael J. Eager <eager@eagercon.com>
-
- * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
- are easy.
- * config/rs6000/rs6000.c (rs6000_override_options): Move
- rs6000_init_hard_regno_mode_ok after all options changed.
- Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
- (rs6000_handle_option): Process -msingle-float, -mdouble-float,
- -msimple-fpu flags. Add warning messages if single FP not configured.
- (rs6000_file_start): Output gnu_attribute for single-float.
- (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_legitimize_address): Likewise.
- (rs6000_legitimize_reload_address): Likewise.
- (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (function_arg_advance): Likewise.
- (function_arg): Likewise.
- (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
- (rs6000_emit_prologue): Likewise.
- (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
- TARGET_SINGLE_FLOAT.
- (rs6000_libcall_value): Likewise.
- * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
- (TARGET_DOUBLE_FLOAT): New default to 1
- (TARGET_SIMPLE_FPU): New default to 0
- (TARGET_SINGLE_FPU): New default to 0
- (TARGET_SINGLE_FLOAT_MODE): New.
- (TARGET_DOUBLE_FLOAT_MODE): New.
- * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
- TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
- UNITS_PER_FP_WORD
- * config/rs6000/rs6000.md (define_mode_iterator): Condition on
- TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
- (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
- copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
- nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
- muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
- movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
- floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
- *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
- fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
- rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
- floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
- movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
- extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
- abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
- cmptf_internal1, *cmptf_internal2): Condition on
- TARGET_DOUBLE_FLOAT.
- (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
- mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
- *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
- btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
- floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
- *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
- TARGET_SINGLE_FLOAT.
- (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
- * config/rs6000/rs6000.opt (-msingle-float): New.
- (-mdouble-float): New.
- (-msimple-fpu): New.
- * doc/invoke.texi (RS/6000 and PowerPC Options): Add
- -msingle-float, -mdouble-float, -msimple-fpu options.
- * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
- _SOFT_DOUBLE for -msingle-float.
- * config.gcc: New config for target=powerpc-xilinx-eabi.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/sparc/constraints.md: New file.
- * config/sparc/sparc.md: Include it.
- * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
- (sparc_extra_constraint_check): Delete.
- * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
- (memory_ok_for_ldd): New predicate.
- (sparc_extra_constraint_check): Delete.
- * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
- (CONST_OK_FOR_LETTER_P): Likewise.
- (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
- (EXTRA_CONSTRAINT): Likewise.
-
-2008-08-23 Steve Ellcey <sje@cup.hp.com>
-
- * regrename.c (do_replace): Copy REG_POINTER value to new reg.
-
-2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
-
- * alias.c (find_base_value): Use FIND_BASE_TERM.
- * doc/tm.texi (FIND_BASE_TERM): Update documentation.
-
-2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/i386/i386.c: Include cselib.h.
- (ix86_pic_register_p): New function.
- (ix86_delegitimize_address): Use it to check for the PIC register.
-
-2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
- * config/i386/i386.c (ix86_find_base_term): Don't check for
- SYMBOL_REF and LABEL_REF.
-
-2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/i386/i386.c (ix86_delegitimize_address): Wrap the
- constant PLUS in a CONST.
-
-2008-09-23 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
- check for sibcall support for w64.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
-
-2008-09-23 Aldy Hernandez <aldyh@redhat.com>
-
- * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
- parser_build_binary_op.
- * c-decl.c (build_enumerator): Pass location to build_binary_op.
- * c-typeck.c (build_array_ref): Same.
- (parser_build_unary_op): New location argument.
- (pointer_diff): Pass location to build_binary_op,
- c_objc_common_truthvalue_conversion.
- (build_modify_expr): Same.
- (build_unary_op): New location argument.
- (build_binary_op): New location argument.
- (c_objc_common_truthvalue_conversion): Pass location to
- c_*common_truthvalue_conversion.
- * c-convert.c (convert): Same.
- * c-common.c (binary_op_error): New location argument.
- (pointer_int_sum): Pass location to build_binary_op.
- (c_common_truthvalue_conversion): New location argument.
- (warn_for_sign_compare): Same.
- * c-common.h: Add location argument to c_common_truthvalue_conversion,
- binary_op_error, build_binary_op, warn_for_sign_compare.
- * c-parser.c (c_parser_condition): Pass location to
- c_*common_truthvalue_conversion.
- (c_parser_conditional_expression): Save condition's location and pass
- it on down.
- (c_parser_binary_expression): Same, but for the binary operator's
- location.
- (c_parser_omp_for_loop): Pass location to
- c_objc_common_truthvalue_conversion.
-
-2008-09-23 Martin Jambor <mjambor@suse.cz>
-
- * cgraph.c (cgraph_free_edge): Use sizeof(*e).
- (cgraph_node_remove_callees): New temporary f. Hold the next item
- in f when looping.
- (cgraph_node_remove_callers): Likewise.
-
- * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
- (ipa_node_removal_hook): Likewise.
-
- * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
- gimple_call_copy_skip_args and moved to the gimple_call section.
- * gimple.c (gimple_copy_call_skip_args): Renamed to
- gimple_call_copy_skip_args. Changed al users.
-
-2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-color.c (start_allocno_priorities): Rename to
- setup_allocno_priorities. Use costs and
- ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
- range lengths. Get rid off doubles.
- (ira_fast_allocations): Call start_allocno_priorities.
-
-2008-09-22 David Daney <ddaney@avtrex.com>
-
- PR target/37593
- * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
- register if TARGET_LONG_CALLS.
-
-2008-09-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37145
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
- value-numbering union accesses with their offset and size only.
- (visit_reference_op_load): Fix simplification of inserted conversions.
- * tree-ssa-pre.c (find_or_generate_expression): Do not
- recursively generate expressions if running FRE.
-
-2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_BADDU): New macro.
- * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
- New patterns.
-
-2008-09-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37145
- * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
- (phi_translate_1): Constant fold references.
-
-2008-09-22 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37482
- * tree-vectorizer.h (struct _slp_instance): Add new field.
- (SLP_INSTANCE_FIRST_LOAD_STMT): New.
- (get_earlier_stmt): New function.
- * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
- function.
- (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
- * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
- asserts that GSI points to the scalar statement being vectorized.
- Set new statement location according to GSI.
- (vect_schedule_slp_instance): Use GSI of
- SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
-
-2008-09-21 Jan Hubicka <jh@suse.cz>
-
- * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
- (ipcp_insert_stage): Update dead_nodes bitmap.
-
-2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR target/37528
- * config/i386/t-cygming (SHLIB_LC): Remove.
- (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
- * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
-
-2008-09-22 Hans-Peter Nilsson <hp@axis.com>
-
- PR middle-end/37170
- PR middle-end/37280
- * final.c (mark_symbol_ref_as_used): New helper function.
- (output_operand): Instead of just looking inside MEMs for
- SYMBOL_REFs, use new helper function and for_each_rtx.
- * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
- to after weak-handling. Don't mark decls with TREE_STATIC as weak.
- Make head comment more general.
- * config/darwin.c (machopic_output_indirection): Handle weak
- references here, like in assemble_external.
-
-2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
- (sparc_emit_float_lib_cmp): Change return type.
- * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
- (gen_compare_operator): New function.
- (sparc_emit_float_lib_cmp): Return the new operator to be used in
- the comparison sequence. Minor tweaks.
- * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
- that the final operator and the result of sparc_emit_float_lib_cmp
- match for software TFmode; use emit_insn in lieu of emit_jump_insn.
- (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
- buneq, bunge, bunle, bltgt): Assert that the final operator and the
- result of sparc_emit_float_lib_cmp match for software TFmode.
- (movqicc, movhicc, movsicc, movdicc): Merge into...
- (mov<I:mode>cc): ...this.
- (movsfcc, movdfcc, movtfcc): Merge into...
- (mov<F:mode>cc): ...this.
- (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
- into...
- (mov<I:mode>_cc_v9): ...this.
- (movdi_cc_sp64_trunc): Delete.
- (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
- movdi_cc_reg_sp64): Merge into...
- (mov<I:mode>_cc_reg_sp64): ...this.
- (movsf_cc_sp64): Rename into...
- (movsf_cc_v9): ...this.
- (movdf_cc_sp64): Rename into...
- (movdf_cc_v9): ...this.
- (movtf_cc_hq_sp64): Rename into...
- (movtf_cc_hq_v9): ...this.
- (movtf_cc_sp64): Rename into...
- (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
-
-2008-09-21 Diego Novillo <dnovillo@google.com>
-
- * doc/gccint.texi: Include generic.texi and gimple.texi.
- Re-order index.
- * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
- (GIMPLE): Move to gimple.texi.
- (Annotations): Remove references to to stmt_ann_t and
- ssa_name_ann_t.
- (SSA Operands): Rename from 'Statement Operands'.
- * doc/generic.texi: New.
- * doc/gimple.texi: New.
- * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
- * Makefile.in (TEXI_GCCINT_FILES):
- * gimple.c (gimple_copy_call_skip_args): Rename from
- giple_copy_call_skip_args. Update all users.
- * doc/gimple.texi (gimple_copy_call_skip_args): Document.
-
-2008-09-21 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37539
- * tree-vect-transform.c (vect_transform_strided_load): Save vector
- statement in related statement field only for the first load of the
- group of loads with the same data reference.
-
-2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (TUNE_OCTEON): New macro.
- * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
- (mips_multipass_dfa_lookahead): Return 2 for Octeon.
- * config/mips/octeon.md: New file.
- * config/mips/mips.md: Include octeon.md. Restore
- semi-alphabetical order of include files.
-
-2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37571
- * config/i386/i386.md (*jcc_fused_1): Removed.
- (*jcc_fused_2): Likewise.
- (*jcc_fused_3): Likewise.
- (*jcc_fused_4): Likewise.
-
-2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
- (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
- * target.h (gcc_target): Add ira_cover_classes.
- * ira.c: Remove IRA_COVER_CLASSES guards.
- (setup_cover_and_important_classes): Use targetm.ira_cover_classes
- instead of IRA_COVER_CLASSES.
- (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
- (setup_class_translate): Likewise.
- (setup_reg_class_intersect_union): Likewise.
- (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
- test of targetm.ira_cover_classes.
- * opts.c (decode_options): Use targetm.ira_cover_classes instead
- of IRA_COVER_CLASSES.
- * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
- (TARGET_INITIALIZER): Include it.
- * targhooks.h (default_ira_cover_classes): Declare.
- * targhooks.c (default_ira_cover_classes): New function.
-
-2008-09-19 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
-
-2008-09-19 Ian Lance Taylor <iant@google.com>
-
- * varasm.c (narrowing_initializer_constant_valid_p): Return
- NULL_TREE if ENDTYPE is not an integer.
-
-2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/30930
- * tree-ssa.c (execute_update_addresses_taken): Also update
- DECL_GIMPLE_REG_P for vector and complex types.
-
-2008-09-19 Andrew MacLeod <amacleod@redhat.com>
- Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37567
- * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
- empty before freeing them.
- (find_replaceable_exprs): Move asserts to free_temp_expr_table.
-
-2008-09-18 Bob Wilson <bob.wilson@acm.org>
-
- * configure.ac: Add HAVE_AS_TLS check for Xtensa.
- * config/xtensa/predicates.md (tls_symbol_operand): New.
- * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
- (TARGET_CANNOT_FORCE_MEM): Define.
- (xtensa_tls_symbol_p): New.
- (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
- (xtensa_legitimate_address_p): Disallow constant pool TLS references.
- (xtensa_tls_module_base): New.
- (xtensa_call_tls_desc): New.
- (xtensa_legitimize_tls_address): New.
- (xtensa_legitimize_address): Handle TLS symbols.
- (xtensa_tls_referenced_p_1): New.
- (xtensa_tls_referenced_p): New.
- (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
- UNSPEC_DTPOFF.
- (XTENSA_BUILTIN_THREAD_POINTER): New.
- (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
- (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
- builtin. Add declarations for __builtin_thread_pointer and
- __builtin_set_thread_pointer.
- (xtensa_fold_builtin): Recognize new builtins.
- (xtensa_expand_builtin): Expand new builtins.
- * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
- (TARGET_THREADPTR): Define.
- (HAVE_AS_TLS): Define default value.
- (LEGITIMATE_CONSTANT_P): Disallow TLS references.
- * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
- (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
- (UNSPECV_SET_TP): New.
- (sym_TPOFF, sym_DTPOFF): New.
- (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
- * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
- * configure: Regenerated.
-
-2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37394
- * config/ia64/ia64.c (ia64_optimization_options): Move
- checking and setting flag_schedule_insns_after_reload and
- ia64_flag_schedule_insns2 back to ...
- (ia64_override_options): Here.
-
-2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-opt/37451
- * loop-doloop.c (doloop_modify): New argument zero_extend_p and
- zero extend count after the correction to it is done.
- (doloop_optimize): Update call to doloop_modify, don't zero extend
- count before call.
-
-2008-09-18 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
-
- * ipa-prop.c: Correct comments.
- * ipa-prop.h: Likewise.
-
-2008-09-18 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37448
- * ipa-reference.c (ipa_reference_local_vars_info_d,
- ipa_reference_global_vars_info_d,
- ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
- ipa_reference_vars_info_t): Move here from ipa-reference.h
- (node_duplication_hook_holder, node_removal_hook_holder): New.
- (get_reference_vars_info_from_cgraph): Rename to ...
- (get_reference_vars_info): ... this one, use cgraph uids.
- (get_local_reference_vars_info, get_global_reference_vars_info):
- Use cgraph instead of decl.
- (ipa_reference_get_read_local, ipa_reference_get_written_local):
- Remove.
- (ipa_reference_get_read_global, ipa_reference_get_not_read_global
- ipa_reference_get_written_global,
- ipa_reference_get_not_written_global): Use cgraph argument.
- (check_call): Simplify avail check.
- (scan_stmt_for_static_refs): Update.
- (propagate_bits): Update.
- (merge_callee_local_info): Remove.
- (init_function_info): Use cgraph nodes.
- (clean_function_local_data): Break out from ...
- (clean_function): ... here.
- (copy_local_bitmap, copy_global_bitmap): New functions.
- (duplicate_node_data, remove_node_data): New functions.
- (generate_summary): Register hooks; use visibility instead of
- master clones.
- (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
- * ipa-reference.h (ipa_reference_local_vars_info_d,
- ipa_reference_global_vars_info_d,
- ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
- ipa_reference_vars_info_t): Move to ipa-reference.c
- (ipa_reference_get_read_local, ipa_reference_get_written_local):
- Remove.
- (ipa_reference_get_read_global, ipa_reference_get_written_global,
- ipa_reference_get_not_read_global,
- ipa_reference_get_not_written_global): Update prototype.
- * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
- (init_state): Remove.
- (node_duplication_hook_holder, node_removal_hook_holder): New.
- (get_function_state, set_function_state): Use VECtor.
- (analyze_function): Check body availability.
- (add_new_function): Likewise.
- (duplicate_node_data, remove_node_data): New.
- (generate_summary): Register hooks; do not care about clones.
- (propafate): Do not care about clones; recursive functions are
- not looping.
- * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
- * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
- * edge_duplication_hook_holder, node_duplication_hook_holder): Make
- static.
- * tree-flow.h (function_ann_d): Remove reference_vars_info.
- * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
- Update call of ipa-reference accesors.
-
-2008-09-18 Simon Baldwin <simonb@google.com>
-
- * c-opts.c (c_common_handle_option): Add handling for
- -Wbuiltin-macro-redefined command line option.
- * c.opt: Added builtin-macro-redefined option.
- * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
- documentation.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37258
- * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
- and signedness for integral types.
- (vn_phi_eq): Require compatible types.
-
-2008-09-18 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/34037
- * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
- TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
- VAR_DECL.
- * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
- !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
- ggc_free other TREE_LIST nodes from that chain.
- * function.c (instantiate_decls): Instantiate also DECL_RTL
- of vars in cfun->local_decls, free that list afterwards.
-
-2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
- * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
-
-2008-09-18 Andrew MacLeod <amacleod@redhat.com>
-
- * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
- * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
-
-2008-09-18 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/37102
- * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
- from a node. Check to see if another PHI is dead.
- (eliminate_useless_phis): Rename from eliminate_virtual_phis and
- remove real PHIs which have no uses.
- (rewrite_out_of_ssa): Call eliminate_useless_phis.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37284
- * tree-cfg.c (remove_useless_stmts_1): Remove
- GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
-
-2008-09-18 Nick Clifton <nickc@redhat.com>
-
- * config/frv/frv.h (IRA_COVER_CLASSES): Define.
- (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
- to frv_secondary_reload_class.
- (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
- * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
- (frv_secondary_reload_class): Omit unused parameter.
- (frv_secondary_reload): New function. Handle the case when
- secondary_reload_class() is called before the reload_(in|out)
- _optabs have been initialised.
- * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
- unused parameter.
- * config/frv/frv.md: Define an exclusion set between fr550_m0
- and fr550_f0.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37456
- * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
- want to insert after ends a BB insert on the single fallthru
- outgoing edge.
-
-2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
- Mention -march=z9-109, z9-ec and z10.
-
-2008-09-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/37544
- * regrename.c (maybe_mode_change): Exit early when copy_mode
- is narrower than orig_mode and narrower than new_mode.
-
-2008-09-18 Alexander Monakov <amonakov@ispras.ru>
-
- PR middle-end/37499
- * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
-
- * sched-rgn.c (ref_counts): Remove.
- (insn_referenced): New static variable.
- (INSN_REF_COUNT): Remove.
- (sched_run_compute_dependencies): Use insn_referenced instead of
- INSN_REF_COUNT.
- (add_branch_dependences): Likewise. Delete dead assignment.
-
-2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
-
- * haifa-sched.c (dep_cost_1): Recognize the producer even if the
- consumer is an asm. Add comment why this is important.
- (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
- recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
-
-2008-09-17 Joseph Myers <joseph@codesourcery.com>
-
- * expr.c (emit_group_store): Do not shift before moving via a
- stack slot.
-
-2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * varasm.c (initializer_constant_valid_p): Forbid view-conversions
- from aggregate to non-aggregate type if the bit pattern is not fully
- preserved afterwards.
-
-2008-09-17 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
- (verify_gimple_assign): ... this. Split into ...
- (verify_gimple_assign_unary): ... this,
- (verify_gimple_assign_binary): ... that,
- (verify_gimple_assign_single): ... and this.
- (verify_types_in_gimple_stmt): Call verify_gimple_assign.
- Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
- (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
- (verify_types_in_gimple_reference): Be forgiving with
- VIEW_CONVERT_EXPRs.
- (verify_gimple_phi): Deal with virtual operands.
-
- * tree.def (PREDICT_EXPR): Change to tcc_expression.
-
-2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * tree.c (get_callee_fndecl): Don't call the language hook.
- * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
- * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
- (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
-
-2008-09-17 Jakub Jelinek <jakub@redhat.com>
-
- * tree.c (protected_set_expr_location): Don't unnecessarily
- check for error_mark_node.
-
-2008-09-17 Art Haas <ahaas@impactweather.com>
-
- * ipa-reference.c (analyze_function): Declare step only if
- ENABLE_CHECKING is defined.
-
-2008-09-17 Jan Hubicka <jh@suse.cz>
-
- PR c++/18071
- * tree.h (DECL_INLINE): remove.
- (DECL_DECLARED_INLINE_P): Update docs.
- (DECL_NO_INLINE_WARNING_P): new.
- (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
- * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
-
-2008-09-17 Jakub Jelinek <jakub@redhat.com>
- Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- PR bootstrap/37441
- * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
- false.
-
-2008-09-17 Jan Hubicka <jh@suse.cz>
-
- * ipa-reference.c (ipa_obstack): Remove.
- (local_info_obstack, global_info_obstack): New.
- (add_static_var): We now handle variables only.
- (mark_address_taken, mark_load, mark_store): New functions based on ...
- (check_operand): ... remove.
- (get_asm_stmt_operands): Rename to ...
- (check_asm_memory_clobber): ... this. Look only for memory clobber.
- (scan_stmt_for_static_refs): Rewrite.
- (scan_op_for_static_refs): Rename to ...
- (scan_initializer_for_static_refs): do not look for VAR_DECL
- initializers; stop recursion on types and decls.
- (ipa_init): Use proper obstacks.
- (analyze_variable): Use scan_initializer_for_static_refs.
- (init_function_info): Use local obstack.
- (analyze_function): Simplify.
- (add_new_function): We don't need visited_nodes obstack.
- (generate_summary): Use proper obstacks; cleanup after propagation.
-
-2008-09-17 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37385
- PR tree-optimization/37491
- * alias.c (get_alias_set): Use the canonical type.
- * tree-vect-transform.c (vectorizable_store): Use the type of
- the lhs for the vector type. Adjust checking.
- (vectorizable_load): Adjust checking.
-
-2008-09-16 Jakub Jelinek <jakub@redhat.com>
- Adam Nemet <anemet@caviumnetworks.com>
-
- PR rtl-optimization/37483
- * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
- if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
- Rearrange code to better match the original comment. Check
- t_unconditional first. Improve comment.
-
-2008-09-16 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37529
- * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
- GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
-
- PR c++/37530
- * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
- GIMPLE_TRY if cleanup sequence is empty.
-
-2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/37263
- * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
- eliminate IV if the cost are the same.
-
-2008-09-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37380
- * tree-sra.c (sra_build_assignment): Do not call the gimplifier
- if not necessary.
-
-2008-09-16 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37508
- * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
-
-2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
-
-2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
- use gen_floatdidf2 directly.
- (floatunssidf2): Likewise.
- (floatsidf_ppc64_mfpgpr): Remove.
- (floatsidf_ppc64): Remove.
- (floatunssidf_ppc64): Remove.
-
-2008-09-15 Jakub Jelinek <jakub@redhat.com>
-
- * ira-color.c (finish_cost_update): Free update_cost_queue_elems
- rather than update_cost_queue.
-
- * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
- in every call starting with the second one, instead of only when
- alias_bitmap_obstack.elements != NULL.
-
- * tree-predcom.c (filter_suitable_components): Free all refs in
- act->refs vector before calling release_component.
- (add_ref_to_chain): Free ref if not adding it to chain->refs.
-
- * tree-data-ref.c (free_subscripts): Free all subscript objects.
-
- * tree-loop-linear.c (linear_transform_loops): Initialize
- lambda_obstack only after calling perfect_loop_nest_depth.
- Goto free_and_continue instead of just continue for later failures.
-
- PR middle-end/37479
- * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
-
- PR libmudflap/36397
- * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
-
-2008-09-14 Andreas Schwab <schwab@suse.de>
-
- * tree-call-cdce.c (check_target_format): Accept Motorola formats.
-
-2008-09-14 Jan Hubicka <jh@suse.cz>
-
- * invoke.texi (-fconserve-stack): Document.
- * opts.c (decode_options): Handle conserve_stack.
- * common.opt (fconvserve_stack): New.
-
-2008-09-14 David Edelsohn <edelsohn@gnu.org>
-
- * config.host: Add x-aix to host_xmake_file.
- * config/rs6000/t-aix52: Do not override LDFLAGS.
- * config/rs6000/x-aix: New file.
-
-2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/19636
- PR target/24894
- PR target/31644
- PR target/31786
- * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
- is not recognized as a valid register usage. Allow REG_X to be used
- as a base pointer.
- * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
- forces a reload when using a base register.
-
-2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/cygming-crtend.c (register_frame_ctor): If
- DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
- directly with atexit.
- (deregister_frame_ctor): Rename to ...
- (deregister_frame_dtor): Use to call __gcc_deregister_frame
- if !DEFAULT_USE_CXA_ATEXIT.
-
-2008-09-13 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c: Include value-prof.h
- * Makefile.in (cgraph.o): Add value-prof.h dependency.
-
-2008-09-13 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/32581
- * tree-profile.c (add_abnormal_goto_call_edges): New function.
- (tree_gen_interval_profiler, tree_gen_pow2_profiler,
- tree_gen_one_value_profiler, tree_gen_average_profiler,
- tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
-
-2008-09-13 Jan Hubicka <jh@suse.cz>
-
- * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
- too many bytes on misalligned blocks.
-
-2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/cfg.texi: Fix some typos.
- * doc/extend.texi: Likewise.
- * doc/install.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * doc/rtl.texi: Likewise.
- * doc/tree-ssa.texi: Likewise.
-
-2008-09-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/30141
- * tree-nested.c (finalize_nesting_tree_1): Generate valid
- gimple stores for memory rhs.
-
-2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
-
- PR rtl-optimization/37489
- * cse.c (fold_rtx): Don't return const_true_rtx for float
- compare if FLOAT_STORE_FLAG_VALUE is undefined.
-
-2008-09-13 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/37392
- * tree-inline.c (remap_gimple_stmt): Do not remap return value.
-
-2008-09-13 Martin Jambor <mjambor@suse.cz>
- Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (free_edges): New variable.
- (NEXT_FREE_EDGE): New macro.
- (cgraph_free_edge): New function.
- (cgraph_remove_edge): Call cgraph_remove_edge_1.
- (cgraph_node_remove_callees): Likewise.
- (cgraph_node_remove_callers): Likewise.
- (cgraph_create_edge): Reuse edges from the free list. Do not
- update uid if doing so.
- (cgraph_remove_*_hook): Add free call.
-
-2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
-
- * ira-color.c (conflict_allocno_vec): Delete.
- (update_cost_queue_elem): New structure.
- (update_cost_queue): New variable.
- (update_cost_queue_tail): Likewise.
- (update_cost_queue_elems): Likewise.
- (allocno_update_cost_check): Delete.
- (initiate_cost_update): Allocate update_cost_queue_elems
- instead of allocno_update_cost_check.
- (finish_cost_update): Update the free()s accordingly.
- (start_update_cost): New function.
- (queue_update_cost): Likewise.
- (get_next_update_cost): Likewise.
- (update_copy_costs_1): Inline into...
- (update_copy_costs): ...here. Use a queue instead of recursive calls.
- Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
- once we've established they are equal. Don't allocate update
- costs if there is nothing to add to them.
- (update_conflict_hard_regno_costs): Remove ALLOCNO and
- DIVISOR arguments. Use a queue instead of recursive calls;
- process all the allocnos in the initial queue, rather than
- a single allocno.
- (assign_hard_reg): Use queue_update_cost instead of
- conflict_allocno_vec. Queue coalesced allocnos instead
- of calling update_conflict_hard_regno_costs for each one.
- Just call update_conflict_hard_regno_costs once for the
- entire queue.
- (ira_color): Remove conflict_allocno_vec handling.
-
-2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/37484
- * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
- (save_var_name): Same.
- (initialize_cloog_names): Same.
- (initialize_cloog_names): Same.
-
-2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-scalar-evolution.c (set_instantiated_value): Set
- instantiated_below.
-
-2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37377
-
- * ira-build.c (common_loop_tree_node_dominator): Remove.
- (copy_live_ranges_to_removed_store_destinations): New function.
- (regno_top_level_allocno_map): Move to top level from ...
- (ira_flattening): ... here. Use
- copy_live_ranges_to_removed_store_destinations.
-
- * ira-emit.c (generate_edge_moves): Fix a comment.
-
-2008-09-12 Anatoly Sokolov <aesok@post.ru>
-
- PR target/37466
- * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
- scratch register after 'set' pattern.
-
-2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
- information passed to mark_reg_pointer.
- * explow.c (force_reg): Likewise.
-
-2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
- when building for the celledp architecture.
-
-2008-09-12 Richard Guenther <rguenther@suse.de>
-
- * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
-
-2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
-
- PR rtl-optimization/37424
- * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
- the regnos instead of the addresses.
-
-2008-09-11 Janis Johnson <janis187@us.ibm.com>
-
- * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
-
-2008-09-11 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
- entering the weaker equivalence recording.
-
- * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
-
-2008-09-11 Jeff Law <law@redhat.com>
-
- * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
- by assign_stack_local on the IRA path for stack slot sharing
- as well as the non-IRA path.
-
-2008-09-11 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h: Fix whitespace issues.
-
-2008-09-11 Martin Jambor <mjambor@suse.cz>
-
- * ipa-prop.h (struct ipa_param_flags): Removed.
- (struct ipa_param_descriptor): New structure.
- (struct ipa_node_params): ipcp_lattices, param_decls and
- param_flags moved to ipa_param_description.
- (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
- descriptors. Renamed all users.
- (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
- changed to access descriptors. Renamed all users.
- (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
- to access descriptors. Renamed all users.
- * ipa-cp.c (ipcp_init_cloned_node): Call
- ipa_initialize_node_params instead of ipa_count_formal_params and
- ipa_create_param_decls_array.
- (ipcp_analyze_node): Likewise.
- (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
- descriptors. Renamed all users.
- (ipcp_initialize_node_lattices): Remove allocation.
- * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
- ipa_initialize_node_params instead of ipa_count_formal_params and
- ipa_create_param_decls_array.
- * ipa-prop.c (ipa_create_param_decls_array): Renamed to
- ipa_populate_param_decls, made static, added parameter info,
- renamed mt to node, removed allocation, changed to use
- descriptors.
- (ipa_count_formal_params): Made static, added parameter info,
- renamed mt to node.
- (ipa_initialize_node_params): New function.
- (ipa_check_stmt_modifications): Changed to use descriptors.
- (ipa_detect_param_modifications): Removed allocation, changed to
- use descriptors.
- (ipa_note_param_call): Changed to use descriptors.
- (ipa_analyze_params_uses): Removed allocation.
- (ipa_free_node_params_substructures): Changed to use descriptors.
- (ipa_edge_duplication_hook): Use the unused attribute.
- (ipa_node_duplication_hook): Use the unused attribute, changed to
- use descriptors, changed to duplicate descriptors.
-
- * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
- changed all callers. Call ipa_propagate_indirect_call_infos if doing
- indirect inlining. Made static.
- (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
- functions called only once.
- (cgraph_decide_recursive_inlining): Don't call
- ipa_propagate_indirect_call_infos, pass new_edges to
- cgraph_mark_inline_edge instead.
- (cgraph_decide_inlining_of_small_functions): Don't call
- ipa_propagate_indirect_call_infos, pass new_edges to
- cgraph_mark_inline_edge instead.
- (cgraph_decide_inlining): Don't call
- ipa_propagate_indirect_call_infos.
- * ipa-prop.c: Check that vectors are allocated.
-
- * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
- iff a new cgraph edges have been created.
- (cgraph_decide_inlining): New variable redo_always_inline.
- Flattening and always_inlining loop until callgraph stabilizes.
- * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
- true iff new cgraph edges have been created.
- (propagate_info_to_inlined_callees): Likewise.
- (ipa_propagate_indirect_call_infos): Likewise.
-
-2008-09-11 Richard Guenther <rguenther@suse.de>
-
- * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
- (set_prologue_iterations): Likewise.
- * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
- Likewise.
- (vect_update_init_of_dr): Likewise.
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
- type verification.
- * fold-const.c (fold_unary): Do not generate calculations
- in sub-types.
-
-2008-09-11 Paolo Bonzini <bonzini@gnu.org>
-
- * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
- TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
- (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
-
- * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
- a bool.
- * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
- VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
- before finalizing the changes.
- * tree-vrp.c (extract_range_from_binary_expr): Add limited support
- for BIT_IOR_EXPR.
- (simplify_truth_ops_using_ranges): New.
- (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
- simplify_cond_using_ranges, simplify_switch_using_ranges): Return
- whether a simplification was made.
- (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
- use a switch statement and also call simplify_truth_ops_using_ranges.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * ggc-common.c (loc_array): Make static.
- * dce.c (rest_of_handle_ud_dce): Free worklist.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_release_function_body): Plug memory leak on
- ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
- function so we are sure we do not dangle it forever.
- * function.c (outer_function_chain, find_function_data): Remove.
- (function_context_stack): New.
- (push_function_context, pop_function_context): Update.
- * function.h (struct function): Remove pointer outer.
- (outer_function_chain, find_function_data): Remove.
- * stmt.c (force_label_rtx): Remove dead call of find_function_data.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37448
- * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-pre.c (phi_translate_1): Fix memory leak
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
- (free_var_map_entry): New function.
- (redirect_edge_var_map_destroy): Use it.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37448
- * tree-inline.c (add_lexical_block): Replace with ...
- (prepend_lexical_block): ... prepend at begginig.
- (remap_blocks): Use it and reverse later.
- (expand_call_inline): Use prepend_lexical_block.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * function.c (free_after_compilation): Call insn_locators_free.
- * cfglayout.c (insn_locators_free): New function.
- * rtl.h (insn_locators_free): Declare.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * ifcvt.c (check_cond_move_block): Make regs argument pointer to
- vector pointer.
- (cond_move_process_if_block): Update call.
-
-2008-09-11 Jan Hubicka <jh@suse.cz>
-
- * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
- * vec.c: Include hashtab.h
- (vec_descriptor, ptr_hash_entry): New structures.
- (vec_desc_hash, vec_ptr_map): New static variables.
- (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
- register_overhead, free_overhead, vec_heap_free): New functions.
- (vec_gc_o_reserve_1): ggc_free when resizing to 0.
- (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
- (cmp_statistic, add_statistics, dump_vec_loc_statistics):
- New functions.
-
-2008-09-11 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37474
- * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
- length of load permutation.
-
-2008-09-11 Andreas Schwab <schwab@suse.de>
-
- * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
-
-2008-09-11 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37382
- * expmed.c (extract_low_bits): Avoid creating invalid subregs.
- * dse.c (find_shift_sequence): Use extract_low_bits instead of
- simplify_gen_subreg.
-
-2008-09-11 Ira Rosen <irar@il.ibm.com>
-
- * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
- for alias check.
-
-2008-09-10 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37338
- * gimplify.c (gimplify_body): Call default_rtl_profile.
-
- PR target/36904
- * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
- instead of tok->val.node if not expanding to something else. Handle
- intervening CPP_PADDING tokens.
- (altivec_categorize_keyword): Remove unneeded comparisons.
-
-2008-09-10 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
-
-2008-09-10 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37432
- * tree-inline.c (insert_init_stmt): Make sure to not
- insert invalid gimple stores.
-
-2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/37388
- * toplev.c (process_options): Fail and warn when graphite
- flags are used, but the compiler has not been configured
- with graphite libraries.
- * graphite.c (graphite_transform_loops): Remove printfs
- to dump_file for the case when graphite is not available.
-
-2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37434:
- * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
- the even element into register.
- (ix86_expand_vector_init_general): Don't use
- ix86_expand_vector_init_interleave on V16QImode and V8HImode
- if we can't move from GPR to SSE register directly.
-
-2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
- not lose track of the number of NOPs needed. Number of NOPs needed
- for sync vs. loads workaround was switched; corrected. Run second
- pass for all workarounds. No NOPs needed after call insns. Change
- second pass to use find_next_insn_start and find_load helpers in order
- to properly detect parallel insns.
- * config/bfin/bfin.md (cbranch_with_nops): Increase length.
-
-2008-09-10 Jan Hubicka <jh@suse.cz>
-
- * value-prof.c (gimple_ic): Fix tuplification bug.
- * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
- var warning.
-
-2008-09-10 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37353
- * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
- (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
- calls instead of cond_dead_built_in_calls.
- (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
- initalize the vector only before adding first entry. Use VEC_safe_push
- instead of VEC_quick_push. Pass cond_dead_built_in_calls to
- shrink_wrap_conditional_dead_built_in_calls call.
-
-2008-09-10 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37385
- * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
- argument, and use it as a vector type if not NULL.
- (vectorizable_store): Call vect_create_data_ref_ptr with the type of
- vectorized rhs.
- (vect_setup_realignment): Call vect_create_data_ref_ptr with
- additional argument.
- (vectorizable_load): Likewise.
-
-2008-09-10 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.md (SWI32): New mode iterator.
- (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
- of SWI.
-
-2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/37435
- * caller-save.c (insert_restore, insert_save): Check the mode by
- reg_save_code.
-
-2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR other/37265
- * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
- splay tree lookup.
- (dw2_output_indirect_constant_1): Use unstripped name in symbol
- reference.
-
-2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/invoke.texi (ARM Options): Correct errors in discussion
- of -mfloat-abi, -mhard-float, and -msoft-float.
-
-2008-09-09 Jakub Jelinek <jakub@redhat.com>
- Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37356
- * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
- calling gimple_regimplify_operands on it. Iterate over all newly
- added statements, not just the last one.
- (insert_init_stmt): Insert stmt into seq first, then call
- gimple_regimplify_operands on it. Don't create new gimplification
- context, nor find referenced vars.
-
-2008-09-09 Jakub Jelinek <jakub@redhat.com>
-
- PR other/37419
- * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
- to pointer to vector pointer.
- * ipa-prop.c (ipa_propagate_indirect_call_infos,
- propagate_info_to_inlined_callees): Likewise.
- (update_call_notes_after_inlining): Likewise. Push new indirect edge
- to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
- ipa_check_create_edge_args.
- * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
- argument to pointer to vector pointer.
- (cgraph_decide_inlining_of_small_function): Adjust
- cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
- calls.
-
- PR target/37438
- * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
- optimizing for size, not speed.
-
- PR rtl-optimization/37408
- * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
- if parm is promoted.
-
-2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/37375
- * tree-scalar-evolution.c (scev_info_str): Add field
- instantiated_below.
- (new_scev_info_str, eq_scev_info, find_var_scev_info,
- set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
- set_instantiated_value): Pass instantiated_below.
- (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
- to above functions.
- (instantiate_scev_1, instantiate_scev): Pass a basic block above which
- the definitions are not instantiated.
-
- * tree-scalar-evolution.h (instantiate_scev): Update declaration.
- (block_before_loop): New.
- * tree-data-ref.c (dr_analyze_indices): Update uses of
- instantiate_scev.
- * graphite.c (block_before_scop): New.
- (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
- basic block, not a loop for determining the parameters.
- (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
- scop.
- (idx_record_params, find_params_in_bb, find_scop_parameters,
- build_loop_iteration_domains, add_conditions_to_domain): Update calls
- to instantiate_scev.
-
- * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
-
-2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37333
-
- * ira-build.c (ira_create_allocno): Setup frequency to 0.
-
- * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
- Check zero freq and increase if necessary.
-
-2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-conflicts.c (process_regs_for_copy): Check that the hard
- regno is in the right range. Add comments.
-
-2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
- warnings.
- * mips-tfile.c (copy_object): Cast alloca result to int *.
- * mips-tdump.c (print_symbol): Cast xmalloc return values to
- proper types.
- Rename class to sclass.
- (read_tfile): Cast read_seek return values to proper types.
- Cast xcalloc return value to proper type.
-
-2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
- * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
- * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
-
-2008-09-09 Jan Hubicka <jh@suse.cz>
-
- * profile.c (is_edge_inconsistent): Add debug output; ignore
- negative count on fake edges.
- (is_inconsistent): Add debug output.
-
-2008-09-09 Andrey Belevantsev <abel@ispras.ru>
-
- * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
- dump message.
- (choose_ready): When first insn is chosen from the ready list, also
- dump it.
-
-2008-09-09 Andrey Belevantsev <abel@ispras.ru>
-
- PR rtl-optimization/37360
- * haifa-sched.c (max_issue): Do not assert that we never issue more
- insns than issue_rate. Add comment.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_types_in_gimple_op): Remove.
- (verify_types_in_gimple_call): Rename to ...
- (verify_gimple_call): ... this. Enhance.
- (verify_types_in_gimple_cond): Remove.
- (verify_gimple_comparison): New function ...
- (verify_types_in_gimple_assign): ... split out from here.
- (verify_types_in_gimple_return): Rename to ...
- (verify_gimple_return): ... this. Enhance.
- (verify_types_in_gimple_switch): Rename to ...
- (verify_gimple_switch): ... this. Enhance.
- (verify_gimple_goto): New function.
- (verify_types_in_gimple_phi): Rename to ...
- (verify_gimple_phi): ... this. Enhance.
- (verify_types_in_gimple_stmt): Adjust calls to helper functions.
- Fold in single-statement cases from verify_types_in_gimple_seq_2.
- (verify_types_in_gimple_seq_2): Remove cases handled in
- verify_types_in_gimple_stmt.
-
-2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (n_regs_to_save): New static variable.
- (push_multiple_operation, pop_multiple_operation): Set it.
- (workaround_rts_anomaly): New function.
- (workaround_speculation): New function, broken out of bfin_reorg.
- (bfin_reorg): Call the new functions.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37354
- PR middle-end/30165
- * gimplify.c (gimplify_conversion): Change conversions of
- non-register type to VIEW_CONVERT_EXPRs.
- (gimplify_addr_expr): If we need to make the operand
- addressable make sure to use a properly initialized
- temporary for that so it gets a valid gimple store.
-
-2008-09-09 Aldy Hernandez <aldyh@redhat.com>
-
- * function.h (struct function): Add function_start_locus.
- * cfgexpand.c (gimple_expand_cfg): Use it.
- * c-parser.c (c_parser_declaration_or_fndef): Set it.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37433
- * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
- function calls.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37387
- * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
- and bits to a common type.
-
-2008-09-09 Nick Clifton <nickc@redhat.com>
-
- * config/v850/v850.md (return): Restore frame size restriction.
+ * cfgexpand.c (expand_stack_alignment): Don't update stack
+ boundary nor check incoming stack boundary here.
+ (gimple_expand_cfg): Update stack boundary and check incoming
+ stack boundary here.
-2008-09-09 Paolo Bonzini <bonzini@gnu.org>
+2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
- * c-common.c (c_expand_decl): Remove.
- * c-common.h (anon_aggr_type_p): Remove prototype.
- (DECL_ANON_UNION_ELEMS): Remove.
- * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
- * c-decl.c (anon_aggr_type_p): Remove.
- * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
- (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
- * langhooks.h (struct lang_hooks): Remove expand_decl.
- * langhooks.c (lhd_expand_decl): Remove.
- * stmt.c (expand_anon_union_decl): Remove.
- * tree.h (expand_anon_union_decl): Remove prototype.
-
-2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/36609
- * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
- zero.
- * config/avr/avr.md (QISI) : Define mode iterator.
- (negated_tst<mode>) : Redefine as split using mode macro.
- (reversed_tstqi): Define insn as reversed compare with zero.
- (reversed_tsthi): Ditto.
- (reversed_tstsi): Ditto.
-
-2008-09-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37393
- * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
- call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
-
- PR middle-end/37414
- * predict.c (optimize_function_for_size_p): Don't segfault if
- FUN is NULL.
- * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
- tree_swap_operands_p): Don't test cfun != NULL before calling
- optimize_function_for_s*_p.
-
-2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
-
- * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
- end of the search.
-
-2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * crx/crx.h (IRA_COVER_CLASSES): Define.
-
-2008-09-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37337
- * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
- even when a stmt has been gimple_modified_p, but after fold_stmt is
- not any longer. Remove unneeded may_have_exposed_new_symbols
- initializations.
-
-2008-09-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37421
- * tree-ssa-sccvn.c (visit_copy): Make sure to fully
- valueize the RHS.
-
-2008-09-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37415
- * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
-
-2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR driver/37409
- * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
- * pa-hpux10.h (LINK_SPEC): Likewise.
- * pa-hpux11.h (LINK_SPEC): Likewise.
-
-2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * pa32-regs.h (IRA_COVER_CLASSES): Define.
- * pa64-regs.h (IRA_COVER_CLASSES): Define.
-
-2008-09-07 Helge Deller <deller@gmx.de>
-
- * pa/linux-atomic.c: New file.
- * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
- * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
-
-2008-09-07 Richard Guenther <rguenther@suse.de>
- Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36630
- * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
- Call STRIP_NOPS before calling evolution_part_in_loop_num.
-
-2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
- Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35642
- * config/rs6000/altivec.md (mulv8hi3): Implement.
-
-2008-09-06 Jeff Law <law@redhat.com>
-
- * h8300/h8300.h (IRA_COVER_CLASSES): Define.
-
-2008-09-06 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/14703
- * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
- declarations.
- * passes.c (init_optimization_passes): Recompute inline parameters.
-
-2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
- DECL being null.
-
-2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
- Peter Fuerst <post@pfrst.de>
-
- * doc/invoke.texi: Document -mr10k-cache-barrier=.
- * doc/extend.texi: Document __builtin_mips_cache.
- * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
- * config/mips/mips.opt (mr10k-cache-barrier=): New option.
- * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
- __GCC_HAVE_BUILTIN_MIPS_CACHE.
- (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
- * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
- (set_push_mips_isas): New variable.
- (mips_r10k_cache_barrier): New variable.
- (cache): New availability predicate.
- (mips_builtins): Add an entry for __builtin_mips_cache.
- (mips_build_cvpointer_type): New function.
- (MIPS_ATYPE_CVPOINTER): New macro.
- (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
- mode is VOIDmode.
- (r10k_simplified_address_p, r10k_simplify_address)
- (r10k_uncached_address_p, r10k_safe_address_p)
- (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
- (r10k_needs_protection_p_call, r10k_needs_protection_p)
- (r10k_insert_cache_barriers): New functions.
- (mips_reorg_process_insns): Delete cache barriers after a
- branch-likely instruction.
- (mips_reorg): Call r10k_insert_cache_barriers.
- (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
- * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
- (UNSPEC_R10K_CACHE_BARRIER): Likewise.
- (mips_cache, r10k_cache_barrier): New define_insns.
-
-2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
- * ira-color.c (setup_allocno_left_conflicts_num): Use
- hard_reg_set_equal_p instead of a comparison with
- ira_zero_hard_reg_set.
- * ira.c (setup_reg_subclasses): Likewise.
- (setup_cover_and_important_classes): Likewise.
- (setup_class_translate): Likewise.
- (setup_reg_class_intersect_union): Likewise.
- (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
- (ira_init_once): Don't initialize them.
-
-2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
-
- * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
-
-2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
-
-2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
-
- Improved branch hints, safe hints, and scheduling.
-
- * haifa-sched.c (sched_emit_insn) : Define.
- * sched-int.h (sched_emit_insn) : Add prototype.
- * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
- -mhint-max-distance -msafe-hints) : Document.
- * config/spu/spu.c (spu_flag_var_tracking): New.
- (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
- TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
- TARGET_ASM_FILE_START): Define.
- (TARGET_SCHED_ADJUST_PRIORITY): Remove.
- (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
- (spu_emit_branch_hint): Add blocks argument.
- (insert_branch_hints, insert_nops): Remove.
- (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
- uses_ls_unit, spu_sched_init_global, spu_sched_init,
- spu_sched_reorder, asm_file_start): New functions.
- (clock_var, spu_sched_length, pipe0_clock,
- pipe1_clock, prev_clock_var, prev_priority,
- spu_ls_first, prev_ls_clock): New static variables.
- * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
- * config/spu.md (iprefetch): Add operand, make it clobber MEM.
- (nopn_nv): Add a non-volatile version of nop.
- * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
- -mhint-max-distance, -msafe-hints): New options.
-
-2008-09-05 Janis Johnson <janis187@us.ibm.com>
- Samuel Tardieu <sam@rfc1149.net>
-
- * opts.c (decode_options): Combine nested if statements.
-
- PR target/37283
- * opts.c (decode_options): Handle more relationships among
- unit-at-a-time, toplevel-reorder, and section-anchors.
-
-2008-09-05 David Daney <ddaney@avtrex.com>
-
- * doc/install.texi (--enable-reduced-reflection): Document new option.
-
-2008-09-05 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
- constantpool_mem_p.
- (constantpool_operand): New.
- (move_operand): Disallow sub-word modes for the constant pool.
- * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
- (xtensa_secondary_reload_class): Replace with....
- (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
- Set icode for sub-word reloads from the constant pool.
- * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
- (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
- * config/xtensa/xtensa.md (reload<mode>_literal): New.
- * config/xtensa/xtensa-protos.h: Update prototypes.
-
-2008-09-05 Joseph Myers <joseph@codesourcery.com>
-
- * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
- (REG_CLASS_NAMES): Update.
- (REG_CLASS_CONTENTS): Update.
- * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
- of ALL_REGS for regs 77 and 78.
- * function.c (instantiate_virtual_regs_in_insn): Assert that
- return value of simplify_gen_subreg is not NULL.
-
-2008-09-05 Paolo Bonzini <bonzini@gnu.org>
-
- * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
- (gen_rtvec_v): Fix coding standards.
-
-2008-09-04 Jan Hubicka <jh@suse.cz>
-
- * i386.c (decide_alg): Be more conservative about optimizing for size.
-
-2008-09-04 Ian Lance Taylor <iant@google.com>
-
- * varasm.c (narrowing_initializer_constant_valid_p): New
- static function.
- (initializer_constant_valid_p): Call it.
-
-2008-09-04 Jeff Law <law@redhat.com>
-
- * fold-const.c (native_encode_real): Fix computation of WORDS.
- (native_interpret_real): Likewise.
-
-2008-09-04 Janis Johnson <janis187@us.ibm.com>
-
- * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
-
-2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-conflicts.c (process_regs_for_copy): Check insn to check
- that the cost is already taken into account in ira-costs.c
-
- * ira-int.h (ira_debug_copy, ira_debug_copies): New.
-
- * ira-build.c (print_copy, print_copies, ira_debug_copy,
- ira_debug_copies): New.
- (ira_bulid): Call print_copies.
-
- * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
-
-2008-09-04 Samuel Tardieu <sam@rfc1149.net>
-
- PR target/32783
- * config/rs6000/rs6000.c (optimization_options): Remove check of
- flag_toplevel_order.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
- * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
- second operand is a reg_imm10_operand.
- * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
- *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
- (*seq_<GPR:mode><GPR2:mode>): Rename to
- *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
- ISA_HAS_SEQ_SNE.
- (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
- *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
- ISA_HAS_SEQ_SNE.
- (*sne_<GPR:mode><GPR2:mode>): Rename to
- *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
- ISA_HAS_SEQ_SNE.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_EXTS): New macro.
- * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
- combining an arithmetic right shift by more than 31 and a
- trunction. Don't match for out-of-range shift amounts. Set
- attribute mode to <MODE>.
- (*lshr32_trunc<mode>): Name the pattern combining a logical right
- shift by 32 and and a truncation. Set attribute mode to <MODE>.
- (*<optab>_trunc<mode>_exts): New pattern for truncated right
- shifts by less than 32.
- (extv): Change predicate on first operand to accept registers.
- Change predicate of the other operands from immediate_operand to
- const_int_operand. Expand exts when source is a register.
- (extzv): Change predicate of the constant operands from
- immediate_operand to const_int_operand.
- (extzv<mode>): Change predicate of the constant operands from
- immediate_operand to const_int_operand and no constraint. Also
- remove mode.
- (*extzv_trunc<mode>_exts): New pattern.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_CINS): New macro.
- * config/mips/mips-protos.h (mask_low_and_shift_p,
- mask_low_and_shift_len): Declare.
- * config/mips/mips.c (mask_low_and_shift_p,
- mask_low_and_shift_len): New functions.
- (mips_print_operand): Handle new operand prefix "m".
- * config/mips/mips.md (*cins<mode>): New pattern.
-
-2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
- optimizing for size.
-
-2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
-
- * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
- regardless of epilogue_completed.
-
-2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
-
- PR middle-end/37359
- * ira-lives.c (process_bb_node_lives): Check setjmp.
-
-2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR middle-end/37243
- * ira-build.c (form_loop_tree): Reverse BB walk.
- (create_bb_allocnos): Likewise.
- * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
- (mark_reg_store): Rename to...
- (mark_ref_live): ...this and take a df_ref argument instead of
- note_stores arguments. Assert that we have a register.
- (mark_reg_clobber): Delete.
- (def_conflicts_with_inputs_p): New function.
- (mark_reg_conflicts): Delete.
- (mark_reg_death): Rename to...
- (mark_ref_dead): ...this and take a df_ref argument instead of
- a register. Assert that we have a register.
- (process_bb_node_lives): Hoist frequency calculation out of
- instruction walk. Convert from a forwards scan to a backwards scan.
- Use DF_REF_USES and DF_REF_DEFS instead of register notes and
- note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
- (create_allocno_live_ranges): Don't create regs_set.
-
-2008-09-04 Ian Lance Taylor <iant@google.com>
-
- * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
- or REG_LABEL_TARGET.
- * calls.c (emit_library_call_value_1): Use MEM_P rather than
- comparing MODE with MEM.
- * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
- comparing with GF_PREDICT_TAKEN.
- (gimple_get_lhs): Change code to enum gimple_code.
- (gimple_set_lhs): Likewise.
- * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
- * omp-low.c (find_omp_clause): Change kind parameter to enum
- omp_clause_code.
- * tree-flow.h (find_omp_clause): Update declaration.
- * regrename.c (clear_dead_regs): Change kind parameter to enum
- reg_note.
- * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
- GET_MODE.
- * see.c (see_get_extension_data): Change return type to enum
- entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
- SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
- (see_gen_normalized_extension): Change extension_code parameter to
- enum entry_type.
- (see_seek_pre_extension_expr): Change extension_code to enum
- entry_type.
- (see_merge_one_def_extension): Likewise.
- (see_handle_relevant_defs): Likewise.
- (see_handle_relevant_uses): Likewise.
- (see_analyze_one_def): Likewise.
- * tree-cfg.c (need_fake_edge_p): Compare gimple code with
- GIMPLE_ASM rather than ASM_EXPR.
- * tree-ssa-alias.c (is_escape_site): Compare gimple code with
- GIMPLE_RETURN rather than RETURN_EXPR.
- * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
- (evaluate_stmt): Likewise.
- * tree-vect-analyze.c (vect_analyze_operations): Change relevance
- to enum vect_relevant.
- (vect_mark_stmts_to_be_vectorized): Change assertion to not
- compare gimple codes with tree codes.
-
-2008-09-04 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
-
-2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
- pointer check lost in the recent no-unit-at-a-time patch.
-
-2008-09-04 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37343
- * tree-switch-conversion.c (check_final_bb): Accept only IP
- invariants.
-
-2008-09-04 Jan Hubicka <jh@suse.cz>
-
- * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
- Break out from ...
- (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
- using_ranges argument.
- (vrp_evaluate_conditional): Avoid bogus warning for type range.
- (vrp_visit_cond_stmt): Update call of
- vrp_evaluate_conditional_warnv_with_ops
-
-2008-09-04 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/37345
- PR tree-optimization/37358
- PR tree-optimization/37357
- * tree.c (build_function_type_skip_args): Build distinct type copy;
- set TYPE_CONTEXT.
- (build_function_decl_skip_args): Set type of new decl not orig decl;
- clear DECL_VINDEX for methods turned into functions.
-
-2008-09-04 Nick Clifton <nickc@redhat.com>
-
- * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
- * configure: Regenerate.
- * config.in: Regenerate.
- * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
- alignment field, if it is supported.
-
-2008-09-04 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/t-mingw32 (SHLIB_LC): Change order of import
- libraries.
-
-2008-09-03 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (processor_target_table): Do not
- enable VMX for POWER6.
-
-2008-09-03 Anton Blanchard <anton@samba.org>
-
- * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
- emit memory barrier before operation.
-
-2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
-
- PR testsuite/37325
- * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
- default_elf_asm_output_external.
-
-2008-09-03 Jeff Law <law@redhat.com>
-
- * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
-
-2008-09-03 Richard Henderson <rth@redhat.com>
-
- * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
- memory barrier to below the test-and-set.
- (alpha_split_lock_test_and_set_12): Likewise.
-
-2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37243
-
- * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
- all_allocnos.
-
- * ira-color.c (print_loop_title): Use all_allocnos.
- (color_pass): Ditto. Don't add border_allocnos. Check that
- subloop allocno in the correspdoning bitmap all_allocnos.
-
- * ira-emit.c (change_loop): Use all_allocnos.
-
- * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
- (ira_create_allocno): Set up all_allocnos bit for the created allocno.
- (create_cap_allocno): Remove setting mentioned_allocnos.
- (create_insn_allocnos): Ditto.
- (remove_unnecessary_allocnos): Use all_allocnos.
- (check_allocno_creation): Check that allocnos are in the
- corresponding bitmap all_allocnos.
-
-2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37243
-
- * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
- (process_regs_for_copy): Process subregs. Refine check when cost
- is taken into account in ira-costs.c.
- (process_reg_shuffles): Use REG_SUBREG_P.
- (add_insn_allocno_copies): Ditto. Ignore modes.
-
- * ira-color.c (conflict_allocno_vec): New.
- (COST_HOP_DIVISOR): New macro.
- (update_copy_costs_1): Use it.
- (update_conflict_hard_regno_costs): New function.
- (assign_hard_reg): Use it.
- (ira_color): Allocate and free conflict_allocno_vec.
-
-2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37296
-
- * ira-int.h (ira_sort_insn_chain): Remove.
-
- * ira.c (basic_block_order_nums, chain_insn_order,
- chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
- (ira): Don't call ira_sort_insn_chain.
-
- * reload1.c (reload): Don't call ira_sort_insn_chain.
-
-2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/37293
- * cgraphunit.c (update_call_expr): Remove eh regions from statements
- which become non throw.
- (cgraph_function_versioning): Also clear DECL_WEAK. Call
- update_call_expr after updating the flags on the decl.
-
-2008-09-03 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/37315
- * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
- * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
- (cgraph_analyze_functions): Use node->analyzed
- (cgraph_mark_functions_to_output): Likewise.
- (cgraph_expand_function): All functions can be released after
- expanding.
- (cgraph_optimize): Use gimple_has_body_p.
- * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
- (cgraph_decide_inlining_incrementally): Likewise.
- (inline_transform): Inline transform.
- * tree-inline.c (initialize_cfun): Do now shallow copy structure;
- copy fields needed.
- (inlinable_function_p): Drop gimple_body check.
- (expand_call_inline): Use gimple_has_body_p.
- * gimple.c (gimple_has_body_p): New.
- * gimple.h (gimple_has_body_p): Add prototype.
- * tree-cfg.c (execute_build_cfg): Remove gimple_body.
- (dump_function_to_file): Use gimple_has_body_p check.
-
-2008-09-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37346
- * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
- substatements.
- * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
-
-2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
-
- From Michael Frysinger <michael.frysinger@analog.com>
- * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
- bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
- for bf538.
-
-2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
-
- Add picoChip port.
- * doc/extend.texi: Document picoChip builtin functions.
- * doc/invoke.texi: Document picoChip options.
- * doc/contrib.texi: Add picoChip contribution.
- * doc/md.texi: Document picoChip constraints.
- * config.gcc: Add picochip-*-*.
- * config/picochip/: Add new port.
-
-2008-09-03 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37328
- * tree-sra.c (sra_build_assignment): Gimplify properly.
- (generate_copy_inout): Take the correct stmt as definition,
- remove bogus assert.
-
-2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
- attributes.
-
- From Michael Frysinger <michael.frysinger@analog.com>
- * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
-
-2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
-
- * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
- (__gthread_setspecific): Revert 2008-08-31 change to
- __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
-
-2008-09-02 Aldy Hernandez <aldyh@redhat.com>
-
- * diagnostic.c (error_at): New.
- * toplev.h (error_at): New prototype.
- * c-typeck.c (build_array_ref): Call error_at instead of error.
- Pass location to pedwarn.
-
-2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
-
- * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
-
-2008-09-02 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2out.c (tree_add_const_value_attribute): Only handle
- VAR_DECL and CONST_DECL.
-
-2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
- (setup_incoming_varargs_64): Assume cum != NULL. Set/check
- ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
- ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
- Don't set ix86_save_varrargs_registers.
- (ix86_setup_incoming_varargs): Assume cum != NULL.
- (ix86_va_start): Check ix86_varargs_gpr_size and
- ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
- cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
- from frame pointer if ix86_varargs_gpr_size == 0.
- (ix86_compute_frame_layout): Updated.
- * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
- (ix86_varargs_gpr_size): Define.
- (ix86_varargs_fpr_size): Likewise.
- (machine_function): Remove save_varrargs_registers.
- Add varargs_gpr_size and varargs_fpr_size.
-
-2008-09-02 Jakub Jelinek <jakub@redhat.com>
-
- * config/alpha/alpha.c (va_list_skip_additions,
- alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
- (alpha_gimplify_va_arg): Call unshare_expr on second use of
- offset_field.
-
- PR tree-optimization/36766
- * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
- for already removed basic blocks.
-
- PR target/36332
- * real.c (real_maxval): Clear a lower bit to make real_maxval
- match get_max_float for IBM long double format.
-
-2008-09-02 Andreas Schwab <schwab@suse.de>
-
- * configure.ac: Use m4_quote to quote the expansion of m4_do.
- * configure: Regenerate.
-
-2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
- SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
- checking for a non-VOID CONSTANT_P.
-
-2008-09-02 Jan Hubicka <jh@suse.cz>
-
- * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
- * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
- sdiv_pow2_cheap
-
-2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * expr.c (emit_group_store): Don't assert stack temp mode size.
-
-2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
- Tobias Grosser <grosser@fim.uni-passau.de>
- Jan Sjodin <jan.sjodin@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
- Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
- Konrad Trifunovic <konrad.trifunovic@inria.fr>
- Adrien Eliche <aeliche@isty.uvsq.fr>
-
- Merge from graphite branch.
- * graphite.c: New.
- * graphite.h: New.
- * tree-loop-linear.c (perfect_loop_nest_depth): Export.
- * doc/invoke.texi (-floop-block, -floop-interchange,
- -floop-strip-mine): Document new flags.
- * tree-into-ssa.c (gimple_vec): Moved...
- * tree-loop-distribution.c (rdg_component): Moved...
- * cfgloopmanip.c: Include tree-flow.h.
- (update_dominators_in_loop): New.
- (create_empty_if_region_on_edge): New.
- (create_empty_loop_on_edge): New.
- (loopify): Use update_dominators_in_loop.
- * tree-pass.h (pass_graphite_transforms): Declared.
- * configure: Regenerate.
- * tree-phinodes.c (make_phi_node): Export.
- (add_phi_node_to_bb): New, split from create_phi_node.
- * tree-chrec.c (for_each_scev_op): New.
- * tree-chrec.h (for_each_scev_op): Declared.
- * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
- (remove_statement): Call get_phi_with_result.
- * config.in (HAVE_cloog): Undef.
- * gdbinit.in (pgg): New.
- * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
- * tree-ssa-loop.c (graphite_transforms): New.
- (gate_graphite_transforms): New.
- (pass_graphite_transforms): New.
- * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
- HAVE_cloog): Defined.
- * tree-vectorizer.c (rename_variables_in_bb): Export.
- * tree-data-ref.c (dr_may_alias_p): Export.
- (stmt_simple_memref_p): New.
- (find_data_references_in_stmt): Export.
- (find_data_references_in_loop): Export.
- (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
- (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
- (create_rdg_vertices): Export.
- (build_empty_rdg): New.
- (build_rdg): Call build_empty_rdg. Free dependence_relations.
- * tree-data-ref.h (rdg_component): ... here.
- (scop_p): New.
- (struct data_reference): Add a field scop.
- (DR_SCOP): New.
- (find_data_references_in_loop): Declared.
- (find_data_references_in_stmt): Declared.
- (create_rdg_vertices): Declared.
- (dr_may_alias_p): Declared.
- (stmt_simple_memref_p): Declared.
- (struct rdg_edge): Add a field ddr_p relation.
- (build_empty_rdg): Declared.
- * lambda.h (lambda_matrix): Declare a VEC of.
- (find_induction_var_from_exit_cond): Declared.
- (lambda_vector_compare): New.
- * common.opt (fgraphite, floop-strip-mine,
- floop-interchange, floop-block): New flags.
- * lambda-code.c (find_induction_var_from_exit_cond): Export.
- * cfgloop.c (is_loop_exit): New.
- * cfgloop.h (is_loop_exit): Declared.
- (create_empty_if_region_on_edge): Declared.
- (create_empty_loop_on_edge): Declared.
- * tree-flow.h (add_phi_node_to_bb): Declared.
- (make_phi_node): Declared.
- (rename_variables_in_bb): Declared.
- (perfect_loop_nest_depth): Declared.
- (graphite_transform_loops): Declared.
- * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
- (graphite.o-warn): Add -Wno-error.
- (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
- (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
- (INCLUDES): Add PPLINC, CLOOGINC.
- (OBJS-common): Add graphite.o.
- (graphite.o): Add rule.
- * gimple.h (gimple_vec): ... here.
- * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
- * passes.c (init_optimization_passes): Schedule
- pass_graphite_transforms.
-
-2008-09-02 Samuel Tardieu <sam@rfc1149.net>
-
- PR target/37283
- * opts.c (decode_options): Move processing of -fno-unit-at-a-time
- and -fno-toplevel-reorder after handle_options.
-
-2008-09-02 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_tune_cortex_a9): Define.
- (arm_override_options): Set arm_tune_cortex_a9.
- (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
- (arm_issue_rate): Handle cortexa9.
- * config/arm/arm.h (arm_tune_cortex_a9): Declare.
- * config/arm/arm-cores.def: Add cortex-a9.
- * config/arm/arm-tune.md: Regenerate.
- * config/arm/arm.md: Include cortex-a9.md.
- (generic_sched, generic_vfp): Add cortexa9.
- * config/arm/cortex-a9.md: New file.
-
-2008-09-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37327
- * tree-vrp.c (register_new_assert_for): Make sure to not have
- TREE_OVERFLOW set on the bound.
-
-2008-09-02 Alexander Monakov <amonakov@ispras.ru>
-
- Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
-
- * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
- * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
- spec_info->mask.
-
-2008-09-02 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc/config/spu/spu.md (divdf3): Removed.
-
-2008-09-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37095
- * cgraph.c (cgraph_node): When creating new cgraph node after
- assembler_name_hash has been populated, record it in the hash
- table.
-
-2008-09-01 Paul Brook <paul@codesourcery.com>
-
- * doc/invoke.texi: Document -mword-relocations.
- * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
- * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
- * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
- * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
- (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
- (arm_emit_movpair): New function.
- (arm_print_operand <c>): Handle sybolic addresses.
- * config/arm/arm.h (TARGET_USE_MOVT): Define.
- (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
- * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
- * config/arm/arm.opt: Add -mword-relocations.
- * config/arm/arm.md (movsi): Use arm_emit_movpair.
- (arm_movt, arm_movw): New.
-
-2008-09-01 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
- Allow Interworking on ARMv4 EABI based targets.
- * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
- (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
-
-2008-09-01 Paul Brook <paul@codesourcery.com>
-
- * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
- optimized LT0 test. Remove optimization for GT.
-
-2008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * pa64-hpux.h (LIB_SPEC): Link against librt when building static
- openmp applications.
- * pa-hpux11.h (LIB_SPEC): Likewise.
-
- * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
- is defined.
-
-2008-09-01 Jan Hubicka <jh@suse.cz>
-
- * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
- present, use only counts; when guessed use only frequencies.
- (estimate_bb_frequencies): Use function_frequency.
- * profile.c (compute_branch_probabilities): Exit early when
- profile reading failed. Set profile_status.
- (branch_prob): Do not set profile_status.
-
-2008-09-01 Aldy Hernandez <aldyh@redhat.com>
-
- * tree.c (protected_set_expr_location): New.
- * tree.h (protected_set_expr_location): New prototype.
- * c-tree.h (build_array_ref): Add argument.
- (parser_build_unary_op): Same.
- * c-typeck.c (build_indirect_ref): Handle new location argument.
- (build_array_ref): Same.
- (parser_build_unary_op): Same.
- * gimplify.c (gimplify_asm_expr): Set input_location before calling
- error.
- * c-omp.c (c_finish_omp_atomic): Pass location when calling
- build_indirect_ref.
- * c-common.c (finish_label_address_expr): Handle new location argument.
- * c-common.h (build_indirect_ref): Add argument.
- (finish_label_address_expr): Same.
- * c-parser.c (c_parser_unary_expression): Pass location to build
- functions.
- (c_parser_postfix_expression): Same.
-
-2008-09-01 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.md: Include cortex-r4f.md.
- (attr fpu): Update type list.
- (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
- fconstd, fcmps and fcmpd.
- (attr tune_cortexr4): Define.
- (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
- * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
- fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
- * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
- * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
- * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
- cortex_a8_vfp_farith: Ditto.
- * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
- * config/arm/cortex-r4.md: Use tune_cortexr4.
- * config/arm/cortex-r4f.md: New file.
-
-2008-09-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37305
- * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
- the result of constant conversions.
- (fold_gimple_assign): Likewise.
-
-2008-09-01 Andrey Belevantsev <abel@ispras.ru>
-
- * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
- #ifdef ENABLE_CHECKING.
-
-2008-09-01 Andrey Belevantsev <abel@ispras.ru>
-
- * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
- * sched-int.h (print_insn, print_pattern, print_value): Declare also
- when !INSN_SCHEDULING.
-
-2008-09-01 Andreas Schwab <schwab@suse.de>
-
- * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
-
-2008-09-01 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
-
-2008-09-01 Jan Hubicka <jh@suse.cz>
-
- * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
-
- * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
- Pass speed operand.
- * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
- * gimplify.c (gimplify_init_constructor): Add speed operand.
- * tree-sra.c (decide_block_copy): Likewise.
- * tree-inline.c (estimate_move_cost): Likewise.
- * config/alpha/alpha.h (MOVE_RATIO): Update.
- * config/frv/frv.c (MOVE_RATIO): Update.
- * config/spu/spu.h (MOVE_RATIO): Update.
- * config/sparc/sparc.h (MOVE_RATIO): Update.
- * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
- * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
- * config/cris/cris.h (MOVE_RATIO): Update.
- * config/mn10300/mn10300.h (MOVE_RATIO): Update.
- * config/arm/arm.h (MOVE_RATIO): Update.
- * config/pa/pa.md: Update uses of MOVE_RATIO
- * config/pa/pa.h (MOVE_RATIO): Update.
- * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
- CLEAR_RATIO, SET_RATIO): Update.
- * config/h8300/h8300.h (MOVE_RATIO): Update.
- * config/v850/v850.h (MOVE_RATIO): Update.
- * config/bfin/bfin.h (MOVE_RATIO): Update.
-
-2008-08-31 Andrey Belevantsev <abel@ispras.ru>
- Dmitry Melnik <dm@ispras.ru>
- Dmitry Zhurikhin <zhur@ispras.ru>
- Alexander Monakov <amonakov@ispras.ru>
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
- sel-sched-dump.c, sel-sched-ir.c: New files.
- * Makefile.in (OBJS-common): Add selective scheduling object files.
- (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
- (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
- (sched-vis.o): Add dependency on $(INSN_ATTR_H).
- * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
- * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
- (make_forwarder_block): Update loop latch if we have redirected
- the loop latch edge.
- * cfgloop.c (get_loop_body_in_custom_order): New function.
- * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
- (CP_FALLTHRU_PREHEADERS): Likewise.
- (get_loop_body_in_custom_order): Declare.
- * cfgloopmanip.c (has_preds_from_loop): New.
- (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
- Assert that the preheader edge will be fall thru when it is set.
- * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
- fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
- fsel-sched-substitution, fselective-scheduling): New flags.
- * cse.c (hash_rtx_cb): New.
- (hash_rtx): Use it.
- * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
- sel_sched_insn_cnt): New counters.
- * final.c (compute_alignments): Export. Free dominance
- info after loop_optimizer_finalize.
- * genattr.c (main): Output maximal_insn_latency prototype.
- * genautomata.c (output_default_latencies): New.
- Factor its code from ...
- (output_internal_insn_latency_func): ... here.
- (output_internal_maximal_insn_latency_func): New.
- (output_maximal_insn_latency_func): New.
- * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
- (struct hard_reg_set_iterator): New.
- (hard_reg_set_iter_init, hard_reg_set_iter_set,
- hard_reg_set_iter_next): New functions.
- (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
- * lists.c (remove_free_INSN_LIST_node,
- remove_free_EXPR_LIST_node): New functions.
- * loop-init.c (loop_optimizer_init): When
- LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
- calling create_preheaders.
- (loop_optimizer_finalize): Do not verify flow info after reload.
- * recog.c (validate_replace_rtx_1): New parameter simplify.
- Default it to true. Update all uses. Factor out simplifying
- code to ...
- (simplify_while_replacing): ... this new function.
- (validate_replace_rtx_part,
- validate_replace_rtx_part_nosimplify): New.
- * recog.h (validate_replace_rtx_part,
- validate_replace_rtx_part_nosimplify): Declare.
- * rtl.c (rtx_equal_p_cb): New.
- (rtx_equal_p): Use it.
- * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
- (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
- debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
- * vecprim.h: Add a vector type for unsigned int.
- * haifa-sched.c: Include vecprim.h and cfgloop.h.
- (issue_rate, sched_verbose_param, note_list, dfa_state_size,
- ready_try, cycle_issued_insns, spec_info): Make global.
- (readyp): Initialize.
- (dfa_lookahead): New global variable.
- (old_max_uid, old_last_basic_block): Remove.
- (h_i_d): Make it a vector.
- (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
- through HID macro.
- (after_recovery, adding_bb_to_current_region_p):
- New variables to handle correct insertion of the recovery code.
- (struct ready_list): Move declaration to sched-int.h.
- (rgn_n_insns): Removed.
- (rtx_vec_t): Move to sched-int.h.
- (find_insn_reg_weight): Remove.
- (find_insn_reg_weight1): Rename to find_insn_reg_weight.
- (haifa_init_h_i_d, haifa_finish_h_i_d):
- New functions to initialize / finalize haifa instruction data.
- (extend_h_i_d, init_h_i_d): Rewrite.
- (unlink_other_notes): Move logic to add_to_note_list. Handle
- selective scheduler.
- (ready_lastpos, ready_element, ready_sort, reemit_notes,
- find_fallthru_edge): Make global, remove static prototypes.
- (max_issue): Make global. Add privileged_n and state parameters. Use
- them.
- (extend_global, extend_all): Removed.
- (init_before_recovery): Add new param. Fix the handling of the case
- when we insert a recovery code before the EXIT which has a predecessor
- with a fallthrough edge to it.
- (create_recovery_block): Make global. Rename to
- sched_create_recovery_block. Update.
- (change_pattern): Rename to sched_change_pattern. Make global.
- (speculate_insn): Rename to sched_speculate_insn. Make global.
- Split haifa-specific functionality into ...
- (haifa_change_pattern): New static function.
- (sched_extend_bb): New static function.
- (sched_init_bbs): New function.
- (current_sched_info): Change type to struct haifa_sched_info.
- (insn_cost): Adjust for selective scheduling.
- (dep_cost_1): New function. Move logic from ...
- (dep_cost): ... here.
- (dep_cost): Use dep_cost_1.
- (contributes_to_priority_p): Use sched_deps_info instead of
- current_sched_info.
- (priority): Adjust to work with selective scheduling. Process the
- corner case when all dependencies don't contribute to priority.
- (rank_for_schedule): Use ds_weak instead of dep_weak.
- (advance_state): New function. Move logic from ...
- (advance_one_cycle): ... here.
- (add_to_note_list, concat_note_lists): New functions.
- (rm_other_notes): Make static. Adjust for selective scheduling.
- (remove_notes, restore_other_notes): New functions.
- (move_insn): Add two arguments. Update assert. Don't call
- reemit_notes.
- (choose_ready): Remove lookahead variable, use dfa_lookahead.
- Remove more_issue, max_points. Move the code to initialize
- max_lookahead_tries to max_issue.
- (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
- ready. Adjust use of move_insn. Call restore_other_notes.
- (luid): Remove.
- (sched_init, sched_finish): Move Haifa-specific initialization/
- finalization to ...
- (haifa_sched_init, haifa_sched_finish): ... respectively.
- New functions.
- (setup_sched_dump): New function.
- (haifa_init_only_bb): New static function.
- (haifa_speculate_insn): New static function.
- (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
- (extend_ready, extend_all): Remove.
- (sched_extend_ready_list, sched_finish_ready_list): New functions.
- (create_check_block_twin, add_to_speculative_block): Use
- haifa_insns_init instead of extend_global. Update to use new
- initialization functions. Change parameter. Factor out code from
- create_check_block_twin to ...
- (sched_create_recovery_edges) ... this new function.
- (add_block): Remove.
- (sched_scan_info): New.
- (extend_bb): Use sched_scan_info.
- (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
- static functions for walking through scheduling region.
- (sched_luids): New vector variable to replace uid_to_luid.
- (luids_extend_insn): New function.
- (sched_max_luid): New variable.
- (luids_init_insn): New function.
- (sched_init_luids, sched_finish_luids): New functions.
- (insn_luid): New debug function.
- (sched_extend_target): New function.
- (haifa_init_insn): New static function.
- (sched_init_only_bb): New hook.
- (sched_split_block): New hook.
- (sched_split_block_1): New function.
- (sched_create_empty_bb): New hook.
- (sched_create_empty_bb_1): New function.
- (common_sched_info, ready): New global variables.
- (current_sched_info_var): Remove.
- (move_block_after_check): Use common_sched_info.
- (haifa_luid_for_non_insn): New static function.
- (init_before_recovery): Use haifa_init_only_bb instead of add_block.
- (increase_insn_priority): New.
- * modulo-sched.c: (issue_rate): Remove static declaration.
- (sms_sched_info): Change type to haifa_sched_info.
- (sms_sched_deps_info, sms_common_sched_info): New variables.
- (setup_sched_infos): New.
- (sms_schedule): Initialize them. Call haifa_sched_init/finish.
- Do not call regstat_free_calls_crossed.
- (sms_print_insn): Use const_rtx.
- * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
- PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
- PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
- PARAM_SCHED_MEM_TRUE_DEP_COST): New.
- * sched-deps.c (sched_deps_info): New. Update all relevant uses of
- current_sched_info to use it.
- (enum reg_pending_barrier_mode): Move to sched-int.h.
- (h_d_i_d): New variable. Initialize to NULL.
- ({true, output, anti, spec, forward}_dependency_cache): Initialize
- to NULL.
- (estimate_dep_weak): Remove static declaration.
- (sched_has_condition_p): New function. Adjust users of
- sched_get_condition to use it instead.
- (conditions_mutex_p): Add arguments indicating which conditions are
- reversed. Use them.
- (sched_get_condition_with_rev): Rename from sched_get_condition. Add
- argument to indicate whether returned condition is reversed. Do not
- generate new rtx when condition should be reversed; indicate it by
- setting new argument instead.
- (add_dependence_list_and_free): Add deps parameter.
- Update all users. Do not free dependence list when
- deps context is readonly.
- (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
- contexts.
- (remove_from_dependence_list, remove_from_both_dependence_lists): New.
- (remove_from_deps): New. Use the above functions.
- (cur_insn, can_start_lhs_rhs_p): New static variables.
- (add_or_update_back_dep_1): Initialize present_dep_type.
- (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
- haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
- haifa_note_dep): New functions implementing dependence hooks for
- the Haifa scheduler.
- (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
- note_dep): New functions.
- (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
- functions.
- (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
- (free_deps): Initialize deps->reg_last.
- (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
- sched_analyze_insn): Update to use dependency hooks infrastructure
- and readonly contexts.
- (deps_analyze_insn): New function. Move part of logic from ...
- (sched_analyze): ... here. Also move some logic to ...
- (deps_start_bb): ... here. New function.
- (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
- sel_sched_p.
- (sched_deps_init): New function. Move code from ...
- (init_dependency_caches): ... here. Remove.
- (init_deps_data_vector): New.
- (sched_deps_finish): New function. Move code from ...
- (free_dependency_caches): ... here. Remove.
- (init_deps_global, finish_deps_global): Adjust for use with
- selective scheduling.
- (get_dep_weak): Move logic to ...
- (get_dep_weak_1): New function.
- (ds_merge): Move logic to ...
- (ds_merge_1): New static function.
- (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
- (ds_get_max_dep_weak): New function.
- * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
- (n_insns): Rename to rgn_n_insns.
- (debug_ebb_dependencies): New function.
- (init_ready_list): Use it.
- (begin_schedule_ready): Use sched_init_only_bb.
- (ebb_print_insn): Indicate when an insn starts a new cycle.
- (contributes_to_priority, compute_jump_reg_dependencies,
- add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
- (add_block1): Remove to ebb_add_block.
- (ebb_sched_deps_info, ebb_common_sched_info): New variables.
- (schedule_ebb): Initialize them. Use remove_notes instead of
- rm_other_notes. Use haifa_local_init/finish.
- (schedule_ebbs): Use haifa_sched_init/finish.
- * sched-int.h: Include vecprim.h, remove rtl.h.
- (struct ready_list): Delete declaration.
- (sched_verbose_param, enum sched_pass_id_t,
- bb_vec_t, insn_vec_t, rtx_vec_t): New.
- (struct sched_scan_info_def): New structure.
- (sched_scan_info, sched_scan, sched_init_bbs,
- sched_init_luids, sched_finish_luids, sched_extend_target,
- haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
- (struct common_sched_info_def): New.
- (common_sched_info, haifa_common_sched_info,
- sched_emulate_haifa_p): Declare.
- (sel_sched_p): New.
- (sched_luids): Declare.
- (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
- (sched_max_luid, insn_luid): Declare.
- (note_list, remove_notes, restore_other_notes, bb_note): Declare.
- (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
- print_insn, print_pattern, print_value, haifa_classify_insn,
- sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
- setup_sched_dump, sched_init, sched_finish,
- sel_insn_is_speculation_check): Export.
- (struct ready_list): Move from haifa-sched.c.
- (ready_try, ready, max_issue): Export.
- (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
- sched_init_only_bb, sched_split_block, sched_split_block_1,
- sched_create_empty_bb, sched_create_empty_bb_1,
- sched_create_recovery_block, sched_create_recovery_edges): Export.
- (enum reg_pending_barrier_mode): Export.
- (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
- (deps_t): New.
- (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
- print_insn field. Move add_block and fix_recovery_cfg to
- common_sched_info_def. Move compute_jump_reg_dependencies,
- use_cselib ...
- (struct sched_deps_info_def): ... this new structure.
- (sched_deps_info): Declare.
- (struct spec_info_def): Remove weakness_cutoff, add
- data_weakness_cutoff and control_weakness_cutoff.
- (spec_info): Declare.
- (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
- dep_count field.
- (struct haifa_insn_data): Rename to struct _haifa_insn_data.
- (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
- (current_sched_info): Change type to struct haifa_sched_info.
- (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
- (h_d_i_d): New variable.
- (HDID): New accessor macro.
- (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
- (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
- and HDID.
- (IS_SPECULATION_CHECK_P): Update for selective scheduler.
- (enum SCHED_FLAGS): Update for selective scheduler.
- (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
- (init_dependency_caches, free_dependency_caches): Delete declarations.
- (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
- estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
- ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
- sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
- haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
- ds_to_dt): Export.
- (rm_other_notes): Delete declaration.
- (schedule_block): Remove one argument.
- (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
- ready_element, ready_lastpos, sched_extend_ready_list,
- sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
- concat_note_lists): Export.
- (struct region): Move from sched-rgn.h.
- (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
- RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
- BLOCK_TO_BB, CONTAINING_RGN): Export.
- (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
- (current_nr_blocks, current_blocks, target_bb): Likewise.
- (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
- sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
- sched_rgn_local_init, extend_regions,
- rgn_make_new_region_out_of_new_block, compute_priorities,
- debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
- extend_rgns, deps_join rgn_setup_common_sched_info,
- rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
- dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
- (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
- increase_insn_priority): Likewise.
- * sched-rgn.c: Include sel-sched.h.
- (ref_counts): New static variable. Use it ...
- (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
- (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
- (sched_is_disabled_for_current_region_p): Delete static declaration.
- (struct region): Move to sched-int.h.
- (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
- ebb_head): Define and initialize.
- (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
- BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
- BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
- sched-int.h.
- (find_single_block_region): Add new argument to indicate that EBB
- regions should be constructed.
- (debug_live): Delete declaration.
- (current_nr_blocks, current_blocks, target_bb):
- Remove static qualifiers.
- (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
- declaration.
- (init_regions): Delete declaration.
- (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
- rgn_estimate_number_of_insns): New.
- (too_large): Use estimate_number_of_insns.
- (haifa_find_rgns): New. Move the code from ...
- (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
- (free_trg_info): New.
- (compute_trg_info): Allocate candidate tables here instead of ...
- (init_ready_list): ... here.
- (rgn_print_insn): Use const_rtx.
- (contributes_to_priority, extend_regions): Delete static declaration.
- (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
- (add_block1): Rename to rgn_add_block.
- (debug_rgn_dependencies): Delete static qualifier.
- (new_ready): Use sched_deps_info. Simplify.
- (rgn_common_sched_info, rgn_const_sched_deps_info,
- rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
- New.
- (region_sched_info): Rename to rgn_const_sched_info.
- (deps_join): New, extracted from ...
- (propagate_deps): ... here.
- (compute_block_dependences, debug_dependencies): Update for selective
- scheduling.
- (free_rgn_deps, compute_priorities): New functions.
- (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
- sched_rgn_compute_dependencies): New functions.
- (schedule_region): Use them.
- (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
- rgn_setup_common_sched_info, rgn_setup_sched_infos):
- New functions.
- (schedule_insns): Call new functions that were split out.
- (rgn_make_new_region_out_of_new_block): New.
- (get_rgn_sched_max_insns_priority): New.
- (rest_of_handle_sched, rest_of_handle_sched2): Call selective
- scheduling when appropriate.
- * sched-vis.c: Include insn-attr.h.
- (print_value, print_pattern): Make global.
- (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
- * target-def.h (TARGET_SCHED_ADJUST_COST_2,
- TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
- TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
- TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
- TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
- hooks. Initialize them to 0.
- (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
- * target.h (struct gcc_target): Add them. Rename gen_check field to
- gen_spec_check.
- * flags.h (sel_sched_switch_set): Declare.
- * opts.c (sel_sched_switch_set): New variable.
- (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
- pipelining is disabled from command line.
- (common_handle_option): Record whether selective scheduling is
- requested from command line.
- * doc/invoke.texi: Document new flags and parameters.
- * doc/tm.texi: Document new target hooks.
- * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
- ia64_gen_check.
- (dfa_state_size): Do not declare locally.
- * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
- * config/rs6000/rs6000.c (rs6000_init_sched_context,
- rs6000_alloc_sched_context, rs6000_set_sched_context,
- rs6000_free_sched_context): New functions.
- (struct _rs6000_sched_context): New.
- (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
- scheduling.
- (rs6000_sched_finish): Do not run for selective scheduling.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * frv.c (frv_rtx_costs): Update forward declaration.
- * spu.c (spu_rtx_costs): Likewise.
- * pdp11.c: Include df.h
- (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
- * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
- (m68hc11_rtx_costs_1): Fix call of rtx_cost.
- * iq2000.c (iq2000_address_cost): Add speed argument.
- (iq2000_rtx_costs): Likewise.
- * mn10300.c (mn10300_address_cost_1): Remove speed argument;
- update call of mn10300_address_cost.
- * mcore.c: Include df.h
- (mcore_rtx_costs): Update prototype.
- * score3.c: Include df.h
- (score3_rtx_costs): Remove speed argument.
- * score7.c: Include df.h
- (score7_address_cost): Remove speed argument.
- * score-protos.h (score_address_cost): Update prototype.
- * score.c: Include df.h
- (score_rtx_costs): Update call of costs functions.
- * v850.c (v850_rtx_costs): Add bool argument.
-
-2008-08-31 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
-
-2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
- * config/i386/gthr-win32.c (__gthread_setspecific): Same.
-
-2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * mkmap-flat.awk: Add option pe_dll.
- * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
- * config/i386/t-cygwin (SHLIB_LC): Add.
- * config/i386/t-mingw32 (SHLIB_LC): Add.
- * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
- (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
- (LINK_SPEC): Support libgcc_s.
- (LIBGCC_SPEC): Support libgcc_s.
- (LIBGCC_SONAME): New.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
- mistakely had old version of patch.
-
- * ipa-cp.c (ipcp_need_original_clone_p): Remove.
- (ipcp_estimate_growth): New.
- (ipcp_insert_stage): Use ipcp_estimate_growth.
- * profile.c (branch_prob): When reading failed, do not consider
- profile as read.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
- loop is optimized for speed.
-
-2008-08-31 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37289
- * fold-const.c (fold_binary): Retain conversions in folding
- ~A + 1 to -A.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * postreload-gcse.c (eliminate_partially_redundant_loads):
- Use optimize_bb_for_size_p.
- * predict.c (maybe_hot_frequency_p): Make inline.
- (maybe_hot_count_p): Break out from ...
- (maybe_hot_bb_p): ... this one.
- (maybe_hot_edge_p): Simplify.
- * basic-block.h (probably_cold_bb_p): Remove.
-
-2008-08-31 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37168
- * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
- prototype.
- * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
- * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
- Also split V4SFmode.
- * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
- vector float modes.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * predict.c (PROB_VERY_LIKELY): Make small enough so things
- become cold.
- * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
-
-2008-08-31 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37287
- * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
- add source coords.
-
- * dwarf2out.c (native_encode_initializer): Subtract min_index for
- non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * sparc.h (BRANCH_COST): Fix macro definition.
- * avr.c (avr_operand_rtx_cost): Add speed argument.
- (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
-
-2008-08-31 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
- types instead of operands. Re-instantiate verifying of
- binary expression operands.
-
-2008-08-30 Jan Hubicka <jh@suse.cz>
-
- * fwprop.c (should_replace_address): Add speed attribute.
- (PR_OPTIMIZE_FOR_SPEED): New flag.
- (propagate_rtx_1): Use it.
- (propagate_rtx): Set it.
- (try_fwprop_subst): Update call of rtx_costs.
- (forward_propagate_and_simplify): LIkewise.
- * hooks.c (hook_int_rtx_bool_0): New
- (hook_bool_rtx_int_int_intp_false): Replace by ...
- (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
- * hooks.h (hook_int_rtx_bool_0): New
- (hook_bool_rtx_int_int_intp_false): Replace by ...
- (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
- * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
- (prepare_cmp_insn): UPdate call of rtx_cost.
- * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
- (reload_cse_simplify_operands): Update call of rtx_cost.
- (reload_cse_move2add): call of rtx_cost.
- * target.h (struct gcc_target): Update rtx_costs and address_costs.
- * rtlanal.c (rtx_cost): Add speed argument.
- (address_cost): Add speed argument
- (default_address_cost): Likewise.
- (insn_rtx_cost): Likewise.
- * cfgloopanal.c (seq_cost): Add speed argument.
- (target_reg_cost, target_spill_cost): Turn to array.
- (init_set_costs): Update for speed.
- (estimate_reg_pressure_cost): Add speed argument.
- * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
- * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
- * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
- (seq_cost): Add speed argument.
- (computation_cost): Add speed arugment.
- (add_cost, multiply_by_const, get_address_cost): add speed argument.
- (force_expr_to_var_cost): Update for profile info.
- (force_var_cost): Likewise.
- (split_address_cost): Likewise.
- (ptr_difference_cost): Likewise.
- (difference_cost): Likewise.
- (get_computation_cost_at): Likewise.
- (determine_iv_cost): Likewise.
- (ivopts_global_cost_for_size): Likewise.
- (rewrite_use_address): Likewise.
- (tree_ssa_iv_optimize_loop): Initialize speed field.
- * cse.c (optimize_this_for_speed_p): New static var.
- (notreg_cost): Update call of rtx_cost.
- (cse_extended_basic_block): set optimize_this_for_speed_p.
- * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
- (noce_try_cmove_arith): Likewise.
- (noce_try_sign_mask): LIkewise.
- * expr.c (compress_float_constant): Update rtx_cost calls.
- * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
- argument.
- (addr_to_parts): Likewise.
- (create_mem_ref): Likewise.
- * dse.c (find_shift_sequence): Add speed argument.
- (replace_read): Update call.
- * calls.c (precompute_register_parameters): Update call of rtx_cost.
- * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
- * neg_cost, shift_cost, shiftadd_cost,
- shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
- mul_highpart_cost): Increase dimension.
- (init_expmed): Initialize for both size and speed.
- (expand_shift): Use profile.
- (synth_mult): Use profile.
- (choose_mult_variant): Use profile.
- (expand_mult): Use profile.
- (expand_mult_highpart_optab): Use profile.
- (expand_mult_highpart): Use profile.
- (expand_smod_pow2): Use profile.
- (expand_divmod): Use profile.
- * simplify-rtx.c (simplify_binary_operation_1): Update call of
- rtx_cost.
- * loop-invariant.c (create_new_invariant): Use profile.
- (gain_for_invariant): Add speed parameter.
- (best_gain_for_invariant): Likewise.
- (find_invariants_to_move): Likewise.
- (move_single_loop_invariants): Set it.
- * target-def.h (TARGET_RTX_COSTS): Use hook.
- * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
- (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
- * output.h (default_address_cost): Update prototype.
- * combine.c (optimize_this_for_speed_p): New static var.
- (combine_validate_cost): Update call of rtx_cost.
- (combine_instructions): Set optimize_this_for_speed_p.
- (expand_compound_operation): Update call of rtx_cost.
- (make_extraction):Update call of rtx_cost.
- (force_to_mode):Update call of rtx_cost.
- (distribute_and_simplify_rtx):Update call of rtx_cost.
- * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
- (estimate_reg_pressure_cost): Update prototype.
- * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
- * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
- Remove.
- * config/alpha/alpha.c (alpha_rtx_costs): Update.
- (alpha_rtx_costs): Update.
- * config/frv/frv.c (frv_rtx_costs): Update.
- * config/s390/s390.c (s390_rtx_costs): Update.
- * config/m32c/m32c.c (m32c_memory_move_cost): Update.
- (m32c_rtx_costs): Update.
- * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
- (spu_rtx_costs): Update.
- * config/sparc/sparc.c (sparc_rtx_costs): Update.
- * config/m32r/m32r.c (m32r_rtx_costs): Update.
- * config/i386/i386.c (:ix86_address_cost): Update.
- (ix86_rtx_costs): Update.
- * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
- * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
- * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
- * config/crx/crx.c (crx_address_cost): Update.
- * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
- * config/stormy16/stormy16.c
- (xstormy16_address_cost, xstormy16_rtx_costs): Update.
- * config/m68hc11/m68hc11.c
- (m68hc11_address_cost, m68hc11_rtx_costs): Update.
- * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
- * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
- Update.
- * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
- Update
- * config/ia64/ia64.c (ia64_rtx_costs): Update.
- * config/m68k/m68k.c (m68k_rtx_costs): Update.
- * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
- * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
- * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
- (mcore_rtx_costs): update.
- * config/score/score3.c (score3_rtx_costs): Update.
- * config/score/score7.c (score7_rtx_costs): Update.
- * config/score/score3.h (score3_rtx_costs):Update.
- * config/score/score7.h (score7_rtx_costs): Update.
- * config/score/score.c (score_rtx_costs): Update.
- * config/arm/arm.c (arm_address_cost): Update.
- (arm_rtx_costs_1): Update.
- (arm_rtx_costs_1): Update.
- (arm_size_rtx_costs): Update.
- (arm_size_rtx_costs): Update.
- (arm_size_rtx_costs): Update.
- (arm_xscale_rtx_costs): Update.
- (arm_thumb_address_cost): Update.
- * config/pa/pa.c (hppa_address_cost): Update.
- * config/mips/mips.c (mips_rtx_costs): Update.
- * config/vax/vax.c (vax_address_cost): Update.
- * config/h8300/h8300.c (h8300_shift_costs): Update.
- (h8300_rtx_costs): Update.
- * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
- (v850_rtx_costs): Update.
- * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
- * config/bfin/bfin.c
- (bfin_address_cost): Update.
- (bfin_rtx_costs): Update.
- * stmt.c (lshift_cheap_p): Update.
-
-2008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36444
- * expmed.c (extract_bit_field_1): Check the mode size to make
- sure the vector modes have the same size.
-
-2008-08-29 Michael Meissner <gnu@the-meissners.org>
-
- * dojump.c (top level): Include basic-block.h to declare
- optimize_insn_for_speed_p
-
- * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
-
- * opts.h (CL_SAVE): New option class for marking options that are
- target specific options usable in the target attribute.
- (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
-
- * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
- can easily find the target specific options that are safe to use
- in the attribute or pragma.
-
- * attribs.c (decl_attributes): Change #pragma GCC option to
- #pragma GCC target, and attribute((option(...))) to
- attribute((target(...))).
-
- * doc/extend.texi (target attribute): Change from option
- attribute. Delete push/pop/reset.
- (#pragma GCC target): Change from #pragma GCC option. Delete
- push/pop/reset.
- (#pragma GCC push_options): Document new pragma.
- (#pragma GCC pop_options): Document new pragma.
- (#pragma GCC reset_options): Document new pragma.
-
- * targhooks.c (default_target_option_valid_attribute_p): Add
- warning about port not supporting target attributes.
- (default_target_option_pragma_parse): New function, warn about
- #pragma GCC target not being supported.
-
- * targhooks.h (default_target_option_pragma_parse): Add
- declaration.
-
- * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
- TI_CURRENT_OPTION_PRAGMA.
- (current_target_pragma): Rename from current_option_pragma.
-
- * target.h: (struct target_option): Delete booleans for changing
- the optimization level on hot/cold functions. Change signature of
- pragma_parse hook to take a second tree.
-
- * c-tree.h (c_builtin_function_ext_scope): Add declaration.
-
- * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
- that the declaration is done at global scope.
-
- * langhooks.c (add_builtin_function_common): Move most of the code
- from add_builtin_function here, calling the hook passed in.
- (add_builtin_function): Call add_builtin_function_common with
- standard builtin hook.
- (add_builtin_function_ext_scope): New function to add builtins to
- global scope.
-
- * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
- hook.
- (add_builtin_function_ext_scope): Add declaration.
-
- * c-pragma.c (handle_pragma_target): Rename from
- handle_pragma_option, #pragma GCC option is now #pragma GCC
- target. Move warning about port not supporting target options to
- default pragma parse hook. Remove push/pop/reset from this
- pragma.
- (handle_pragma_optimize): Remove push/pop/reset from this pragma.
- (option_stack): Delete static variable.
- (optimize_stack): Ditto.
- (optons_stack): New stack of saved target and optimization
- options.
- (handle_pragma_push_options): New function to handle pushing both
- target and optimization options.
- (handle_pragma_pop_options): New function to handle popping both
- target and optimization options.
- (handle_pragma_reset_options): New function to handle resetting
- both target and optimization options to their initial state.
- (init_pragma): Rename handle_pragma_option to
- handle_pragma_target. Add support for push_options, pop_options,
- and reset_options pragmas.
-
- * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
- default_target_option_pragma_parse.
- (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
- default_target_option_valid_attribute_p.
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
- (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
- (TARGET_OPTION_HOOKS): Delete the fields for whether to change
- optimization level on hot/cold functions.
-
- * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
- if the caller and callee have different optimization levels.
-
- * c-common.c (handle_target_attribute): Rename from
- handle_option_attribute, attribute((option(...))) is now
- attribute((target(...))). Move warning if the port does not
- support target attributes to the default hook.
- (handle_hot_attribute): Delete code to change the optimization
- level of hot functions.
- (handle_cold_attribute): Ditto.
-
- * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
- argument that is the binary tree options to use if there are no
- arguments. Call ix86_valid_target_attribute_tree instead of
- ix86_valid_option_attribute_tree.
- (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
- (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
- ix86_pragma_option_parse.
-
- * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
- Rename from ix86_valid_option_attribute_tree.
-
- * config/i386/i386.c (ix86_add_new_builtins): New function to add
- new builtins when the ISA changes.
- (ix86_valid_target_attribute_tree): Rename from
- ix86_valid_option_attribute_tree. Change callers. If the
- function specified optimization options, use those as the starting
- point before setting up the target attributes. If the
- optimization options were changed in the course of setting the
- target attributes, record the new optimization options.
- (ix86_valid_target_attribute_tree_inner_p): Rename from
- ix86_valid_option_attribute_tree_inner_p. Change callers. Call
- ix86_add_new_builtins if the ISA changed.
- (ix86_valid_target_attribute_p): Rename from
- ix86_valid_option_attribute_p. Change callers.
- (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
- __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
- as delayed builtin functions.
- (struct builtin_isa): New structure to record builtin functions
- that should be delayed until the ISA for that function is used.
- (ix86_builtins_isa): Change from int to struct to track builtin
- functions we want to declare at some point.
- (def_builtin): If the front end can delay defining the builtin
- functions, don't create builtins for ISAs not part of the default
- options.
- (def_builtin_const): Ditto.
- (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
- __builtin_ia32_pcmov_v2di to be different builtin functions.
- (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
- a structure instead of an int.
- (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
- ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
- (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
-
- * config/ia64/ia64.h
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
- (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
-
- * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
- hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
- (LANG_HOOKS_INITIALIZER): Add
- LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
-
-2008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/37270
- * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
- the reload address with the index register for SFmode
- access with a displacement.
-
-2008-08-30 Jan Hubicka <jh@suse.cz>
-
- * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
- * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
- * dojump.c (do_jump): Likewise.
- * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
- (note-if_info): Add BRANCH_COST.
- (noce_try_store_flag_constants, noce_try_addcc,
- noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
- noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
- find_if_case_2): Use computed branch cost.
- * expr.h (BRANCH_COST): Update default.
- * predict.c (predictable_edge_p): New function.
- * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
- Update BRANCH_COST call.
- * basic-block.h (predictable_edge_p): Declare.
- * config/alpha/alpha.h (BRANCH_COST): Update.
- * config/frv/frv.h (BRANCH_COST): Update.
- * config/s390/s390.h (BRANCH_COST): Update.
- * config/spu/spu.h (BRANCH_COST): Update.
- * config/sparc/sparc.h (BRANCH_COST): Update.
- * config/m32r/m32r.h (BRANCH_COST): Update.
- * config/i386/i386.h (BRANCH_COST): Update.
- * config/i386/i386.c (ix86_expand_int_movcc): Update use of
- BRANCH_COST.
- * config/sh/sh.h (BRANCH_COST): Update.
- * config/pdp11/pdp11.h (BRANCH_COST): Update.
- * config/avr/avr.h (BRANCH_COST): Update.
- * config/crx/crx.h (BRANCH_COST): Update.
- * config/xtensa/xtensa.h (BRANCH_COST): Update.
- * config/stormy16/stormy16.h (BRANCH_COST): Update.
- * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
- * config/iq2000/iq2000.h (BRANCH_COST): Update.
- * config/ia64/ia64.h (BRANCH_COST): Update.
- * config/rs6000/rs6000.h (BRANCH_COST): Update.
- * config/arc/arc.h (BRANCH_COST): Update.
- * config/score/score.h (BRANCH_COST): Update.
- * config/arm/arm.h (BRANCH_COST): Update.
- * config/pa/pa.h (BRANCH_COST): Update.
- * config/mips/mips.h (BRANCH_COST): Update.
- * config/vax/vax.h (BRANCH_COST): Update.
- * config/h8300/h8300.h (BRANCH_COST): Update.
- * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
- * doc/invoke.texi (predictable-branch-cost-outcome): Document.
- * doc/tm.texi (BRANCH_COST): Update.
-
-2008-08-30 Samuel Tardieu <sam@rfc1149.net>
-
- PR target/37283
- * config/arm/arm.c (arm_optimization_options): Set
- flag_section_anchors to 2 instead of 1 to distinguish it from
- -fsection-anchors given explicitely on the command line.
-
-2008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
-
- * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
- final insn of a split.
-
-2008-08-30 Jan Hubicka <jh@suse.cz>
-
- * postreload-gcse.c (gate_handle_gcse2): Disable for functions
- optimized for speed.
- * final.c (compute_alignments): Use optimize_bb_for_size_p.
- * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
- * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
- flag_gcse_after_reload_set): New static vars.
- (common_handle_option): Enable those flags for profile-use.
- (decode_options): Remove optimize_size flags that are handled
- on higher granuality.
- * tree-vectorizer.c (vectorize_loops): Use
- optimize_loop_nest_for_speed_p.
- * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
- * tree-predcom.c (tree_predictive_commoning): Use
- optimize_loop_for_speed_p.
- * varasm.c (assemble_start_function): Use
- optimize_function_for_speed_p.
- * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
- * predict.c (optimize_loop_for_speed_p): Fix walk.
-
-2008-08-30 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
- functions.
- (cgraph_decide_inlining_of_small_function): Use edge->count to detect
- profile presence locally.
-
-2008-08-29 Joseph Myers <joseph@codesourcery.com>
-
- PR bootstrap/37086
- * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
- versions before 4.0.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * tree-inline.c (insert_init_stmt): Insert sequence even when
- not in SSA form.
-
-2008-08-29 Jeff Law <law@redhat.com>
-
- * mn10300.c (mn10300_secondary_reload_class): We need secondary
- reloads for AM33-2 if IN is a pseudo with an equivalent memory
- location and class is an FP register.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * see.c (see_merge_one_def_extension): Silence used uninitialized
- warning.
- * matrix-reorg.c (check_allocation_function): Likewise.
- * config/i386/driver-i386.c (detect_caches_amd): Likewise.
-
-2008-08-29 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37261
- * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
- compute new & and | in type rather than TREE_TYPE (arg0).
-
- * dwarf2out.c (fortran_common): Update comment.
- (gen_variable_die): Swap com_die and var_die variables in Fortran
- COMMON block handling code.
-
- * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
-
- * dwarf2out.c (gen_const_die): New function.
- (size_of_die, value_format, output_die): Output larger
- dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
- (native_encode_initializer): New function.
- (tree_add_const_value_attribute): Call it.
- (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
-
- * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
- DECL_BY_REFERENCE decls don't pass TREE_READONLY and
- TREE_THIS_VOLATILE to add_type_attribute.
-
- * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
- types.
- (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
- types.
-
- * dwarf2out.c (loc_by_reference): New function.
- (add_location_or_const_value_attribute): Use it.
-
- PR fortran/23057
- * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
- as DW_TAG_variable children of DW_TAG_common_block rather than
- DW_TAG_member children. Put DW_AT_external to individual
- DW_TAG_variable DIEs, not to DW_TAG_common_block.
-
- * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
- loc_descriptor_from_tree_1.
-
- PR fortran/29635
- PR fortran/23057
- * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
- arguments to imported_module_or_decl.
- (debug_nothing_tree_tree): Removed.
- (debug_nothing_tree_tree_tree_bool): New prototype.
- * debug.c (do_nothing_debug_hooks): Adjust.
- (debug_nothing_tree_tree): Removed.
- (debug_nothing_tree_tree_tree_bool): New function.
- * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
- (gen_variable_die): Put all common vars for the
- same COMMON block under one DW_TAG_common_block.
- (declare_in_namespace): Return new context_die, for Fortran
- return the module DIE instead of adding extra declarations into
- the namespace.
- (gen_type_die_with_usage): Adjust declare_in_namespace caller.
- (gen_namespace_die): If is_fortran (), generate DW_TAG_module
- instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
- DW_AT_declaration.
- (dwarf2out_global_decl): Don't skip Fortran global vars.
- (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
- (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
- If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
- DW_TAG_imported_declaration as child of previous
- DW_TAG_imported_module.
- * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
- * sdbout.c (sdb_debug_hooks): Likewise.
- * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
-
- * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
- * ipa-cp.c (n_cloning_candidates): New static variable.
- (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
- (ipcp_print_all_lattices): Improve debug output.
- (ipcp_cloning_candidate_p): New function.
- (ipcp_initialize_node_lattices): Use it.
- (ipcp_init_stage): Do only analyzis here; prettier debug output.
- (ipcp_propagate_stage): Prettier debug output.
- (ipcp_iterate_stage): Initialize latices here; prettier debug output.
- (ipcp_print_all_structures): Remove.
- (ipcp_need_redirect_p): Test !n_cloning_candidates.
- (ipcp_insert_stage): Prettier debug output; call
- cgraph_remove_unreachable_nodes before propagating.
- (pass_ipa_cp): Schedule function removal pass.
- * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
- debug output.
- (cgraph_maybe_hot_edge_p): Move to ...
- * predict.c (cgraph_maybe_hot_edge_p) ... here.
- * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
- (common_handle_option): Set them; enable ipa-cp when profiling.
- * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
- (ipa_print_all_jump_functions): Likewise.
- (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
- (ipa_print_node_params, ipa_print_all_params): New.
- * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
- ipa_print_all_param_flags): Remove.
- (ipa_print_node_params, ipa_print_all_params): New.
-
-2008-08-29 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
- change from 2008-04-03.
- * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
-
-2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37251
- * ira-color.c (push_allocnos_to_stack): Truncate
- removed_splay_allocno_vec.
-
-2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-opt/37243
- * ira-color (ira_fast_allocation): Don't assign hard registers to
- global allocnos.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37278
- * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
- for cold internal loops.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (create_variable_info_for): Do not
- create fields for heap vars or vars with a noalias state.
- For NO_ALIAS_ANYTHING variables add a self-constraint, not one
- from ESCAPED.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- * common.opt (ftree-store-ccp): Mark as preserved for
- backward compatibility.
- * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
- * tree-pass.h (pass_store_ccp): Remove.
- * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
- (first_vdef): Remove declaration.
- (get_value_loaded_by): Likewise.
- * tree-ssa-ccp.c (do_store_ccp): Remove.
- (get_default_value): Simplify as do_store_ccp is always false
- now. Do not initialize mem_ref.
- (set_value_varying): Likewise.
- (canonicalize_float_value): Likewise.
- (set_lattice_value): Likewise.
- (likely_value): Likewise.
- (surely_varying_stmt_p): Likewise.
- (ccp_initialize): Likewise.
- (ccp_lattice_meet): Likewise.
- (ccp_visit_phi_node): Likewise.
- (ccp_fold): Likewise.
- (evaluate_stmt): Likewise.
- (visit_assignment): Likewise.
- (ccp_visit_stmt): Likewise.
- (execute_ssa_ccp): Fold into ...
- (do_ssa_ccp): ... this.
- (do_ssa_store_ccp): Remove.
- (gate_store_ccp): Likewise.
- (pass_store_ccp): Likewise.
- * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
- initialize mem_ref.
- * tree-ssa-propagate.c (first_vdef): Remove.
- (get_value_loaded_by): Likewise.
- (replace_vuses_in): Likewise.
- (substitute_and_fold): Do not call replace_vuses_in.
- * opts.c (decode_options): Do not set flag_tree_store_ccp.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37236
- * tree-ssa-structalias.c (intra_create_variable_infos): Mark
- PARAM_NOALIAS tags with is_heapvar.
- * tree-ssa-operands.c (access_can_touch_variable): Offset
- based tests do not apply for heapvars. Fix offset test.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
- (-fipa-cp-clone): Enabled by default at -O3.
- * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
- make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * tree.c (build_function_type_skip_args,
- build_function_decl_skip_args): New functions.
- * tree.h (build_function_type_skip_args,
- build_function_decl_skip_args): Declare.
- * gimple.c (giple_copy_call_skip_args): New function.
- (giple_copy_call_skip_args): Declare.
-
- * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
- * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
- (ipcp_node_modifiable_p): ... this one; use
- tree_versionable_function_p.
- (ipcp_create_replace_map): Improve debug output.
- (ipcp_need_redirect_p): Return false when not clonning.
- (ipcp_update_callgraph): Skip args.
- (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
- skip args.
- * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
- (save_inline_function_body): Update call of tree_function_versioning.
- * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
- * tree-inline.c (copy_arguments_for_versioning): Add skip_args
- argument.
- (tree_function_versioning): Likewise.
- * tree-inline.h (tree_function_versioning): Update prototype.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * loop-unswitch.c (unswitch_single_loop): Use
- optimize_loop_for_speed_p.
- * tree-ssa-threadupdate.c (mark_threaded_blocks):
- Use optimize_function_for_size_p.
- * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
- * postreload-gcse.c (eliminate_partially_redundant_load):
- Use optimize_bb_for_size_p.
- * value-prof.c (gimple_divmod_fixed_value_transform,
- gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
- gimple_stringops_transform): Use optimize_bb_for_size_p.
- * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
- * final.c (compute_alignments): Use optimize_function_for_size_p.
- * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
- (fold_builtin_strcpy, fold_builtin_fputs): Use
- optimize_function_for_size_p.
- * fold-const.c (tree_swap_operands_p): Use
- optimize_function_for_size_p.
- * recog.c (relax_delay_slots): Likewise.
- * tree-ssa-math-opts.c (replace_reciprocal):
- Use optimize_bb_for_speed_p.
- (execute_cse_reciprocals): Use optimize_bb_for_size_p.
- * ipa-inline.c (cgraph_decide_recursive_inlining): Use
- optimize_function_for_size_p.
- (cgraph_decide_inlining_of_small_function): Use
- optimize_function_for_size_p.
- * global.c (find_reg): Use optimize_function_for_size_p.
- * opts.c (decode_options): Do not clear flag_tree_ch,
- flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
- flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
- work it out from profile.
- * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
- optimize_loop_for_speed_p.
- * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
- Constify argument.
- (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
- * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
- * tree-eh.c (decide_copy_try_finally): Use
- optimize_function_for_size_p.
- * local-alloc.c (block_alloc): Pass BB pointer.
- (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
- * gcse.c (gcse_main): Use optimize_function_for_size_p.
- * loop-unroll.c (decide_unrolling_and_peeling):
- Use optimize_loop_for_size_p.
- (decide_peel_completely): Likewise.
- * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
- optimize_loop_for_size_p.
- (vect_enhance_data_refs_alignment): Likewise.
- * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
- (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
- Update call.
- * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
- (try_crossjump_bb): Use optimize_bb_for_size_p.
- * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
- optimize_loop_for_speed_p.
- * bb-reorder.c (find_traces_1_round): Likewise.
- (copy_bb): Use optimize_bb_for_speed_p.
- (duplicate_computed_gotos): Likewise.
- * basic-block.h (optimize_loop_nest_for_size_p,
- optimize_loop_nest_for_speed_p): New.
- * stmt.c (expand_case): Use optimize_insn_for_size_p.
-
-2008-08-29 Tristan Gingold <gingold@adacore.com>
-
- * gcov.c (main): Call expandargv.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
- is not cold.
- * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
- Constify arguments.
- (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
- * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
- Constify.
- (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * tree-pass.h (pass_strip_predict_hints): Declare.
- * predict.c (strip_builtin_expect): Rename to ...
- (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
- (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
- (tree_estimate_probability): Do not strip builtin_expect.
- (pass_strip_predict_hints): New pass.
- * tree-inline.c (expand_call_inline): When inlining cold function,
- predict it as unlikely.
- * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37207
- * tree-vrp.c (extract_range_from_binary_expr): Also try
- to constant fold if only one of the operands is a constant.
-
-2008-08-29 Nick Clifton <nickc@redhat.com>
-
- * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
- the same way as SYMBOL_REFs.
-
-2008-08-28 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
-
-2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_BBIT): New macro.
- * config/mips/mips.md (branch_likely): Remove const. Fix
- comment formatting.
- (define_delay for type "branch"): Change to only apply for branch
- with likely variant.
- (define_delay for type "branch" and "branch_likely" no). New delay
- definition.
- (equality_op): New code iterator.
- (bbv, bbinv): New code attributes.
- (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
- patterns.
-
-2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
- Andrew Pinski <pinskia@gcc.gnu.org>
-
- PR 18050
- * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
-
-2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
-
- * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
- rule that a symbolic constant must be defined and >= 0 for the
- corresponding facility to be present at compile-time.
- * gthr-posix.c: Likewise.
-
-2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
- * config/mips/mips.md (D): New mode attribute.
- (mulsi3, muldi3): Merge it into ...
- (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
- (muldi3_mul3): New pattern.
- (mulsi3_mult3): Rename to mulsi3_mul3.
-
-2008-08-28 Jan Hubicka <jh@suse.cz>
-
- * expmed.c (store_bit_field_1): Be prepared for movstrict expander
- to fail.
- * predict.c (always_optimize_for_size_p): Rename to ...
- (optimize_function_for_size): ... this one; make extern.
- (optimize_function_for_speed_p): New.
- (optimize_bb_for_size_p, optimize_bb_for_size_p,
- optimize_edge_for_size_p,optimize_edge_for_size_p,
- optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
- * basic-block.h (optimize_function_for_size_p,
- optimize_function_for_speed_p): Declare.
- * i386.md (optimize_size checks): Replace them by appropriate
- predicate.
- (standard_80387_constant_p, ix86_compute_frame_layout,
- ix86_expand_epilogue, ix86_decompose_address,
- print_operand, emit_i387_cw_initialization,
- inline_memory_move_cost, ix86_pad_returns,
- ix86_reorg): Replace optimize_size checks.
-
-2008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
-
- * rtl.h (simplify_subreg_regno): Declare.
- * rtlanal.c (simplify_subreg_regno): New function, split out from...
- * simplify-rtx.c (simplify_subreg): ...here.
- * reload.c (find_reloads): Use simplify_subreg_regno instead of
- subreg_offset_representable_p.
-
-2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/30949
- * c-typeck.c (convert_for_assignment): Give a note describing what
- was passed and what was expected.
-
-2008-08-28 Joey Ye <joey.ye@intel.com>
-
- * doc/extend.texi: Document AVX built-in functions.
- * doc/invoke.texi: Document -mavx.
-
-2008-08-28 H.J. Lu <hongjiu.lu@intel.com>
- Joey Ye <joey.ye@intel.com>
- Xuepeng Guo <xuepeng.guo@intel.com>
-
- * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
-
- * config/i386/cpuid.h (bit_FMA): New.
- (bit_XSAVE): Likewise.
- (bit_OSXSAVE): Likewise.
- (bit_AVX): Likewise.
-
- * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
- define. Use ASM_OUTPUT_AVX_PREFIX.
-
- * config/i386/gmmintrin.h: New.
-
- * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
- (OPTION_MASK_ISA_AVX_SET): New.
- (OPTION_MASK_ISA_FMA_SET): Likewise.
- (OPTION_MASK_ISA_AVX_UNSET): Likewise.
- (OPTION_MASK_ISA_FMA_SET): Likewise.
- (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
- (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
- (pta_flags): Add PTA_AVX and PTA_FMA.
- (override_options): Handle PTA_AVX and PTA_FMA.
- (init_cumulative_args): Handle warn_avx.
- (classify_argument): Return 0 for COImode and OImode. Return
- 1 and X86_64_AVX_CLASS for 256bit vector types.
- (examine_argument): Handle X86_64_AVX_CLASS.
- (construct_container): Likewise.
- (function_arg_advance_32): Pass OImode and 256bit vector types
- in AVX register.
- (function_arg_advance_64): Take a new argument to indicate if a
- parameter is named. Handle 256bit vector types. Return
- immediately for unnamed 256bit vector mode parameters.
- (function_arg_advance): Updated.
- (function_arg_32): Add comments for TImode. Handle OImode
- and 256bit vector types.
- (function_arg_64): Take a new argument to indicate if a
- parameter is named. Handle 256bit vector types. Return NULL
- for unnamed 256bit vector mode parameters.
- (function_arg): Updated.
- (setup_incoming_varargs_64): Support
- AVX encoding for *sse_prologue_save_insn.
- (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
- (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
- enabled. For all 1s in 256bit vector modes, return 3 if AVX is
- enabled, otherwise return -3.
- (standard_sse_constant_opcode): Handle AVX and 256bit vector
- modes.
- (print_reg): Support AVX registers. Handle 'x' and 't'.
- Handle 'd' to duplicate the operand.
- (print_operand): Likewise. Also support AVX vector compare
- instructions.
- (output_387_binary_op): Support AVX.
- (output_fp_compare): Likewise.
- (ix86_expand_vector_move_misalign): Likewise.
- (ix86_attr_length_vex_default): New.
- (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
- IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
- IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
- IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
- IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
- IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
- IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
- IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
- IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
- IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
- IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
- IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
- IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
- IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
- IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
- IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
- IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
- IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
- IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
- IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
- IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
- IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
- IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
- IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
- IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
- IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
- IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
- IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
- IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
- IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
- IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
- IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
- IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
- IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
- IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
- IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
- IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
- IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
- IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
- IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
- IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
- IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
- IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
- IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
- IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
- IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
- IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
- IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
- IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
- IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
- IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
- IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
- IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
- IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
- IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
- IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
- IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
- IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
- IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
- IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
- IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
- IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
- IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
- IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
- and IX86_BUILTIN_MOVMSKPS256,
- (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
- V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
- V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
- V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
- V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
- VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
- VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
- VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
- (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
- INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
- INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
- INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
- V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
- V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
- V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
- V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
- V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
- V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
- V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
- V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
- V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
- V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
- V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
- V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
- V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
- V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
- (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
- IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
- IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
- IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
- IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
- IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
- IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
- IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
- IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
- IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
- IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
- IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
- (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
- IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
- IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
- IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
- IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
- IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
- IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
- IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
- IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
- IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
- IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
- IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
- IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
- IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
- IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
- IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
- IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
- IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
- IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
- IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
- IX86_BUILTIN_CMPPS,
- IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
- IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
- IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
- IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
- IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
- IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
- IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
- IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
- IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
- IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
- IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
- IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
- IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
- IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
- IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
- IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
- IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
- IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
- IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
- IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
- IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
- IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
- IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
- IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
- IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
- IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
- IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
- IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
- IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
- IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
- IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
- IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
- IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
- IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
- IX86_BUILTIN_MOVMSKPS256.
- (ix86_init_mmx_sse_builtins): Support AVX builtins.
- (ix86_expand_args_builtin): Likewise.
- (ix86_expand_special_args_builtin): Likewise.
- (ix86_hard_regno_mode_ok): Handle AVX modes.
- (ix86_expand_vector_init_duplicate): Likewise.
- (ix86_expand_vector_init_one_nonzero): Likewise.
- (ix86_expand_vector_init_one_var): Likewise.
- (ix86_expand_vector_init_concat): Likewise.
- (ix86_expand_vector_init_general): Likewise.
- (ix86_expand_vector_set): Likewise.
- (ix86_vector_mode_supported_p): Likewise.
- (x86_extended_reg_mentioned_p): Check INSN_P before using
- PATTERN.
-
- * config/i386/i386-c.c (ix86_target_macros_internal): Handle
- OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
-
- * config/i386/i386.h (TARGET_AVX): New.
- (TARGET_FMA): Likewise.
- (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
- (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
- (VALID_AVX256_REG_MODE): New.
- (AVX256_VEC_FLOAT_MODE_P): Likewise.
- (AVX_FLOAT_MODE_P): Likewise.
- (AVX128_VEC_FLOAT_MODE_P): Likewise.
- (AVX256_VEC_FLOAT_MODE_P): Likewise.
- (AVX_VEC_FLOAT_MODE_P): Likewise.
- (ASM_OUTPUT_AVX_PREFIX): Likewise.
- (ASM_OUTPUT_OPCODE): Likewise.
- (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
- support.
- (SSE_REG_MODE_P): Allow 256bit vector modes.
- (ix86_args): Add a warn_avx field.
-
- * config/i386/i386.md (UNSPEC_PCMP): New.
- (UNSPEC_VPERMIL): Likewise.
- (UNSPEC_VPERMIL2): Likewise.
- (UNSPEC_VPERMIL2F128): Likewise.
- (UNSPEC_MASKLOAD): Likewise.
- (UNSPEC_MASKSTORE): Likewise.
- (UNSPEC_CAST): Likewise.
- (UNSPEC_VTESTP): Likewise.
- (UNSPECV_VZEROALL): Likewise.
- (UNSPECV_VZEROUPPER): Likewise.
- (XMM0_REG): Likewise.
- (XMM1_REG): Likewise.
- (XMM2_REG): Likewise.
- (XMM3_REG): Likewise.
- (XMM4_REG): Likewise.
- (XMM5_REG): Likewise.
- (XMM6_REG): Likewise.
- (XMM8_REG): Likewise.
- (XMM9_REG): Likewise.
- (XMM10_REG): Likewise.
- (XMM11_REG): Likewise.
- (XMM12_REG): Likewise.
- (XMM13_REG): Likewise.
- (XMM14_REG): Likewise.
- (XMM15_REG): Likewise.
- (prefix): Likewise.
- (prefix_vex_imm8): Likewise.
- (prefix_vex_w): Likewise.
- (length_vex): Likewise.
- (maxmin): Likewise.
- (movoi): Likewise.
- (*avx_ashlti3): Likewise.
- (*avx_lshrti3): Likewise.
- (*avx_setcc<mode>): Likewise.
- (*fop_<mode>_comm_mixed_avx): Likewise.
- (*fop_<mode>_comm_avx): Likewise.
- (*fop_<mode>_1_mixed_avx): Likewise.
- (*fop_<mode>_1_avx): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_ieee_smin<mode>3): Likewise.
- (*avx_ieee_smax<mode>3): Likewise.
- (mode): Add OI, V8SF and V4DF.
- (length): Support VEX prefix.
- (*cmpfp_i_mixed): Set prefix attribute.
- (*cmpfp_i_sse): Likewise.
- (*cmpfp_iu_mixed): Likewise.
- (*cmpfp_iu_sse): Likewise.
- (*movsi_1): Support AVX.
- (*movdi_2): Likewise.
- (*movdi_1_rex64): Likewise.
- (*movti_internal): Likewise.
- (*movti_rex64): Likewise.
- (*movsf_1): Likewise.
- (*movdf_nointeger): Likewise.
- (*movdf_integer_rex64): Likewise.
- (*movtf_internal): Likewise.
- (zero_extendsidi2_32): Likewise.
- (zero_extendsidi2_rex64): Likewise.
- (*extendsfdf2_mixed): Likewise.
- (*extendsfdf2_sse): Likewise.
- (*truncdfsf_fast_mixed): Likewise.
- (*truncdfsf_fast_sse): Likewise.
- (*truncdfsf_mixed): Likewise.
- (fix_trunc<mode>di_sse): Likewise.
- (fix_trunc<mode>si_sse): Likewise.
- (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
- (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
- (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
- (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
- (*rcpsf2_sse): Likewise.
- (*rsqrtsf2_sse): Likewise.
- (*sqrt<mode>2_sse): Likewise.
- (sse4_1_round<mode>2): Likewise.
- (*sse_prologue_save_insn): Disallow REX prefix for AVX.
- Support AVX. Set length attribute properly for AVX.
-
- * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
- (VECTOR_MODES (FLOAT, 32)): Likewise.
- (VECTOR_MODE (INT, DI, 8)): Likewise.
- (VECTOR_MODE (INT, HI, 32)): Likewise.
- (VECTOR_MODE (INT, QI, 64)): Likewise.
- (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
- (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
- (VECTOR_MODE (INT, DI, 4)): Removed.
- (VECTOR_MODE (INT, SI, 8)): Likewise.
- (VECTOR_MODE (INT, HI, 16)): Likewise.
- (VECTOR_MODE (INT, QI, 32)): Likewise.
- (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
- (INT_MODE (OI, 32)): Likewise.
-
- * config/i386/i386.opt (mavx): New.
- (mfma): Likewise.
-
- * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
-
- * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
- (*mov<mode>_internal_avx): New.
- (*movv2sf_internal_rex64_avx): Likewise.
- (*movv2sf_internal_avx): Likewise.
-
- * config/i386/predicates.md (const_4_to_5_operand): New.
- (const_6_to_7_operand): Likewise.
- (const_8_to_11_operand): Likewise.
- (const_12_to_15_operand): Likewise.
- (avx_comparison_float_operator): Likewise.
-
- * config/i386/sse.md (AVX256MODEI): New.
- (AVX256MODE): Likewise.
- (AVXMODEQI): Likewise.
- (AVXMODE): Likewise.
- (AVX256MODEF2P): Likewise.
- (AVX256MODE2P): Likewise.
- (AVX256MODE4P): Likewise.
- (AVX256MODE8P): Likewise.
- (AVXMODEF2P): Likewise.
- (AVXMODEF4P): Likewise.
- (AVXMODEDCVTDQ2PS): Likewise.
- (AVXMODEDCVTPS2DQ): Likewise.
- (avxvecmode): Likewise.
- (avxvecpsmode): Likewise.
- (avxhalfvecmode): Likewise.
- (avxscalarmode): Likewise.
- (avxcvtvecmode): Likewise.
- (avxpermvecmode): Likewise.
- (avxmodesuffixf2c): Likewise.
- (avxmodesuffixp): Likewise.
- (avxmodesuffixs): Likewise.
- (avxmodesuffix): Likewise.
- (vpermilbits): Likewise.
- (pinsrbits): Likewise.
- (mov<mode>): Likewise.
- (*mov<mode>_internal): Likewise.
- (push<mode>1): Likewise.
- (movmisalign<mode>): Likewise.
- (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_movdqu<avxmodesuffix>): Likewise.
- (avx_lddqu<avxmodesuffix>): Likewise.
- (<plusminus_insn><mode>3): Likewise.
- (*avx_<plusminus_insn><mode>3): Likewise.
- (*avx_vm<plusminus_insn><mode>3): Likewise.
- (mul<mode>3): Likewise.
- (*avx_mul<mode>3): Likewise.
- (*avx_vmmul<mode>3): Likewise.
- (divv8sf3): Likewise.
- (divv4df3): Likewise.
- (avx_div<mode>3): Likewise.
- (*avx_div<mode>3): Likewise.
- (*avx_vmdiv<mode>3): Likewise.
- (avx_rcpv8sf2): Likewise.
- (*avx_vmrcpv4sf2): Likewise.
- (sqrtv8sf2): Likewise.
- (avx_sqrtv8sf2): Likewise.
- (*avx_vmsqrt<mode>2): Likewise.
- (rsqrtv8sf2): Likewise.
- (avx_rsqrtv8sf2): Likewise.
- (*avx_vmrsqrtv4sf2): Likewise.
- (<code><mode>3): Likewise.
- (*avx_<code><mode>3_finite): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_vm<code><mode>3): Likewise.
- (*avx_ieee_smin<mode>3): Likewise.
- (*avx_ieee_smax<mode>3): Likewise.
- (avx_addsubv8sf3): Likewise.
- (avx_addsubv4df3): Likewise.
- (*avx_addsubv4sf3): Likewise.
- (*avx_addsubv2df3): Likewise.
- (avx_h<plusminus_insn>v4df3): Likewise.
- (avx_h<plusminus_insn>v8sf3): Likewise.
- (*avx_h<plusminus_insn>v4sf3): Likewise.
- (*avx_h<plusminus_insn>v2df3): Likewise.
- (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
- (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
- (*avx_maskcmp<mode>3): Likewise.
- (avx_nand<mode>3): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_nand<mode>3): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_cvtsi2ss): Likewise.
- (*avx_cvtsi2ssq): Likewise.
- (*avx_cvtsi2sd): Likewise.
- (*avx_cvtsi2sdq): Likewise.
- (*avx_cvtsd2ss): Likewise.
- (avx_cvtss2sd): Likewise.
- (avx_cvtdq2ps<avxmodesuffix>): Likewise.
- (avx_cvtps2dq<avxmodesuffix>): Likewise.
- (avx_cvttps2dq<avxmodesuffix>): Likewise.
- (*avx_cvtsi2sd): Likewise.
- (*avx_cvtsi2sdq): Likewise.
- (avx_cvtdq2pd256): Likewise.
- (avx_cvtpd2dq256): Likewise.
- (avx_cvttpd2dq256): Likewise.
- (*avx_cvtsd2ss): Likewise.
- (*avx_cvtss2sd): Likewise.
- (avx_cvtpd2ps256): Likewise.
- (avx_cvtps2pd256): Likewise.
- (*avx_movhlps): Likewise.
- (*avx_movlhps): Likewise.
- (avx_unpckhps256): Likewise.
- (*avx_unpckhps): Likewise.
- (avx_unpcklps256): Likewise.
- (*avx_unpcklps): Likewise.
- (avx_movshdup256): Likewise.
- (avx_movsldup256): Likewise.
- (avx_shufps256): Likewise.
- (avx_shufps256_1): Likewise.
- (*avx_shufps_<mode>): Likewise.
- (*avx_loadhps): Likewise.
- (*avx_storelps): Likewise.
- (*avx_loadlps): Likewise.
- (*avx_movss): Likewise.
- (*vec_dupv4sf_avx): Likewise.
- (*vec_concatv2sf_avx): Likewise.
- (*vec_concatv4sf_avx): Likewise.
- (*vec_setv4sf_0_avx): Likewise.
- (*vec_setv4sf_avx): Likewise.
- (*avx_insertps): Likewise.
- (avx_vextractf128<mode>): Likewise.
- (vec_extract_lo_<mode>): Likewise.
- (vec_extract_hi_<mode>): Likewise.
- (vec_extract_lo_<mode>): Likewise.
- (vec_extract_hi_<mode>): Likewise.
- (vec_extract_lo_v16hi): Likewise.
- (vec_extract_hi_v16hi): Likewise.
- (vec_extract_lo_v32qi): Likewise.
- (vec_extract_hi_v32qi): Likewise.
- (avx_unpckhpd256): Likewise.
- (*avx_unpckhpd): Likewise.
- (avx_movddup256): Likewise.
- (*avx_movddup): Likewise.
- (avx_unpcklpd256): Likewise.
- (*avx_unpcklpd): Likewise.
- (avx_shufpd256): Likewise.
- (avx_shufpd256_1): Likewise.
- (*avx_punpckhqdq): Likewise.
- (*avx_punpcklqdq): Likewise.
- (*avx_shufpd_<mode>): Likewise.
- (*avx_storehpd): Likewise.
- (*avx_loadhpd): Likewise.
- (*avx_loadlpd): Likewise.
- (*avx_movsd): Likewise.
- (*vec_concatv2df_avx): Likewise.
- (*avx_<plusminus_insn><mode>3): Likewise.
- (*avx_<plusminus_insn><mode>3): Likewise.
- (*avx_mulv8hi3): Likewise.
- (*avxv8hi3_highpart): Likewise.
- (*avx_umulv8hi3_highpart): Likewise.
- (*avx_umulv2siv2di3): Likewise.
- (*avx_mulv2siv2di3): Likewise.
- (*avx_pmaddwd): Likewise.
- (*avx_mulv4si3): Likewise.
- (*avx_ashr<mode>3): Likewise.
- (*avx_lshr<mode>3): Likewise.
- (*avx_ashl<mode>3): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_eq<mode>3): Likewise.
- (*avx_gt<mode>3): Likewise.
- (*avx_nand<mode>3): Likewise.
- (*avx_nand<mode>3): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_<code><mode>3): Likewise.
- (*avx_packsswb): Likewise.
- (*avx_packssdw): Likewise.
- (*avx_packuswb): Likewise.
- (*avx_punpckhbw): Likewise.
- (*avx_punpcklbw): Likewise.
- (*avx_punpckhwd): Likewise.
- (*avx_punpcklwd): Likewise.
- (*avx_punpckhdq): Likewise.
- (*avx_punpckldq): Likewise.
- (*avx_pinsr<avxmodesuffixs>): Likewise.
- (*avx_pinsrq): Likewise.
- (*avx_loadld): Likewise.
- (*vec_extractv2di_1_rex64_avx): Likewise.
- (*vec_extractv2di_1_avx): Likewise.
- (*vec_dupv2di_avx): Likewise.
- (*vec_concatv2si_avx): Likewise.
- (*vec_concatv4si_1_avx): Likewise.
- (*vec_concatv2di_avx): Likewise.
- (*vec_concatv2di_rex64_avx): Likewise.
- (*avx_uavgv16qi3): Likewise.
- (*avx_uavgv8hi3): Likewise.
- (*avx_psadbw): Likewise.
- (avx_movmskp<avxmodesuffixf2c>256): Likewise.
- (*avx_phaddwv8hi3): Likewise.
- (*avx_phadddv4si3): Likewise.
- (*avx_phaddswv8hi3): Likewise.
- (*avx_phsubwv8hi3): Likewise.
- (*avx_phsubdv4si3): Likewise.
- (*avx_phsubswv8hi3): Likewise.
- (*avx_pmaddubsw128): Likewise.
- (*avx_pmulhrswv8hi3): Likewise.
- (*avx_pshufbv16qi3): Likewise.
- (*avx_psign<mode>3): Likewise.
- (*avx_palignrti): Likewise.
- (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (*avx_mpsadbw): Likewise.
- (*avx_packusdw): Likewise.
- (*avx_pblendvb): Likewise.
- (*avx_pblendw): Likewise.
- (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_ptest256): Likewise.
- (avx_roundp<avxmodesuffixf2c>256): Likewise.
- (*avx_rounds<ssemodesuffixf2c>): Likewise.
- (*avx_aesenc): Likewise.
- (*avx_aesenclast): Likewise.
- (*avx_aesdec): Likewise.
- (*avx_aesdeclast): Likewise.
- (avx_vzeroupper): Likewise.
- (avx_vzeroupper_rex64): Likewise.
- (avx_vpermil<mode>): Likewise.
- (avx_vpermilvar<mode>3): Likewise.
- (avx_vpermil2<mode>3): Likewise.
- (avx_vperm2f128<mode>3): Likewise.
- (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_vbroadcastss256): Likewise.
- (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
- (avx_vinsertf128<mode>): Likewise.
- (vec_set_lo_<mode>): Likewise.
- (vec_set_hi_<mode>): Likewise.
- (vec_set_lo_<mode>): Likewise.
- (vec_set_hi_<mode>): Likewise.
- (vec_set_lo_v16hi): Likewise.
- (vec_set_hi_v16hi): Likewise.
- (vec_set_lo_v32qi): Likewise.
- (vec_set_hi_v32qi): Likewise.
- (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
- (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
- (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
- (vec_init<mode>): Likewise.
- (*vec_concat<mode>_avx): Likewise.
- (blendbits): Support V8SF and V4DF.
- (sse2_movq128): Support AVX.
- (<sse>_movnt<mode>): Likewise.
- (sse2_movntv2di): Likewise.
- (sse_rcpv4sf2): Likewise.
- (sse_sqrtv4sf2): Likewise.
- (sse_rsqrtv4sf2): Likewise.
- (<sse>_comi): Likewise.
- (<sse>_ucomi): Likewise.
- (sse_cvtss2si): Likewise.
- (sse_cvtss2si_2): Likewise.
- (sse_cvtss2siq): Likewise.
- (sse_cvtss2siq_2): Likewise.
- (sse_cvttss2si): Likewise.
- (sse_cvttss2siq): Likewise.
- (sse2_cvtsd2si): Likewise.
- (sse2_cvtsd2si_2): Likewise.
- (sse2_cvtsd2siq): Likewise.
- (sse2_cvtsd2siq_2): Likewise.
- (sse2_cvttsd2si): Likewise.
- (sse2_cvttsd2siq): Likewise.
- (sse2_cvtdq2pd): Likewise.
- (*sse2_cvtpd2dq): Likewise.
- (*sse2_cvttpd2dq): Likewise.
- (*sse2_cvtpd2ps): Likewise.
- (sse2_cvtps2pd): Likewise.
- (sse3_movshdup): Likewise.
- (sse3_movsldup): Likewise.
- (sse_storehps): Likewise.
- (*sse4_1_extractps): Likewise.
- (sse2_storelpd): Likewise.
- (vec_dupv2df_sse3): Likewise.
- (*vec_concatv2df_sse3): Likewise.
- (*sse4_1_pextrb): Likewise.
- (*sse4_1_pextrb_memory): Likewise.
- (*sse2_pextrw): Likewise.
- (*sse4_1_pextrw_memory): Likewise.
- (*sse4_1_pextrd): Likewise.
- (*sse4_1_pextrq): Likewise.
- (sse2_pshufd_1): Likewise.
- (sse2_pshuflw_1): Likewise.
- (sse2_pshufhw_1): Likewise.
- (*sse2_storeq_rex64): Likewise.
- (*vec_dupv4si): Likewise.
- (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
- (sse2_pmovmskb): Likewise.
- (*sse2_maskmovdqu): Likewise.
- (*sse2_maskmovdqu_rex64): Likewise.
- (sse_ldmxcsr): Likewise.
- (sse_stmxcsr): Likewise.
- (abs<mode>2): Likewise.
- (sse4_1_movntdqa): Likewise.
- (sse4_1_phminposuw): Likewise.
- (sse4_1_extendv8qiv8hi2): Likewise.
- (*sse4_1_extendv8qiv8hi2): Likewise.
- (sse4_1_extendv4qiv4si2): Likewise.
- (*sse4_1_extendv4qiv4si2): Likewise.
- (sse4_1_extendv2qiv2di2): Likewise.
- (*sse4_1_extendv2qiv2di2): Likewise.
- (sse4_1_extendv4hiv4si2): Likewise.
- (*sse4_1_extendv4hiv4si2): Likewise.
- (sse4_1_extendv2hiv2di2): Likewise.
- (*sse4_1_extendv2hiv2di2): Likewise.
- (sse4_1_extendv2siv2di2): Likewise.
- (*sse4_1_extendv2siv2di2): Likewise.
- (sse4_1_zero_extendv8qiv8hi2): Likewise.
- (*sse4_1_zero_extendv8qiv8hi2): Likewise.
- (sse4_1_zero_extendv4qiv4si2): Likewise.
- (*sse4_1_zero_extendv4qiv4si2): Likewise.
- (sse4_1_zero_extendv2qiv2di2): Likewise.
- (*sse4_1_zero_extendv2qiv2di2): Likewise.
- (sse4_1_zero_extendv4hiv4si2): Likewise.
- (*sse4_1_zero_extendv4hiv4si2): Likewise.
- (sse4_1_zero_extendv2hiv2di2): Likewise.
- (*sse4_1_zero_extendv2hiv2di2): Likewise.
- (sse4_1_zero_extendv2siv2di2): Likewise.
- (*sse4_1_zero_extendv2siv2di2): Likewise.
- (sse4_1_ptest): Likewise.
- (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
- (sse4_2_pcmpestri): Likewise.
- (sse4_2_pcmpestrm): Likewise.
- (sse4_2_pcmpistri): Likewise.
- (sse4_2_pcmpistrm): Likewise.
- (aesimc): Likewise.
- (aeskeygenassist): Likewise.
-
-2008-08-28 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/predicates.md (vzeroall_operation): New.
-
- * config/i386/sse.md (avx_vzeroall): New.
- (*avx_vzeroall): Likewise.
-
-2008-08-28 Paul Brook <paul@codesourcery.com>
- Mark Shinwell <shinwell@codesourcery.com>
- Richard Earnshaw <richard.earnshaw@arm.com>
-
- * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
- (TARGET_MIN_ANCHOR_OFFSET): New.
- (arm_override_options): Set correct anchor ranges for Thumb-1
- and Thumb-2 if required.
- (legitimize_pic_address): Handle case involving a TLS symbol
- reference with an addend.
- (arm_optimization_options): Enable section anchors at -O1 and
- above.
- * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
- * config/arm/arm-protos.h (arm_optimization_options): New.
-
-2008-08-28 Nick Clifton <nickc@redhat.com>
-
- * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
- * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
- attribute.
-
- * config/v850/v850.h (IRA_COVER_CLASSES): Define.
- * config/v850/v850.md (return): Remove frame size restriction.
-
- * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
-
- * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
-
- * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
-
- * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
-
-2008-08-28 Paul Brook <paul@codesourcery.com>
-
- * config/arm/vfp11.md: Update license notice.
- * config/arm/cortex-r4.md: Ditto.
-
-2008-08-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37207
- * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
- tuplification bug.
-
-2008-08-28 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/36741
- * tree.c (int_fits_type_p): Don't forget unsigned integers
- of type sizetype which higher end word equals -1.
-
-2008-08-28 Ira Rosen <irar@il.ibm.com>
-
- * target.h (struct vectorize): Add new target builtin.
- * tree-vectorizer.c (destroy_loop_vec_info): Call
- vect_free_slp_instance instead of vect_free_slp_node.
- * tree-vectorizer.h (enum slp_load_perm_type): New.
- (struct _slp_instance): Add new fields.
- (SLP_INSTANCE_LOAD_PERMUTATION): New.
- (SLP_INSTANCE_LOADS): New.
- (vect_free_slp_tree): Remove.
- (vect_free_slp_instance): Declare.
- (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
- (vectorizable_load): Add argument.
- (vect_transform_slp_perm_load): New.
- * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
- vectorizable_load.
- (vect_get_place_in_interleaving_chain): New function.
- (vect_free_slp_tree): Make static.
- (vect_free_slp_instance): New function.
- (vect_build_slp_tree): Add new arguments. Allow load permutations and
- collect the load location in the interleaving chain.
- (vect_supported_slp_permutation_p): New function.
- (vect_supported_load_permutation_p): Likewise.
- (vect_analyze_slp_instance): In case of loads permutation, call
- vect_supported_load_permutation_p to check that the permutation is
- supported.
- * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
- * tree-vect-transform.c (vect_transform_stmt): Add new argument.
- (vect_create_mask_and_perm): New function.
- (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
- (vectorizable_load): Add an argument. Don't keep the created vectors
- statements in the node if permutation is required. Call
- vect_transform_slp_perm_load to generate the permutation.
- (vect_transform_stmt): Add new argument. Call vectorizable_load with
- additional argument.
- (vect_schedule_slp_instance): In case of loads permutation, allocate
- vectorized statements structure for all the related SLP nodes. Call
- vect_transform_stmt with addditional argument.
- (vect_transform_loop): Call vect_transform_stmt with correct arguments.
- * config/spu/spu.c (spu_builtin_vec_perm): New.
- (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
- * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
- * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
- (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
-
-2008-08-28 Chris Fairles <chris.fairles@gmail.com>
-
- * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
- __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
- __gthread_cond_signal, __gthread_cond_timedwait,
- __gthread_cond_timedwait_recursive): New functions.
- * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
- Likewise.
- * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
- thread interfaces.
-
-2008-08-28 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37005
- * fold-const.c (maybe_canonicalize_comparison_1): Require
- undefined overflow only for canonicalizing A +- CST cmp CST.
- Make sure to not generate new constants that are not inside
- their TYPE_MIN/MAX_VALUE range.
- (maybe_canonicalize_comparison): Remove undefined overflow
- checking from here.
- (fold_binary): Remove now duplicate folding.
-
-2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
- use not updated in the last change.
-
-2008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
- (IRA_COVER_CLASSES): Add FPUL_REGS.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 37217
- * c-common.c (conversion_warning): Check for null operands.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/31673
- * c-decl.c (check_for_loop_decls): Improve error message. Give
- hint.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/37186
- * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
- (convert_for_assignment): Pass corrent OPT_W* parameter to
- WARN_FOR_ASSIGNMENT.
-
-2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35321
- * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
-
-2008-08-27 Paul Brook <paul@codesourcery.com>
-
- * config.gcc: Loosen checks for arm uclinux eabi targets.
-
-2008-08-27 Paul Brook <paul@codesourcery.com>
-
- * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
- _clzsi2.
- * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
-
-2008-08-26 Douglas Gregor <doug.gregor@gmail.com>
-
- * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
- the enumerators of an ENUMERAL_TYPE.
- * dbxout.c (dbxout_type): Ditto.
-
-2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-opt/37219
- * fwprop.c (fwprop): Check that the loop_father is the outer loop.
- (fwprop_addr): Check that the loop_father is not the outer loop.
-
-2008-08-26 Paul Brook <paul@codesourcery.com>
-
- * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
- Remove documentation entry for fmul type.
- Use fmuls to annotate single-precision multiplication patterns,
- fmuld to annotate double-precision multiplication patterns,
- fmacs to annotate single-precision multiply-accumulate patterns
- and fmacd to annotate double-precision multiply-accumulate patterns.
- * config/arm/vfp11.md: Update reservations accordingly.
- * config/arm/arm.md: Note that certain values of the "type"
- attribute are documented in vfp.md.
- * config/arm/arm1020e.md: Remove out of date duplicate comment.
- (v10_cvt): Use new fmul types.
-
-2008-08-26 Paul Brook <paul@codesourcery.com>
-
- * config/arm/vfp.md: Move pipeline description for VFP11 to...
- * config/arm/vfp11.md: ...here. New.
- * config/arm/arm.md: Include vfp11.md.
-
-2008-08-26 Hans-Peter Nilsson <hp@axis.com>
-
- * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
- parameter to inform call.
-
-2008-08-26 Jeff Law <law@redhat.com>
-
- * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
- avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
- preferred class when copying a constant into a partial word register.
-
-2008-08-26 Ben Elliston <bje@au.ibm.com>
-
- * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
- * cp/typeck.c: Likewise.
- * cp/tree.c: Likewise.
- * gimple-low.c: Likewise.
- * jump.c: Likewise.
-
-2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
-
- * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
- ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
-
- * doc/passes.texi: Describe IRA.
-
- * doc/tm.texi (IRA_COVER_CLASSES,
- IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
-
- * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
- (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
- -fira-propagate-cost, -fno-ira-share-save-slots,
- -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
-
- * flags.h (ira_algorithm): New enumeration.
- (flag_ira_algorithm, flag_ira_verbose): New external variable
- declarations.
-
- * postreload.c (gate_handle_postreload): Don't do post reload
- optimizations unless the reload is completed.
-
- * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
- IRA.
-
- * tree-pass.h (pass_ira): New external variable declaration.
-
- * reload.h: Add 2008 to the Copyright.
-
- * cfgloopanal.c: Include params.h.
- (estimate_reg_pressure_cost): Decrease cost for IRA optimization
- mode.
-
- * params.h (IRA_MAX_LOOPS_NUM): New macro.
-
- * toplev.c (ira.h): New include.
- (flag_ira_algorithm, flag_ira_verbose): New external variables.
- (backend_init_target): Call ira_init.
- (backend_init): Call ira_init_once.
- (finalize): Call finish_ira_once.
-
- * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
- flag_ira_share_save_slots, flag_ira_share_spill_slots): New
- external variables.
-
- * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
- may_move_out_cost): New external variable declarations.
- (move_table): New typedef.
-
- * caller-save.c: Include headers output.h and ira.h.
- (no_caller_save_reg_set): New global variable.
- (save_slots_num, save_slots): New variables.
- (reg_save_code, reg_restore_code, add_stored_regs): Add
- prototypes.
- (init_caller_save): Set up no_caller_save_reg_set.
- (init_save_areas): Reset save_slots_num.
- (saved_hard_reg): New structure.
- (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
- (initiate_saved_hard_regs, new_saved_hard_reg,
- finish_saved_hard_regs, saved_hard_reg_compare_func): New
- functions.
- (setup_save_areas): Add code for sharing stack slots.
- (all_blocks): New variable.
- (save_call_clobbered_regs): Process pseudo-register too.
- (mark_set_regs): Process pseudo-register too.
- (insert_one_insn): Put the insn after bb note in a empty basic
- block. Add insn check.
-
- * global.c (eliminable_regset): Make it external.
- (mark_elimination): Use DF_LR_IN for IRA.
- (pseudo_for_reload_consideration_p): New.
- (build_insn_chain): Make it external. Don't ignore spilled
- pseudos for IRA. Use pseudo_for_reload_consideration_p.
- (gate_handle_global_alloc): New function.
- (pass_global_alloc): Add the gate function.
-
- * opts.c (decode_options): Set up flag_ira. Print the warning for
- -fira.
- (common_handle_option): Process -fira-algorithm and -fira-verbose.
-
- * timevar.def (TV_IRA, TV_RELOAD): New passes.
-
- * regmove.c (regmove_optimize): Don't do replacement of output for
- IRA.
-
- * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
- New external variable declarations.
-
- * local-alloc.c (update_equiv_regs): Make it external. Return
- true if jump label rebuilding should be done. Rescan new_insn for
- notes.
- (gate_handle_local_alloc): New function.
- (pass_local_alloc): Add the gate function.
-
- * alias.c (value_addr_p, stack_addr_p): New functions.
- (nonoverlapping_memrefs_p): Use them for IRA.
-
- * common.opt (fira, fira-algorithm, fira-coalesce,
- fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
- fira-verbose): New options.
-
- * regclass.c (reg_class_subclasses, contains_reg_of_mode,
- move_cost, may_move_in_cost, may_move_out_cost): Make the
- variables external.
- (move_table): Remove typedef.
- (init_move_cost): Make it external.
- (allocate_reg_info, resize_reg_info, setup_reg_classes): New
- functions.
-
- * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
- setup_reg_classes): New function prototypes.
- (eliminable_regset): New external variable declaration.
- (build_insn_chain, update_equiv_regs): New function prototypes.
-
- * Makefile.in (IRA_INT_H): New definition.
- (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
- ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
- (reload1.o, toplev.o): Add dependence on ira.h.
- (cfgloopanal.o): Add PARAMS_H.
- (caller-save.o): Add dependence on output.h and ira.h.
- (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
- ira-emit.o, ira-lives.o): New entries.
-
- * passes.c (pass_ira): New pass.
-
- * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
-
- * reload1.c (ira.h): Include the header.
- (changed_allocation_pseudos): New bitmap.
- (init_reload): Initiate the bitmap.
- (compute_use_by_pseudos): Permits spilled registers in FROM.
- (temp_pseudo_reg_arr): New variable.
- (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
- IRA. Call alter_reg with the additional parameter. Don't clear
- spilled_pseudos for IRA. Restore original insn chain for IRA.
- Clear changed_allocation_pseudos at the end of reload.
- (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
- (hard_regno_to_pseudo_regno): New variable.
- (count_pseudo): Check spilled pseudos. Set up
- hard_regno_to_pseudo_regno.
- (count_spilled_pseudo): Check spilled pseudos. Update
- hard_regno_to_pseudo_regno.
- (find_reg): Use better_spill_reload_regno_p. Check
- hard_regno_to_pseudo_regno.
- (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
- code for IRA.
- (eliminate_regs_1): Use additional parameter for alter_reg.
- (finish_spills): Set up pseudo_previous_regs only for spilled
- pseudos. Call reassign_pseudos once for all spilled pseudos, pass
- more arguments. Don't clear live_throughout and dead_or_set for
- spilled pseudos. Use additional parameter for alter_reg. Call
- mark_allocation_change. Set up changed_allocation_pseudos.
- Remove sanity check.
- (emit_input_reload_insns, delete_output_reload): Use additional
- parameter for alter_reg. Call mark_allocation_change.
- (substitute, gen_reload_chain_without_interm_reg_p): New
- functions.
- (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
-
- * testsuite/gcc.dg/20080410-1.c: New file.
-
- * config/s390/s390.h (IRA_COVER_CLASSES,
- IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
-
- * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
-
- * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
-
- * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
-
- * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
-
- * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
-
- * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
-
- 2008-08-24 Jeff Law <law@redhat.com>
- * ira.c (setup_reg_class_intersect_union): Prefer smallest class
- when ignoring unavailable registers.
-
- 2008-08-24 Jeff Law <law@redhat.com>
- * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
- FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
- * ira.c (setup_eliminable_regset): Check stack_realign_needed.
- * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
-
- 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
- * ira-build.c (allocno_range_compare_func): Stabilize sort.
-
- 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
- * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
- * reload1.c (find_reg): Process registers in register allocation order.
-
- 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
- * toplev.c (backend_init_target): Move ira_init call from
- here...
- (lang_dependent_init_target): ...to here.
-
- 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
- * ira.c (setup_class_subset_and_memory_move_costs): Don't
- calculate memory move costs for NO_REGS.
-
- 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
- * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
- STACK_REGS is defined.
-
- 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
- * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
-
- 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
- * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
-
- 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
- * config/sh/sh.h (IRA_COVER_CLASSES): Define.
- * config/sh/sh.md (movsicc_true+3): Check if emit returns a
- barrier.
-
-2008-08-26 Victor Kaplansky <victork@il.ibm.com>
- Dorit Nuzman <dorit@il.ibm.com>
-
- * gcc/config/spu/spu.md (vec_extract_evenv4si,
- vec_extract_evenv4sf, vec_extract_evenv8hi,
- vec_extract_evenv16qi, vec_extract_oddv4si,
- vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
- vec_interleave_highv4sf, vec_interleave_lowv4sf,
- vec_interleave_highv4si, vec_interleave_lowv4si,
- vec_interleave_highv8hi, vec_interleave_lowv8hi,
- vec_interleave_highv16qi, vec_interleave_lowv16qi,
- vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
-
-2008-08-25 Janis Johnson <janis187@us.ibm.com>
-
- PR target/36756
- * config/rs6000/rs6000.c (optimization_options): Don't default to
- section anchors without toplevel reorder.
-
-2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
- (mfc_end_critical_section): Likewise.
-
-2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
- all type qualifiers from element type to vector type.
-
-2008-08-25 David Daney <ddaney@avtrex.com>
-
- * config/mips/mips.md (immediate_insn): Move up in file, fix
- comment typo, reformat.
- (fetchop_bit, atomic_hiqi_op memory_barrier,
- sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
- sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
- sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
- sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
- sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
- sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
- sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
- sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
- sync_old_nand<mode>, sync_new_nand<mode>,
- sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
- test_and_set_12): Moved to sync.md.
- (sync.md): Include.
- * config/mips/sync.md: New file.
-
-2008-08-25 Richard Henderson <rth@redhat.com>
-
- * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
- (regsave): Likewise.
- (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
- (output_cfi_directive): Likewise.
- (div_data_align): New.
- (output_cfi): Use it.
-
-2008-08-24 Adam Nemet <anemet@caviumnetworks.com>
-
- * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
- * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
- (TARGET_OCTEON): New macro.
- (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
- (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
- (ISA_HAS_POP): New macro.
- * config/mips/driver-native.c (host_detect_local_cpu): Handle
- Octeon.
- * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
- Handle Octeon.
- * config/mips/mips.md (cpu): Add octeon.
- (type): Add pop attribute value.
- (popcount<mode>2): New pattern.
- * doc/invoke.texi (-march=@var{arch}): Add octeon.
-
-2008-08-24 Jan Hubicka <jh@suse.cz>
-
- * doc/invoke.texi (-fipa-cp-clone): New option.
- (-fipa-cp): Update docs.
- (--param ipcp-unit-growth):New.
- * ipa-cp.c: Include fibheap.h, params.h
- (ipcp_initialize_node_lattices): When not cloning, all externally
- visible functions are bottom.
- (ipcp_need_redirect_p): Accept clones.
- (ipcp_insert_stage): Use cost driven heuristics.
- (max_count, dead_nodes): New static vars.
- (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
- ipcp_const_param_count): New functions.
- * common.opt (ipa-cp-clone): New command line option.
- * params.def (ipcp-unit-growth): New.
-
-2008-08-24 Jan Hubicka <jh@suse.cz>
-
- * tree-inline.c (tree_function_versioning): Look harder
- for referenced vars.
-
-2008-08-24 Razya Ladelsky <razya@il.ibm.com>
-
- PR tree-optimization/37185
- * matrix-reorg.c (transform_access_sites): Update changed stmt.
-
-2008-08-23 Jan Hubicka <jh@suse.cz>
-
- * ipa-cp.c (ipcp_analyze_node): New function.
- (ipcp_update_cloned_node): Use it.
- (ipcp_init_stage): Likewise.
- * ipa-inline.c (function_insertion_hook_holder): New static var.
- (analyze_function): Break out from ....
- (inline_generate_summary): Here; register insertion hook.
- (cgraph_decide_inlining): Remove hook.
- (add_new_function): New function.
-
-2008-08-23 Jan Hubicka <jh@suse.cz>
-
- * opts.c (decode_options): Revert accidental change enabling ipa-cp.
-
-2008-08-23 Jan Hubicka <jh@suse.cz>
-
- * ipa-cp.c (constant_val_insert): Remove.
- (ipcp_propagate_one_const): Remove.
- (ipcp_create_replace_map): Always insert replacements to the map.
- (ipcp_insert_stage): Do not try to insert statements by hand.
- * tree-inline.c (insert_init_stmt): Break out from ...
- (setup_one_parameter): ... here; allow NULL BB pointer.
- (tree_function_versioning): Use setup_one_parameter to process
- replacement map.
-
-2008-08-23 Jan Hubicka <jh@suse.cz>
-
- * tree.c (decl_address_ip_invariant_p): New function.
- * tree.h (decl_address_ip_invariant_p): Declare.
- * gimple.c (strip_invariant_refs): Break out from ...
- (is_gimple_invariant_address): ... here
- (is_gimple_ip_invariant_address): New function.
- (is_gimple_ip_invariant): New function.
- * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
- Declare.
-
- * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
- (ipcp_lat_is_insertable): All constants are insertable.
- (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
- IPA_CONST_VALUE_REF.
- (ipcp_initialize_node_lattices): Propagate all types of operands.
- (build_const_val): Do not handle IPA_CONST_VALUE_REF.
- (ipcp_create_replace_map): Reformat.
- (ipcp_need_redirect_p): Simplify.
- (ipcp_insert_stage): Check that argument is used before clonning.
- * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
- IPA_CONST_REF.
- (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
- (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
- (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
- * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
- (jump_func_type): Remove IPA_CONST_VALUE_REF.
- * tree-inline.c (tree_function_versioning): Add variables referenced
- by replacing trees.
-
-2008-08-23 Jan Hubicka <jh@suse.cz>
-
- PR target/37094
- * i386.c (standard_80387_constant_p): Use optimize_size.
-
-2008-08-23 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37161
- * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
- * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
- (vect_determine_vectorization_factor): Move the scalar type
- retrieval to vect_get_smallest_scalar_type.
- (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
- scalar type. Remove redundant computation.
- * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
- (vect_get_slp_defs): Take the type of RHS into account if
- necessary by calling vect_get_smallest_scalar_type. Call
- vect_get_constant_vectors with additional argument.
-
-2008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35648
- * doc/invoke.texi (Wwrite-strings): Clarify description.
-
-2008-08-23 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37174
- * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
- def stmt is a part of the loop before accessing its stmt_vec_info.
-
-2008-08-22 Anatoly Sokolov <aesok@post.ru>
-
- PR target/11259
- * config/avr/avr.md (UNSPEC_SWAP): New constants.
- (*swap): New insn pattern.
- (*ashlqi3): Rename from ashlqi3 insn pattern.
- (ashlqi3): New expanders.
- (*lshrqi3): Rename from lshrqi3 insn pattern.
- (lshrqi3): New expanders.
- (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
- lshrqi3_const5, lshrqi3_const6): New splitters.
- (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
- lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
- peephole2 patterns.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37078
- * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
- [+INF, +INF] ranges.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37143
- * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
- a conversion statement instead of a copy.
-
-2008-08-22 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/37184
- * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
- CCCmode, CCOmode and CCSmode destination modes.
-
- PR target/37191
- * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
- from different units in a single alternative.
- (*vec_extractv2sf_1): Ditto.
- (*vec_extractv2si_0): Ditto.
- (*vec_extractv2si_1): Ditto.
- * config/i386/sse.md (sse2_storehpd): Ditto.
- (sse2_storelpd): Ditto.
- (sse2_loadhpd): Ditto.
- (sse2_loadlpd): Ditto.
-
- PR target/37197
- * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
- (popcountsi2): Ditto.
- (clzdi2_abm): Ditto.
- (popcountdi2): Ditto.
- (clzhi2_abm): Ditto.
- (popcounthi2): Ditto.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36548
- PR middle-end/37125
- * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
- if the multiplication does not overflow.
-
-2008-08-21 Nathan Sidwell <nathan@codesourcery.com>
-
- * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
-
-2008-08-21 Richard Henderson <rth@redhat.com>
-
- * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
- spurrious comma from test.
- * configure: Rebuild.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 30457
- * builtins.c (fold_builtin_next_arg): Add warning about undefined
- behaviour.
-
-2008-08-21 Aldy Hernandez <aldyh@redhat.com>
-
- * c-tree.h (grokfield): New argument.
- * c-decl.c (grokfield): Handle new location argument.
- * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
-
-2008-08-21 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (first_cgraph_function_insertion_hook): New variable.
- (cgraph_add_function_insertion_hook,
- cgraph_remove_function_insertion_hook,
- cgraph_call_function_insertion_hooks): New functions.
- * cgraph.h (cgraph_add_function_insertion_hook,
- cgraph_remove_function_insertion_hook,
- cgraph_call_function_insertion_hooks): Declare.
- * ipa-reference.c (function_insertion_hook_holder): New variable.
- (check_operand, look_for_address_of): When checking late, do not care
- about module bitmaps.
- (add_new_function): New function.
- (generate_summary): Register hooks; zero module bitmaps.
- (propagate): Unregister hooks.
- * ipa-pure-const.c (function_insertion_hook_holder): New variable.
- (add_new_function): New function.
- (generate_summary): Register hook.
- (propagate): Remove hook.
-
- * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
-
- * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
- * ipa-cp.c (ipcp_update_cloned_node): New function.
- (build_const_val): Handle functions correctly; bring type logic
- into sync with tree-inline.c
- (ipcp_init_stage): Take care of computing stuff needed by
- indirect inlining; update clones.
- (ipcp_generate_summary): Break out of ipcp_driver.
- (ipcp_driver): Do only execution and transformation.
- (pass_ipa_cp): Make IPA_PASS.
- * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
- offset to address.
- * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
- ipcp, some info is already available.
- * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
- * tree-inline.c (remap_ssa_name): Unshare expression.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
- a PHI ask VN if it is already available.
- * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
- * tree-ssa-sccvn.c (vn_phi_lookup): Export.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36817
- * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
- makes sure to produce a result of the correct type.
-
-2008-08-21 Jan Hubicka <jh@suse.cz>
- Backport from LTO branch:
-
- 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
- Jan Hubicka <jh@suse.cz>
-
- * ipa-pure-const.c
- (init_state, finish_state, set_function_state, generate_summary):
- New functions.
- (scan_stmt): Renamed from scan_function. Changed to keep state in
- local static vars rather than cgraph aux field.
- (propagate): Renamed from static_execute. Changed to keep state in
- local static vars rather than cgraph aux field.
- (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
- * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
-
- 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
- * ipa-reference.c (init_function_info, generate_summary,
- propagate): New functions.
- (analyze_function): Call init_function_info.
- (static_execute): Stripped into generate_summary and propagate.
- (pass_ipa_reference): Made into ipa_opt_pass.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37181
- * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
- folding result.
- (extract_range_from_unary_expr): Likewise.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * diagnostic.c (pedwarn_at): Rename as pedwarn.
- (pedwarn): Delete.
- * toplev.h (pedwarn_at): Likewise.
- * builtins.c: Update all calls to pedwarn.
- * c-lex.c: Likewise.
- * toplev.c: Likewise.
- * c-tree.h: Likewise.
- * c-decl.c: Likewise.
- * c-errors.c: Likewise.
- * c-typeck.c: Likewise.
- * c-common.c: Likewise.
- * c-parser.c: Likewise.
-
-2008-08-20 Joseph Myers <joseph@codesourcery.com>
-
- PR target/31070
- * config/sparc/sparc.c (function_arg_slotno): Handle structure
- with MODE_VECTOR_INT mode.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/179
- * tree-ssa.c (warn_uninit): Do not warn for variables that can be
- initialized outside the current module.
- (warn_uninitialized_var): Ignore left-hand side when walking the
- trees. Ignore address expressions. Examine VUSE operands in gimple
- statements with a variable declaration on the right-hand side.
-
-2008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR bootstrap/37155
- * rtlanal.c (subreg_offset_representable_p): Revert last change.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35701
- * c-common.c (conversion_warning): Do not warn if applying bit-and
- operator to unsigned constant that fits in the target type.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/35602
- * c-common.c (conversion_warning): Do not warn for artificial
- expressions.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * tree-vrp.c (op_with_constant_singleton_value_range): New function.
- (extract_range_from_binary_expr): Fall back to constant propagation.
- (extract_range_from_unary_expr): Likewise.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
- with TREE_THIS_VOLATILE on shared nodes.
- (fold_stmt_r): Likewise.
-
-2008-08-20 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37171
- * c-parser.c (c_parser_attributes): For keywords use canonical
- spelling for attr_name.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * value-prof.c (check_counter): Revert wrong call to error.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * profile.c: Update calls to inform.
- * value-prof.c: Update calls to inform.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * diagnostic.c (inform): Add an explicit location_t parameter.
- * toplev.h (inform): Update declaration.
- * builtins.c: Update all calls to inform.
- * c-common.c: Likewise.
- * c-decl.c: Likewise.
- * c-opts.c: Likewise.
- * c-pch.c: Likewise.
- * c-pragma.c: Likewise.
- * c-typeck.c: Likewise.
- * coverage.c: Likewise.
- * opts.c: Likewise.
- * toplev.c: Likewise.
- * tree-cfg.c: Likewise.
- * tree-ssa.c: Likewise.
-
-2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37169
- * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
- V2DI mode, for SSE4.1, use movq instead of vector set if the
- second element is zero and inter-unit moves are OK.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
- properly handle conversion/copy chains after tuplification.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * passes.c (init_optimization_passes): Move the second
- forwprop pass before alias computation. Remove the second
- DCE pass. Remove the first dominator and phi copy/const
- prop passes.
-
-2008-08-20 Nick Clifton <nickc@redhat.com>
-
- * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
- support of this feature. Do not assume that a sufficiently new
- assembler will support the feature regardless of the target type.
- (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
- * configure: Regenerate.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * tree-vrp.c (found_in_subgraph): Remove.
- (live): New global static.
- (live_on_edge): New function.
- (blocks_visited): Remove.
- (register_edge_assert_for_2): Use live_on_edge.
- (find_conditional_asserts): Remove code dealing with
- found_in_subgraph. Do not walk the CFG.
- (find_switch_asserts): Likewise.
- (find_assert_locations_1): Renamed from find_assert_locations.
- Move finding assert locations for conditional and switch
- statements first. Update live bitmap. Do not walk the CFG.
- (find_assert_locations): New function.
- (insert_range_assertions): Remove entry of CFG walk.
- Adjust call to find_assert_locations.
- * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
- that only can appear because of fake exit edges but assert we
- never try to insert on those.
- (fini_pre): Do not remove fake exit edges here...
- (execute_pre): ...but here, before committing edge inserts.
-
-2008-08-19 Richard Guenther <rguenther@suse.de>
-
- * passes.c (init_optimization_passes): Exchange store-ccp
- with a ccp pass.
-
-2008-08-19 Rafael Espíndola <espindola@google.com>
-
- * varasm.c (weak_decls): Move earlier in the file.
- (assemble_external): Add weak decls to the weak_decls list.
- (declare_weak): Don't add decls to the weak_decls list.
-
-2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37157
- * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
- before (sse2_shufpd_<mode>).
-
-2008-08-19 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37156
- * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
- * tree.c (block_nonartificial_location): Likewise.
-
-2008-08-19 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35972
- PR tree-optimization/23094
- * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
- parameter.
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
- handle MISALIGNED_INDIRECT_REF.
- (get_ref_from_reference_ops): New helper.
- (vn_reference_lookup_pieces): Walk the use-def chain using the
- alias-oracle if requested.
- * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
- walking the use-def chain.
- (compute_avail): But not here.
- (create_component_ref_by_pieces_1): Properly handle
- MISALIGNED_INDIRECT_REF.
- (do_regular_insertion): Handle fully redundant
- expressions after PHI-translation also for SSA_NAME values, not
- only constants. Correctly use edoubleprime for that.
-
-2008-08-19 Ira Rosen <irar@il.ibm.com>
+ * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed
+ comments.
+
+2009-01-14 Jakub Jelinek <jakub@redhat.com>
- * tree-vectorizer.c (supportable_widening_operation): Support
- multi-step conversion, return the number of steps in such conversion
- and the required intermediate types.
- (supportable_narrowing_operation): Likewise.
- * tree-vectorizer.h (vect_pow2): New function.
- (supportable_widening_operation): Change argument types.
- (supportable_narrowing_operation): Likewise.
- (vectorizable_type_promotion): Add an argument.
- (vectorizable_type_demotion): Likewise.
- * tree-vect-analyze.c (vect_analyze_operations): Call
- vectorizable_type_promotion and vectorizable_type_demotion with
- additional argument.
- (vect_get_and_check_slp_defs): Detect patterns.
- (vect_build_slp_tree): Add an argument, don't fail in case of multiple
- types.
- (vect_analyze_slp_instance): Don't fail in case of multiple types.
- Call vect_build_slp_tree with correct arguments. Calculate unrolling
- factor according to the smallest type in the loop.
- (vect_detect_hybrid_slp_stmts): Include statements from patterns.
- * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
- supportable_widening_operation with correct arguments.
- * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
- operands lists according to the number of vector statements in left
- or right node, if exists.
- (vect_gen_widened_results_half): Remove unused argument.
- (vectorizable_conversion): Call supportable_widening_operation,
- supportable_narrowing_operation, and vect_gen_widened_results_half
- with correct arguments.
- (vectorizable_assignment): Change documentation, support multiple
- types in SLP.
- (vectorizable_operation): Likewise.
- (vect_get_loop_based_defs): New function.
- (vect_create_vectorized_demotion_stmts): Likewise.
- (vectorizable_type_demotion): Support loop-aware SLP and general
- multi-step conversion. Call vect_get_loop_based_defs and
- vect_create_vectorized_demotion_stmts for transformation.
- (vect_create_vectorized_promotion_stmts): New function.
- (vectorizable_type_promotion): Support loop-aware SLP and general
- multi-step conversion. Call vect_create_vectorized_promotion_stmts
- for transformation.
- (vectorizable_store): Change documentation, support multiple
- types in SLP.
- (vectorizable_load): Likewise.
- (vect_transform_stmt): Pass SLP_NODE to
- vectorizable_type_promotion and vectorizable_type_demotion.
- (vect_schedule_slp_instance): Move here the calculation of number
- of vectorized statements for each node from...
- (vect_schedule_slp): ... here.
- (vect_transform_loop): Call vect_schedule_slp without the last
+ PR rtl-optimization/38245
+ * calls.c (expand_call): Add stack arguments to
+ CALL_INSN_FUNCTION_USAGE even for pure calls (when
+ ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
+ in regs and partially in memory or BLKmode arguments.
+ (emit_library_call_value_1): Add stack arguments to
+ CALL_INSN_FUNCTION_USAGE even for pure calls (when
+ ACCUMULATE_OUTGOING_ARGS).
+ * dce.c: Include tm_p.h.
+ (find_call_stack_args): New function.
+ (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
argument.
+ (mark_insn): Call find_call_stack_args for CALL_Ps.
+ (prescan_insns_for_dce): Walk insns backwards in bb rather than
+ forwards. Allocate and free arg_stores bitmap if needed, pass it
+ down to deletable_insn_p, don't mark stores set in arg_stores
+ bitmap, clear the bitmap at the beginning of each bb.
+ * Makefile.in (dce.o): Depend on $(TM_P_H).
-2008-08-19 Dorit Nuzman <dorit@il.ibm.com>
-
- PR bootstrap/37152
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
- to == in assert statement.
- (vectorizable_reduction): Fix typo.
-
-2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR bootstrap/37153
- * value-prof.c (check_counter): Dereference pointer to overall
- count when printing it.
-
-2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * profile.h: Really add it.
-
-2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * mcf.c: Really add it.
-
-2008-08-18 Paul Yuan <yingbo.com@gmail.com>
- Vinodha Ramasamy <vinodha@google.com>
-
- * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
- count_scale.
- * value-prof.c (check_counter): Fix the counter if
- flag_profile_correction is true.
- (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
- tree_mod_subtract_transform):
- Follow check_counter parameter change.
- * common.opt (fprofile-correction): New option.
- * mcf.c: New file.
- * profile.h: Likewise.
- * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
- (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
- is_inconsistent, set_bb_counts, read_profile_edge_counts): New
- functions.
- (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
- flag_profile_correction is set.
-
-2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
-
- * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
-
-2008-08-18 Tomas Bily <tbily@suse.cz>
-
- * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
- * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
- CONVERT_EXPR_P.
- * tree-data-ref.c (split_constant_offset_1): Likewise.
- * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
- * tree-sra.c (sra_walk_expr): Likewise.
- * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
- * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
- * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
- * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
- Likewise.
- * gimple.c (gimple_assign_unary_nop_p): Likewise.
- * tree-vect-transform.c (vectorizable_type_demotion)
- (vectorizable_type_promotion): Likewise.
- * tree-inline.c (expand_call_inline):
- * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
- (forward_propagate_addr_expr_1, forward_propagate_comparison)
- (tree_ssa_forward_propagate_single_use_vars): Likewise.
- * expr.c (expand_expr_real_1): Likewise.
- * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
- (gimple_assign_unary_useless_conversion_p): Likewise.
- * tree-stdarg.c (execute_optimize_stdarg): Likewise.
- * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
- * fold-const.c (fold_unary): Likewise.
- * tree.h (CONVERT_EXPR_P): Likewise.
- * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
- * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
- * tree-vrp.c:
- (register_edge_assert_for_2, extract_range_from_unary_expr)
- (register_edge_assert_for_1): Likewise.
-
-2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
- dconst_third_ptr, dconst_sqrt2_ptr): Declare.
- (enum real_value_const): Delete.
- (get_real_const): Delete.
- * real.c (get_real_const): Delete.
- (dconst_e_ptr): Define.
- (dconst_third_ptr): Define.
- (dconst_sqrt2_ptr): Define.
- * builtins.c: Update all callers.
-
-2008-08-18 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
- statement iterator after statement removal.
-
-2008-08-18 Andreas Tobler <a.tobler@schweiz.org>
-
- * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
- (detect_processor_freebsd): Likewise.
- (host_detect_local_cpu): Call newly added functions for FreeBSD.
-
-2008-08-18 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
- and loads have the correct types.
-
-2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR cpp/7263
- * c-opts.c (cpp_opts): Remove static.
- * c-parser.c (cpp_opts): Declare it extern.
- (disable_extension_diagnostics): Handle cpp options.
- (enable_extension_diagnostics): Likewise.
-
-2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * diagnostics.c (permerror_at): Rename as permerror.
- (permerror): Delete.
- * toplev.h: Likewise.
-
-2008-08-18 Richard Guenther <rguenther@suse.de>
-
- * passes.c (init_optimization_passes): Remove cleanup_cfg1,
- sdse1 and addressables2 passes. Replace dce1 with cddce1.
- Move call_cdce before build_alias. Move copyrename2,
- cunrolli and ccp2 beafore build_alias. Re-add addressable2
- right after final inlining.
- * tree-cfg.c (build_gimple_cfg): Do not dump function here.
- (pass_build_cfg): But instead via TODO_dump_func.
-
-2008-08-18 Richard Guenther <rguenther@suse.de>
-
- * tree-sra.c (generate_element_init_1): Deal with NULL constructor
- element index.
- (scalarize_init): If we failed to generate some initializers
- do not generate zeros for not instantiated members. Instead
- rely on the copy out.
- * tree-ssa-operands.c (get_addr_dereference_operands): Warn
- about missing flow-sensitive alias info only if we have
- aliases computed.
-
-2008-08-17 Nick Clifton <nickc@redhat.com>
-
- * doc/extend.texi (Function Attributes): Fix typo in description
- if hot function attribute.
-
-2008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
- Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/install.texi (--with-mips-plt): Document.
- * doc/invoke.texi (-mplt, -mno-plt): Document.
- * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
- and handle ${with_mips_plt}.
- * config/mips/mips.opt (mplt): New option.
- * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
- (TARGET_ABICALLS_PIC2): Likewise.
- (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
- (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
- (ASM_SPEC): Use !mabi=* instead of !mabi*.
- (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
- to decide whether to output ".option picX" directives.
- * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
- Pass -call_nonpic rather than -KPIC for -mplt.
- (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
- on the command line. Also remove it when -mabi=64 is used without
- -msym32.
- * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
- * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
- TARGET_ABICALLS_PIC0.
- (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
- TARGET_ABICALLS.
- (mips16_build_function_stub): Only output ".option pic" directives
- and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
- (mips16_build_call_stub): Fix comment and remove redundant
- ".set at"/"set .noat" directives.
- (mips_function_rodata_section): Use the default behaviour for
- TARGET_ABSOLUTE_ABICALLS.
- (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
- (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
- (mips_restore_gp): Do nothing if the current function doesn't use
- a global pointer.
- (mips_expand_prologue): Only save $gp if the current function uses it.
- Use a normal move for TARGET_ABICALLS_PIC0.
- (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
-
-2008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
- of function when handling GLOBAL_POINTER_REGNUM.
-
-2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
-
- PR ada/20548
- * common.opt (-fstack-check): Do not declare the variable here.
- (-fstack-check=): New option variant.
- * doc/invoke.texi (Code Gen Options): Document it.
- * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
- (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
- (STACK_CHECK_STATIC_BUILTIN): New macro.
- * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
- * opts.c: Include expr.h.
- (common_handle_option) <OPT_fold_stack_check_>: New case.
- <OPT_fstack_check>: Likewise.
- * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
- consistently in the test for variable-sized types. Adjust for
- new behaviour of flag_stack_check.
- * explow.c: Include except.h.
- (allocate_dynamic_stack_space): Do not take into account
- STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
- * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
- for variable-sized parameters. Treat all parameters whose size is
- greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
- stack checking is enabled.
- * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
- size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
- if generic stack checking is enabled.
- (expand_function_end): Adjust for new behaviour of flag_stack_check.
- * reload1.c (reload): Likewise.
- * stmt.c (expand_decl): Assert that all automatic variables have
- fixed size at this point and remove dead code.
- * flags.h (stack_check_type): New enumeration type.
- (flag_stack_check): Declare.
- * toplev.c (flag_stack_check): New global variable.
- * Makefile.in (opts.o): Add dependency on EXPR_H.
- (explow.o): Add dependency on except.h.
-
-2008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * config/avr/avr.c (avr_override_options): Reduce value of
- PARAM_INLINE_CALL_COST.
-
-2008-08-15 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-14 Michael Meissner <gnu@the-meissners.org>
- * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
- to BLKmode, try to fetch an inner memory reference. Use 'mode' in
- lieu of TYPE_MODE (type) throughout.
+ PR target/22599
+ * i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f' to make
+ sure the insn is a conditional test (bug 22599). Reformat a few long
+ lines.
-2008-08-15 Joseph Myers <joseph@codesourcery.com>
+2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
- * config/arm/arm.c (add_minipool_backward_ref): Check for
- 8-byte-aligned entries in second case of forcing insertion after a
- particular entry. Change third case to avoid inserting
- non-8-byte-aligned entries before 8-byte-aligned ones.
+ PR middle-end/38431
+ * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
+ (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
+ (gloog): Do not call cleanup_tree_cfg.
+ (graphite_transform_loops): Call cleanup_tree_cfg after all
+ scops have been code generated.
-2008-08-15 Richard Guenther <rguenther@suse.de>
+2009-01-14 Vladimir Makarov <vmakarov@redhat.com>
- * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
- strip components for unknown size accesses.
+ * testsuite/g++.dg/torture/pr38811.C: New file.
-2008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
+2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
+ * doc/gty.texi (Invoking the garbage collector): Added new node
+ and section documenting ggc_collect.
- * config/s390/2097.md New file.
- * config/s390/s390.md ("z10prop" attribute): Define none,
- z10_super, z10_super_E1, z10_super_A1, z10_super_c,
- z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
- z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
- possible values and apply them to insns as appropriate.
- ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
- ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
- fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
- fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
- ("bfp" mode attribute): Removed. Every occurence replaced
- with <mode>.
- * config/s390/s390.c (struct "z10_cost"): Updated entries.
- * config/s390/2084.md (insn_reservation "x_itof"): Updated
- type attribute.
+2009-01-14 Richard Guenther <rguenther@suse.de>
-2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+ PR tree-optimization/38826
+ PR middle-end/38477
+ * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
+ initialization notes only if we actually emitted a warning.
+ (intra_create_variable_infos): Add constraints for a result decl
+ that is passed by hidden reference.
+ (build_pred_graph): Mark all related variables non-direct on
+ address-taking.
- PR c/28152
- * c-parser.c (c_lex_one_token): Do not store the canonical spelling
- for keywords.
+2009-01-14 Nick Clifton <nickc@redhat.com>
-2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
+ * ira-conflicts.c: Include addresses.h for the definition of
+ base_reg_class.
+ (ira_build_conflicts): Use base_reg_class instead of
+ BASE_REG_CLASS.
+ * Makefile.in: Add a dependency of ira-conflicts.o on
+ addresses.h.
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
- additional argument. Support reduction when duplication is needed due
- to data-types of different sizes in the loop.
- (get_initial_def_for_induction): Fix printout.
- (vect_get_vec_def_for_stmt_copy): Support case where the
- vec_stmt_for_operand is a phi node.
- (vectorizable_reduction): Support reduction when duplication is needed
- due to data-types of different sizes in the loop.
- (vectorizable_call): Remove restriction to not vectorize in case we
- have data-types of different sizes in the loop.
- (vectorizable_conversion): Likewise.
- (vectorizable_operation): Likewise.
- (vectorizable_type_demotion): Likewise.
- (vectorizable_type_promotion): Likewise.
- (vectorizable_induction): Add restriction to not vectorize in case
- we have data-types of different sizes in the loop.
+2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
-2008-08-14 Christophe Saout <christophe@saout.de>
- Uros Bizjak <ubizjak@gmail.com>
+ PR target/38811
+ * Makefile.in (ira-lives.o): Add except.h.
- PR target/37101
- * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
- (*vec_concatv2di_rex64_sse4_1): Ditto.
- (*vec_concatv2di_rex64_sse): Ditto.
+ * ira-lives.c: Include except.h.
+ (process_bb_node_lives): Process can_throw_internal.
-2008-08-14 Jakub Jelinek <jakub@redhat.com>
+2009-01-13 Jakub Jelinek <jakub@redhat.com>
- PR middle-end/37103
- * fold-const.c (fold_widened_comparison): Do not allow
- sign changes that change the result even if shorter type
- is wider than arg1_unw's type.
+ PR rtl-optimization/38774
+ * combine.c (simplify_set): When undoing cc_use change, don't do
+ PUT_CODE on the newly created comparison, but instead put back the
+ old comparison.
-2008-08-13 Kazu Hirata <kazu@codesourcery.com>
+2009-01-13 Joseph Myers <joseph@codesourcery.com>
- * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
- Skip if the multilib testing specifies -march that does not
- agree with the one specified in the testcase.
+ * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
+ values. Remove duplicate arm8 entry.
-2008-08-13 Joseph Myers <joseph@codesourcery.com>
+2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
- * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
- zero extend SImode values being converted to TFmode before passing
- to libcalls.
+ PR tree-optimization/38786
+ * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
+ the SSA_NAME case of expand_scalar_variables_expr.
+ Set the type of an expression to the type of its assign statement.
+ (expand_scalar_variables_expr): Also gather the scalar computation
+ used to index the memory access. Do not pass loop_p.
+ Fix comment. Stop recursion on tcc_constant or tcc_declaration.
+ (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
+ the gimple_stmt_iterator where it inserts new code. Do not pass loop_p.
+ (copy_bb_and_scalar_dependences): Do not pass loop_p.
+ (translate_clast): Update call to copy_bb_and_scalar_dependences.
-2008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
- * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
- __PPU__ when targeting the Cell/B.E. PPU processor.
+ * graphite.h (debug_value): Removed.
+ * graphite.c (debug_value): Removed.
-2008-08-13 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-13 Richard Earnshaw <rearnsha@arm.com>
- * gimple.h (gimple_call_set_chain): Accept SSA variables.
- * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
- Rematerialize the static chain, if any.
- * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
- static chain.
+ * arm.c (output_move_double): Don't synthesize thumb-2 ldrd/strd with
+ two 32-bit instructions.
-2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-13 Richard Earnshaw <rearnsha@arm.com>
- * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
- (new_loc_descr): Likewise.
- (add_loc_descr): Likewise.
- (size_of_loc_descr): Likewise.
- (size_of_locs): Likewise.
- (output_loc_operands): Likewise.
- (output_loc_sequence): Likewise.
- (new_reg_loc_descr): New.
- (build_cfa_loc): Use it.
- (build_cfa_aligned_loc): Likewise.
- (one_reg_loc_descriptor): Likewise.
- (based_loc_descr): Likewise.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 30551
- * doc/invoke.texi (Wmain): Update.
- * c-decl.c (start_decl): warn_main is only 0 or 1.
- (start_function): Likewise. Fix formatting.
- (finish_function): Delete redundant warning.
- * c.opt (Wmain): Add Var(warn_main) and Init(-1).
- * c-opts (c_common_handle_option): -Wall only has effect if
- warn_main is uninitialized. OPT_Wmain is automatically
- handled. -pedantic also enables Wmain.
- (c_common_post_options): Handle all logic for Wmain here.
- * c-common.c (warn_main): Delete.
- (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
- * c-common.h (warn_main): Delete.
-
-2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36701
- * expr.c (emit_group_store): Allocate stack temp with the
- largest alignment when copying from register to stack.
-
-2008-08-13 Richard Guenther <rguenther@suse.de>
-
- * tree.h (maybe_fold_offset_to_address): Declare.
- * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
- (ccp_fold): Handle pointer conversions the same as fold_stmt.
- Likewise for POINTER_PLUS_EXPR.
- (maybe_fold_offset_to_reference): Enable disabled code.
- (maybe_fold_offset_to_address): New function.
- (fold_stmt_r): Use it.
- (fold_gimple_assign): Likewise.
- * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
- (gimplify_expr): Likewise.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * toplev.h (pedwarn_at): Fix declaration.
-
-2008-08-13 Joseph Myers <joseph@codesourcery.com>
-
- * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
- LINK_SPEC): Use %R in -Y P argument.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/15236
- * diagnostic.c (pedwarn_at): New.
- * toplev.h (pedwarn_at): Declare.
- * c-tree.h (build_enumerator): Update declaration.
- * c-decl.c (finish_enum): Update comment.
- (build_enumerator): Take a location parameter. Give a pedwarn but do
- not perform any conversion.
- * c-parser.c (c_parser_enum_specifier): Set correct location for
- enumerator.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35635
- * c-common.c (conversion_warning): Use a switch. Ignore boolean
- expressions except for conversions to signed:1 bitfields. Handle
- COND_EXPR with constant operands.
-
-2008-08-13 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/15255
- * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
- (struct oecount_s): New struct and VEC types.
- (cvec): New global.
- (oecount_hash): New function.
- (oecount_eq): Likewise.
- (oecount_cmp): Likewise.
- (zero_one_operation): New function.
- (build_and_add_sum): Likewise.
- (undistribute_ops_list): Perform un-distribution of multiplication
- and division on the chain of summands.
- (should_break_up_subtract): Also break up subtracts for factors.
- (reassociate_bb): Delete dead visited statements.
- Call undistribute_ops_list. Re-sort and optimize if it did something.
- * passes.c (init_optimization_passes): Move DSE before
- reassociation.
- * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
- PHI nodes.
-
-2008-08-12 Janis Johnson <janis187@us.ibm.com>
-
- * doc/invoke.texi (-fipa-pta): Say the option is experimental.
-
- * doc/invoke.texi: Revert unintended checkin.
-
-2008-08-12 Nathan Froyd <froydnj@codesourcery.com>
-
- PR libgomp/26165
- * gcc.c (include_spec_function): Tweak call to find_a_file.
-
-2008-08-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37014
- * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
- and TRUTH_ORIF_EXPR.
- * dojump.c (do_jump): Likewise.
-
- PR tree-optimization/37084
- * tree-inline.c (copy_bb): Call gimple_regimplify_operands
- if id->regimplify, don't assume stmt is a cast assignment.
-
-2008-08-12 Anatoly Sokolov <aesok@post.ru>
-
- * final.c (final_scan_insn): Use app_enable/app_disable functions.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- PR bootstrap/37097
- * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
- by last change.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * defaults.h (TARGET_FLOAT_FORMAT): Remove.
- (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
-
- * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
- * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
- * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
- * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
- * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
-
- * doc/tm.texi (Storage Layout): Remove documentation for
- TARGET_FLOAT_FORMAT.
-
- * simplify-rtx.c (simplify_binary_operation_1): Replace
- TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * real.h (struct real_format): New member has_sign_dependent_rounding.
- * real.c (ieee_single_format, mips_single_format, motorola_single_format,
- spu_single_format, ieee_double_format, mips_double_format,
- motorola_double_format, ieee_extended_motorola_format,
- ieee_extended_intel_96_format, ieee_extended_intel_128_format,
- ieee_extended_intel_96_round_53_format, ibm_extended_format,
- mips_extended_format, ieee_quad_format, mips_quad_format,
- vax_f_format, vax_d_format, vax_g_format): Initialize it.
- * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
-
- * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
- MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
- * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
- MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
- (ROUND_TOWARDS_ZERO): Likewise.
-
- * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
- (FLOAT_MODE_FORMAT): New macro.
- (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
- (MODE_COMPOSITE_P): ... this new macro.
- (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
- MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
- * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
-
- * flags.h: Include "real.h".
-
- * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
- REAL_MODE_FORMAT_COMPOSITE_P.
- * simplify-rtx.c (simplify_const_binary_operation): Likewise.
-
- * doc/tm.texi (Storage Layout): Remove documentation of
- MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
- MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
- ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
- they only apply to libgcc2.a.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/float_disf.c: New file.
- * config/spu/float_unsdisf.c: New file.
- * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
- (LIB2FUNCS_EXCLUDE): Define.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
- Trevor Smigiel <trevor_smigiel@playstation.sony.com>
-
- * real.h (struct real_format): New member round_towards_zero.
- * real.c (round_for_format): Respect fmt->round_towards_zero.
- (ieee_single_format, mips_single_format, motorola_single_format,
- spu_single_format, ieee_double_format, mips_double_format,
- motorola_double_format, ieee_extended_motorola_format,
- ieee_extended_intel_96_format, ieee_extended_intel_128_format,
- ieee_extended_intel_96_round_53_format, ibm_extended_format,
- mips_extended_format, ieee_quad_format, mips_quad_format,
- vax_f_format, vax_d_format, vax_g_format): Initialize it.
- * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
-
- * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
- real_format to choose rounding mode when calling MPFR functions.
- (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
- (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
-
- * real.h (real_to_decimal_for_mode): Add prototype.
- * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
- Respect target rounding mode when generating decimal representation.
- (real_to_decimal): New stub for backwards compatibility.
- * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
- real_to_decimal_for_mode instead of real_to_decimal.
-
- * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
- Trevor Smigiel <trevor_smigiel@playstation.sony.com>
-
- * real.c (spu_single_format): New variable.
- * real.h (spu_single_format): Declare.
-
- * config/spu/spu.c (spu_override_options): Install SFmode format.
- (spu_split_immediate): Use integer mode to operate on pieces of
- floating-point values in all cases.
-
- * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
- ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
- ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
-
-2008-08-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36688
- * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
- on the VAR_DECL instead of TYPE_READONLY on its type.
-
-2008-08-12 Ira Rosen <irar@il.ibm.com>
-
- * tree-vectorizer.c: Depend on langhooks.h.
- (supportable_widening_operation): Add two arguments. Support double
- type conversions.
- (supportable_narrowing_operation): Likewise.
- * tree-vectorizer.h (supportable_widening_operation): Add two
- arguments.
- (supportable_narrowing_operation): Likewise.
- * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
- supportable_widening_operation with correct arguments.
- * tree-vect-transform.c (vectorizable_conversion): Likewise.
- (vectorizable_type_demotion): Support double type conversions.
- (vectorizable_type_promotion): Likewise.
- * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
-
-2008-08-11 Michael Matz <matz@suse.de>
-
- * i386/i386.c (override_options): Move initialisation from
- flag_schedule_insns_after_reload to here from ...
- (optimization_options): ... here.
-
-2008-08-11 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36998
- * dwarf2out.c (compute_barrier_args_size_1,
- compute_barrier_args_size): Temporarily remove assertions.
-
-2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/20644
- * tree-ssa.c (struct walk_data): Add new flag
- warn_possibly_uninitialized.
- (warn_uninitialized_var): Use it.
- (warn_uninitialized_vars): New.
- (execute_early_warn_uninitialized): Call it.
- (execute_late_warn_uninitialized): Likewise.
-
-2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36238
- * reload1.c (gen_reload): Guard calls to get_secondary_mem
- for memory subregs.
-
-2008-08-09 Jan Hubicka <jh@suse.cz>
-
- PR target/37055
- * optabs.c (maybe_emit_unop_insn): Remove produced code if
- expansion failed.
- (expand_fix): Be prepared for expansion to fail.
- (expand_sfix_optab): Remove instructions if expansion failed.
-
-2008-08-09 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
- avr31 architecture.
- * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
- * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
- mips/t-libgcc-mips16 to tmake_file.
- * config/mips/mips-protos.h (mips_call_type): New enum.
- (mips_pic_base_register, mips_got_load): Declare.
- (mips_restore_gp): Take an rtx argument.
- (mips_use_pic_fn_addr_reg_p): Declare.
- (mips_expand_call): Replace the sibcall_p argument with
- a mips_call_type argument. Add a lazy_p parameter.
- (mips_split_call): Declare.
- * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
- (MIPS16_PIC_TEMP): Likewise.
- (reg_class): Delete M16_NA_REGS.
- (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
- (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
- (mips_split_hi_p): Declare.
- * config/mips/mips.c (mips_split_hi_p): New array.
- (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
- (mips_got_symbol_type_p): New function.
- (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
- (mips16_stub_function_p): New function.
- (mips16_local_function_p): Likewise.
- (mips_use_pic_fn_addr_reg_p): Likewise.
- (mips_cannot_force_const_mem): Return false for HIGHs.
- Extend CONST_INT and symbolic handling to MIPS16, using
- mips_symbol_insns to check that the base symbol type is a
- legitimate constant. Reject GOT-based constants if
- TARGET_MIPS16_PCREL_LOADS.
- (mips_const_insns): Check targetm.cannot_force_const_mem when
- decomposing a symbolic base and a large offset.
- (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
- When calling a function that needs $25 from MIPS16 code,
- move the target address into $25 separately and add a USE
- to the call insn.
- (mips16_gp_pseudo_reg): Insert the initializer immediately
- before the first real insn.
- (mips_pic_base_register, mips_got_load): New functions.
- (mips_split_symbol): Generalize the name of the LO_SUM_OUT
- parameter to LOW_OUT. Say that it can be any valid SET_SRC
- when splitting a load-address operation. Split SYMBOL_GOT_DISP
- constants and highs of SYMBOL_GOT_PAGE_OFST constants.
- (mips_call_tls_get_addr): Update the call to mips_expand_call,
- also passing NULL_RTX rather than const0_rtx as the aux argument.
- (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
- instead of TARGET_EXPLICIT_RELOCS.
- (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
- (mips_load_call_address): Replace the sibcall_p argument with
- a mips_call_type argument. Use mips_got_load.
- (mips16_local_alias): New structure.
- (mips16_local_aliases): New variable.
- (mips16_local_aliases_hash): New function.
- (mips16_local_aliases_eq): Likewise.
- (mips16_local_alias): Likewise.
- (mips16_stub_function): Likewise.
- (mips16_build_function_stub): Create a local alias for the target
- function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
- .cpload directive and an R_MIPS_NONE relocation for the target
- function, then load the alias rather than the function itself.
- Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
- (mips16_copy_fpr_return_value): Use mips16_stub_function and
- mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
- (mips16_build_call_stub): Replace the FN parameter with an
- FN_PTR parameter. Force the address into a register if it
- isn't a call_insn_operand; don't rely on the caller to do this.
- If a call to a locally-defined and locally-binding MIPS16
- function must be made indirectly, redirect the call to the
- function's local alias. Use mips16_stub_function_p,
- mips16_stub_function, mips_expand_call and use_reg.
- Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
- Use explicit %hi and %lo accesses where possible.
- Use MIPS_CALL to generate the correct code form of a
- jal instruction. Add clobbers of $18 instead of uses.
- Update the call to mips_emit_call_insn.
- (mips_expand_call): Replace the SIBCALL_P argument with a
- mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
- Take a LAZY_P parameter. Call mips16_build_call_stub first,
- allowing it to modify the call address. Update the calls to
- mips_load_call_address and mips_emit_call_insn.
- (mips_split_call): New function.
- (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
- !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
- SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
- (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
- (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
- if TARGET_MIPS16.
- (mips_cprestore_slot): New function.
- (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
- and use mips_cprestore_slot.
- (mips_output_function_prologue): Handle TARGET_MIPS16 for
- LOADGP_OLDABI.
- (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
- then use a copygp_mips16 instruction to set up $28.
- (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
- (mips16_lay_out_constants): Call split_all_insns_noflow.
- (mips_reorg_process_insns): Explicitly set all_noreorder_p to
- false if TARGET_MIPS16.
- (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
- (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
- mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
- (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
- MIPS16 code. Allow MIPS16 o32 PIC.
- (mips_override_options): Allow MIPS16 o32 PIC.
- * config/mips/mips.md: Lower CONST_GP_P moves into register moves
- after reload if TARGET_USE_GOT.
- (UNSPEC_COPYGP): New constant.
- (length): Use a default length of 8 for MIPS16 GOT loads.
- (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
- (*got_page<mode>): Check mips_split_hi_p.
- (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
- (unspec_got<mode>, unspec_call<mode>): New expanders.
- (load_got<mode>, load_call<mode>): Remove the length attributes.
- Use a got attribute instead of a type attribute.
- (copygp_mips16): New insn.
- (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
- (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
- (sibcall, sibcall_value, call, call_value): Update the calls
- to mips_expand_call.
- (call_internal, call_value_internal): Use mips_split_call.
- (call_value_multiple_internal): Likewise.
- (call_split): Move after call_internal (the insn it is split from).
- (call_internal_direct, call_value_internal_direct): Turn into
- define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
- (call_direct_split, call_value_direct_split): New patterns.
- * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
- and use M16_REGS instead of M16_NA_REGS.
- * config/mips/predicates.md (const_call_insn_operand): Replace
- the TARGET_ABSOLUTE_ABICALLS-based check with a more general
- mips_use_pic_fn_addr_reg_p check.
- (move_operand): Reject HIGHs if mips_split_hi_p.
- * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
- (__mips16_floatunsisf): Inline __mips16_floatsisf.
- (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
- * config/mips/libgcc-mips16.ver: New file.
- * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
- $(srcdir)/config/mips/libgcc-mips16.ver.
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_unspec_address_offset): Move earlier
- in file.
- (mips_unspec_address, mips_unspec_offset_high): Likewise.
- (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
- (mips16_cfun_returns_in_fpr_p): Likewise.
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
- * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
- rather than 4 to PC.
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
- (FUNCTION_PROFILER): Save the static chain pointer into $2
- beforehand and restore it aftewards.
- (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
- address directly into $25 and call the function through $25;
- do not clobber $3. Pad the DImode version to cover the space
- left by the deleted $25 <- $3 move.
- (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
- the removal of the $25 <- $3 move.
- (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
- * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
- Daniel Jacobowitz <dan@codesourcery.com>
-
- * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
- * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
- (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
- * config/mips/mips.c (mips_start_function_definition): New function.
- (mips_end_function_definition): Likewise.
- (mips_output_function_prologue): Use mips_start_function_definition.
- (mips_output_function_epilogue): Use mips_end_function_definition.
- (build_mips16_function_stub): Use mips_start_function_definition
- and mips_end_function_definition.
- (build_mips16_call_stub): Likewise.
-
-2008-08-09 Richard Guenther <rguenther@suse.de>
-
- * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
- * gimple.h (gimple_call_fn): Adjust comment.
- (gimple_call_set_fndecl): New function.
- (gimple_call_fndecl): Adjust for GIMPLE_CALL no
- longer having bare FUNCTION_DECL operand.
- (gimple_call_return_type): Likewise.
- * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
-
- * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
- (gimple_mod_pow2): Likewise.
- (gimple_mod_subtract): Likewise.
- (gimple_ic): Likewise.
- (gimple_stringop_fixed_value): Likewise.
- (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
- longer having bare FUNCTION_DECL operand.
- * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
- * omp-low.c (optimize_omp_library_calls): Likewise.
- * cgraphunit.c (update_call_expr): Likewise.
- * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
- (execute_convert_to_rsqrt): Likewise.
- * cfgexpand.c (gimple_to_tree): Simplify.
- (release_stmt_tree): Fix for GIMPLE_CALL no longer having
- bare FUNCTION_DECL operand.
- * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
- (convert_gimple_call): Use gimple_call_fndecl.
- * c-common.c (c_warn_unused_result): Likewise.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/17880
- * c-typeck.c (digest_init): Call verify_sequence_points from here.
- (c_finish_return): Likewise.
- (c_start_case): Likewise.
- * c-common.c (warn_for_collisions_1): Use explicit location in warning.
- * c-parser.c (c_parser_condition): New. Call
- verify_sequence_points.
- (c_parser_paren_condition): Call c_parser_condition.
- (c_parser_for_statement): Call c_parser_condition.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 36901
- * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
- * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
- Moved from diagnostic.h
- (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
- DK_PERMERROR.
- (emit_diagnostic): New.
- (warning0, pedwarn0): Delete.
- (warning, warning_at, pedwarn, permerror): Return bool.
- * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
- Moved to diagnostic.c.
- (struct diagnostic_context): Use correct type for
- classify_diagnostic.
- (diagnostic_report_diagnostic): Update declaration.
- (emit_diagnostic): Declare.
- * errors.c (warning): Return bool.
- * errors.h (warning): Update declaration.
- * toplev.h (warning0, pedwarn0): Delete.
- (warning, warning_at, pedwarn, permerror): Return bool.
- * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
- * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
- inform. Update all calls.
- (diagnose_mismatched_decls): Check return value of warning/pedwarn
- before giving informative note.
- (implicit_decl_warning): Likewise.
- * c-typeck.c (build_function_call): Likewise.
- * tree-sssa.c (warn_uninit): Likewise.
- * builtins.c (gimplify_va_arg_expr): Likewise.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 7651
- * doc/invoke.texi (-Wextra): Move warning from here...
- (-Wuninitialized): ... to here.
-
-2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28875
- * flags.h (set_Wunused): Delete
- * toplev.c (process_options): Handle Wunused flags here.
- * opts.c (maybe_warn_unused_parameter): Delete.
- (common_handle_option): Replace set_Wunused by warn_unused.
- (set_Wextra): Do not handle Wunused-parameter here.
- (set_Wunused): Delete.
- * c-opts.c (c_common_handle_option): Replace set_Wunused by
- warn_unused.
- * common.opt (Wunused): Add Var and Init.
- (Wunused-function): Likewise.
- (Wunused-label): Likewise.
- (Wunused-parameter): Likewise.
- (Wunused-value): Likewise.
- (Wunused-variable): Likewise.
-
-2008-08-08 Peter Bergner <bergner@vnet.ibm.com>
-
- * doc/invoke.texi: Add cpu_type power7.
- * config.in (HAVE_AS_VSX): New.
- * config.gcc: Add cpu_type power7.
- * configure.ac (HAVE_AS_VSX): Check for assembler support of the
- VSX instructions.
- * configure: Regenerate.
- * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
- power5.
- * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
- (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
- (EXTRA_SPECS): Add asm_cpu_power7 spec string.
-
-2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
-
- * tree-vect-transform.c (vectorizable_conversion): Pass the integral
- type to vectorize.builtin_conversion.
- (vectorizable_conversion): Likewise.
- * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
- integral type as input.
- * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
- FIX_TRUNC_EXPR.
- (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
- and ALTIVEC_BUILTIN_VCTSXS.
- (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
- formatting.
-
-2008-08-08 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-ccp.c (likely_value): Calls are not all varying.
- (surely_varying_stmt_p): Calls are varying only if they are
- non-builtin and not indirect or have no result.
- (ccp_fold): Re-instantiate code before the tuples merge.
-
-2008-08-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37056
- * gimple.h (gimple_assign_rhs_class): New helper function.
- * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
- unary operations properly.
-
-2008-08-07 Jan Hubicka <jh@suse.cz>
-
- * i386.h (ix86_size_cost): Declare.
- (ix86_cur_cost): New function macro.
- * i386.md (peepholes expanding size and splitters): Predicate by
- optimize_insn_for_speed_p.
- (peepholes reduce size and splitters): Predicate by
- optimize_insn_for_size_p.
- * i386.c (ix86_size_cost): Rename from ...
- (size_cost): This one.
- (override_options): Update.
- (decide_alg): Likewise.
- (ix86_expand_clear): Use RTL profile.
- (ix86_pad_returns): Use RTL profile.
-
-2008-08-07 Jan Hubicka <jh@suse.cz>
-
- * recog.c (split_all_insns): Set RTL profile
- (peephole2_optimize): Likewise.
- * function.c (thread_prologue_and_epilogue_insns): Likewise.
- * combine.c (combine_instructions): Likewise.
-
-2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * c-common.c (c_common_reswords): Also warn about keyword "bool".
-
-2008-08-07 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
- value in a6 after the set_frame_ptr insn.
-
-2008-08-07 Richard Henderson <rth@redhat.com>
-
- PR debug/37033
- * gcc.c (cpp_options): Pass along -g*.
-
-2008-08-07 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/arm.c (output_move_neon): Update comment describing
- big-endian vector layout.
- (arm_assemble_integer): Do not handle big-endian NEON vectors
- specially.
- * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
- neon_vget_lane<mode>_sext_internal,
- neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
- element indices for big-endian.
-
-2008-08-07 Richard Henderson <rth@redhat.com>
-
- * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
- * configure, config.in: Rebuild.
- * debug.h (dwarf2out_do_cfi_asm): Declare.
- * c-cppbuiltin.c (c_cpp_builtins): Use it.
- * dwarf2out.c (dwarf2out_do_cfi_asm): New.
- (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
- dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
-
-2008-08-07 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
- movv2si_internal): Combine into mov<mode>_internal.
- (movv2si_internal_2): Remove.
-
-2008-08-07 Jan Hubicka <jh@suse.cz>
-
- PR target/37048
- * i386.md (single stringop patterns): Enable unconditionally.
-
-2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36992
- * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
-
- * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
- (bdesc_args): Add IX86_BUILTIN_MOVQ128.
-
- * config/i386/sse.md (sse2_movq128): New.
-
- * doc/extend.texi: Document __builtin_ia32_movq128.
-
-2008-08-07 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37042
- * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
- pointers can access anything.
-
-2008-08-06 Jan Hubicka <jh@suse.cz>
-
- * optabs.c (emit_unop_insn): Break out to ...
- (maybe_emit_unop_insn): ... this one.
- (expand_sfix_optab): Use maybe variant.
- * optabs.h (maybe_emit_unop_insn): Declare.
-
- * i386.md (mov0 patterns): Enable by default.
- (FP conversion expanders): Disable expansion of code expanding
- sequences when instruction should be optimized for size.
- (single strinop patterns): Enable when optimizing for size.
- (string expanders): Disable expanding of code expanding sequences
- when optimizning instruction for size.
- * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
- per BB basis.
- (ix86_fp_comparison_sahf_cost): Likewise.
- (ix86_expand_branch): Likewise.
- (ix86_expand_ashl_const): Likewise.
- (ix86_split_ashl): Likewise.
- (ix86_expand_strlen): Likewise.
- (ix86_emit_fp_unordered_jump): Likewie.
-
-2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * c-common.c: Fix typo.
- (c_common_reswords): Activate more C++ keyword warnings.
-
- * matrix-reorg.c (compute_offset): Avoid C++ keywords.
-
-2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 26785
- * diagnostic.c (permerror_at): New.
- * toplev.h (permerror_at): Declare.
-
-2008-08-06 Victor Kaplansky <victork@il.ibm.com>
- Ira Rosen <irar@il.ibm.com>
-
- * tree-vect-transform.c (vect_model_simple_cost): Return
- immediately if stmt is pure SLP.
- (vect_model_store_cost): Ditto.
- (vect_model_load_cost): Ditto.
- (vectorizable_store): Remove PURE_SLP check before call
- to vect_model_store_cost.
- (vect_model_store_cost): When checking whether stmt describe
- strided access, add a check that it is not slp_node.
-
-2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 8715
- * c-common.c (warn_for_sign_compare): New. Handle separately the
- case that 'constant' is zero.
- * c-typeck.c (build_binary_op): Move code to c-common.c
-
-2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * config/alpha/alpha.c (alpha_preferred_reload_class,
- alpha_secondary_reload, alpha_emit_set_const_1, function_value,
- alpha_output_mi_thunk_osf): Avoid C++ keywords.
- * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
- * config/arm/arm.md: Likewise.
- * config/avr/avr-protos.h (preferred_reload_class,
- test_hard_reg_class, avr_simplify_comparison_p,
- out_shift_with_cnt, class_max_nregs): Likewise.
- * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
- output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
- preferred_reload_class, test_hard_reg_class): Likewise.
- * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
- bfin_memory_move_cost, bfin_secondary_reload,
- bfin_output_mi_thunk): Likewise.
- * config/crx/crx.c (crx_secondary_reload_class,
- crx_memory_move_cost): Likewise.
- * config/frv/frv-protos.h (frv_secondary_reload_class,
- frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
- * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
- frv_secondary_reload_class, frv_class_likely_spilled_p,
- frv_class_max_nregs): Likewise.
- * config/h8300/h8300.c (h8300_classify_operand,
- h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
- Likewise.
- * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
- * config/ia64/ia64.c (ia64_preferred_reload_class,
- ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
- * config/iq2000/iq2000.c (gen_int_relational): Likewise.
- * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
- Likewise.
- * config/m68hc11/m68hc11.c (preferred_reload_class,
- m68hc11_memory_move_cost): Likewise.
- * config/mcore/mcore.c (mcore_secondary_reload_class,
- mcore_reload_class): Likewise.
- * config/mips/mips.c (mips_hard_regno_mode_ok_p,
- mips_class_max_nregs, mips_cannot_change_mode_class,
- mips_preferred_reload_class, mips_secondary_reload_class,
- mips_output_mi_thunk): Likewise.
- * config/mmix/mmix.c (mmix_preferred_reload_class,
- mmix_preferred_output_reload_class, mmix_secondary_reload_class):
- Likewise.
- * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
- Likewise.
- * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
- pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
- * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
- * config/rs6000/rs6000.c (paired_expand_vector_init,
- rs6000_secondary_reload_class, rs6000_output_mi_thunk,
- compare_section_name, rs6000_memory_move_cost): Likewise.
- * config/s390/s390.c (s390_emit_compare_and_swap,
- s390_preferred_reload_class, s390_secondary_reload,
- legitimize_pic_address, legitimize_tls_address,
- legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
- s390_class_max_nregs): Likewise.
- * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
- * config/s390/s390.md: Likewise.
- * config/score/score-protos.h (score_secondary_reload_class,
- score_preferred_reload_class): Likewise.
- * config/score/score.c (score_preferred_reload_class,
- score_secondary_reload_class): Likewise.
- * config/score/score3.c (score3_output_mi_thunk,
- score3_preferred_reload_class, score3_secondary_reload_class,
- score3_hard_regno_mode_ok): Likewise.
- * config/score/score3.h (score3_preferred_reload_class,
- score3_secondary_reload_class): Likewise.
- * config/score/score7.c (score7_output_mi_thunk,
- score7_preferred_reload_class, score7_secondary_reload_class,
- score7_hard_regno_mode_ok): Likewise.
- * config/score/score7.h (score7_preferred_reload_class,
- score7_secondary_reload_class): Likewise.
- * config/sh/sh.c (prepare_move_operands, output_far_jump,
- output_branchy_insn, add_constant, gen_block_redirect,
- sh_insn_length_adjustment, sh_cannot_change_mode_class,
- sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
- * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
- * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
- xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
- xstormy16_preferred_reload_class): Likewise.
- * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
- xtensa_expand_atomic, override_options,
- xtensa_preferred_reload_class, xtensa_secondary_reload_class):
- Likewise.
- * reorg.c (try_merge_delay_insns): Likewise.
- * tree.c (merge_dllimport_decl_attributes): Likewise.
-
- * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
-
-2008-08-06 Michael Matz <matz@suse.de>
-
- * Makefile.in (write_entries_to_file): Quote words.
- * gengtype.c: (read_input_line): Skip over leading white-space.
-
-2008-08-06 Marc Gauthier <marc@tensilica.com>
-
- * config.gcc: Match more processor names for Xtensa.
- * configure.ac: Likewise.
- * doc/install.texi (Specific): Likewise.
- * configure: Regenerate.
-
-2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
- * calls.c (avoid_likely_spilled_reg): Likewise.
- * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
- * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
- * config/i386/i386.c (ix86_expand_special_args_builtin,
- ix86_secondary_reload): Likewise.
- * except.c (struct eh_region, gen_eh_region_catch,
- remove_unreachable_regions, duplicate_eh_regions,
- assign_filter_values, build_post_landing_pads,
- sjlj_find_directly_reachable_regions, remove_eh_handler,
- reachable_next_level, foreach_reachable_handler,
- can_throw_internal_1, can_throw_external_1,
- collect_one_action_chain): Likewise.
- * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
- * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
- * function.c (update_temp_slot_address, instantiate_new_reg,
- instantiate_virtual_regs_in_rtx,
- instantiate_virtual_regs_in_insn): Likewise.
- * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
- * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
- gimplify_cleanup_point_expr): Likewise.
- * ipa-cp.c (ipcp_lattice_changed): Likewise.
- * passes.c (next_pass_1): Likewise.
- * print-tree.c (print_node_brief, print_node): Likewise.
- * profile.c (branch_prob): Likewise.
- * tree-dump.c (dump_register): Likewise.
- * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
- Likewise.
- * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
- copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
- copy_edges_for_bb, copy_cfg_body, copy_tree_r,
- copy_arguments_for_versioning, copy_static_chain): Likewise.
- * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
- add_new_name_mapping, register_new_name_mapping): Likewise.
- * tree-mudflap.c (mf_xform_derefs): Likewise.
- * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
- get_init_expr, combine_chains): Likewise.
- * tree-pretty-print.c (dump_generic_node): Likewise.
- * tree-ssa-structalias.c (create_variable_info_for): Likewise.
- * tree-vrp.c (simplify_cond_using_ranges): Likewise.
- * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
- * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
-
-2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37010
- * calls.c (expand_call): Use the biggest preferred stack
- boundary.
-
-2008-08-06 Michael Matz <matz@suse.de>
-
- PR target/36613
- * reload.c (push_reload): Merge in,out,in_reg,out_reg members
- for reused reload, instead of overwriting them.
-
-2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37009
- * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
- for incoming stack boundary.
-
- * function.c (assign_parm_find_entry_rtl): Update
- parm_stack_boundary.
-
- * function.h (rtl_data): Add parm_stack_boundary.
-
- * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
- parm_stack_boundary for incoming stack boundary.
-
-2008-08-06 Joseph Myers <joseph@codesourcery.com>
-
- * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
- for unrepresentable subregs or treat them as equal to other regs
- or subregs with the same register number.
-
-2008-08-06 Aldy Hernandez <aldyh@redhat.com>
-
- PR middle-end/35432
- * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
- if want_value.
-
-2008-08-06 Jan Hubicka <jh@suse.cz>
-
- * predict.c (maybe_hot_frequency_p): When profile is absent, all
- frequencies might be hot.
-
-2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * reload.c (find_reloads): Force constants into literal pool
- also if they are wrapped in a SUBREG.
-
-2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- PR target/35659
- * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
- * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
- Don't allow predicated instructions for data speculation.
- * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
- declaration.
-
-2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * haifa-sched.c (extend_global): Split to extend_global_data and
- extend_region_data. Update all uses.
- (extend_all): Rename to extend_block_data.
-
-2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * sched-rgn.c (new_ready): Check if instruction can be
- speculatively scheduled before attempting speculation.
- (debug_rgn_dependencies): Remove wrongful assert.
-
-2008-08-05 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
-
-2008-08-05 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
- (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
- va_size, and type_size.
-
-2008-08-04 Jason Merrill <jason@redhat.com>
-
- PR c++/37016
- * tree-ssa.c (useless_type_conversion_p_1): Call langhook
- if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
-
-2008-08-05 Richard Henderson <rth@redhat.com>
-
- * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
- * configure: Rebuild.
-
-2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/37024
- * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
- instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
- is a conversion.
-
-2008-08-05 Richard Henderson <rth@redhat.com>
-
- * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
- * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
- * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
- * common.opt (fdwarf2-cfi-asm): New.
- * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
- * config.in, configure: Rebuild.
- * dwarf2asm.c (dw2_asm_output_data_raw): New.
- (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
- New.
- (dw2_force_const_mem): Externalize.
- * dwarf2asm.h: Update.
- * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
- generate a real label.
- (output_cfi_directive): New.
- (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
- (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
- (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
- and .cfi_lsda.
- (dwarf2out_end_epilogue): Emit .cfi_endproc.
- (output_loc_operands_raw, output_loc_sequence_raw): New.
- (output_cfa_loc_raw): New.
-
-2008-08-05 Paul Brook <paul@codesourcery.com>
-
- * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
- * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
- (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
- (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
- * config/arm/arm.h (TARGET_VFPD32): Define.
- (TARGET_VFP3): Use TARGET_VFPD32.
- (fputype): Add FPUTYPE_VFP3D16.
- (LAST_VFP_REGNUM): Use TARGET_VFPD32.
- * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
- * config/arm/arm-cores.def: Add cortex-r4f.
- * config/arm/arm-tune.md: Regenerate.
-
-2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
- Reword some comments throughout the file.
-
- (MFC_MIN_DMA_LIST_ELEMENTS): New define.
- (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
- (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
- MFC_MIN_DMA_LIST_ELEMENTS.
- (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
- MFC_MAX_DMA_LIST_ELEMENTS.
-
- (MFC_START_ENABLE): Remove PPU-only define.
- (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
- (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
-
- (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
- (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
- (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
- (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
- (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
- (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
- (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
-
- (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
- (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
- (mfc_sdcrt, mfc_sdcrtst): Likewise.
- (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
-
- (spu_read_machine_status): Fix typo.
-
-2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
- SUBREG of multi-word hard register.
- * config/spu/spu.c (valid_subreg): Likewise.
- (adjust_operand): Handle SUBREGs of multi-word hard registers.
-
-2008-08-04 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
- the candidate with the stripped base if that base is different
- from the original base even for offset zero.
-
-2008-08-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36691
- * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
- check for no_overflow.
-
-2008-08-04 Richard Guenther <rguenther@suse.de>
-
- * tree-vect-transform.c (vectorizable_call): Fix tuplification.
-
-2008-08-04 Paul Brook <paul@codesourcery.com>
-
- * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
- (arm_order_regs_for_local_alloc): New function.
- * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
- prototype.
- * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
-
-2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37012
- * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
- instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
- (ix86_expand_epilogue): Likewise.
-
-2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
- in comments.
-
-2008-08-03 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
- to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
- (*movv2sf_internal_rex64): Ditto.
-
-2008-08-03 Jan Hubicka <jh@suse.cz>
-
- * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
- expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
- * expmed.c (expand_smod_pow2): Likewise.
-
-2008-08-03 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36992
- * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
- alternative 0 of operand 1.
- (*vec_concatv2di_rex64_sse): Ditto.
- (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
- of operand 1.
- (*sse2_storeq_rex64): Penalize allocation of "r" registers.
- * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
- of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
- (*movv2sf_internal_rex64): Ditto.
-
-2008-08-02 Richard Guenther <rguenther@suse.de>
-
- PR target/35252
- * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
- (ssedoublesizemode): New mode attribute.
- (sse_shufps): Call gen_sse_shufps_v4sf.
- (sse_shufps_1): Macroize.
- (sse2_shufpd): Call gen_Sse_shufpd_v2df.
- (sse2_shufpd_1): Macroize.
- (vec_extract_odd, vec_extract_even): New expanders.
- (vec_interleave_highv4sf, vec_interleave_lowv4sf,
- vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
- * i386.c (ix86_expand_vector_init_one_nonzero): Call
- gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
- (ix86_expand_vector_set): Likewise.
- (ix86_expand_reduc_v4sf): Likewise.
-
-2008-08-01 Doug Kwan <dougkwan@google.com>
-
- * matrix-reorg.c: Re-enable all code.
- (struct malloc_call_data): Change CALL_STMT to gimple type.
- (collect_data_for_malloc_call): Tuplify.
- (struct access_site_info): Change STMT to gimple type.
- (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
- and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
- (struct free_info): Change STMT to gimple type.
- (struct matrix_access_phi_node): Change PHI to gimple type.
- (get_inner_of_cast_expr): Remove.
- (may_flatten_matrices_1): Tuplify.
- (may_flatten_matrices): Ditto.
- (mark_min_matrix_escape_level): Ditto.
- (ssa_accessed_in_tree): Refactor statement RHS related code into ...
- (ssa_accessed_in_call_rhs): New
- (ssa_accessed_in_assign_rhs): New
- (record_access_alloc_site_info): Tuplify.
- (add_allocation_site): Ditto.
- (analyze_matrix_allocation_site): Ditto.
- (analyze_transpose): Ditto.
- (get_index_from_offset): Ditto.
- (update_type_size): Ditto.
- (analyze_accesses_for_call_expr): Tuplify and renamed into ...
- (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
- (analyze_accesses_for_phi_node): Tuplify.
- (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
- (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
- (analyze_matrix_accesses): Tuplify.
- (check_var_data): New call-back type for check_var_notmodified_p.
- (check_var_notmodified_p): Tuplify and use call-back struct to
- return statement found.
- (can_calculate_expr_before_stmt): Factor out statement related code
- into ...
- (can_calculate_stmt_before_stmt): New.
- (check_allocation_function): Tuplify.
- (find_sites_in_func): Ditto.
- (record_all_accesses_in_func): Ditto.
- (transform_access_sites): Ditto.
- (transform_allocation_sites): Ditto.
- (matrix_reorg): Re-enable.
- (gate_matrix_reorg): Re-enable.
-
-2008-08-01 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
- for labels for which it hasn't been set yet. If it has been set,
- stop walking insns and continue with next worklist item.
- (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
- if the only BARRIER is at the very end of a function.
-
-2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * cfgexpand.c (expand_stack_alignment): Assert that
- stack_realign_drap and drap_rtx must match.
-
- * function.c (instantiate_new_reg): If DRAP is used to realign
- stack, replace virtual_incoming_args_rtx with internal arg
- pointer.
-
-2008-08-01 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
- loop information only if we initialized it.
- (execute_pre): Call fini_pre with in_fre.
- * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
- if we do not unroll because we hit max-completely-peeled-insns.
- Use our estimation for consistency, do allow shrinking.
-
-2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
- with MIN_STACK_BOUNDARY.
- (ix86_update_stack_boundary): Likewise.
- (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
- STACK_BOUNDARY.
-
- * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
- (MIN_STACK_BOUNDARY): This.
-
-2008-08-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36997
- * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
-
-2008-08-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36988
- * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
- do not matter if that doesn't change volatile qualification.
-
-2008-08-01 Paolo Bonzini <bonzini@gnu.org>
-
- * configure.ac: Do not generate libada-mk. Do not subst
- host_cc_for_libada.
- * libada-mk.in: Remove.
- * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
- * configure: Regenerate.
-
-2008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
-
- * tree-pass.h: Added comment about not dumping passes with name
- starting with star in struct opt_pass.
- * passes.c (register_dump_files_1): Don't do dump for a pass with
- name starting with star.
- * doc/passes.texi (Pass manager): Mention pass names and special
- meaning of star prefix to avoid dump.
-
-2008-07-31 Adam Nemet <anemet@caviumnetworks.com>
-
- * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
- to MIPS64r2.
- * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
- (ISA_MIPS64R2): New macro.
- (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
- (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
- ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
- ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
- ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
- ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
- ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
- (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
- (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
- Move up to keep list alphabetically sorted.
- (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
- * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
- processor.
- * doc/invoke.texi (MIPS Options): Add -mips64r2.
- (-march=@var{arch}): Add mips64r2.
-
-2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
-
-2008-07-31 Steve Ellcey <sje@cup.hp.com>
-
- * expr.c (expand_assignment): Check for complete type.
-
-2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
-
- PR debug/36977
- * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
-
- * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
- for stack alignment.
-
- * function.h (rtl_data): Add stack_realign_tried. Update comments.
-
-2008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_canonical_va_list_type): Remove.
- (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
-
-2008-07-31 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36419
- * dwarf2out.c (barrier_args_size): New variable.
- (compute_barrier_args_size, compute_barrier_args_size_1): New
+ * arm.c (struct processors): Pass for speed down into cost helper
functions.
- (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
- if not called yet in the current function, use barrier_args_size
- array to find the new args_size value.
- (dwarf2out_frame_debug): Free and clear barrier_args_size.
-
-2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
-
- PR debug/36980
- * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
- rule 19.
-
-2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
-
- PR debug/36976
- * dwarf2out.c (dwarf2out_args_size_adjust): New.
- (dwarf2out_stack_adjust): Use it.
- (dwarf2out_frame_debug_expr): Likewise.
-
-2008-07-31 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36978
- * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
- the generated condition.
-
-2008-07-31 Richard Guenther <rguenther@suse.de>
-
- * passes.c (init_optimization_passes): Always call
- pass_early_warn_uninitialized.
- * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
- * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
- * doc/passes.texi (Warn for uninitialized variables): Adjust.
-
-2008-07-31 Jakub Jelinek <jakub@redhat.com>
-
- PR c/36970
- * builtins.c (maybe_emit_free_warning): New function.
- (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
- maybe_emit_free_warning for BUILT_IN_FREE.
-
- PR debug/36278
- * dwarf2out.c (get_context_die): New function.
- (force_decl_die, force_type_die): Use it.
- (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
- returns NULL, force generation of DW_TAG_typedef and put that into
- DW_AT_import.
-
- PR preprocessor/36649
- * c-pch.c (c_common_read_pch): Save and restore
- line_table->trace_includes across PCH restore.
-
-2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
-
- PR ada/36554
- * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
-
-2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
-
- PR 36974
- * final.c (call_from_call_insn): Handle COND_EXEC.
-
-2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * builtins.c (std_gimplify_va_arg_expr): Replace
- PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
- * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
-
-2008-07-30 Joey Ye <joey.ye@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * builtins.c (expand_builtin_setjmp_receiver): Replace
- virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
- (expand_builtin_apply_args_1): Likewise.
- (expand_builtin_longjmp): Need DRAP for stack alignment.
- (expand_builtin_apply): Likewise.
-
- * caller-save.c (setup_save_areas): Call assign_stack_local_1
- instead of assign_stack_local to allow alignment reduction.
-
- * calls.c (emit_call_1): Need DRAP for stack alignment if
- return pops.
- (expand_call): Replace virtual_incoming_args_rtx with
- crtl->args.internal_arg_pointer.
- * stmt.c (expand_nl_goto_receiver): Likewise.
-
- * cfgexpand.c (get_decl_align_unit): Estimate stack variable
- alignment and store to stack_alignment_estimated and
- max_used_stack_slot_alignment.
- (expand_one_var): Likewise.
- (expand_stack_alignment): New function.
- (tree_expand_cfg): Initialize max_used_stack_slot_alignment
- and stack_alignment_estimated fields in rtl_data. Call
- expand_stack_alignment at end.
-
- * defaults.h (INCOMING_STACK_BOUNDARY): New.
- (MAX_STACK_ALIGNMENT): Likewise.
- (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
- (SUPPORTS_STACK_ALIGNMENT): Likewise.
-
- * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
- stack alignment when generating virtual registers.
-
- * function.c (assign_stack_local): Renamed to ...
- (assign_stack_local_1): This. Add a parameter to indicate
- if it is OK to reduce alignment.
- (assign_stack_local): Use it.
- (instantiate_new_reg): Instantiate virtual incoming args rtx
- to vDRAP if stack realignment and DRAP is needed.
- (assign_parms): Collect parameter/return type alignment and
- contribute to stack_alignment_estimated.
- (locate_and_pad_parm): Likewise.
- (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
- with crtl->args.internal_arg_pointer.
-
- * function.h (rtl_data): Add new field drap_reg,
- max_used_stack_slot_alignment, stack_alignment_estimated,
- stack_realign_needed, need_drap, stack_realign_processed and
- stack_realign_finalized.
- (stack_realign_fp): New macro.
- (stack_realign_drap): Likewise.
-
- * global.c (compute_regsets): Frame pointer is needed when
- stack is realigned. Can eliminate frame pointer when stack is
- realigned and dynamic realigned argument pointer isn't used.
-
- * reload1.c (update_eliminables): Frame pointer is needed
- when stack is realigned.
- (init_elim_table): Can eliminate frame pointer when stack is
- realigned and dynamic realigned argument pointer isn't used.
-
- * rtl.h (assign_stack_local_1): Declare new funtion.
-
- * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
- (TARGET_GET_DRAP_RTX): Likewise.
- (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
- TARGET_GET_DRAP_RTX.
-
- * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
-
- * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
- STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
-
-2008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
+ (const_ok_for_op): Handle COMPARE and inequality nodes.
+ (arm_rtx_costs_1): Rewrite.
+ (arm_size_rtx_costs): Update prototype.
+ (arm_rtx_costs): Pass speed down to helper functions.
+ (arm_slowmul_rtx_costs): Rework cost calculations.
+ (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
+ (arm_9e_rtx_costs): Likewise.
- * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
- vdrap_reg, stack_realign and drap_reg_saved.
- (add_cfi): Don't allow redefining CFA when DRAP is used.
- (reg_save): Handle stack alignment.
- (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
- alignment. Don't generate DWARF information for (set fp sp)
- when DRAP is used.
- (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
- to INVALID_REGNUM.
- (int_loc_descriptor): Move prototype forward. Also define if
- DWARF2_UNWIND_INFO is true.
- (output_cfa_loc): Handle DW_CFA_expression.
- (build_cfa_aligned_loc): New.
- (based_loc_descr): Update assert for stack realign. For local
- variables, use sp+offset when stack is aligned without drap and
- fp+offset when stack is aligned with drap. For arguments, use
- cfa+offset when drap is used to align stack.
+2009-01-13 Uros Bizjak <ubizjak@gmail.com>
-2008-07-30 Joey Ye <joey.ye@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
+ * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
+ relocations of local symbols wider than UNITS_PER_WORD are not valid.
+ (alpha_legitimize_address): Do not split local symbols wider than
+ UNITS_PER_WORD into HIGH/LO_SUM parts.
- * config/i386/i386.c (ix86_force_align_arg_pointer_string):
- Break long line.
- (ix86_gen_andsp): New.
- (ix86_user_incoming_stack_boundary): Likewise.
- (ix86_default_incoming_stack_boundary): Likewise.
- (ix86_incoming_stack_boundary): Likewise.
- (ix86_can_eliminate): Likewise.
- (find_drap_reg): Likewise.
- (ix86_update_stack_boundary): Likewise.
- (ix86_get_drap_rtx): Likewise.
- (ix86_finalize_stack_realign_flags): Likewise.
- (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
- (TARGET_GET_DRAP_RTX): Likewise.
- (override_options): Overide option value for new options.
- (ix86_function_ok_for_sibcall): Remove check for
- force_align_arg_pointer.
- (ix86_handle_cconv_attribute): Likewise.
- (ix86_function_regparm): Likewise.
- (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
- (ix86_va_start): Replace virtual_incoming_args_rtx with
- crtl->args.internal_arg_pointer.
- (ix86_select_alt_pic_regnum): Check DRAP register.
- (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
- (ix86_compute_frame_layout): Compute frame layout wrt stack
- realignment.
- (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
- (ix86_expand_prologue): Decide if stack realignment is needed
- and generate prologue code accordingly.
- (ix86_expand_epilogue): Generate epilogue code wrt stack
- realignment is really needed or not.
+2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
- * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
- (ABI_STACK_BOUNDARY): Likewise.
- (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
- (STACK_REALIGN_DEFAULT): Likewise.
- (INCOMING_STACK_BOUNDARY): Likewise.
- (MAX_STACK_ALIGNMENT): Likewise.
- (ix86_incoming_stack_boundary): Likewise.
- (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
- (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
- (CAN_ELIMINATE): Defined with ix86_can_eliminate.
- (machine_function): Remove force_align_arg_pointer.
+ PR bootstrap/38580
+ * gcc.c (process_command): Replace call to execvp with calls
+ to pex_one and exit.
- * config/i386/i386.md (BX_REG): New.
- (R13_REG): Likewise.
+2009-01-03 Anatoly Sokolov <aesok@post.ru>
- * config/i386/i386.opt (mforce_drap): New.
- (mincoming-stack-boundary): Likewise.
- (mstackrealign): Add Init(-1).
+ PR target/29141
+ * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
+ * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
+ variant for devices with 3-byte PC.
+ (__tablejump_elpm__) : New.
- * config/i386/i386-protos.h (ix86_can_eliminate): New
+2009-01-12 Jakub Jelinek <jakub@redhat.com>
-2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
+ PR c/32041
+ * c-parser.c (c_parser_postfix_expression): Allow `->' in
+ offsetof member-designator, handle it as `[0].'.
- * doc/extend.texi: Update force_align_arg_pointer.
+2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
- * doc/invoke.texi: Document -mincoming-stack-boundary. Update
- -mstackrealign.
+ * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
+ function when not using named sections on targets with named sections
+ if branch distance is less than 262132.
- * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
- (INCOMING_STACK_BOUNDARY): Likewise.
- (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
- (TARGET_GET_DRAP_RTX): Likewise.
+2009-01-12 Richard Earnshaw <rearnsha@arm.com>
-2008-07-30 Andreas Schwab <schwab@suse.de>
+ * combine.c (combine_instructions): Recompute
+ optimize_this_for_speed_p for each BB in the main combine loop.
- PR rtl-optimization/36929
- * dse.c (replace_inc_dec): Use emit_insn_before instead of
- add_insn_before and fix argument order.
- (replace_inc_dec_mem): Handle NULL rtx.
+2009-01-12 Tomas Bily <tbily@suse.cz>
-2008-07-30 Andrew Jenner <andrew@codesourcery.com>
+ PR middlend/38385
+ * tree-loop-distribution.c (prop_phis): New function.
+ (generate_builtin): Call prop_phis.
+ * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
- * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
- function.
- (arm_compute_initial_elimination_offset): Use it.
- (arm_compute_save_reg_mask): Include static chain save slot when
- calculating alignment.
- (arm_get_frame_offsets): Ditto.
- (thumb1_compute_save_reg_mask): Ensure we have a low register saved
- that we can use to decrement the stack when the stack decrement
- could be too big for an immediate value in a single insn.
- (thumb1_expand_prologue): Avoid using r12 for stack decrement.
+2009-01-12 Jakub Jelinek <jakub@redhat.com>
-2008-07-30 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/38807
+ * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
+ gimple_visited_p unless stmt is GIMPLE_ASSIGN.
- PR tree-optimization/36967
- * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
- Release defs of statements we remove.
+2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
-2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
+ * expmed.c (store_bit_field_1): Properly truncate the paradoxical
+ subreg of op0 to the original op0.
- * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
- instead of NULL_RTVEC.
+2009-01-11 Laurent GUERBY <laurent@guerby.net>
-2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
-
- PR target/35866
+ * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
+
+2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
- * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
- vector modes.
+ PR debug/7055
+ * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
+ starting with digits.
-2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
+2009-01-10 Jakub Jelinek <jakub@redhat.com>
- * final.c (call_from_call_insn): New.
- (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
+ PR target/38695
+ * config/arm/arm.c (arm_is_long_call_p): Don't call
+ arm_function_in_section_p if decl isn't a FUNCTION_DECL.
-2008-07-30 Paolo Bonzini <bonzini@gnu.org>
+2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
- * configure.ac: Substitute ADA_CFLAGS.
- * configure: Regenerate.
- * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
- * Makefile.in: Remove mention of X_* variables.
- * config/pa/x-ada-hpux10: Remove.
- * config/pa/x-ada: Remove.
+ * regrename.c (regrename_optimize): Fix dumping.
+ (find_oldest_value_reg): Preserve REG_POINTER.
+ (copy_hardreg_forward_1): Likewise.
- * doc/fragments.texi: Update.
+2009-01-09 Diego Novillo <dnovillo@google.com>
-2008-07-30 Olivier Hainque <hainque@adacore.com>
+ * gimple.h (struct gimple_statement_base)<uid>: Document
+ the restrictions on its use.
+ (gimple_uid): Tidy.
+ (gimple_set_uid): Tidy.
- * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
- * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
- __dso_handle explicitly here.
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
-2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+ * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
+ zero guard even if align_bytes != 0 and count is smaller than
+ size_needed.
- PR 34389
- * c-typeck.c (build_binary_op): Encapsulate code into...
- * c-common.c (shorten_binary_op): ...this new function.
- (conversion_warning): Use the new function. Handle non-negative
- constant in bitwise-and.
- * c-common.h (shorten_binary_op): Declare.
+2008-01-09 Vladimir Makarov <vmakarov@redhat.com>
-2008-07-30 Olivier Hainque <hainque@adacore.com>
+ PR rtl-optimization/38495
+ * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
+ (add_range_and_copies_from_move_list): Print all added ranges.
+ Add ranges to memory optimized destination.
- * scan.c (make_sstring_space): Add explicit conversions of
- allocator's return value.
- * fix-header.c (recognized_function): Likewise.
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
-2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ PR target/38686
+ PR target/38708
+ * config/i386/i386.c (override_options): Reject
+ -mstringop-strategy=rep_8byte with -m32.
+ (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
+ to 1. Do count comparison against epilogue_size_needed at compile
+ time even when count_exp was constant forced into register. For
+ size_needed don't jump to epilogue, instead just avoid aligning
+ and invoke the body algorithm. If need_zero_guard, add zero guard
+ even if count is non-zero, but smaller than size_needed + number of
+ bytes that could be stored for alignment.
+ (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
+ to 1. If need_zero_guard, add zero guard even if count is non-zero,
+ but smaller than size_needed + number of bytes that could be stored
+ for alignment. Compare size_needed with epilogue_size_needed instead
+ of desired_align - align, don't adjust size_needed, pass
+ epilogue_size_needed to the epilogue expanders.
- * doc/cpp.texi: Update to GFDL 1.2.
- * doc/gcc.texi: Do not list GPL as Invariant Section.
- * doc/gccint.texi: Likewise. Update copyright years.
- * doc/install.texi: Update copyright years.
+ PR c/35742
+ * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
-2008-07-30 Alan Modra <amodra@bigpond.net.au>
+2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
- PR target/36955
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
- a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
+ * pa.c (last_address): Change to unsigned.
+ (update_total_code_bytes): Change argument to unsigned. Don't
+ check if insn addresses are set.
+ (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
+ addresses are not set.
+ (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
-2008-07-29 Jan Hubicka <jh@suse.cz>
+2009-01-09 Nick Clifton <nickc@redhat.com>
- * c-decl.c (merge_decls): Do not handle DECL_INLINE.
- (grokdeclarator): Likewise.
- * langhooks.c (lhd_warn_unused_global_decl): Use
+ * config/sh/symbian.c: Replace uses of DECL_INLINE with
DECL_DECLARED_INLINE_P.
- * print-tree.c (print_node): Remove DECL_INLINE check.
-
-2008-07-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36945
- * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
- Record invariant addresses un-decomposed.
- (copy_reference_ops_from_call): Record reference call
- arguments properly. Simplify.
- * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
- helper split out from ...
- (create_component_ref_by_pieces): ... here. Simplify.
- Prepare for recursive invocation for call arguments.
- (create_expression_by_pieces): Adjust call to
- create_component_ref_by_pieces.
- (compute_avail): Process operand 2 of reference ops.
-
-2008-07-29 Richard Guenther <rguenther@suse.de>
-
- * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
-
-2008-07-29 Jakub Jelinek <jakub@redhat.com>
-
- * c-format.c (check_format_types): Revert unwanted checkin.
-
-2008-07-29 Jan Hubicka <jh@suse.cz>
-
- * flags.h (flag_really_no_inline): Remove.
- * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
- * toplev.c (flag_really_no_inline): Remove.
- * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
- * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
- (cgraph_decide_inlining_incrementally): Likewise.
- (compute_inline_parameters): Likewise.
- * opts.c (decode_options): Simplify.
- * c-opts.c (c_common_post_options): Do not set flag_no_inline.
- * common.opt (finline): Initialize to 1.
- * tree-inline.c (inlinable_function_p): Check flag_no_inline.
-
-2008-07-29 Jan Hubicka <jh@suse.cz>
-
- * predict.c (always_optimize_for_size_p): New function.
- (optimize_bb_for_size_p, optimize_bb_for_speed_p,
- optimize_edge_for_size_p, optimize_edge_for_speed_p,
- optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
- functions.
- (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
- * function.c (prepare_function_start): Set default profile.
- * function.h (rtl_data): Add maybe_hot_insn_p.
- * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
- (construct_exit_block): Likewise.
- (tree_expand_cfg): Likewise.
- * basic-block.h
- (optimize_bb_for_size_p, optimize_bb_for_speed_p,
- optimize_edge_for_size_p, optimize_edge_for_speed_p,
- optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
- (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
- Declare.
-
-2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 34985
- * c-decl.c (merge_decls): Merge USED flags.
-
-2008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
- valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
- next_stack, lab_false and lab_over trees.
-
-2008-07-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36957
- * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
- (useless_type_conversion_p): Remove.
- (types_compatible_p): Remove.
- * gimple.h (tree_ssa_useless_type_conversion): Declare.
- (useless_type_conversion_p): Declare.
- (types_compatible_p): Declare.
- (gimple_expr_type): Return the base type only if it is
- trivially convertible to the subtype.
-
-2008-07-28 Andreas Tobler <a.tobler@schweiz.org>
-
- * configure.ac: Use the m4_do macro to concatenate the warnings into
- one string in ACX_PROG_CC_WARNING_OPTS,
- ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
- ACX_PROG_CC_WARNINGS_ARE_ERRORS.
- * configure: Regenerate.
-
-2008-07-28 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
- (insert_fake_stores): Remove.
- (realify_fake_stores): Likewise.
- (execute_pre): Remove dead code.
- * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
- (find_func_aliases): Deal with it here instead.
- Re-enable gcc_unreachable call.
-
-2008-07-28 Richard Guenther <rguenther@suse.de>
-
- Merge from gimple-tuples-branch.
-
- * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
- * gimple.def: New file.
- * gsstruct.def: Likewise.
- * gimple-iterator.c: Likewise.
- * gimple-pretty-print.c: Likewise.
- * tree-gimple.c: Removed. Merged into ...
- * gimple.c: ... here. New file.
- * tree-gimple.h: Removed. Merged into ...
- * gimple.h: ... here. New file.
-
- * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
- * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
- --enable-checking=gimple flag.
- * config.in: Likewise.
- * configure: Regenerated.
-
- * tree-ssa-operands.h: Tuplified.
- * tree-vrp.c: Likewise.
- * tree-loop-linear.c: Likewise.
- * tree-into-ssa.c: Likewise.
- * tree-ssa-loop-im.c: Likewise.
- * tree-dump.c: Likewise.
- * tree-complex.c: Likewise.
- * cgraphbuild.c: Likewise.
- * tree-ssa-threadupdate.c: Likewise.
- * tree-ssa-loop-niter.c: Likewise.
- * tree-pretty-print.c: Likewise.
- * tracer.c: Likewise.
- * gengtype.c: Likewise.
- * tree-loop-distribution.c: Likewise.
- * tree-ssa-loop-unswitch.c: Likewise.
- * cgraph.c: Likewise.
- * cgraph.h: Likewise.
- * tree-ssa-loop-manip.c: Likewise.
- * value-prof.c: Likewise.
- * tree-ssa-loop-ch.c: Likewise.
- * tree-tailcall.c: Likewise.
- * value-prof.h: Likewise.
- * tree.c: Likewise.
- * tree.h: Likewise.
- * tree-pass.h: Likewise.
- * ipa-cp.c: Likewise.
- * tree-scalar-evolution.c: Likewise.
- * tree-scalar-evolution.h: Likewise.
- * target.h: Likewise.
- * lambda-mat.c: Likewise.
- * tree-phinodes.c: Likewise.
- * diagnostic.h: Likewise.
- * builtins.c: Likewise.
- * tree-ssa-alias-warnings.c: Likewise.
- * cfghooks.c: Likewise.
- * fold-const.c: Likewise.
- * cfghooks.h: Likewise.
- * omp-low.c: Likewise.
- * tree-ssa-dse.c: Likewise.
- * ipa-reference.c: Likewise.
- * tree-ssa-uncprop.c: Likewise.
- * toplev.c: Likewise.
- * tree-gimple.c: Likewise.
- * tree-gimple.h: Likewise.
- * tree-chrec.c: Likewise.
- * tree-chrec.h: Likewise.
- * tree-ssa-sccvn.c: Likewise.
- * tree-ssa-sccvn.h: Likewise.
- * cgraphunit.c: Likewise.
- * tree-ssa-copyrename.c: Likewise.
- * tree-ssa-ccp.c: Likewise.
- * tree-ssa-loop-ivopts.c: Likewise.
- * tree-nomudflap.c: Likewise.
- * tree-call-cdce.c: Likewise.
- * ipa-pure-const.c: Likewise.
- * c-format.c: Likewise.
- * tree-stdarg.c: Likewise.
- * tree-ssa-math-opts.c: Likewise.
- * tree-ssa-dom.c: Likewise.
- * tree-nrv.c: Likewise.
- * tree-ssa-propagate.c: Likewise.
- * ipa-utils.c: Likewise.
- * tree-ssa-propagate.h: Likewise.
- * tree-ssa-alias.c: Likewise.
- * gimple-low.c: Likewise.
- * tree-ssa-sink.c: Likewise.
- * ipa-inline.c: Likewise.
- * c-semantics.c: Likewise.
- * dwarf2out.c: Likewise.
- * expr.c: Likewise.
- * tree-ssa-loop-ivcanon.c: Likewise.
- * predict.c: Likewise.
- * tree-ssa-loop.c: Likewise.
- * tree-parloops.c: Likewise.
- * tree-ssa-address.c: Likewise.
- * tree-ssa-ifcombine.c: Likewise.
- * matrix-reorg.c: Likewise.
- * c-decl.c: Likewise.
- * tree-eh.c: Likewise.
- * c-pretty-print.c: Likewise.
- * lambda-trans.c: Likewise.
- * function.c: Likewise.
- * langhooks.c: Likewise.
- * ebitmap.h: Likewise.
- * tree-vectorizer.c: Likewise.
- * function.h: Likewise.
- * langhooks.h: Likewise.
- * tree-vectorizer.h: Likewise.
- * ipa-type-escape.c: Likewise.
- * ipa-type-escape.h: Likewise.
- * domwalk.c: Likewise.
- * tree-if-conv.c: Likewise.
- * profile.c: Likewise.
- * domwalk.h: Likewise.
- * tree-data-ref.c: Likewise.
- * tree-data-ref.h: Likewise.
- * tree-flow-inline.h: Likewise.
- * tree-affine.c: Likewise.
- * tree-vect-analyze.c: Likewise.
- * c-typeck.c: Likewise.
- * gimplify.c: Likewise.
- * coretypes.h: Likewise.
- * tree-ssa-phiopt.c: Likewise.
- * calls.c: Likewise.
- * tree-ssa-coalesce.c: Likewise.
- * tree.def: Likewise.
- * tree-dfa.c: Likewise.
- * except.c: Likewise.
- * except.h: Likewise.
- * cfgexpand.c: Likewise.
- * tree-cfgcleanup.c: Likewise.
- * tree-ssa-pre.c: Likewise.
- * tree-ssa-live.c: Likewise.
- * tree-sra.c: Likewise.
- * tree-ssa-live.h: Likewise.
- * tree-predcom.c: Likewise.
- * lambda.h: Likewise.
- * tree-mudflap.c: Likewise.
- * ipa-prop.c: Likewise.
- * print-tree.c: Likewise.
- * tree-ssa-copy.c: Likewise.
- * ipa-prop.h: Likewise.
- * tree-ssa-forwprop.c: Likewise.
- * ggc-page.c: Likewise.
- * c-omp.c: Likewise.
- * tree-ssa-dce.c: Likewise.
- * tree-vect-patterns.c: Likewise.
- * tree-ssa-ter.c: Likewise.
- * tree-nested.c: Likewise.
- * tree-ssa.c: Likewise.
- * lambda-code.c: Likewise.
- * tree-ssa-loop-prefetch.c: Likewise.
- * tree-inline.c: Likewise.
- * tree-inline.h: Likewise.
- * tree-iterator.c: Likewise.
- * tree-optimize.c: Likewise.
- * tree-ssa-phiprop.c: Likewise.
- * tree-vect-transform.c: Likewise.
- * tree-object-size.c: Likewise.
- * tree-outof-ssa.c: Likewise.
- * cfgloop.c: Likewise.
- * system.h: Likewise.
- * tree-profile.c: Likewise.
- * cfgloop.h: Likewise.
- * c-gimplify.c: Likewise.
- * c-common.c: Likewise.
- * tree-vect-generic.c: Likewise.
- * tree-flow.h: Likewise.
- * c-common.h: Likewise.
- * basic-block.h: Likewise.
- * tree-ssa-structalias.c: Likewise.
- * tree-switch-conversion.c: Likewise.
- * tree-ssa-structalias.h: Likewise.
- * tree-cfg.c: Likewise.
- * passes.c: Likewise.
- * ipa-struct-reorg.c: Likewise.
- * ipa-struct-reorg.h: Likewise.
- * tree-ssa-reassoc.c: Likewise.
- * cfgrtl.c: Likewise.
- * varpool.c: Likewise.
- * stmt.c: Likewise.
- * tree-ssanames.c: Likewise.
- * tree-ssa-threadedge.c: Likewise.
- * langhooks-def.h: Likewise.
- * tree-ssa-operands.c: Likewise.
- * config/alpha/alpha.c: Likewise.
- * config/frv/frv.c: Likewise.
- * config/s390/s390.c: Likewise.
- * config/m32c/m32c.c: Likewise.
- * config/m32c/m32c-protos.h: Likewise.
- * config/spu/spu.c: Likewise.
- * config/sparc/sparc.c: Likewise.
- * config/i386/i386.c: Likewise.
- * config/sh/sh.c: Likewise.
- * config/xtensa/xtensa.c: Likewise.
- * config/stormy16/stormy16.c: Likewise.
- * config/ia64/ia64.c: Likewise.
- * config/rs6000/rs6000.c: Likewise.
- * config/pa/pa.c: Likewise.
- * config/mips/mips.c: Likewise.
-
-2008-07-28 Simon Baldwin <simonb@google.com>
-
- * c-pragma.c (handle_pragma_message): New function.
- (init_pragma): Register handle_pragma_message.
- * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
- documentation.
-
-2008-07-27 Victor Kaplansky <victork@il.ibm.com>
-
- PR tree-optimization/35252
- * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
- REALPART_EXPR to be considered as same load operation.
-
-2008-07-27 Eric Botcazou <ebotcazou@adacore.com>
-
- PR tree-optimization/36830
- * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
- (expressions_equal_p): Return false if only one operand is null.
-
-2008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
- version requirements.
-
-2008-07-26 Olivier Hainque <hainque@adacore.com>
-
- * collect2.c (symkind): New enum. Symbol kinds we care about.
- (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
- code and head comment accordingly.
- (scan_prog_file): Use symkind names instead of bare integers.
-
-2008-07-25 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
- DECL_INLINE.
- * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
- (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
- * dojump.c (clear_pending_stack_adjust): Likewise.
- * print-tree.c (print_node): Ignore DECL_INLINE.
- * tree-inline.c (inlinable_function_p): Likewise.
-
-2008-07-25 Michael Meissner <gnu@the-meissners.org>
-
- * doc/extend.texi (hot attribute): Document that the hot attribute
- turns on -O3 for some ports.
- (cold attribute): Document that the cold attribute turns on -Os
- for some ports
-
- * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
- reflect function specific option support.
-
- * target.h (struct target_option_hooks): Add fields to say whether
- the cold attribute implies -Os and the hot attribute implies -O3.
-
- * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
- By default, do not turn on -Os for cold functions.
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
- not turn on -O3 for hot functions.
-
- * c-common.c (handle_hot_attribute): Use target hook to determine
- if hot functions should enable -O3.
- (handle_cold_attribute): Use target hook to determine if cold
- functions should enable -Os.
-
- * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
- (override_options): Move disable scheduling to
- optimization_options.
- (optimization_options): Disable scheduling here, not
- override_options.
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
- (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
-
- * config/ia64/ia64.c (ia64_override_options): Move setting
- scheduling flags to ia64_optimization_options.
- (ia64_optimization_options): Disable scheduling options here, and
- not in ia64_override_options.
- (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
- (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
-
-2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36936
- * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
-
-2008-07-25 Martin Jambor <mjambor@suse.cz>
-
- PR tree-optimization/36926
- * ipa-prop.c (ipa_analyze_call_uses): Call
- ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
-
-2008-07-25 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
- movv2si_internal): Add mem = reg alternative.
-
-2008-07-25 Andreas Tobler <a.tobler@schweiz.org>
-
- PR bootstrap/36918
- * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
- DEFAULT_PCC_STRUCT_RETURN to 127.
-
-2008-07-24 Jan Hubicka <jh@suse.cz>
-
- * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
- (build_cgraph_edges): Likewise.
- * cgraph.c (cgraph_node): Do not update assembler hash.
- (cgraph_remove_node): Drop non-unit-at-a-time code.
- * tree-pass.h (pass_O0_always_inline): Remove.
- * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
- * toplev.c (process_options): Flag unit-at-a-time does not imply
- no section anchors.
- * cgraphunit.c: Update comments.
- (decide_is_function_needed): Drop non-unit-at-a-time mode.
- (cgraph_assemble_pending_functions): Remove.
- (cgraph_reset_node): Drop non-unit-at-a-time code.
- (cgraph_finalize_function): Likewise.
- (cgraph_analyze_function): Likewise.
- (cgraph_finalize_compilation_unit): Likewise.
- (cgraph_expand_function): Likewise.
- (cgraph_optimize): Likesise.
- (save_inline_function_body): Likewise.
- * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
- * tree-ssa-alias.c (maybe_be_aliased): Likewise.
- * ipa-inline.c: Update comments.
- (enum inlining_mode): remove INLINE_SPEED.
- (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
- (cgraph_mark_inline_edge): Likewise.
- (try_inline): Likewise.
- (cgraph_decide_inlining_incrementally): Likewise.
- (cgraph_gate_inlining): Remove.
- (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
- (cgraph_gate_early_inlining): Likewise.
- (gate_inline_passes): Remove.
- (pass_inline_parameters, pass_ipa_inline): Remove gates.
- (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
- pass_O0_always_inline): Remove.
- * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
- * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
- * opts.c (no_unit_at_a_time_default): Remove.
- (decode_options): Remove flag_unit_at_a_time reset and warning.
- * opts.h (no_unit_at_a_time_default): Remove.
- * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
- early in GNU dialect.
- (merge_decls): Update comment; drop unit-at-a-time check.
- (finish_decl): Likewise.
- (grok_declaration): Remove flag_inline_trees code.
- (finish_functions): Return on function returning non-void on all
- statics.
- * ipa-tye-escape.c (gate_type_escape_vars): Remove.
- * cfgexpand.c (expand_one_static_var): Remove.
- (expand_one_var): Remove expand_one_static_var call.
- (expand_used_vars_for_block): Remove flag_unit_a_time check.
- * c-opts.c (c_common_post_options): Remove flag_inline_trees code
- and flag_unit_at_a-time compatibility checks.
- * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
- * tree-inline.c (flag_inline_trees): Remove.
- (inlinable_function_p): Don't check it.
- (expand_call_inline): Remove non-unit-at-a-time code.
- * tree-inline.h (flag_inline_trees): Remove.
- * tree-optimize.c (execute_early_local_optimizations): Remove
- unit-at-a-time checks.
- (tree_rest_of_compilation): Likewise.
- * combine.c (setup_incoming_promotions): Likewise.
- * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
- * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
- * passes.c (pass_inline_parameters): Update comments; remove
- O0_alwaysinline pass.
- (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
- (execute_one_pass): Likewise.
- * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
- (ix86_function_sseregparm): Likewise.
- * arm.c (arm_function_in_section_p): Likewise.
- * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
- * varpool.c: Update comments.
- (decide_is_variable_needed): Remove unit-at-a-time checks.
- (varpool_finalize_decl): Likewise.
-
-2008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
- to 2 instead of -1.
- (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
-
-2008-07-24 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
- imp symbol extension.
-
- 2008-07-23 Ian Lance Taylor <iant@google.com>
-
- * tree-vrp.c (infer_value_range): Ignore asm statements when
- looking for memory accesses for -fdelete-null-pointer-checks.
-
-2008-07-24 Ben Elliston <bje@au.ibm.com>
-
- * config/spu/spu-c.c (__vector_keyword): New variable.
- (vector_keyword): Likewise.
- (spu_categorize_keyword): New function.
- (spu_macro_to_expand): Likewise.
- (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
- compiling an ISO C dialect.
-
-2008-07-24 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
- conventional usage.
-
-2008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * configure: Regenerate.
- * configure.ac: Require texinfo 4.7.
- * doc/install.texi: Document texinfo 4.7 requirement.
-
-2008-07-23 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
- rather than for DECL_SAVED_TREE.
- * ipa-prop.c: Include diagnostic.h.
- (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
- thoroughly.
- (ipa_detect_param_modifications): Function rewritten from scratch.
- (ipa_compute_jump_functions): Changed accesses to modification flags.
- (ipa_free_node_params_substructures): Update flags destruction.
- (ipa_node_duplication_hook): Update flags duplication.
- (ipa_print_all_params_modified): Updated flag access.
- * ipa-prop.h (struct ipa_param_flags): New structure.
- (struct ipa_node_params): New field modification_analysis_done,
- modified_flags changed into param_flags.
- (ipa_is_ith_param_modified): Changed to use new flags.
- * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
-
- * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
- ipa-cp.c and split into two functions.
- (ipa_print_node_jump_functions): New function.
- (compute_scalar_jump_functions): New function.
- (type_like_member_ptr_p): New function.
- (compute_pass_through_member_ptrs): New function.
- (fill_member_ptr_cst_jump_function): New function.
- (determine_cst_member_ptr): New function.
- (compute_cst_member_ptr_arguments): New function.
- (ipa_compute_jump_functions): Complete rewrite.
- * ipa-prop.h (enum jump_func_type): Make explicit that we depend
- on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
- (struct ipa_member_ptr_cst): New structure.
- (union jump_func_value): New field member_cst.
- * ipa-cp.c (ipcp_lat_is_insertable): New function.
- (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
- jump function types.
- (ipcp_print_all_lattices): Slight fprintf rearrangement.
- (ipcp_print_all_structures): Call ipa_print_all_jump_functions
- instead of ipcp_print_all_jump_functions.
- (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
- only for replacable scalars.
-
- * doc/invoke.texi (Optimize options): Add description of
- -findirect-inlining.
- * common.opt (flag_indirect_inlining): New flag.
- * opts.c (decode_options): Set flag_indirect_inlining when
- optimize >= 3.
-
- * ipa-inline.c: Include ipa-prop.h.
- (inline_indirect_intraprocedural_analysis): New function.
- (inline_generate_summary): Allocate parameter and argument info
- structures, call inline_indirect_intraprocedural_analysis on each
- node when doing indirect inlining and deallocate indirect inlining
- data structures in the end.
- * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
- (free_all_ipa_structures_after_iinln): New function.
- (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
- done.
- * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
-
- * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
- (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
- of computing the frequency separately.
- (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
- of computing the frequency separately.
- * ipa-cp.c (ipcp_print_all_structures): Replace a call to
- ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
- * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
- (ipa_get_stmt_member_ptr_load_param): New function.
- (ipa_is_ssa_with_stmt_def): New function.
- (ipa_note_param_call): New function.
- (ipa_analyze_call_uses): New function.
- (ipa_analyze_stmt_uses): New function.
- (ipa_analyze_params_uses): New function.
- (ipa_free_node_params_substructures): Also free the param_calls linked
- list.
- (ipa_node_duplication_hook): Also duplicate the param_calls
- linked list.
- (ipa_print_node_param_flags): New function.
- (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
- (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
- * ipa-prop.h (struct ipa_param_flags): New field called.
- (struct ipa_param_call_note): New structure.
- (struct ipa_node_params): New fields param_calls and
- uses_analysis_done.
- (ipa_is_ith_param_called): New function.
- * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
- ipa_analyze_params_uses and dump parameter flags.
-
- * ipa-inline.c (cgraph_decide_recursive_inlining): Call
- ipa_propagate_indirect_call_infos if performing indirect inlining,
- pass a new parameter new_edges to it.
- (add_new_edges_to_heap): New fucntion.
- (cgraph_decide_inlining_of_small_functions): New vector
- new_indirect_edges for newly found indirect edges , call
- ipa_propagate_indirect_call_infos after inlining.
- (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
- inlining if performing indirect inlining. Call
- free_all_ipa_structures_after_iinln when doing so too.
- (inline_generate_summary): Do not call
- free_all_ipa_structures_after_iinln here.
- * ipa-prop.c (update_jump_functions_after_inlining): New function.
- (print_edge_addition_message): New function.
- (update_call_notes_after_inlining): New function.
- (propagate_info_to_inlined_callees): New function.
- (ipa_propagate_indirect_call_infos): New function.
- * ipa-prop.h: Include cgraph.h
- (struct ipa_param_call_note): Fields reordered, new field processed.
- * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
- flag indirect_call.
- * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
- rediscovered call statements.
- * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
- (dump_cgraph_node): Dump also the indirect_call flag.
- (cgraph_clone_edge): Copy also the indirect_call flag.
- * tree-inline.c (copy_bb): Do not check for fndecls from call
- expressions, check for edge availability when moving clones.
- (get_indirect_callee_fndecl): New function.
- (expand_call_inline): If callee declaration is not apprent from
- the statement, try calling get_indirect_callee_fndecl. Do not
- issue warnings or call sorry when not inlinings an indirect edge.
- * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
-
- * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
- bit more frandly to matching.
- * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
- * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
- * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
-
-2008-07-23 Michael Meissner <gnu@the-meissners.org>
-
- PR 36907
- * opth-gen.awk: Suppress function specific features when building
- target libraries.
- * optc-gen.awk: Ditto.
-
-2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35058
- * diagnostic.c (pedwarn): Add opt parameter.
- (pedwarn0): New.
- * c-tree.h (pedwarn_init): Add opt parameter.
- (pedwarn_c90): Likewise.
- (pedwarn_c99): Likewise.
- * c-errors.c (pedwarn_c99): Likewise.
- (pedwarn_c90): Likewise.
- * toplev.h (pedwarn): Update declaration.
- (pedwarn0): Declare.
- * c-lex.c: All calls to pedwarn changed.
- * builtins.c: All calls to pedwarn changed.
- * toplev.c: All calls to pedwarn changed.
- * c-decl.c: All calls to pedwarn changed.
- * c-typeck.c: All calls to pedwarn changed.
- * c-common.c: All calls to pedwarn changed.
- * c-parser.c: All calls to pedwarn changed.
-
-2008-07-23 Michael Meissner <gnu@the-meissners.org>
- Karthik Kumar <karthikkumar@gmail.com>
-
- * attribs.c (file scope): Include c-common.h.
- (decl_attributes): Add support for #pragma GCC optimize and
- #pragma GCC option.
-
- * targhooks.c (default_can_inline_p): New function that is the
- default for the TARGET_CAN_INLINE_P target hook.
-
- * targhooks.h (default_can_inline_p): Add declaration.
-
- * tree.c (cl_optimization_node): New static tree for building
- OPTIMIZATION_NODE tree.
- (cl_target_option_node): New static tree for building
- TARGET_OPTION_NODE tree.
- (cl_option_hash_table): New hash table for hashing
- OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
- (cl_option_hash_hash): New function to provide the hash value for
- OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
- (cl_option_hash_eq): New function to provide an equality test for
- OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
- (tree_code_size): Add support for OPTIMIZATION_NODE and
- TARGET_OPTION_NODE trees.
- (tree_code_structure): Add support for OPTIMIZATION_NODE and
- TARGET_OPTION_NODE trees.
- (build_optimization_node): Build a tree that has all of the
- current optimization options.
- (build_target_option_node): Build a tree that has the target
- options that might be changed on a per function basis.
-
- * tree.h (file scope): Include options.h.
- (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
- (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
- (TREE_OPTIMIZATION): Ditto.
- (TREE_TARGET_SPECIFIC): Ditto.
- (struct tree_function_decl): Add fields for remembering the
- current optimization options and target specific options.
- (struct tree_optimization_option): New tree variant that remembers
- the optimization options.
- (struct tree_target_option): New tree variant that remembers the
- target specific flags that might change for compiling a particular
- function.
- (union tree_node): Include tree_optimization_option and
- tree_target_option fields.
- (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
- TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
- TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
- TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
- TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
- optimization and target options.
- (optimization_default_node): New macro to refer to global_trees
- field.
- (optimization_current_node): Ditto.
- (optimization_cold_node): Ditto.
- (optimization_hot_node): Ditto.
- (target_option_default_node): Ditto.
- (target_option_current_node): Ditto.
- (current_option_pragma): Ditto.
- (current_optimize_pragma): Ditto.
-
- * target.h (struct gcc_target): Add valid_option_attribute_p,
- target_option_save, target_option_restore, target_option_print,
- target_option_pragma_parse, and can_inline_p hooks.
-
- * toplev.h (parse_optimize_options): Add declaration.
- (fast_math_flags_struct_set_p): Ditto.
-
- * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
- adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
- optimize is used.
-
- * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
- tree_can_inline_p hook to see if one function can inline another.
- (cgraph_decide_inlining): Ditto.
- (cgraph_decide_inlining_incrementally): Ditto.
-
- * opts.c (decode_options): Add support for running multiple times
- to allow functions with different target or optimization options
- than was specified on the command line.
- (fast_math_flags_struct_set_p): New function that is similar to
- fast_math_flags_set_p, except it uses the values in the
- cl_optimization structure instead of global variables.
-
- * optc-gen.awk: Add support for TargetSave to allow a back end to
- declare new fields that need to be saved when using function
- specific options. Include flags.h and target.h in the options.c
- source. Add support for Save to indicate which options can be set
- for individual functions. Generate cl_optimize_save,
- cl_optimize_restore, cl_optimize_print, cl_target_option_save,
- cl_target_option_restore, cl_target_option_print functions to
- allow functions to use different optimization or target options.
-
- * opt-functions.awk (var_type_struct): Return the type used for
- storing the field in a structure.
-
- * opth-gen.awk: Add support for TargetSave to allow a back end to
- declare new fields that need to be saved when using function
- specific options. Add support for Save to indicate which options
- can be set for individual functions. Only generate one extern for
- Mask fields. Generate cl_optimization and cl_target_option
- structures to remember optimization and target options.
-
- * treestruct.def (TS_OPTIMIZATION): Add support for garbage
- collecting new tree nodes.
- (TS_TARGET_OPTION): Ditto.
-
- * c-decl.c (merge_decls): Merge function specific target and
- optimization options.
-
- * function.c (invoke_set_current_function_hook): If the function
- uses different optimization options, change the global variables
- to reflect this.
-
- * coretypes.h (struct cl_optimization): Add forward reference.
- (struct cl_target_option): Ditto.
-
- * c-pragma.c (option_stack): New static vector to remember the
- current #pragma GCC option stack.
- (handle_pragma_option): New function to support #pragma GCC option
- to change target options.
- (optimize_stack): New static vector to remember the current
- #pragma GCC optimize stack.
- (handle_pragma_optimize): New function to support #pragma GCC
- optimize to change optimization options.
- (init_pragma): Add support for #pragma GCC optimize and #pragma
- GCC option.
-
- * tree.def (OPTIMIZATION_NODE): New tree code for remembering
- optimization options.
- (TARGET_OPTION_NODE): New tree code for remembering certain target
- options.
-
- * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
- TARGET_OPTION_NODE trees.
-
- * common.opt (-O): Add Optimization flag.
- (-Os): Ditto.
- (-fmath-errno): Ditto.
- (-falign-functions): Add UInteger flag to make sure flag gets full
- int in cl_optimization structure.
- (-falign-jumps): Ditto.
- (-falign-labels): Ditto.
- (-falign-loops): Ditto.
- (-fsched-stalled-insns): Ditto.
- (-fsched-stalled-insns-dep): Ditto.
-
- * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
- definition.
- (TARGET_OPTION_SAVE): Ditto.
- (TARGET_OPTION_RESTORE): Ditto.
- (TARGET_OPTION_PRINT): Ditto.
- (TARGET_OPTION_PRAGMA_PARSE): Ditto.
- (TARGET_CAN_INLINE_P): Ditto.
- (TARGET_INITIALIZER): Add new hooks.
-
- * tree-inline.c (tree_can_inline_p): New function to determine
- whether one function can inline another. Check if the functions
- use compatible optimization options, and also call the backend
- can_inline_p hook.
-
- * tree-inline.h (tree_can_inline_p): Add declaration.
-
- * c-common.c (c_common_attribute): Add support for option and
- optimize attributes.
- (handle_option_attribute): Add support for the option attribute to
- allow the user to specify different target options for compiling a
- specific function.
- (handle_optimize_attribute): Add support for the optimize
- attribute to allow the user to specify different optimization
- options for compiling a specific function.
- (handle_hot_attribute): Turn on -O3 optimization for this one
- function if it isn't the default optimization level.
- (handle_cold_attribute): Turn on -Os optimization for this one
- function if it insn't the default optimization.
- (const_char_p): New const char * typedef.
- (optimize_args): New static vector to remember the optimization
- arguments.
- (parse_optimize_options): New function to set up the optimization
- arguments from either the optimize attribute or #pragma GCC optimize.
-
- * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
- (builtin_define_std): Ditto.
-
- * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
- Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
- (x86_64-*-*): Ditto.
-
- * Makefile.in (TREE_H): Add options.h.
- (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
-
- * doc/extend.texi (option attribute): Document new attribute.
- (optimize attribute): Ditto.
- (hot attribute): Document hot attribute sets -O3.
- (cold attribute): Document cold attribute sets -Os.
- (#pragma GCC option): Document new pragma.
- (#pragma GCC optimize): Ditto.
-
- * doc/options.texi (TargetSave): Document TargetSave syntax.
- (UInteger): Document UInteger must be used for certain flags.
- (Save): Document Save option to create target specific options
- that can be saved/restored on a function specific context.
-
- * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
- (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
-
- * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
- (TARGET_OPTION_SAVE): Ditto.
- (TARGET_OPTION_RESTORE): Ditto.
- (TARGET_OPTION_PRINT): Ditto.
- (TARGET_OPTION_PRAGMA_PARSE): Ditto.
- (TARGET_CAN_INLINE_P): Ditto.
-
- * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
- -mfpmath=sse,387.
- (-mfpmath=both): Ditto.
-
-2008-07-23 Michael Meissner <gnu@the-meissners.org>
- Karthik Kumar <karthikkumar@gmail.com>
-
- * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
- (TARGET_POPCNT): Ditto.
- (TARGET_SAHF): Ditto.
- (TARGET_AES): Ditto.
- (TARGET_PCLMUL): Ditto.
- (TARGET_CMPXCHG16B): Ditto.
- (TARGET_RECIP): Move switch into target_flags.
- (TARGET_FUSED_MADD): Ditto.
- (ix86_arch_features): Make an unsigned char type.
- (ix86_tune_features): Ditto.
- (OVERRIDE_OPTIONS): Add bool argument to override_options call.
- (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
- (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
-
- * config/i386/i386.opt (arch): New TargetSave field to define
- fields that need to be saved for function specific option support.
- (tune): Ditto.
- (fpmath): Ditto.
- (branch_cost): Ditto.
- (ix86_isa_flags_explicit): Ditto.
- (tune_defaulted): Ditto.
- (arch_specified): Ditto.
- (-m128-long-double): Add Save flag to save option for target
- specific option support.
- (-m80387): Ditto.
- (-maccumulate-outgoing-args): Ditto.
- (-malign-double): Ditto.
- (-malign-stringops): Ditto.
- (-mfancy-math-387): Ditto.
- (-mhard-float): Ditto.
- (-mieee-fp): Ditto.
- (-minline-all-stringops): Ditto.
- (-minline-stringops-dynamically): Ditto.
- (-mms-bitfields): Ditto.
- (-mno-align-stringops): Ditto.
- (-mno-fancy-math-387): Ditto.
- (-mno-push-args): Ditto.
- (-mno-red-zone): Ditto.
- (-mpush-args): Ditto.
- (-mred-zone): Ditto.
- (-mrtd): Ditto.
- (-msseregparm): Ditto.
- (-mstack-arg-probe): Ditto.
- (-m32): Ditto.
- (-m64): Ditto.
- (-mmmx): Ditto.
- (-m3dnow): Ditto.
- (-m3dnowa): Ditto.
- (-msse): Ditto.
- (-msse2): Ditto.
- (-msse3): Ditto.
- (-msse4.1): Ditto.
- (-msse4.2): Ditto.
- (-msse4): Ditto.
- (-mno-sse4): Ditto.
- (-msse4a): Ditto.
- (-msse5): Ditto.
- (-mrecip): Move flag into target_flags.
- (-mcld): Ditto.
- (-mno-fused-madd): Ditto.
- (-mfused-madd): Ditto.
- (-mabm): Move flag into ix86_isa_flags.
- (-mcx16): Ditto.
- (-mpopcnt): Ditto.
- (-msahf): Ditto.
- (-maes): Ditto.
- (-mpclmul): Ditto.
-
- * config/i386/i386-c.c: New file for #pragma support.
- (ix86_target_macros_internal): New function to #define or #undef
- target macros based when the user uses the #pragma GCC option to
- change target options.
- (ix86_pragma_option_parse): New function to add #pragma GCC option
- support.
- (ix86_target_macros): Move defining the target macros here from
- TARGET_CPU_CPP_BUILTINS in i386.h.
- (ix86_register_pragmas): Register the #pragma GCC option hook. If
- defined, initialize any subtarget #pragmas.
-
- * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
- REGISTER_TARGET_PRAGMAS.
-
- * config/i386/t-i386: New file for x86 dependencies.
- (i386.o): Make dependencies mirror the include files used.
- (i386-c.o): New file, add dependencies.
-
- * config/i386/i386-protos.h (override_options): Add bool argument.
- (ix86_valid_option_attribute_tree): Add declaration.
- (ix86_target_macros): Ditto.
- (ix86_register_macros): Ditto.
-
- * config/i386/i386.c (ix86_tune_features): Move initialization of
- the target masks to initial_ix86_tune_features to allow functions
- to have different target options. Make type unsigned char,
- instead of unsigned int.
- (initial_ix86_tune_features): New static vector to hold processor
- masks for the tune variables.
- (ix86_arch_features): Move initialization of the target masks to
- initial_ix86_arch_features to allow functions to have different
- target options. Make type unsigned char, instead of unsigned int.
- (initial_ix86_arch_features): New static vector to hold processor
- masks for the arch variables.
- (enum ix86_function_specific_strings): New enum to describe the
- string options used for attribute((option(...))).
- (ix86_target_string): New function to return a string that
- describes the target options.
- (ix86_debug_options): New function to print the current options in
- the debugger.
- (ix86_function_specific_save): New function hook to save the
- function specific global variables in the cl_target_option structure.
- (ix86_function_specific_restore): New function hook to restore the
- function specific variables from the cl_target_option structure to
- the global variables.
- (ix86_function_specific_print): New function hook to print the
- target specific options in the cl_target_option structure.
- (ix86_valid_option_attribute_p): New function hook to validate
- attribute((option(...))) arguments.
- (ix86_valid_option_attribute_tree): New function that is common
- code between attribute((option(...))) and #pragma GCC option
- support that parses the options and returns a tree holding the options.
- (ix86_valid_option_attribute_inner_p): New helper function for
- ix86_valid_option_attribute_tree.
- (ix86_can_inline_p): New function hook to decide if one function
- can inline another on a target specific basis.
- (ix86_set_current_function); New function hook to switch target
- options if the user used attribute((option(...))) or #pragma GCC
- option.
- (ix86_tune_defaulted): Move to static file scope from
- override_options.
- (ix86_arch_specified): Ditto.
- (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
- ix86_isa_flags.
- (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
- (OPTION_MASK_ISA_ABM_SET): Ditto.
- (OPTION_MASK_ISA_POPCNT_SET): Ditto.
- (OPTION_MASK_ISA_CX16_SET): Ditto.
- (OPTION_MASK_ISA_SAHF_SET): Ditto.
- (OPTION_MASK_ISA_AES_UNSET): Ditto.
- (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
- (OPTION_MASK_ISA_ABM_UNSET): Ditto.
- (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
- (OPTION_MASK_ISA_CX16_UNSET): Ditto.
- (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
- (struct ptt): Move to static file scope from override_options.
- (processor_target_table): Ditto.
- (cpu_names): Ditto.
- (ix86_handle_option): Add support for options that are now isa options.
- (override_options): Add support for declaring functions that
- support different target options than were specified on the
- command line. Move struct ptt, processor_target_table, cpu_names,
- ix86_tune_defaulted, ix86_arch_specified to static file scope.
- Add bool argument. Fix up error messages so the appropriate error
- is given for either command line or attribute.
- (ix86_previous_fndecl): New static to remember previous function
- declaration to see if we need to change target options.
- (ix86_builtins_isa): New array to record the ISA of each builtin
- function.
- (def_builtin): Always create the builtin function, even if the
- current ISA doesn't support it.
- (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
- tests for those builtins.
- (ix86_init_builtins): Remove TARGET_MMX test for calling
- ix86_init_mmx_sse_builtins.
- (ix86_expand_builtin): If the current ISA doesn't support a given
- builtin, signal an error.
- (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
- (TARGET_SET_CURRENT_FUNCTION): Ditto.
- (TARGET_OPTION_SAVE): Ditto.
- (TARGET_OPTION_RESTORE): Ditto.
- (TARGET_OPTION_PRINT): Ditto.
- (TARGET_CAN_INLINE_P): Ditto.
-
-2008-07-22 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * c-typeck.c (build_external_ref): Don't call assemble_external.
- * final.c (output_operand): Call assemble_external.
-
-2008-07-21 DJ Delorie <dj@redhat.com>
-
- * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
- (TARGET_HARD_REGNO_SCRATCH_OK): Define.
-
-2008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.md ("div<mode>3"): Convert into expander, move
- original insn and splitter contents into ...
- ("*div<mode>3_fast"): ... this new pattern. Enable only if
- flag_unsafe_math_optimizations. Add dummy scratch register.
- ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
- !flag_unsafe_math_optimizations. Returns number with next
- highest magnitude if this is still less or equal to the true
- quotient in magnitude.
-
-2008-07-21 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * Makefile.in: Replace toplev.h with TOPLEV_H.
- * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
- * c-lex.c (fe_file_change): Don't set in_system_header.
- * c-parser.c (c_token): Remove in_system_header.
- (c_lex_one_token): Don't set in_system_header.
- (c_parser_set_source_position_from_token): Don't set in_system_header.
- * diagnostic.c (diagnostic_report_diagnostic): Use location from
- diagnostic_info.
- (warning_at): New.
- * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
- * flags.h (in_system_header): Remove.
- * function.c (saved_in_system_header): Remove.
- (push_cfun): Don't set in_system_header.
- (pop_cfun): Don't set in_system_header.
- (push_struct_function): Don't set in_system_header.
- * input.h (expanded_location): Add sysp.
- (in_system_header_at): New.
- (in_system_header): New.
- * toplev.c (in_system_header): Remove.
- * toplev.h: Include input.h
- (warning_at): New.
- * tree-cfg.c (execute_warn_function_return): Call warning_at.
- * tree-ssa.c (warn_uninit): Call warning_at.
- (warn_uninitialized_var): Update calls to warn_uninit.
- (warn_uninitialized_phi): Update calls to warn_uninit.
- * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
- (expand_location): Initialize xloc.sysp.
- * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
- (tree_decl_with_vis): Remove in_system_header_flag.
-
-2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/36822
- * recog.c (asm_operand_ok): Change the order of the extra
- memory constraint checks.
-
-2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/36879
- * tree-switch-conversion.c (build_one_array): Call
- varpool_mark_needed_node and varpool_finalize_decl
- instead of assemble_variable.
-
-2008-07-19 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_add_new_function): Do early local passes.
- * tree-nrv.c (gate_pass_return_slot): New gate.
- (pass_nrv): Add the gate.
- * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
- functions.
- (coalesce_ssa_name): Coalesce SSA names.
- * tree-ssa-live.c (remove_unused_locals): Be more conservative when
- not optimizing so unused user vars remains visible.
- * common.opt (flag_tree_ter): Always enable by default.
- * tree-ssa-ter.c: Include flags.h
- (is_replaceable_p): Check that locations match; when aliasing
- is missing be conservative about loads.
- * tree-optimize.c (gate_init_datastructures): Remove.
- (pass_init_datastructures): New.
- * passes.c: Reorder passes so we always go into SSA.
-
-2008-07-19 Jan Hubicka <jh@suse.cz>
-
- * doc/extend.texi (flatten attribute): Remove note about
- unit-at-a-time.
- * doc/invoke.texi (--combine): Likewise.
- (-finline-functions-called-once): Update levels when enabled.
- (-funit-at-a-time): Document new behaviour.
- (-ftoplevel-reorder): Document that it is enabled -O0 and imply
- -fno-section-anchors when disabled explicitly.
- (inline params): They are not ignored now.
- (precompiled headers): Remove unit-at-a-time as being incompatible.
- * opts.c (decode_options): Handle unit-at-a-time as alias;
- imply -fno-section-anchors when toplevel reorder is disabled
- explicitly.
- * common.opt (ftoplevel-reorder): Set default value to 2.
- (funit-at-a-time): Set default value to 1.
- * config/rs6000/rs6000.c (optimization_options): Set section anchors
- to 2.
-
-2008-07-19 Jan Hubicka <jh@suse.cz>
-
- * builtins.c (expand_builtin_int_roundingfn,
- expand_builtin_int_roundingfn_2): Do not take subtarget argument;
- it is not useful.
-
-2008-07-19 Richard Guenther <rguenther@suse.de>
-
- PR bootstrap/36864
- * tree-ssa-sccvn.h (get_constant_value_id): Declare.
- * tree-ssa-sccvn.c (get_constant_value_id): New function.
- * tree-ssa-pre.c (get_expr_value_id): For newly created
- constant value-ids make sure to add the expression to its
- expression-set.
-
-2008-07-19 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36877
- * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
- return value of the builtin is ignored.
-
-2008-07-19 Olivier Hainque <hainque@adacore.com>
-
- * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
- bits, a C conformant malloc implementation has to provide.
- * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
-
-2008-07-19 Joseph Myers <joseph@codesourcery.com>
-
- PR target/36780
- PR target/36827
- * reload.c (find_reloads_subreg_address): Only reload address if
- reloaded == 0, not for reloaded != 1.
-
- Revert:
- 2008-07-16 Joseph Myers <joseph@codesourcery.com>
- * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
- (m32c_legitimate_address_p): Handle "++rii" addresses created by
- m32c_legitimize_reload_address.
-
- 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
- * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
- (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
-
-2008-07-19 Olivier Hainque <hainque@adacore.com>
-
- * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
- argument, saying whether nested array are to be collapsed
- into a single array type DIE with multiple subscripts.
- (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
- issues, centralize the nested array types collapsing control and
- disable the transformation for Ada.
-
-2008-07-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36786
- * config/i386/i386.md (x86_64_shift_adj_1): Rename from
- x86_64_shift_adj.
- (x86_64_shift_adj_2): New expander.
- (x86_64_shift_adj_3): Ditto.
- * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
- to split TImode operands.
- (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
- (ix86_split_lshr): Ditto.
-
-2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
- and __CHAR32_TYPE__.
- * c-typeck.c (digest_init): Support char16_t and char32_t.
- (set_nonincremental_init_from_string): Idem.
-
-2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36859
- * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
- PREFERRED_STACK_BOUNDARY.
- * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
-
-2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36858
- * function.c (locate_and_pad_parm): Cap boundary earlier.
-
-2008-07-17 Julian Brown <julian@codesourcery.com>
-
- * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
- no-op for targets which don't use DLLs.
-
-2008-07-17 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
- that nodes are relevant by examining the node->analyzed flag.
- (ipcp_init_stage): Check which nodes are relevant, assert that the
- relevant ones are also required.
- (ipcp_propagate_stage): Check on the side arrays are properly
- allocated.
- (ipcp_print_all_jump_functions): Make sure not to touch any node
- that is not analyzed or an edge that does not have a corresponding
- entry in the on-the-side vectors.
- (ipcp_function_scale_print): Likewise.
- (ipcp_update_callgraph): Check that the node is relevant.
- (ipcp_insert_stage): Check that the node is relevant. Check there is
- an info for every node and edge.
- * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
- (ipa_print_all_tree_maps): Likewise and a new variable info.
- (ipa_print_all_params_modified): Likewise.
- * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
-
-2008-07-17 Roman Zippel <zippel@linux-m68k.org>
-
- PR target/25343
- * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
-
-2008-07-17 Paolo Bonzini <bonzini@gnu.org>
-
- PR rtl-optimization/36753
- * fwprop.c (use_killed_between): Don't shortcut
- single-definition global registers.
-
-2008-07-16 Jan Hubicka <jh@suse.cz>
-
- * cgraph.h (varpool_empty_needed_queue): Declare.
- * cgraphunit.c (output_in_order): Mark all variables as needed;
- empty the queue.
- * varpool.c (varpool_assemble_node): Update debug queue.
- (varpool_assemble_pending_decls): Don't do it here.
- (varpool_empty_needed_queue): New function.
-
-2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * recog.c (peephole2_optimize): Fix formatting.
-
-2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * c-pch.c (get_ident): Avoid C++ keywords.
- * combine-stack-adj.c (single_set_for_csa): Likewise.
- * final.c (asm_insn_count, final_scan_insn, alter_subreg,
- output_asm_insn): Likewise.
- * reload.c (push_secondary_reload, find_reusable_reload,
- push_reload, combine_reloads, find_reloads,
- debug_reload_to_stream): Likewise.
- * reload.h (struct reload): Likewise.
- * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
- allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
- emit_output_reload_insns): Likewise.
- * targhooks.c (default_secondary_reload): Likewise.
- * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
-
-2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * recog.c (validate_change_1, validate_change,
- validate_unshare_change, validate_replace_rtx_1, struct
- funny_match, constrain_operands, peephole2_optimize): Avoid C++
- keywords.
- * reload.c (push_secondary_reload, secondary_reload_class,
- scratch_reload_class, find_valid_class, find_reusable_reload,
- push_reload, find_dummy_reload, find_reloads_address_1,
- find_reloads_address_part, find_equiv_reg): Likewise.
- * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
- choose_reload_regs): Likewise.
- * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
- Likewise.
- * rtlhooks.c (gen_lowpart_if_possible): Likewise.
- * sched-ebb.c (add_deps_for_risky_insns): Likewise.
- * sched-rgn.c (concat_INSN_LIST): Likewise.
- * stor-layout.c (mode_for_size, mode_for_size_tree,
- smallest_mode_for_size): Likewise.
-
-2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * cfg.c (dump_reg_info): Avoid C++ keywords.
- * dwarf2asm.c (dw2_force_const_mem,
- dw2_asm_output_encoded_addr_rtx): Likewise.
- * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
- * expmed.c (expand_shift): Likewise.
- * global.c (find_reg): Likewise.
- * graph.c (draw_edge): Likewise.
- * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
- * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
- widen_clz, widen_bswap, expand_parity, expand_unop,
- emit_cmp_and_jump_insn_1): Likewise.
- * postreload.c (reload_cse_simplify_operands): Likewise.
- * ra.h (add_neighbor): Likewise.
- * reg-stack.c (remove_regno_note, change_stack): Likewise.
- * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
- record_reg_classes, copy_cost, record_address_regs,
- invalid_mode_change_p): Likewise.
- * regrename.c (regrename_optimize, scan_rtx_reg,
- dump_def_use_chain, find_oldest_value_reg,
- replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
-
-2008-07-16 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
- MASK_POWERPC64 for power4 in previous commit.
-
-2008-07-16 Olivier Hainque <hainque@adacore.com>
-
- * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
- instead of bare conversion to cast const-ness away.
-
-2008-07-16 Anatoly Sokolov <aesok@post.ru>
-
- * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
- XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
- * config/xtensa/xtensa.c (xtensa_function_value): New function.
- (TARGET_FUNCTION_VALUE): Define.
-
-2008-07-16 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (processor_target_table): Add
- MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
-
-2008-07-16 Joseph Myers <joseph@codesourcery.com>
-
- PR target/36827
- * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
- (m32c_legitimate_address_p): Handle "++rii" addresses created by
- m32c_legitimize_reload_address.
-
-2007-07-16 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
- DECL_IN_SYSTEM_HEADER in sync.
-
-2008-07-15 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
- * tree-ssa-pre.c (pre_expr_eq): Ditto
- (get_constant_for_value_id): Take a type as an argument.
- (fully_constant_expression): Pass in type.
- (find_or_generate_expression): Short circuit constant case.
- (create_expression_by_pieces): Remove special casing of
- pointer_plus.
- (do_regular_insertion): Short circuit constant case.
- (do_partial_partial_insertion): Ditto.
-
-2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/36782
- * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
-
-2008-07-15 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/libgcc-xtensa.ver: New file.
- * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
-
-2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * df-problems.c (df_set_note): Avoid C++ keywords.
- * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
- * dse.c (record_store, remove_useless_values): Likewise.
- * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
- gen_reg_rtx_offset, operand_subword, change_address_1,
- change_address, adjust_address_1, offset_address,
- widen_memory_access, emit_copy_of_insn_after): Likewise.
- * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
- * fwprop.c (should_replace_address, propagate_rtx_1,
- propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
- Likewise.
- * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
- gcse_emit_move_after, update_ld_motion_stores): Likewise.
- * lcm.c (compute_insert_delete, pre_edge_lcm,
- compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
- * lower-subreg.c (resolve_reg_notes): Likewise.
- * mode-switching.c (optimize_mode_switching): Likewise.
-
-2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * bt-load.c (add_btr_def, migrate_btr_def,
- branch_target_load_optimize): Avoid C++ keywords.
- * caller-save.c (insert_restore, insert_save, insert_one_insn):
- Likewise.
- * combine.c (subst, simplify_set, make_extraction,
- make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
- * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
- fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
-
-2008-07-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36369
- * c-common.c (strict_aliasing_warning): Do not warn for
- TYPE_REF_CAN_ALIAS_ALL pointers.
- (c_common_get_alias_set): may_alias types are not special.
- * tree.c (build_pointer_type_for_mode): Look up the may_alias
- attribute and set can_ref_all accordingly.
- (build_reference_type_for_mode): Likewise.
- * doc/extend.texi (may_alias): Clarify.
-
-2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/36780
- * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
- (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
-
-2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31568
- * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
- gcc_assert, instead call output_operand_lossage.
-
-2008-07-15 Kai Tietz <kai.tietz@onevision.com>
-
- * builtins.c (std_canonical_va_list): Treat structure based
- va_list types.
-
-2008-07-15 Ben Elliston <bje@au.ibm.com>
-
- * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
-
-2007-07-14 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
- is set.
-
-2008-07-14 Jan Hubicka <jh@suse.cz>
-
- * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
- * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
- fix predicates and constraints.
- * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
- * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
-
-2008-07-14 Doug Kwan <dougkwan@google.com>
-
- * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
- additional option file arm/eabi.opt.
- * config/arm/eabi.h (File): New configuration file for EABI targets.
- * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
- SUBSUBTARGET_EXTRA_SPECS.
- (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
- * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
- from STARTFILE_SPEC so that it can be referenced in an override.
- (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
- (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
- can be referenced in an override.
- (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
- * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
- so that it can be referenced in an override.
- (LINK_SPEC): Use BPABI_LINK_SPEC.
- * config/arm/eabi.opt (File): New.
-
-2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.in (TARGET_DEF_H): Add targhooks.h.
- (FIXED_VALUE_H): New variable.
- (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
- input.h, fixed-value.h.
- (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
- (BASIC_BLOCK_H): Use $(BITMAP_H).
- (FUNCTION_H): Add varray.h.
- (IPA_REFERENCE_H): Use $(BITMAP_H).
- (CGRAPH_H): Add $(BASIC_BLOCK_H).
- (DF_H): Use $(BITMAP_H).
- (GGC_H): Add statistics.h.
- (INSN_ADDR_H): New.
- (INSN_ATTR_H): Use it.
- (SYSTEM_H): Add safe-ctype.h, filenames.h.
- (INPUT_H): New.
- (SYMTAB_H): Add $(OBSTACK_H).
- (CPP_INTERNAL_H): New.
- (TREE_DUMP_H): Add tree-pass.h.
- (TREE_FLOW_H): Use $(BITMAP_H)
- (PRETTY_PRINT_H): Use $(INPUT_H).
- (EBITMAP_H): Rename from typo-ed EBIMAP_H.
- (GSTAB_H): New.
- (BITMAP_H): New.
- (many object files): Fix lots of header dependencies throughout.
-
-2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.in (write_entries_to_file, write_entries_to_file_split):
- New macros.
- (s-gtyp-input): Use them to write tmp-gi.list.
- (echo_to_gi.list): Remove.
-
-2008-07-14 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (pre_info): Remove.
- (switch_to_PRE_table): Likewise.
- (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
- (set_hashtable_value_ids): Do not create value-ids for the
- optimistic tables.
- (run_scc_vn): Remove double test. Remove bogus special-case
- in value-number printing.
- * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
- * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
- SSA_NAME_VALUE.
- * tree-flow-inline.h (get_value_handle): Remove.
- * tree-flow.h (get_value_handle): Remove.
-
-2008-07-14 Martin Jambor <mjambor@suse.cz>
-
- * tree-switch-conversion.c (gen_inbound_check): Make sure the type
- in which we generate arithmetics is not a subrange.
-
-2008-07-14 Martin Jambor <mjambor@suse.cz>
-
- * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
-
-2008-07-14 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
-
-2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/36745
- * config/s390/s390.c: (s390_secondary_reload): Add a secondary
- reload for symbol refs moved to r0 with -fPIC.
- (legitimize_pic_address): Use the target register as temporary
- reg if possible.
- (emit_symbolic_move): Adjust comment.
- * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
- New expanders.
-
-2008-07-14 Ben Elliston <bje@au.ibm.com>
-
- * c-common.h (C_CPP_HASHNODE): New macro.
- * coretypes.h (struct cpp_token): Forward declare.
- * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
- the context-sensitive keyword method.
- * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
- __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
- expand_bool_pixel): New.
- (altivec_categorize_keyword): New function.
- (init_vector_keywords): New function.
- (rs6000_macro_to_expand): Likewise.
- (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
- compiling an ISO C dialect.
-
-2008-07-13 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
- (create_expression_by_pieces): Fix typo.
- (do_regular_insertion): Use debug counter here too.
-
-2008-07-14 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/35492.
- * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
- CONST_OK_FOR_LETTER_P. All port-local users changed.
- (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
- implement Kp matching power-of-two.
- (CONSTRAINT_LEN): Define to match.
- * config/cris/cris.md: Replace all use of constraint K with Kc.
- ("*btst*): Use Kp for operand 0 of last alternative.
-
-2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR testsuite/36440
- * tree-call-cdce.c (check_target_format): Accept MIPS single, double
- and quad formats.
-
-2008-07-13 Jan Hubicka <jh@suse.cz>
-
- * tree.c (decl_assembler_name_equal): Expect assembler name of decl
- to be mangled too.
-
-2008-07-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36811
- * langhooks.c (lhd_print_error_function): Deal with recursive
- BLOCK trees.
-
-2008-07-12 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (assembler_name_hash): New static var.
- (hash_node_by_assembler_name, eq_assembler_name): New.
- (cgraph_node_for_asm): Use hashtable.
- (cgraph_remove_node): Maintain hashtable.
- (change_decl_assembler_name): Sanity check that names are not changing
- after aliasing was processed.
- * cgraph.h (varpoon_node): Add next GGC marker.
- * tree.c (decl_assembler_name_equal): Constify.
- (decl_assembler_name_hash): New.
- * tree.h (decl_assembler_name_equal): Constify.
- (decl_assembler_name_hash): Update.
-
-2008-07-12 David Daney <ddaney@avtrex.com>
-
- * config/mips/driver-native.c (host_detect_local_cpu): Handle
- sb1 and r5000 cpus.
-
-2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/md.texi: Document the MIPS "v" constraint.
- * config/mips/mips.h (reg_class): Revert last change.
- (REG_CLASS_NAMES): Likewise.
- (REG_CLASS_CONTENTS): Likewise.
- * config/mips/mips.c (mips_regno_to_class): Likewise.
- * config/mips/constraints.md (v): Likewise, but add documentation.
- Add a comment to say that this constraint should not be used in
- gcc code.
-
-2008-07-11 DJ Delorie <dj@redhat.com>
-
- * config/h8300/h8300.md (length): Fix branch offset limit.
-
-2008-07-11 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
- * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
- (avr_hard_regno_scratch_ok): New function.
- (TARGET_HARD_REGNO_SCRATCH_OK): Define.
- * config/avr/avr.md (all peepholes that request a scratch register):
- Remove avr_peep2_scratch_safe use.
-
-2008-07-11 Tom Tromey <tromey@redhat.com>
- Ian Lance Taylor <iant@google.com>
-
- * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
- (struct c_common_resword): Define.
- (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
- (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
- (c_common_reswords, num_c_common_reswords): Declare.
- * c-common.c (c_common_reswords): New global const array.
- (num_c_common_reswords): New const int.
- * c-parser.c (struct resword, reswords): Don't define.
- (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
- (c_parse_init): Clarify mask code. Use c_common_reswords rather
- than reswords. If warning about C++ keywords, give them a special
- RID code.
- (c_lex_one_token): Warn about C++ keywords. Call
- objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
- (c_parser_external_declaration): Look for RID_xxx rather than
- RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
- (c_parser_statement_after_labels): Likewise.
- (c_parser_objc_class_instance_variables): Likewise.
- (c_parser_objc_class_declaration): Likewise.
- (c_parser_objc_try_catch_statement): Likewise.
- * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
- (declspecs_add_type): Likewise.
-
-2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
-
- * ggc-page.c (alloc_page):
- Substituting xmalloc, xcalloc with
- XNEWVEC and XCNEWVAR macros which add the
- needed casts.
-
-2008-07-11 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36765
- * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
- aliases from HEAP vars to SMTs.
-
-2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
- * configure.ac (loose_warn): Move -Wc++-compat from here...
- (strict_warn): ...to here.
- * configure: Regenerate.
-
-2008-07-10 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
- i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
- m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
- rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
- excluding more specific h8300-*-* and sh-*-* targets.
-
-2008-07-10 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
- (eliminate): Ditto.
- (execute_pre): Call loop_optimizer_finalize in early exit.
-
-2008-07-10 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36790
- * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
- uids in the bitmap, not just VAR_DECL uids.
-
- PR rtl-optimization/36419
- * combine-stack-adj.c (adjust_frame_related_expr): New function.
- (combine_stack_adjustments_for_block): Call it if needed. Delete
- correct insn.
- * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
- DW_CFA_GNU_args_size if CSA pass merged some adjustments into
- prologue sp adjustment.
-
-2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
-
- PR other/28322
- * opts.c (print_ignored_options): Report postponed diagnostics for
- unknown -Wno-* options as warnings, not errors.
- (postpone_unknown_option_error): Renamed to...
- (postpone_unknown_option_warning): ... this.
-
-2008-07-09 Doug Kwan <dougkwan@google.com>
-
- Revert:
- 2008-07-08 Doug Kwan <dougkwan@google.com>
-
- * config/arm/arm.opt (mandroid): New option.
- * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
- (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
- (CC1_SPEC): Same.
- (CC1PLUS_SPEC): Same.
- (LIB_SPEC): Same.
- (STARTFILE_SPEC): Same.
- (ENDFILE_SPEC): Same.
- (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
- used.
-
-2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR target/35802
- * config/mips/mips.h (reg_class): Remove V1_REG.
- (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
- * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
- instead of V1_REGS.
- (mips_get_tp): New function.
- (mips_legitimize_tls_address): Use it.
- * config/mips/constraints.md (v): Delete.
- * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
- (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
- After reload, split into a move and ...
- (*tls_get_tp_<mode>_split): ...this new instruction.
-
-2008-07-09 David Daney <ddaney@avtrex.com>
-
- * config/mips/driver-native.c: Include coretypes.h and tm.h.
-
-2008-07-09 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
- (push_gimplify_context): Don't allocate temp_htab nor c itself here.
- Add c argument.
- (pop_gimplify_context): Check c->temp_htab instead of optimize whether
- htab_delete should be called. Don't free c.
- (lookup_tmp_var): Create temp_htab lazily.
- (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
- gimplify_body, force_gimple_operand): Adjust push_gimplify_context
- callers.
- * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
- lower_omp_ordered, lower_omp_critical, lower_omp_for,
- create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
- * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
- * tree-sra.c (generate_element_init): Likewise.
- * tree-mudflap.c (execute_mudflap_function_ops,
- execute_mudflap_function_decls): Likewise.
- * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
- * tree-gimple.h (struct gimplify_ctx): New type.
- (push_gimplify_context): Adjust prototype.
-
-2008-07-09 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-pre.c (phi_translate_1): Update placement of
- add_to_value calls.
-
-2008-07-09 Anatoly Sokolov <aesok@post.ru>
-
- * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
- * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
- (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
- * targhooks.c (default_hard_regno_scratch_ok): New function.
- * targhooks.h (default_hard_regno_scratch_ok): Declare function.
- * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
- * recog.c: Include "target.h".
- (peep2_find_free_register): Add check for global regs. Add target
- specific check.
- * Makefile.in (recog.o): Depend on target.h.
-
-2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_canonical_va_list_type): New.
- (TARGET_CANONICAL_VA_LIST_TYPE): Define.
-
-2008-07-09 Raksit Ashok <raksit@google.com>
-
- * doc/invoke.texi (Option Summary): Mention new option
- -Wdisallowed-function-list=...
- (Warning Options): Document -Wdisallowed-function-list=...
- * common.opt (Wdisallowed-function-list=): New flag.
- * flags.h (warn_disallowed_functions): External definition of new
- boolean warning flag.
- (warn_if_disallowed_function_p): Declare new function.
- * opts.c (warning_disallowed_functions): New static variable.
- (warn_disallowed_functions): New boolean warning flag.
- (warn_if_disallowed_function_p): New function.
- (add_comma_separated_to_vector): Rename
- add_instrument_functions_exclude_list to this.
- (common_handle_option): Handle new option. Rename calls to
- add_instrument_functions_exclude_list into calls to
- add_comma_separated_to_vector.
- * c-parser.c (c_parser_postfix_expression_after_primary): New warning
- based on flag warn_disallowed_functions.
-
-2008-07-09 Christian Bruel <christian.bruel@st.com>
-
- * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
- instead of get_attr_length.
-
-2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
- keywords.
- * genemit.c (gen_insn): Likewise.
- * gengtype.c (note_def_vec): Likewise.
- * gengtype.h (note_def_vec): Likewise.
- * genoutput.c (struct data, output_insn_data, process_template,
- gen_expand, gen_split, note_constraint): Likewise.
- * genrecog.c (new_decision, add_to_sequence, factor_tests,
- make_insn_sequence): Likewise.
- * gensupport.c (record_insn_name): Likewise.
-
-2008-07-08 Doug Kwan <dougkwan@google.com>
-
- * config/arm/arm.opt (mandroid): New option.
- * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
- (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
- (CC1_SPEC): Same.
- (CC1PLUS_SPEC): Same.
- (LIB_SPEC): Same.
- (STARTFILE_SPEC): Same.
- (ENDFILE_SPEC): Same.
- (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
- used.
-
-2008-07-08 Raksit Ashok <raksit@google.com>
-
- * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
- (set_storage_via_setmem): Fix expected_align parameter.
- * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
- missing from the list.
- * doc/md.texi (movmem): Explicitly state that expected alignment is
- to be expressed in bytes.
- (setmem): Explicitly state that expected alignment is to be expressed
- in bytes.
-
-2008-07-08 Joseph Myers <joseph@codesourcery.com>
-
- * reload.c (find_reloads_subreg_address): Do not require validity
- of address in original mode before reloading address.
-
-2008-07-07 Tianwei Sheng <tianweis@google.com>
-
- * df-core.c (df_remove_problem): Adjust the access to avoid out of
- bounds array access.
-
-2008-07-08 Jakub Jelinek <jakub@redhat.com>
-
- * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
-
-2008-07-05 Daniel Berlin <dberlin@dberlin.org>
-
- Fix PR tree-optimization/23455
- Fix PR tree-optimization/35286
- Fix PR tree-optimization/35287
- * Makefile.in (OBJS-common): Remove tree-vn.o.
- (tree-vn.o): Remove.
- * dbgcnt.def: Add treepre_insert debug counter.
- * gcc/tree-flow.h (add_to_value): Updated for other changes.
- (debug_value_expressions): Ditto.
- (print_value_expressions): Ditto.
- * tree-pretty-print.c (dump_generic_node): Updated for
- VALUE_HANDLE removal.
- * tree-ssa-dom.c (record_equality): Ditto.
- (cprop_operand): Ditto.
- (lookup_avail_expr): Ditto.
- * tree-ssa-threadedge.c
- (record_temporary_equivalences_from_stmts_at_dest): Ditto.
- (simplify_control_stmt_condition): Ditto.
- * tree.c (tree_code_size): Ditto.
- (tree_node_structure): Ditto.
- (iterative_hash_expr): Ditto.
- * tree.def: Ditto.
- * tree.h (VALUE_HANDLE_ID): Ditto.
- (VALUE_HANDLE_EXPR_SET): Ditto.
- (struct tree_value_handle): Ditto.
- (union tree_node): Ditto.
- * treestruct.def: Ditto.
- * tree-vn.c: Removed.
- * tree-ssa-pre.c: Rewritten entirely.
- * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
- (constant_value_ids): Ditto.
- (vn_nary_op_t): Moved to header.
- (vn_phi_t): Ditto.
- (vn_reference_op_t): Ditto
- (vn_reference_t): Ditto.
- (next_value_id): New variable.
- (VN_INFO): Add an assert.
- (vn_constant_eq): New function.
- (vn_constant_hash): Ditto.
- (get_or_alloc_constant_value_id): Ditto.
- (value_id_constant_p): Ditto.
- (vn_reference_compute_hash): De-staticify.
- (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
- Disable some code with a FIXME. Remove VALUE_HANDLE use.
- (valueize_refs): Update opcode if it changes from ssa name to constant.
- (vn_reference_lookup_1): Add new argument.
- (vn_reference_lookup): Ditto.
- (vn_reference_lookup_pieces): New function.
- (vn_reference_insert): Add return type. Modify to deal with value ids.
- (vn_reference_insert_pieces): New function.
- (vn_nary_op_compute_hash): De-staticify.
- (vn_nary_op_eq): Ditto.
- (vn_nary_op_lookup_pieces): New function.
- (vn_nary_op_lookup): Add new argument.
- (vn_nary_op_insert_pieces): New function.
- (vn_nary_op_insert): Add return type. Modify to deal with value ids.
- (vn_phi_insert): Ditto.
- (visit_unary_op): Update for callee changes.
- (visit_binary_op): Ditto.
- (visit_reference_op_load): Ditto.
- (visit_reference_op_store): Ditto.
- (init_scc_vn): Init next_value_id, constant_to_value_id and
- constant_value_ids.
- (free_scc_vn): Free them.
- (set_hashtable_value_ids): New function.
- (run_scc_vn): Use it.
- (get_max_value_id): New function.
- (get_next_value_id): Ditto.
- (expressions_equal_p): Moved from tree-vn.c
- (sort_vuses): Ditto.
- (sort_vuses_heap): Ditto.
- * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
- above).
- * tree.c (iterative_hash_hashval_t): Made non-static
- * tree.h (iterative_hash_hashval_t): Declare it.
-
-2008-07-08 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
- instead of ipa_create_node_params.
- (ipcp_driver): Allocate infos with ipa_check_create_node_params and
- ipa_check_create_edge_args, free them with
- free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
-
- * ipa-prop.c: Include flags.h and tree-inline.h.
- (ipa_node_params_vector): New variable.
- (ipa_edge_args_vector): New variable.
- (edge_removal_hook_holder): New variable.
- (node_removal_hook_holder): New variable.
- (edge_duplication_hook_holder): New variable.
- (node_duplication_hook_holder): New variable.
- (ipa_detect_param_modifications): Check for presence of modified flags.
- (ipa_compute_jump_functions): Check for presence of jump functions.
- (ipa_free_edge_args_substructures): New function.
- (ipa_create_node_params): Removed.
- (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
- (ipa_free_node_params_substructures): New function.
- (ipa_free_all_node_params): Changed to deallocate the on-the-side
- vector.
- (ipa_edge_removal_hook): New function.
- (ipa_node_removal_hook): New function.
- (duplicate_array): New function.
- (ipa_edge_duplication_hook): New function.
- (ipa_node_duplication_hook): New function.
- (ipa_register_cgraph_hooks): New function.
- (ipa_unregister_cgraph_hooks): New function.
- (free_all_ipa_structures_after_ipa_cp): New function.
-
- * ipa-prop.h: Include vec.h.
- (ipa_node_params_t): New typedef with vector types for it.
- (ipa_edge_args_t): New typedef with vector types for it.
- (IPA_NODE_REF): Changed to access an on-the-side vector.
- (IPA_EDGE_REF): Changed to access an on-the-side vector.
- (ipa_check_create_node_params): New function.
- (ipa_check_create_edge_args): New function.
-
- * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
- all users.
-
-2008-07-07 Tom Tromey <tromey@redhat.com>
-
- * configure, config.in: Rebuilt.
- * configure.ac: Don't check for scandir or alphasort.
-
-2008-07-07 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/arm.c (arm_init_neon_builtins): Register built-in
- types immediately after creating them.
-
-2008-07-07 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
-
-2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
-
- * tree-ssa-structalias.c (compute_points_to_sets): Add call to
- dump_constraint_graph.
- (dump_constraint_edge): New function.
- (dump_constraint_graph): New function.
- (debug_constraint_graph): New function.
- (dump_constraint): Removed useless comparison.
- * tree-ssa-structalias.h (dump_constraint_edge): Declare.
- (dump_constraint_graph): Declare.
- (debug_constraint_graph): Declare.
- * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
-
-2008-07-07 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (is_va_list_char_pointer): New.
- (ix86_va_start): Replace compare with ms_va_list_type_node
- by is_va_list_char_pointer.
- (ix86_gimplify_va_arg): Likewise.
-
-2008-07-07 Martin Jambor <mjambor@suse.cz>
-
- * cgraph.c (cgraph_edge_max_uid): New variable.
- (struct cgraph_edge_hook_list): New type.
- (struct cgraph_node_hook_list): New type.
- (struct cgraph_2edge_hook_list): New type.
- (struct cgraph_2node_hook_list): New type.
- (first_cgraph_edge_removal_hook): New variable.
- (first_cgraph_node_removal_hook): New variable.
- (first_cgraph_edge_duplicated_hook): New variable.
- (first_cgraph_node_duplicated_hook): New variable.
- (cgraph_add_edge_removal_hook): New function.
- (cgraph_remove_edge_removal_hook): New function.
- (cgraph_call_edge_removal_hooks): New function.
- (cgraph_add_node_removal_hook): New function.
- (cgraph_remove_node_removal_hook): New function.
- (cgraph_call_node_removal_hooks): New function.
- (cgraph_add_edge_duplication_hook): New function.
- (cgraph_remove_edge_duplication_hook): New function.
- (cgraph_call_edge_duplication_hooks): New function.
- (cgraph_add_node_duplication_hook): New function.
- (cgraph_remove_node_duplication_hook): New function.
- (cgraph_call_node_duplication_hooks): New function.
- (cgraph_create_edge): Assign to edge uid.
- (cgraph_remove_edge): Call edge removal hooks.
- (cgraph_node_remove_callees): Call edge removal hooks.
- (cgraph_node_remove_callers): Call edge removal hooks.
- (cgraph_remove_node): Call node removal hooks.
- (cgraph_clone_edge): Call edge duplication hooks.
- (cgraph_clone_node): Call node duplication hooks.
-
- * cgraph.h (cgraph_edge): New field uid.
- (cgraph_edge_hook): New type.
- (cgraph_node_hook): New type.
- (cgraph_2edge_hook): New type.
- (cgraph_2node_hook): New type.
-
-2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
-
- * config.in: Regenerate.
-
-2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
-
- * gcc.c (print_sysroot): New.
- (option_map, display_help, process_command): Handle the
- -print-sysroot option.
- (main): Print the sysroot if requested.
- * doc/invoke.texi (Debugging Options): Document -print-sysroot.
-
-2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR target/34780
- * unwind-pe.h (size_of_encoded_value): add attribute unused.
-
-2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
-
- * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
- (assign_parm_setup_block_p): Also check mode of entry_parm.
-
-2008-07-07 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.h (set_used_smts): Remove.
- * tree-ssa-structalias.c (used_smts): Likewise.
- (set_used_smts): Likewise.
- * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
- call to set_used_smts.
-
-2008-07-07 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
- (new_var_info): Set it to false.
- (solution_set_add): Correctly handle pointers outside a var and
- inside a field.
- (type_safe): Treat variables with is_full_var properly.
- (do_sd_constraint): Likewise.
- (do_ds_constraint): Likewise.
- (process_constraint): Remove zeroing offset for !use_field_sensitive.
- (get_constraint_for_ptr_offset): New function.
- (get_constraint_for_component_ref): For addresses at least include
- the last field of the variable. Handle is_full_vars properly.
- (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
- (handle_ptr_arith): Remove.
- (find_func_aliases): Simplify assignment handling.
- (create_function_info_for): For parameter and result varinfos set
- is_full_var flag.
- (create_variable_info_for): Set is_full_var flag whenever we
- just created a single varinfo for a decl.
- (init_alias_vars): Initialize use_field_sensitive from
- max-fields-for-field-sensitive parameter.
-
-2008-07-07 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36713
- * tree-flow-inline.h (is_call_used): New function.
- * tree-nrv.c (dest_safe_for_nrv_p): Use it.
- * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
- * tree-outof-ssa.c (create_temp): Set call-used flag if required.
-
-2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
-
-2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
-
- * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
-
-2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
-
- * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
- to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
- tmake_file.
- * config/m68k/t-linux: New.
- * doc/install.texi: Document m68k-*-linux is now multilibbed by
- default.
-
-2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
-
- * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
- * config/m68k/m68k-devices.def: Remove multilibs that only differ
- by MAC/EMAC.
-
-2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.c (execute): Fix -Wc++-compat warning.
-
-2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36720
- * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
- constant for little endian.
-
-2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
- mips_base_mips16 instead of TARGET_MIPS16.
- (mips_base_mips16): Declare.
- * config/mips/mips.c (mips_base_mips16): Make global.
- (was_mips16_p): Remove GTY marker.
- (was_mips16_pch_p): New variable.
- (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
- (mips_override_options): Force to non-MIPS16 mode initially.
- Do not complain about MIPS16 PIC incompatibilities here.
- Only allow -mgpopt if -mexplicit-relocs is in force for
- non-MIPS16 code.
-
-2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
-
- * configure.ac: Check for caddr_t, define to char * if not defined.
- * configure: Regenerate.
- * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
- (mmap_gt_pch_use_address): Likewise.
- * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
-
-2008-07-06 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (struct variable_info): Remove has_union.
- (new_var_info): Deal with it.
- (solution_set_add): Likewise.
- (bitpos_of_field): Make signed, fix.
- (struct fieldoff): Remove type and decl fields. Make size field
- unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
- flags.
- (fieldoff_compare): Deal with it.
- (push_fields_onto_fieldstack): Remove has_union argument, glob
- adjacent non-pointer fields together.
- (create_function_info_for): Do not set has_union.
- (create_variable_info_for): Simplify.
-
-2008-07-06 Kai Tietz <kai.tietz@onevision.com>
-
- * config.gcc (extra_headers): Add cross-stdarg.h for target
- x86_64-*-* and i?86-*-*.
- * config/i386/cross-stdarg.h: New.
- * builtins.c (std_fn_abi_va_list): New.
- (std_canonical_va_list_type): New.
- (stabilize_va_list): Replace va_list_type_node use by
- mtarget.canonical_va_list_type.
- (gimplify_va_arg_expr): Likewise.
- (expand_builtin_va_copy): Replace va_list_type_node use by
- mtarget.fn_abi_va_list.
- * tree-sra.c (is_va_list_type): New helper.
- (decl_can_be_decomposed_p): Replace
- va_list_type_node use by is_va_list_type.
- * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
- * tree-stdarg.c (execute_optimize_stdarg): Likewise.
- * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
- * config/i386/i386-protos.h (ix86_get_valist_type): New.
- (ix86_enum_va_list): New.
- * config/i386/i386.c (sysv_va_list_type_node): New.
- (ms_va_list_type_node): New.
- (ix86_function_type_abi): Remove sorry.
- (ix86_build_builtin_va_list_abi): New.
- (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
- for 64-bit targets.
- (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
- (ix86_init_builtins_va_builtins_abi): New.
- (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
- for 64-bit targets.
- (ix86_handle_abi_attribute): New.
- (attribute_spec): Add sysv_abi and ms_abi.
- (ix86_fn_abi_va_list): New.
- (ix86_canonical_va_list_type): New.
- (ix86_enum_va_list): New.
- (TARGET_FN_ABI_VA_LIST): New.
- (TARGET_CANONICAL_VA_LIST_TYPE): New.
- * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
- * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
- (TARGET_CANONICAL_VA_LIST_TYPE): New.
- (TARGET_ENUM_VA_LIST): New.
- * expr.h (std_fn_abi_va_list): New.
- (std_canonical_va_list_type): New.
- * target-def.h (TARGET_FN_ABI_VA_LIST): New.
- (TARGET_CANONICAL_VA_LIST_TYPE): New.
- (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
- TARGET_CANONICAL_VA_LIST_TYPE.
- * target.h (struct gcc_target): Add fn_abi_va_list hook
- and canonical_va_list_type hook.
-
-2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
- * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
- integral and pointer types.
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
-2008-07-04 Roger Sayle <roger@eyesopen.com>
+ PR middle-end/38347
+ * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
+ GET_MODE (op0) in operand_subword_force calls.
- * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
- the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
+ PR middle-end/38771
+ * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
+ fold_convert arg0 operands to TREE_TYPE (op0) first.
-2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
+2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
- PR target/36684
- * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
+ * params.def (ira-max-conflict-table-size): Decrease default value
+ to 1000.
-2008-07-04 Jakub Jelinek <jakub@redhat.com>
+2009-01-08 Jakub Jelinek <jakub@redhat.com>
- * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
- build_gimple_modify_stmt.
- (build_arrays, gen_inbound_check): Likewise. Force RHS to be
- gimple operand. Use fold_build* instead of build*.
+ PR tree-optimization/37031
+ * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
+ on parameter_set.
+ (build_access_matrix): Reserve correct size for AM_MATRIX vector,
+ allocate it using gc instead of heap, use VEC_quick_push instead of
+ VEC_safe_push.
+ * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
+ instead of heap, use VEC_quick_push instead of VEC_safe_push.
+ * tree-data-ref.h (struct access_matrix): Change matrix to gc
+ allocated vector from heap allocated.
+ * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
+ * tree-loop-linear.c (linear_transform_loops): Allocate nest
+ vector only after perfect_loop_nest_depth call.
-2008-07-04 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
- (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
- properly to compute the reachability set if we do field-sensitive PTA.
- * invoke.texi (max-fields-for-field-sensitive): Document default.
- * opts.c (decode_options): Set max-fields-for-field-sensitive to
- 100 for optimize >= 2.
-
-2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ggc-zone.c (lookup_page_table_if_allocated,
- set_page_table_entry, zone_find_object_size, alloc_small_page,
- alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
- new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
- -Wc++-compat and/or -Wcast-qual warnings.
-
-2008-07-04 Alan Modra <amodra@bigpond.net.au>
-
- PR target/36634
- * config/rs6000/rs6000.md (call, call_value): Don't arrange for
- pic_offset_table_rtx to be marked as used here.
- (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
- TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
- (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
- (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
- !TARGET_SECURE_PLT.
-
-2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * alloc-pool.c (hash_descriptor, eq_descriptor,
- alloc_pool_descriptor): Fix -Wc++-compat warnings.
- * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
- Likewise.
- * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
- loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
- final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
- * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
- Likewise.
-
-2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-flow.h (loop_only_exit_p): Declare.
- * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
- * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
- the number of iterations if it is constant. Otherwise, if this is the
- only possible exit of the loop, use the conservative estimate on the
- number of iterations of the entire loop if available.
-
-2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
-
- * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
- * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
- Add synchronization functions.
- * config/sync.c: New file.
- * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
- (LIBGCC_SYNC_CFLAGS): Likewise.
-
-2008-07-03 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36710
- * config/i386/i386.md (mode): Add TF to "mode" attribute.
- (*pushtf_sse): New insn pattern.
- (pushtf splitters): New splitters.
-
-2008-07-03 Michael Meissner <gnu@the-meissners.org>
-
- PR middle-end/35736
- * predict.c (build_predict_expr): Use void_type_node for the tree
- type, instead of NULL_TREE.
-
-2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (contains_aligned_value_p): Return true
- for TCmode.
- (ix86_data_alignment): Align TCmode to 128bits.
- (ix86_local_alignment): Likewise.
-
-2008-07-03 Andrew Haley <aph@redhat.com>
-
- PR bootstrap/33304
- * vec.h (VEC_TA): New.
- (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
- DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
- * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
- (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
- (C_COMMON_FIXED_TYPES): Remove first arg.
- (C_COMMON_FIXED_MODE_TYPES): Likewise.
- * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
- MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
- not to use empty macro arguments.
-
-2008-07-02 Joseph Myers <joseph@codesourcery.com>
-
- * config/alpha/vms_tramp.asm, config/arm/crti.asm,
- config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
- config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
- config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
- config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
- config/i386/sol2-gc1.asm, config/ia64/crti.asm,
- config/ia64/crtn.asm, config/m68hc11/larith.asm,
- config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
- config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
- config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
- config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
- config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
- config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
- config/rs6000/e500crtres64gpr.asm,
- config/rs6000/e500crtres64gprctr.asm,
- config/rs6000/e500crtrest32gpr.asm,
- config/rs6000/e500crtrest64gpr.asm,
- config/rs6000/e500crtresx32gpr.asm,
- config/rs6000/e500crtresx64gpr.asm,
- config/rs6000/e500crtsav32gpr.asm,
- config/rs6000/e500crtsav64gpr.asm,
- config/rs6000/e500crtsav64gprctr.asm,
- config/rs6000/e500crtsavg32gpr.asm,
- config/rs6000/e500crtsavg64gpr.asm,
- config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
- config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
- config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
- config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
- config/sparc/sol2-cn.asm: Remove .file directives.
-
-2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- * resource.c (mark_referenced_resources): Look inside
- UNSPEC_VOLATILEs and ASM_INPUTs.
-
-2008-07-02 Ian Lance Taylor <iant@google.com>
-
- * rtlanal.c (add_reg_note): New function.
- * rtl.h (add_reg_note): Declare.
- * auto-inc-dec.c (attempt_change): Use add_reg_note.
- * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
- * builtins.c (expand_builtin_longjmp): Likewise.
- (expand_builtin_nonlocal_goto): Likewise.
- * calls.c (emit_call_1, expand_call): Likewise.
- * cfgexpand.c (add_reg_br_prob_note): Likewise.
- * cfglayout.c (fixup_reorder_chain): Likewise.
- * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
- (commit_one_edge_insertion): Likewise.
- * combine.c (move_deaths, distribute_notes): Likewise.
- * df-problems.c (df_set_note): Likewise.
- * emit-rtl.c (link_cc0_insns, try_split): Likewise.
- (set_unique_reg_note): Likewise.
- (emit_copy_of_insn_after): Likewise.
- * expr.c (expand_expr_real): Likewise.
- * gcse.c (add_label_notes): Likewise.
- * haifa-sched.c (create_check_block_twin): Likewise.
- * jump.c (mark_jump_label_1): Likewise.
- * loop-doloop.c (add_test, doloop_modify): Likewise.
- * loop-unswitch.c (compare_and_jump_seq): Likewise.
- * lower-subreg.c (move_eh_region_note): Likewise.
- * optabs.c (emit_libcall_block): Likewise.
- * predict.c (predict_insn): Likewise.
- (combine_predictions_for_insn): Likewise.
- * recog.c (peephole2_optimize): Likewise.
- * regmove.c (try_auto_increment): Likewise.
- * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
- * reload.c (find_reloads): Likewise.
- * reload1.c (fixup_eh_region_note): Likewise.
- (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
- * reorg.c (delete_prior_computation): Likewise.
- (delete_computation, dbr_schedule): Likewise.
- * config/pa/pa.c (legitimize_pic_address): Likewise.
- * config/sh/sh.c (sh_reorg): Likewise.
-
-2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36669
- * config/libgcc-glibc.ver: Add %exclude.
- * config/m32r/libgcc-glibc.ver: Likwise.
- * config/s390/libgcc-glibc.ver: Likwise.
- * config/sh/libgcc-glibc.ver: Likwise.
- * config/sparc/libgcc-sparc-glibc.ver: Likwise.
-
- * config/i386/libgcc-glibc.ver: New.
-
- * config/i386/libgcc-x86_64-glibc.ver: Removed.
-
-2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
- from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
- i[34567]86-*-linux*, x86_64-*-linux*. Add
- i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
- i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
- x86_64-*-linux*. Add i386/t-linux to tmake_file for
- i[34567]86-*-linux*, x86_64-*-linux*.
-
- * libgcc-std.ver: Add empty GCC_4.4.0.
-
- * mkmap-symver.awk: Support multiple versions per symbol.
-
- * config/i386/i386.c (ix86_init_builtins): Always define
- __builtin_fabsq and __builtin_copysignq with fallbacks.
- (ix86_expand_builtin): Emit normal call for __builtin_fabsq
- and __builtin_copysignq if SSE2 isn't available.
-
- * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
- (LIBGCC2_TF_CEXT): Likwise.
- (TF_SIZE): Likwise.
-
- * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
-
- * config/i386/sfp-machine.h: Moved to libgcc.
-
- * config/i386/sfp-machine.h: New.
- * config/i386/t-linux: Likwise.
-
- * config/i386/t-darwin: Remove softfp_wrap_start and
- softfp_wrap_end.
- * config/i386/t-darwin64: Likewise.
-
- * config/i386/t-fprules-softfp64: Renamed to ...
- * config/i386/t-fprules-softfp: This.
-
- * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
- and softfp_wrap_end.
-
-2008-07-02 Jason Merrill <jason@redhat.com>
-
- * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
-
- * tree.c (ctor_to_list): New fn.
- * tree.h: Declare it.
- (CONSTRUCTOR_ELT): New macro.
- (CONSTRUCTOR_NELTS): New macro.
-
-2008-07-02 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (struct variable_info): Reorder
- to fill padding on 64bit hosts. Make collapsed_to an int.
- (get_varinfo_fc): Deal with that.
- (new_var_info): Likewise.
- (collapse_rest_of_var): Likewise.
-
-2008-07-02 Joshua Sumali <jsumali@redhat.com>
-
- * doc/install.texi (--enable-java-home): Document.
- (--enable-aot-compile-rpm): Likewise.
- (--with-arch-directory): Likewise.
- (--with-os-directory): Likewise.
- (--with-origin-name): Likewise.
- (--with-arch-suffix): Likewise.
- (--with-jvm-root-dir): Likewise.
- (--with-jvm-jar-dir): Likewise.
- (--with-python-dir): Likewise.
-
-2008-07-02 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
- from decls explicitly. Merge operand checking from tuples.
-
-2008-07-02 Martin Jambor <mjambor@suse.cz>
-
- * tree-switch-conversion.c: Included timevar.h which I forgot before.
-
-2008-07-02 Martin Jambor <mjambor@suse.cz>
-
- * tree-switch-conversion.c: Included timevar.h
- (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
-
- * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
-
-2008-07-02 Martin Jambor <mjambor@suse.cz>
-
- * tree-switch-conversion.c: Corrected various comments and
- whitespace issues
- (build_constructors): Fixed minor formatting mistakes.
-
- * invoke.texi (Optimize Options): Corrected the
- switch-conversion-max-branch-ratio parameter.
-
-2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
-
- * final.c (asm_insn_count): Return zero for an empty asm body.
-
-2008-07-02 Richard Guenther <rguenther@suse.de>
-
- * bitmap.h (bitmap_set_bit): Return bool.
- (bitmap_clear_bit): Likewise.
- * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
- write to the bitmap if it would.
- (bitmap_clear_bit): Likewise.
- * tree-ssa-structalias.c (add_implicit_graph_edge): Use
- bitmap_set_bit return value.
- (add_pred_graph_edge): Likewise.
- (add_graph_edge): Likewise.
- (do_sd_constraint): Likewise.
- (do_ds_constraint): Likewise.
-
-2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
- Fix -Wc++-compat and/or -Wcast-qual warnings.
- * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
- gen_regparm_prefix): Likewise.
- * vmsdbgout.c (write_modbeg, lookup_filename,
- vmsdbgout_source_line, vmsdbgout_init): Likewise.
-
-2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
- defaults.h definition apply.
-
-2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
-
- * function.c (assign_parm_remove_parallels): New.
- (assign_parm_setup_block_p): Do not return true for non-BLKmode
- PARALLELs.
- (assign_parm_setup_block): Do not handle them.
- (assign_parm_setup_reg, assign_parm_setup_stack): Call
- assign_parm_remove_parallels.
-
-2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
-
- * c-typeck.c (convert_for_assignment): Use
- vector_targets_convertible_p.
- * c-common.c (vector_targets_convertible_p): New.
- * c-common.h (vector_targets_convertible_p): New prototype.
- * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
- opaque_p_V2SI_type_node.
-
-2008-07-01 Steve Ellcey <sje@cup.hp.com>
-
- * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
- RFmode constants.
-
-2008-07-01 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
- TFmode constants via two element DImode vector for hosts with
- HOST_BITS_PER_WIDE_INT < 64.
- (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
- also for HOST_BITS_PER_WIDE_INT < 64.
-
-2008-07-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36666
- * tree-ssa-structalias.c (get_constraint_for_1): Declare.
- (get_constraint_exp_from_ssa_var): Split into ...
- (get_constraint_exp_for_temp): ... this ...
- (get_constraint_for_ssa_var): ... and that.
- Return constraint expressions for all touched sub-fields
- if the results address is not taken.
- (process_constraint): Remove assertion that aggregate
- assignments do not happen at this place.
- (get_constraint_for_component_ref): Add address_p argument.
- Return constraint expressions for all touched sub-fields
- if the results address is not taken.
- (do_deref): Use get_constraint_exp_for_temp.
- (get_constraint_for_1): Rename from ...
- (get_constraint_for): ... this. Add the old function as wrapper.
- (do_structure_copy): Use get_constraint_for_1.
-
-2008-07-01 Martin Jambor <mjambor@suse.cz>
-
- * Makefile.in (tree-switch-conversion.o): Add.
- (OBJS-common): Add tree-swtch-conversion.o.
- * passes.c (init_optimization_passes): Add pass_convert_switch.
- * tree-pass.h: (pass_convert_switch): Add.
- * tree-switch-conversion.c: New file.
- * gcc.dg/tree-ssa/cswtch.c: New testcase.
- * common.opt (ftree-cswtch): New option.
- * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
- * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
- * opts.c (decode_options): Set flag_tree_switch_conversion when
- optimization level is >= 2.
- * doc/invoke.texi (Optimize Options): Added description of
- -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
-
-2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * config/darwin-driver.c (darwin_default_min_version): Fix
- -Wc++-compat warnings.
-
-2008-06-30 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
- of operand 0.
-
-2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
-
-2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/34744
- * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
- (df_scan_free_internal): Free data structures not
- allocated in storage pools.
- (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
- (df_refs_add_to_chains): Use df_scan_free_ref_vec and
- df_scan_free_mws_vec.
- * dse.c (dse_step6): Free offset_map_p and offset_map_n
- unconditionally.
-
-2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (contains_aligned_value_p): Return true
- for __float128.
- (ix86_function_arg_boundary): Return its natural boundary
- for __float128.
- (return_in_memory_32): Don't check TDmode.
- (ix86_split_to_parts): Support splitting into 4 parts and
- support TFmode for 32bit target.
- (ix86_split_long_move): Support splitting into 4 parts.
- (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
- for SSE2.
- (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
- (ix86_init_builtins): Here.
- (ix86_scalar_mode_supported_p): Always return true for TFmode.
- (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
- 'q' and 'w', respectively.
-
- * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
- TARGET_64BIT.
- (movtf_internal): Likewise.
- (<code>tf2): Likewise.
- (*absnegtf2_sse): Likewise.
- (copysign<mode>3): Likewise.
- (copysign<mode>3_const): Likewise.
- (copysign<mode>3_var): Likewise.
- (define_split UNSPEC_COPYSIGN): Likewise.
- * config/i386/sse.md (*nandtf3): Likewise.
- (<code>tf3): Likewise.
- (*<code>tf3): Likewise.
-
-2008-06-30 Joey Ye <joey.ye@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * global.c (compute_regsets): Set frame_pointer_needed here.
- * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
-
-2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * doc/install.texi (specific): Expand Windows build notes.
-
-2008-06-30 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36648
- * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
- number of prolog iterations by step. Fix the comment.
-
-2008-06-30 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36671
- * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
- handle calls from ECF_MALLOC functions.
- (handle_pure_call): ECF_MALLOC functions do not return
- call-used memory.
- (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
-
-2008-06-29 Andreas Schwab <schwab@suse.de>
-
- * config/m68k/m68k.c (print_operand): Always print a float
- constant in hex.
- * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
- (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
- Remove macros.
-
- * config/rs6000/x-linux64: Remove never used file.
-
-2008-06-29 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.h (compute_points_to_sets): Adjust
- prototype.
- (struct alias_info): Move ...
- * tree-ssa-alias.c: ... here.
- (update_alias_info): Declare.
- (compute_may_aliases): Call it.
- (update_alias_info): New function.
- * tree-ssa-structalias.c (update_alias_info): Move ...
- * tree-ssa-alias.c (update_alias_info_1): ... here.
- * tree-ssa-structalias.c (process_constraint_1): Remove
- unused from_call argument. Rename to ...
- (process_constraint): ... this. Delete old wrapper.
- (make_constraint_to): Adjust callers.
- (handle_const_call): Likewise.
- (handle_pure_call): Likewise.
- (init_base_vars): Likewise.
- (handle_lhs_call): Likewise. Remove unnecessary constraint.
- (find_func_aliases): We don't need structure copies for
- complex types.
- (make_constraint_from_anything): Remove.
- (create_variable_info_for): For globals make constraints
- from escaped, not from anything.
- (compute_points_to_sets): Do not call update_alias_info.
- (ipa_pta_execute): Use make_constraint_from.
-
-2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
- (bitmap.o-warn, dominance.o-warn): New.
- * configure.ac (cxx_compat_warn): Delete.
- (loose_warn): Add -Wcast-qual and -Wc++-compat.
- * system.h: Remove #pragma diagnostic for -Wcast-qual and
- -Wc++-compat.
- * configure: Regenerate.
-
- * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
- warnings.
-
-2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
- * df-scan.c (df_notes_rescan): Likewise.
- * ggc-page.c (set_page_table_entry): Likewise.
- * intl.c (gcc_gettext_width): Likewise.
- * varasm.c (get_unnamed_section, get_noswitch_section,
- get_section): Likewise.
-
-2008-06-28 Andrew Jenner <andrew@codesourcery.com>
-
- * regrename.c (build_def_use): Don't copy RTX.
-
-2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
- (Type Attributes): Fix nesting of @table and @subsection. Adjust
- punctuation. Use @ref instead of @xref.
- (Function Names): Remove stray @display/@end display.
- (C++ Attributes): Use @ref instead of @xref.
- (Deprecated Features): Fix punctuation around @xref.
- (Backwards Compatibility): Likewise.
- * doc/rtl.texi (Incdec): Remove stray @table/@end table.
-
-2008-06-28 Joseph Myers <joseph@codesourcery.com>
-
- * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
- constants for E500 double.
-
-2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * doc/rtl.texi (const_vector): Document const_fixed as legitimate
- element type of const_vector.
-
-2008-06-28 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
- Remove FLAGS_REG clobber from expander pattern.
- (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
- (anddi3, andsi3, andhi3, andqi3): Ditto.
- (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
- (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
- (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
- (ashlsi3, ashlhi3, ashlqi3): Ditto.
- (ashrsi3, ashrhi3, ashrqi3): Ditto.
- (lshrsi3, lshrhi3, lshrqi3): Ditto.
- (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
- (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
-
-2008-06-28 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (callused_id, var_callused,
- callused_tree): Add.
- (handle_pure_call): New function.
- (find_func_aliases): Call it.
- (find_what_p_points_to): Handle the call-used set.
- (clobber_what_escaped): Likewise.
- (compute_call_used_vars): New function.
- (init_base_vars): Init the call-used variable.
- (do_sd_constraint): Do not propagate the solution from CALLUSED
- but use CALLUSED as a placeholder.
- (solve_graph): Likewise.
- * tree-flow-inline.h (gimple_call_used_vars): New function.
- * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
- (compute_call_used_vars): Declare.
- * tree-ssa-alias.c (set_initial_properties): Call
- compute_call_used_vars.
- (reset_alias_info): Clear call-used variables.
- (add_call_clobber_ops): Assert we are not called for const/pure
- functions. Remove handling of them.
- (add_call_read_ops): Handle pure functions by adding the
- call-used set of variables as VUSEs.
- * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
- (delete_tree_ssa): Free it.
- * tree-dfa.c (remove_referenced_var): Clear the var from the
- call-used bitmap.
-
-2008-06-28 Kai Tietz <kai.tietz@onevision.com>
-
- * tree.c (build_varargs_function_type_list): New.
- (build_function_type_list_1): New.
- (build_function_type_list): Use build_function_type_list_1.
- * tree.h (build_varargs_function_type_list): New.
-
-2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- PR target/34856
- * config/spu/spu.c (spu_builtin_splats): Do not generate
- invalid CONST_VECTOR expressions.
- (spu_expand_vector_init): Likewise.
-
-2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
-
- * optabs.c (libfunc_decls): New variable.
- (libfunc_decl_hash, libfunc_decl_eq): New functions.
- (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
- for the same function twice.
-
-2008-06-27 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
- ix86_expand_binary_operator directly.
- (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
- for operand 2.
- (*ashrti3_1): Ditto.
- (*lshrti3_1): Ditto.
- (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
- (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
- using only one splitter. Conditionaly execute splitter before or
- after peephole2 pass.
- (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
- (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
- Use only one alternative in asm template.
- (x86_64_shld): Compress operand 2 constraints. Use only one alternative
- in asm template.
- (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
- "J" operand constraint for operand 2.
- (*ashldi3_cconly_rex64): Ditto.
- (*ashrdi3_cmp_rex64): Ditto.
- (*ashrdi3_cconly_rex64): Ditto.
- (*lshrdi3_cmp_rex64): Ditto.
- (*lshrdi3_cconly_rex64): Ditto.
- * config/i386/predicates.md (const_1_to_63_operand): New predicate.
- * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
- (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
- gen_x86_shrd_1.
-
-2008-06-27 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.c (omp_is_private): Don't return true if decl is not
- already private on #pragma omp for or #pragma omp parallel for.
-
- PR debug/36617
- * tree-cfg.c (struct move_stmt_d): Replace block field with
- orig_block and new_block fields.
- (move_stmt_r): Only set TREE_BLOCK to p->new_block if
- if it used to be NULL, p->orig_block or if p->orig_block is NULL.
- (move_block_to_fn): Replace vars_map and new_label_map arguments
- with struct move_stmt_d pointer.
- (replace_block_vars_by_duplicates): New function.
- (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
- move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
- all subblocks of ORIG_BLOCK to the new function. Call
- replace_block_vars_by_duplicates.
- * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
- * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
- BLOCK of the new function. Adjust move_sese_region_to_fn caller.
- Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
- (expand_omp): Temporarily set input_location to the location of
- region's controlling stmt.
- (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
- BIND_EXPR, push ctx->block_vars and gimplification vars into
- the BIND_EXPR and its block's BLOCK_VARS instead of directly
- into dest function.
- (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
- there are any BLOCK_VARS.
- (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
- OMP_PARALLEL or OMP_TASK stmt.
- (lower_omp): Save and restore input_location around the lower_omp_1
- call.
-
-2008-06-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36400
- PR tree-optimization/36373
- PR tree-optimization/36344
- * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
- var_nonlocal, nonlocal_tree, nonlocal_id): New globals
- (update_alias_info): Remove call clobbering code.
- (make_constraint_to): New helper function.
- (make_escape_constraint): Likewise.
- (handle_rhs_call): Use it on all pointer containing arguments.
- Also mark the static chain escaped.
- (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
- instead of ANYTHING.
- (make_constraint_from): New helper split out from ...
- (make_constraint_from_anything): ... here.
- (find_func_aliases): Add constraints for escape sites.
- (intra_create_variable_infos): Make constraints from NONLOCAL
- for parameters.
- (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
- as ANYTHING.
- (clobber_what_p_points_to): Remove.
- (clobber_what_escaped): New function.
- (init_base_vars): Init NONLOCAL and ESCAPED.
- (do_sd_constraint): Do not propagate the solution from ESCAPED
- but use ESCAPED as a placeholder.
- (solve_graph): Likewise.
- * tree-flow.h (clobber_what_p_points_to): Remove.
- (clobber_what_escaped): Declare.
- * tree-ssa-alias.c (set_initial_properties): Call it.
- Remove code clobbering escaped pointers.
-
-2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
-
- * function.c (allocate_struct_function): Only allocate a unique
- funcdef_no if the decl is nonzero.
-
-2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips-protos.h (mips_split_const_insns): Declare.
- * config/mips/mips.c (mips_split_const_insns): New function.
- * config/mips/mips.md (move_type): New attribute.
- (mode): Move attribute definition earlier in file. Add "TI" and "TF".
- (dword_mode): New attribute.
- (type): Avoid long line. Map "move_type"s to "type"s,
- choosing "multi" for doubleword moves if appropriate.
- Swap MTC/MFC comments to match their declaration order.
- (extended_mips16): Default to "yes" if "move_type" is "sll0",
- "type" is "branch" or "jal" is "direct".
- (length): Handle "extended_mips16" first. Make the default
- "0" for "ghost" instructions. Set the length from "move_type".
- (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
- of "type", with "sll0" for the register alternative. Remove the
- "extended_mips16" attribute.
- (zero_extendsidi2, *clear_upper32): Use "move_type" instead
- of "type", with "shift_shift" for the register alternative.
- Remove the "length" attribute.
- (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
- (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
- of "type", with "andi" for the register alternative.
- (*zero_extendqihi2): Likewise.
- (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
- of "andi" instead of a "type" of "arith".
- (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
- instead of "type".
- (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
- (mov_<store>r, *mov<mode>_ra): Likewise.
- (extendsidi2): Use "move_type" instead of "type", with "move"
- for the register alternative.
- (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
- of "type", with "signext" for the register alternative.
- (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
- (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
- (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
- (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
- (floatdisf2, *branch_equality<mode>_mips16): Likewise.
- (unnamed branch insn): Likewise.
- (*movdi_gp32_fp64): Fold into...
- (*movdi_32bit): ...here.
- (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
- (*movdf_hardfloat): ...this new pattern.
- (*movdf_softfloat): Remove redundant FPR alternatives.
- (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
- (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
- (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
- the "move" attribute.
- (*movdi_32bit): Use "move_type" instead of "type" and remove the
- "length" attribute. Use "fpload" and "fpstore" instead of "load"
- and "store" for COP loads and stores.
- (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
- (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
- (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
- (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
- (*movtf_mips16, *movv2sf): Likewise.
- (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
- (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
- (mfhc1<mode>): Use "move_type" instead of "move".
- (*low<mode>_mips16): Use "extended_mips16" instead of "length".
- (loadgp_blockage): Remove the "length" attribute.
- (blockage, set_got_version, update_got_version): Likewise.
- (call_internal): Remove the "extended_mips16" attribute.
- (call_value_internal, call_value_multiple_internal): Likewise.
- * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
- instead of "move".
- * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
- the "length" attribute.
-
-2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
- -Wcast-qual warnings.
- * c-pragma.c (dpm_eq, handle_pragma_push_macro,
- handle_pragma_pop_macro): Likewise.
- * collect2.c (resolve_lib_name): Likewise.
- * config/arc/arc.c (arc_init): Likewise.
- * config/arm/arm.c (neon_builtin_compare,
- locate_neon_builtin_icode): Likewise.
- * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
- * config/bfin/bfin.c (bfin_init_machine_status,
- bfin_optimize_loop): Likewise.
- * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
- * config/cris/cris.c (cris_init_expanders): Likewise.
- * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
- * config/darwin.c (machopic_indirection_eq,
- machopic_indirection_name, machopic_output_indirection): Likewise.
- * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
- frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
- frv_optimize_membar): Likewise.
- * config/i386/cygwin.h (mingw_scan,
- GCC_DRIVER_HOST_INITIALIZATION): Likewise.
- * config/i386/cygwin1.c (mingw_scan): Likewise.
- * config/i386/i386.c (machopic_output_stub): Likewise.
- * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
- i386_pe_unique_section): Likewise.
- * config/ia64/ia64.c (ia64_init_machine_status,
- ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
- Likewise.
- * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
- * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
- * config/m68k/m68k.c (m68k_handle_option,
- m68k_sched_md_init_global): Likewise.
- * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
- mcore_unique_section): Likewise.
- * config/mips/mips.c (mips_block_move_straight,
- mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
- Likewise.
- * config/mmix/mmix.c (mmix_init_machine_status,
- mmix_encode_section_info): Likewise.
- * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
- * config/rs6000/rs6000.c (rs6000_init_machine_status,
- print_operand_address, output_toc, redefine_groups,
- rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
- * config/s390/s390.c (s390_init_machine_status): Likewise.
- * config/score/score.c (score_block_move_straight,
- score_block_move_loop_body): Likewise.
- * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
- * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
- * emit-rtl.c (find_auto_inc): Likewise.
- * gcc.c (translate_options, process_command): Likewise.
- * reorg.c (dbr_schedule): Likewise.
- * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
- * xcoffout.c (xcoffout_declare_function): Likewise.
-
-2008-06-27 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
- ipa-pta working again.
-
-2008-06-27 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/t-aix52: Append large data option to LDFLAGS for
- genautomata.
-
-2008-06-27 Edmar Wienskoski <edmar@freescale.com>
-
- * config.gcc (powerpc*-*-*): Add new core e500mc.
- * config/rs6000/e500mc.md: New file.
- * config/rs6000/rs6000.c (processor_costs): Add new costs for
- e500mc.
- (rs6000_override_options): Add e500mc case to
- processor_target_table. Altivec and Spe options not allowed
- with e500mc. Add isel instruction to e500mc by
- default. Initialize rs6000_cost for e500mc.
- (rs6000_issue_rate): Set issue rate for e500mc.
- * config/rs6000/rs6000.h (processor_type): Add
- PROCESSOR_PPCE500MC.
- (ASM_CPU_SPEC): Add e500mc.
- Set TARGET_ISEL to rs6000_isel.
- * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
- (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
- * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
- Include e500mc.md.
- * doc/invoke.texi: Add e500mc to list of cpus.
-
-2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
-
- PR c/34867
- * c-lex.c (lex_charconst): Initialize unsignedp.
-
-2008-06-27 Olivier Hainque <hainque@adacore.com>
-
- * gimplify.c (gimplify_modify_expr_to_memset): Assert our
- documented assumptions.
-
-2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
-
- * dwarf2out.c: Remove trailing white spaces. Break long line
- in comments.
-
-2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
-
- * libfuncs.h (LTI_synchronize): New libfunc_index.
- (synchronize_libfunc): Declare.
- * builtins.c (expand_builtin_synchronize): Consider using
- synchronize_libfunc before falling back on an asm blockage.
- * config/mips/mips.c: Include libfuncs.h
- (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
-
-2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
- parameter. Copy stack_reg to r11 where appropriate.
- (no_global_regs_above): Add gpr parameter.
- (rs6000_stack_info): Only add padding for SPE save area if we
- are saving SPE GPRs and CR.
- (saveres_routine_syms): New variable.
- (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
- Define.
- (rs6000_savres_routine_sym): New function.
- (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
- split out of...
- (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
- rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
- Tweak FPR out-of-line saving.
- (rs6000_make_savres_rtx): New function.
- (rs6000_use_multiple_p): New function.
- (rs6000_savres_strategy): New function.
- (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
- out-of-line if appropriate.
- * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
- if we are optimizing for size.
- (GP_SAVE_INLINE): Define.
- (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
- * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
- * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
- * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
- (*save_fpregs_<mode>): Add use of r11.
- (*restore_gpregs_<mode>): New insn.
- (*return_and_restore_gpregs_<mode>): New insn.
- (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
- use r11.
- * config/rs6000/spe.md (*save_gpregs_spe): New insn.
- (*restore_gpregs_spe): New insn.
- (*return_and_restore_gpregs_spe): New insn.
- * config/rs6000/predicates.md (save_world_operation): Fix check.
-
-2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
-
- * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
- this point, so assert that.
-
-2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
-
- * cfganal.c: Include vec.h and vecprim.h.
- (compute_idf): Import from...
- * tree-into-ssa (compute_idf): ...here.
- * basic-block.h (compute_idf): Export.
-
-2008-06-26 Joseph Myers <joseph@codesourcery.com>
-
- * c-decl.c (merge_decls): Use !current_function_decl to check for
- extern declaration of C99 inline function being at file scope.
-
-2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
-
- * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
-
-2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * alias.c (record_alias_subset, init_alias_analysis): Fix
- -Wc++-compat and/or -Wcast-qual warnings.
- * attribs.c (lookup_attribute_spec): Likewise.
- * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
- copy_bb, connect_traces,
- find_rarely_executed_basic_blocks_and_cr): Likewise.
- * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
- note_btr_set, migrate_btr_defs): Likewise.
- * builtins.c (result_vector, expand_builtin_memcpy,
- expand_builtin_mempcpy_args, expand_builtin_strncpy,
- builtin_memset_read_str, expand_builtin_printf,
- fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
- Likewise.
- * caller-save.c (mark_set_regs): Likewise.
- * calls.c (expand_call, emit_library_call_value_1): Likewise.
- * cgraph.c (cgraph_edge): Likewise.
- * combine.c (likely_spilled_retval_1): Likewise.
- * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
- htab_counts_entry_del, get_coverage_counts): Likewise.
- * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
- new_cselib_val): Likewise.
- * dbgcnt.c (dbg_cnt_process_opt): Likewise.
- * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
- Likewise.
- * df-core.c (df_compact_blocks): Likewise.
- * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
- * df-scan.c (df_grow_reg_info, df_ref_create,
- df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
- df_ref_compare, df_ref_create_structure, df_bb_refs_record,
- df_record_entry_block_defs, df_record_exit_block_uses,
- df_bb_verify): Likewise.
- * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
- DF_REF_EXTRACT_MODE_CONST): New.
- * dominance.c (get_immediate_dominator, get_dominated_by,
- nearest_common_dominator, root_of_dom_tree,
- iterate_fix_dominators, first_dom_son, next_dom_son): Fix
- -Wc++-compat and/or -Wcast-qual warnings.
- * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
- record_store, replace_read, check_mem_read_rtx, scan_insn,
- dse_step1, dse_record_singleton_alias_set): Likewise.
- * dwarf2asm.c (dw2_force_const_mem): Likewise.
-
-2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
- dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
- lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
- assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
- build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
- add_ranges_num, add_ranges_by_labels, file_info_cmp,
- file_name_acquire, output_file_names, add_const_value_attribute,
- premark_used_types_helper, file_table_eq, file_table_hash,
- lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
- dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
- -Wcast-qual warnings.
- * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
- ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
- * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
- gen_reg_rtx, start_sequence, init_emit): Likewise.
- * et-forest.c (et_new_occ, et_new_tree): Likewise.
- * except.c (init_eh_for_function, gen_eh_region,
- remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
- arh_to_landing_pad, arh_to_label, add_action_record,
- add_call_site, switch_to_exception_section): Likewise.
- * expmed.c (synth_mult): Likewise.
- * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
- store_expr): Likewise.
- * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
- Likewise.
- * function.c (assign_stack_temp_for_type,
- allocate_struct_function, match_asm_constraints_1): Likewise.
- * gcov-io.c (gcov_allocate): Likewise.
- * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
- GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
- (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
- record_one_set, insert_expr_in_table, insert_set_in_table,
- dump_hash_table, compute_hash_table_work, alloc_hash_table,
- pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
- reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
- -Wcast-qual warnings.
-
-2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
- -Wcast-qual warnings.
- * gcc.c (process_command): Likewise.
- * genattrtab.c (oballoc): Use XOBNEW.
- (oballocvec): Define.
- (attr_hash_add_rtx, attr_hash_add_string, attr_string,
- get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
- gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
- -Wc++-compat and/or -Wcast-qual warnings.
- * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
- XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
- (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
- gen_presence_absence_set, gen_automaton, gen_regexp_el,
- gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
- gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
- add_excls, process_presence_absence_names,
- process_presence_absence_patterns, add_presence_absence,
- process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
- get_free_state, add_arc, get_free_automata_list_el,
- form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
- transform_3, cache_presence, create_ainsns, create_automata,
- create_state_ainsn_table, dfa_insn_code_enlarge,
- output_trans_func, output_min_issue_delay_func,
- output_dead_lock_func, output_reset_func,
- output_get_cpu_unit_code_func, output_dfa_start_func,
- expand_automata): Likewise.
- * genextract.c (gen_insn): Likewise.
- * gengtype-lex.l: Likewise.
- * gengtype.c (read_input_list, adjust_field_type,
- process_gc_options): Likewise.
- * genoutput.c (note_constraint): Likewise.
- * genpreds.c (mangle, add_constraint): Likewise.
- * genrecog.c (process_define_predicate, new_decision,
- add_to_sequence): Likewise.
- * gensupport.c (record_insn_name): Likewise.
-
-2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * config/i386/driver-i386.c (detect_caches_amd,
- detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
- and/or -Wcast-qual warnings.
- *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
- gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
- gt_pch_save): Likewise.
- * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
- gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
- * global.c (compute_regsets): Likewise.
- * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
- finish_graph_dump_file): Likewise.
- * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
- unlink_bb_notes): Likewise.
- * integrate.c (get_hard_reg_initial_val): Likewise.
- * ipa-prop.c (ipa_push_func_to_list): Likewise.
- * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
- * local-alloc.c (update_equiv_regs): Likewise.
- * loop-invariant.c (check_invariant_table_size,
- hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
- Likewise.
- * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
- altered_reg_used, mark_altered): Likewise.
- * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
- insert_var_expansion_initialization,
- combine_var_copies_in_loop_exit, apply_opt_in_copies,
- release_var_copies): Likewise.
- * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
- analyze_matrix_decl, add_allocation_site, analyze_transpose,
- analyze_accesses_for_phi_node, check_var_notmodified_p,
- check_allocation_function, find_sites_in_func,
- record_all_accesses_in_func, transform_access_sites,
- transform_allocation_sites): Likewise.
- * omp-low.c (new_omp_region, create_omp_child_function_name,
- check_omp_nesting_restrictions, check_combined_parallel,
- lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
- * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
- gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
- gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
- Likewise.
- * opts-common.c (prune_options): Likewise.
- * opts.c (add_input_filename, print_filtered_help,
- get_option_state): Likewise.
- * params.c (add_params): Likewise.
- * passes.c (set_pass_for_id, next_pass_1,
- do_per_function_toporder, pass_fini_dump_file): Likewise.
- * postreload.c (reload_cse_simplify_operands): Likewise.
- * predict.c (tree_predicted_by_p, tree_predict_edge,
- clear_bb_predictions, combine_predictions_for_bb): Likewise.
-
-2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
- warnings.
- * recog.c (check_asm_operands, validate_change_1): Likewise.
- * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
- subst_asm_stack_regs): Likewise.
- * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
- cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
- * regmove.c (reg_is_remote_constant_p): Likewise.
- * regrename.c (regrename_optimize, scan_rtx_reg,
- kill_clobbered_value, kill_set_value, kill_autoinc_value):
- Likewise.
- * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
- regstat_compute_calls_crossed): Likewise.
- * reload1.c (init_reload, new_insn_chain,
- has_nonexceptional_receiver, reload, copy_reloads,
- calculate_needs_all_insns, init_elim_table): Likewise.
- * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
- * rtl.c (shallow_copy_rtx_stat): Likewise.
- * rtlanal.c (parms_set): Likewise.
- * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
- sbitmap_resize, sbitmap_vector_alloc): Likewise.
- * sched-ebb.c (earliest_block_with_similiar_load,
- add_deps_for_risky_insns): Likewise.
- * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
- schedule_region): Likewise.
- * see.c (eq_descriptor_pre_extension,
- hash_descriptor_pre_extension, hash_del_pre_extension,
- eq_descriptor_properties, hash_descriptor_properties,
- hash_del_properties, see_seek_pre_extension_expr,
- see_initialize_data_structures, see_print_register_properties,
- see_print_pre_extension_expr, see_delete_merged_def_extension,
- see_delete_unmerged_def_extension, see_emit_use_extension,
- see_pre_delete_extension, see_map_extension, see_commit_changes,
- see_analyze_merged_def_local_prop,
- see_analyze_merged_def_local_prop,
- see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
- see_set_prop_merged_def, see_set_prop_unmerged_def,
- see_set_prop_unmerged_use, see_print_one_extension,
- see_merge_one_use_extension, see_merge_one_def_extension,
- see_store_reference_and_extension, see_update_uses_relevancy,
- see_update_defs_relevancy): Likewise.
- * statistics.c (hash_statistics_hash, hash_statistics_eq,
- hash_statistics_free, curr_statistics_hash): Likewise.
- * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
- expand_asm_operands, expand_return, case_bit_test_cmp,
- expand_case): Likewise.
- * stor-layout.c (start_record_layout): Likewise.
- * stringpool.c (ggc_alloc_string, gt_pch_n_S,
- gt_pch_save_stringpool): Likewise.
- * tree-data-ref.c (hash_stmt_vertex_info,
- have_similar_memory_accesses_1, ref_base_address_1): Likewise.
- * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
-
-2008-06-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36627
- * config/i386/i386.md : Change constraints of HImode and QImode
- immediate operands from "i" to "n". Change SImode "ni" constraint to
- "i" and SImode "rmi" constraint to "g". Remove all constraints
- from const0_operand and const1_operand predicated operands.
- (i): Change QImode and HImode attribute from "i" to "n".
- (*subqi_2): Change HImode operands to QImode.
- (*subqi_3): Ditto.
-
-2008-06-25 Olivier Hainque <hainque@adacore.com>
-
- * Makefile.in (GTFILES_H): Use | instead of ; as separator in
- sed substitutions.
-
-2008-06-25 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (fieldoff_compare): Make sure to
- not overflow the result type.
-
-2008-06-25 Richard Guenther <rguenther@suse.de>
-
- * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
- (vn_lookup): Likewise.
-
-2008-06-25 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35518
- * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
- * tree-sra.c (instantiate_element): Use fold_build3 to build
- BIT_FIELD_REFs.
- (try_instantiate_multiple_fields): Likewise.
-
-2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.md: Change all string instruction's clobber to
- be early clobbers.
-
-2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
- use_backchain_to_restore_sp to true
- if the offset of the link register save area would go over the 32k - 1
- offset limit of the load
- instructions.
-
-2008-06-25 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
- anchor for the type-punning blurb. Cross-reference "Structures
- unions enumerations and bit-fields implementation". Provide a
- cast-through-pointer example. Make final sentence self-contained.
- * doc/implement-c.texi (Structures unions enumerations and
- bit-fields implementation): Cross-reference the type-punning blurb
- in the -fstrict-aliasing documentation.
-
-2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36594
- * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
- the memory instead of the memory itself for the save area.
-
-2008-06-24 Olivier Hainque <hainque@adacore.com>
- Nicolas Roche <roche@adacore.com>
-
- * gengtype.c (srcdir_len): size_t instead of int.
- (get_file_realbasename): New function. For F a filename, the real
- basename of F, with all the path components stripped.
- (get_file_srcdir_relative_path): New function. For F a filename, the
- relative path to F from $(srcdir).
- (get_file_basename): Rewrite using get_file_srcdir_relative_path and
- get_file_realbasename. Adjust the head comment.
- (get_prefix_langdir_index): New function. For F a filename, return the
- lang_dir_names[] relative index of the language directory that is
- a prefix in F.
- (get_file_langdir): For F a filename, return the name of the language
- directory where F is located.
- (get_file_gtfilename): New function. The gt- output file name for an
- input filename F.
- (get_output_file_with_visibility): Replace in-line computations with
- uses of get_file_gtfilename and get_prefix_langdir_index.
- * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
-
-2008-06-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36504
- * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
- references without base address.
-
-2008-06-23 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/36584
- * calls.c (expand_call): Increase alignment for recursive functions.
-
-2008-06-23 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
- (TARGET_FUNCTION_VALUE): New define.
- * config/avr/avr-protos.h (avr_function_value): Remove declaration.
- * config/avr/avr.h (FUNCTION_VALUE): Remove.
-
-2008-06-23 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
- (fmod<mode>3): Ditto.
- (remainderxf3): Ditto.
- (remainder<mode>3): Ditto.
-
-2008-06-23 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36533
- * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
- REG is a hard register.
-
- PR tree-optimization/36508
- * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
- 499, don't check it at all in release compilers.
-
-2008-06-23 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
- together with SSE_TARGET_MATH to disable insn pattern.
- (*fop_<MODEF:mode>_2_i387): Ditto.
- (*fop_<MODEF:mode>_3_i387): Ditto.
-
-2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
-
-2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
-
- PR middle-end/34906
- * gimplify.c (gimplify_asm_expr): Check the return code of
- parse_output_constraint call, set function return and is_inout
- value if it failed.
-
-2008-06-22 Ian Lance Taylor <iant@google.com>
-
- * c-lex.c (narrowest_unsigned_type): Change itk to int.
- (narrowest_signed_type): Likewise.
- * c-typeck.c (c_common_type): Change local variable mclass to enum
- mode_class, twice.
- (parser_build_binary_op): Compare the TREE_CODE_CLASS with
- tcc_comparison, not the tree code itself.
- * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
- (c_expand_expr): Cast modifier to enum expand_modifier.
- * c-common.h (C_RID_CODE): Add casts.
- (C_SET_RID_CODE): Define.
- * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
- (c_lex_one_token): Add cast to avoid warning.
- (c_parser_objc_type_name): Rename local typename to type_name.
- (check_no_duplicate_clause): Change code parameter to enum
- omp_clause_code.
- (c_parser_omp_var_list_parens): Change kind parameter to enum
- omp_clause_code.
- (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
- c_parser_omp_list_var_parens.
- (c_parser_omp_threadprivate): Likewise.
- * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
- * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
- * c-format.c (NO_FMT): Define.
- (printf_length_specs): Use NO_FMT.
- (asm_fprintf_length_specs): Likewise.
- (gcc_diag_length_specs): Likewise.
- (scanf_length_specs): Likewise.
- (strfmon_length_specs): Likewise.
- (gcc_gfc_length_specs): Likewise.
- (printf_flag_specs): Change 0 to STD_C89.
- (asm_fprintf_flag_specs): Likewise.
- (gcc_diag_flag_specs): Likewise.
- (gcc_cxxdiag_flag_specs): Likewise.
- (scanf_flag_specs): Likewise.
- (strftime_flag_specs): Likewise.
- (strfmon_flag_specs): Likewise.
- (print_char_table): Likewise.
- (asm_fprintf_char_table): Likewise.
- (gcc_diag_char_table): Likewise.
- (gcc_tdiag_char_table): Likewise.
- (gcc_cdiag_char_table): Likewise.
- (gcc_cxxdiag_char_table): Likewise.
- (gcc_gfc_char_table): Likewise.
- (scan_char_table): Likewise.
- (time_char_table): Likewis.
- (monetary_char_table): Likewise.
- * c-format.h (BADLEN): Likewise.
-
-2008-06-21 Ian Lance Taylor <iant@google.com>
-
- * tree.h (enum tree_code): Include all-tree.def, not tree.def.
- Define END_OF_BASE_TREE_CODES around inclusion.
- * tree.c (tree_code_type): New global array.
- (tree_code_length, tree_code_name): Likewise.
- * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
- $(lang_tree_files).
- (all-tree.def, s-alltree): New targets.
- (gencheck.h, s-gencheck): Remove.
- (tree.o): Depend upon all-tree.def.
- (build/gencheck.o): Remove gencheck.h dependency.
- (mostlyclean): Don't remove gencheck.h.
- * c-common.h (enum c_tree_code): Remove.
- * c-lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * gencheck.c (tree_codes): Include all-tree.def, rather than
- tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
- after it is used.
- * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
- than tree.def.
- * cp/cp-tree.h (enum cplus_tree_code): Remove.
- (operator_name_info): Size to MAX_TREE_CODES.
- (assignment_operator_name_info): Likewise.
- * cp/cp-lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
- (assignment_operator_name_info): Likewise.
- * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
- MAX_TREE_CODES.
- * cp/mangle.c (write_expression): Likewise.
- * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
- * fortran/f95-lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * java/java-tree.h (enum java_tree_code): Remove.
- * java/lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
- * objc/objc-act.h (enum objc_tree_code): Remove.
- * objc/objc-lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * objcp/objcp-lang.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
- * ada/ada-tree.h (enum gnat_tree_code): Remove.
- * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
- * ada/misc.c (tree_code_type): Remove.
- (tree_code_length, tree_code_name): Remove.
-
-2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
- the grand_bitmap_obstack.
-
-2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ggc.h (GGC_RESIZEVAR): New, reorder macros.
- * tracer.c (tail_duplicate): Fix for -Wc++-compat.
- * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
- * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
- move_stmt_r, new_label_mapper): Likewise.
- * tree-complex.c (cvc_lookup): Likewise.
- * tree-dfa.c (create_function_ann): Likewise.
- * tree-dump.c (dump_register): Likewise.
- * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
- find_phi_replacement_condition): Likewise.
- * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
- tree_function_versioning): Likewise.
- * tree-into-ssa.c (cmp_dfsnum): Likewise.
- * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
- * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
- get_nonlocal_debug_decl, convert_nonlocal_reference,
- convert_nonlocal_omp_clauses, get_local_debug_decl,
- convert_local_reference, convert_local_omp_clauses,
- convert_nl_goto_reference, convert_nl_goto_receiver,
- convert_tramp_reference, convert_call_expr): Likewise.
- * tree-outof-ssa.c (contains_tree_r): Likewise.
- * tree-parloops.c (reduction_phi, initialize_reductions,
- eliminate_local_variables_1, add_field_for_reduction,
- add_field_for_name, create_phi_for_local_result,
- create_call_for_reduction_1, create_loads_for_reductions,
- create_stores_for_reduction, create_loads_and_stores_for_name):
- Likewise.
- * tree-phinodes.c (allocate_phi_node): Likewise.
- * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
- * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
- * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
- * tree-ssa-coalesce.c (compare_pairs): Likewise.
- * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
- memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
- record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
- * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
- * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
- vn_nary_op_insert): Likewise.
- * tree-ssa.c (redirect_edge_var_map_add,
- redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
- * tree-vectorizer.c (vectorize_loops): Likewise.
- * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
- build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
- tree_cons_stat, build1_stat, build_variant_type_copy,
- decl_init_priority_lookup, decl_fini_priority_lookup,
- decl_priority_info, decl_restrict_base_lookup,
- decl_restrict_base_insert, decl_debug_expr_lookup,
- decl_debug_expr_insert, decl_value_expr_lookup,
- decl_value_expr_insert, type_hash_eq, type_hash_lookup,
- type_hash_add, get_file_function_name, tree_check_failed,
- tree_not_check_failed, tree_range_check_failed,
- omp_clause_range_check_failed, build_omp_clause,
- build_vl_exp_stat): Likewise.
- * value-prof.c (gimple_histogram_value,
- gimple_duplicate_stmt_histograms): Likewise.
- * var-tracking.c (attrs_list_insert, attrs_list_copy,
- unshare_variable, variable_union_info_cmp_pos, variable_union,
- dataflow_set_different_1, dataflow_set_different_2,
- vt_find_locations, variable_was_changed, set_variable_part,
- emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
- * varasm.c (prefix_name, emutls_decl, section_entry_eq,
- section_entry_hash, object_block_entry_eq,
- object_block_entry_hash, create_block_symbol,
- initialize_cold_section_name, default_function_rodata_section,
- strip_reg_name, set_user_assembler_name, const_desc_eq,
- build_constant_desc, output_constant_def, lookup_constant_def,
- const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
- create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
- default_internal_label): Likewise.
- * varray.c (varray_init, varray_grow): Likewise.
- * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
-
-2008-06-20 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
- operators for "test" insn. Macroize insn using SWI mode macro.
- (*jcc_fused_2): Ditto.
- (*jcc_fused_3): Macroize insn using SWI mode macro.
- (*jcc_fused_4): Ditto.
-
-2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * tree-ssa-pre.c: Fix typo in comment.
- (init_antic, fini_antic): Add explicit funtions for
- initializing and deinitializing ANTIC and AVAIL sets.
- (create_expression_by_pieces): Fix typo in comment.
- Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
- (execute_pre): Eventually dump details about ANTIC_IN.
-
-2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * collect2.c (main, add_to_list): Fix for -Wc++-compat.
- * gcc.c (translate_options, init_spec, store_arg, read_specs,
- add_to_obstack, file_at_path, find_a_file, execute,
- add_preprocessor_option, add_assembler_option, add_linker_option,
- process_command, insert_wrapper, do_option_spec, do_self_spec,
- spec_path, do_spec_1, is_directory, main, used_arg,
- getenv_spec_function): Likewise.
- * tlink.c (symbol_hash_lookup, file_hash_lookup,
- demangled_hash_lookup, symbol_push, file_push, frob_extension):
- Likewise.
-
-2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/rtl.texi: Updated subreg section.
-
-2008-06-19 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36523
- * cgraphunit.c (cgraph_process_new_functions): Don't clear
- node->needed and node->reachable.
- * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
- * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
- (expand_task_call): Don't call expand_task_copyfn.
- (expand_task_copyfn): Renamed to...
- (finalize_task_copyfn): ... this.
-
-2008-06-19 Jan Hubicka <jh@suse.cz>
-
- * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
- clobbering framepointer.
-
-2008-06-19 Jan Hubicka <jh@suse.cz>
-
- * tree-optimize.c (execute_early_local_optimizations): Set
- cgraph_state only at first invocation.
-
-2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * system.h (-Wc++-compat): Activate as a warning, no an error.
-
-2008-06-19 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
- instead of "#" in insn asm template.
- (*jcc_fused_2): Ditto.
-
-2008-06-19 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h (ix86_tune_indices)
- [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
- (TARGET_FUSE_CMP_AND_BRANCH): New define.
- * config/i386/i386.md (*jcc_fused_1): New insn pattern
- (*jcc_fused_2): Ditto.
- * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
- X86_TUNE_FUSE_CMP_AND_BRANCH targets.
- (print operand): Handle 'E' and 'e' code.
-
-2008-06-19 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_mcu_t): Add attiny13a.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
- * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
-
-2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
- node->decl.
- (cgraph_expand_function): Use local copy of decl.
- (cgraph_expand_all_functions): Remove redundant initialization of
- order_pos.
- (cgraph_optimize): Reword internal_error message.
-
-2008-06-19 Chung-Lin Tang <ctang@marvell.com>
-
- * arm-protos.h (arm_return_in_memory): Remove public
- arm_return_in_memory() prototype.
- * arm.c (arm_return_in_memory): Add static prototype, add target
- hook macro, change definition and comments.
- * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
-
-2008-06-19 Ben Elliston <bje@au.ibm.com>
-
- * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
- real.c: Remove references to IEEE 754R.
- * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
- * doc/libgcc.texi (Decimal float library routines): Likewise.
-
-2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * targhooks.h (struct gcc_target): New member unwind_word_mode.
- (default_unwind_word_mode): Add prototype.
- * targhooks.c (default_unwind_word_mode): New function.
- (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
- instead of word_mode.
- * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
- (TARGET_INITIALIZER): Use it.
-
- * c-common.c (handle_mode_attribute): Support "unwind_word"
- mode attribute.
- * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
-
- * except.c (init_eh): Use targetm.unwind_word_mode () instead of
- word_mode to access SjLj_Function_Context member "data".
- (sjlj_emit_dispatch_table): Likewise. Also, perform type
- conversion from targetm.eh_return_filter_mode () to
- targetm.unwind_word_mode () if they differ.
-
- * builtin-types.def (BT_UNWINDWORD): New primitive type.
- (BT_FN_UNWINDWORD_PTR): New function type.
- (BT_FN_WORD_PTR): Remove.
- * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
- * except.c (expand_builtin_extend_pointer): Convert pointer to
- targetm.unwind_word_mode () instead of word_mode.
-
- * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
- * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
- (spu_unwind_word_mode): New function.
- (TARGET_EH_RETURN_FILTER_MODE): Do not define.
- (TARGET_UNWIND_WORD_MODE): Define.
- * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
-
-2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * config/spu/spu.c (reg_align): Remove.
- (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
- (spu_split_load): Use regno_aligned_for_load instead of reg_align.
- (spu_split_store): Likewise.
-
-2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * gcc/tree-vn.c: Fix typo in comment.
-
-2008-06-18 Jan Hubicka <jh@suse.cz>
-
- * cgraphunit.c (cgraph_optimize): Output debug info when doing
- toplevel reorder too.
-
-2008-06-18 Jan Hubicka <jh@suse.cz>
-
- * c-opts.c (c_common_post_options): PCH is not compatible with
- no-unit-at-a-time.
- * opts.c (handle_options): Enable unit-at-a-time at O0 along with
- -fno-toplevel-reorder by default now.
-
-2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR documentation/30739
- * doc/install.texi (Prerequisites): Document dependency on awk.
-
-2008-06-18 Uros Bizjak <ubizjak@gmail.com>
- Ian Lance Taylor <iant@google.com>
-
- PR rtl-optimization/35604
- * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
- only want to change jump destinations, not eventual label comparisons.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * cgraphunit.c (cgraph_expand_pending_functions): Give up at
- syntax errors.
- (cgraph_analyze_function): Likewise.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * cgraph.h (cgraph_mark_if_needed): New function.
- * cgraphunit.c (cgraph_mark_if_needed): New function.
- * c-decl.c (duplicate_decl): Use it.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_add_new_function): When in expansion state, do
- lowering.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
-
-2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
- Kazu Hirata <kazu@codesourcery.com>
- Maxim Kuvyrkov <maxim@codesourcery.com
-
- * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
- * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
- * config/mips/linux.h (host_detect_local_cpu): Declare, add to
- EXTRA_SPEC_FUNCTIONS.
- (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
- (DRIVER_SELF_SPECS): Adjust.
- * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
- * config/mips/st.h, config/mips/t-st: New.
- * config/mips/driver-native.c, config/mips/x-native: New.
- * doc/invoke.texi (MIPS): Document 'native' value for -march and
- -mtune options.
-
-2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
- from it.
- (ISA_HAS_FP_CONDMOVE): New macro.
- (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
- (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
- (ISA_HAS_NMADD3_NMSUB3): New macro.
- * config/mips/mips.c (mips_rtx_costs): Update.
- * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
- compiling for ST Loongson 2E/2F.
- (madd<mode>): Rename to madd4<mode>. Update.
- (madd3<mode>): New pattern.
- (msub<mode>): Rename to msub4<mode>. Update.
- (msub3<mode>): New pattern.
- (nmadd<mode>): Rename to nmadd4<mode>. Update.
- (nmadd3<mode>): New pattern.
- (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
- (nmadd3<mode>_fastmath): New pattern.
- (nmsub<mode>): Rename to nmsub4<mode>. Update.
- (nmsub3<mode>): New pattern.
- (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
- (nmsub3<mode>_fastmath): New pattern.
- (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
-
-2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
-
- * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
- (DF_REF_INSN_INFO): New.
- (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
- (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
- with a NULL DF_REF_INSN_INFO.
- (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
- DF_INSN_SET.
- (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
- DF_INSN_INFO_EQ_USES): New.
- (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
- DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
- DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
- * df-core.c: Update comment for above changes.
- (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
- DF_INSN_UID_* macros.
- (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
- * df-scan.c (df_ref_record): Take a df_insn_info instead of an
- insn rtx. Update all callers.
- (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
- df_ref_create_structure, df_insn_refs_collect): Likewise.
- (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
- * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
- (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
- macros to access the insn refs.
- (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
- * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
- (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
- for accessing the refs.
- (try_fwprop_subst): Likewise.
- * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
- * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
- for accessing the refs.
- * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
- (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
- to look at the insn refs.
- (record_uses): Likewise.
- * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
- function anymore.
- (mark_artificial_uses): Don't mark_insn for artificial refs.
- (mark_reg_rependencies): Likewise.
-
- * doc/rtl.texi: Remove documentation of ADDRESSOF.
-
-2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure: Regenerate.
-
-2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
-
- * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
- * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
-
-2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
-
- * config/avr/avr.c (avr_mcu_t): Add attiny167.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
- * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
-
-2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
-
- * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
- * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
-
-2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * tree-ssa-sccvn.c: Fix format of comments.
-
-2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * cgraph.c: Remove unneeded forward declarations of eq_node()
- and hash_node().
-
-2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
-
- * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
- REG_RETVAL notes.
- (see_update_relevancy): Likewise.
- * fwprop.c (try_fwprop_subst): Likewise.
- * rtlanal.c (noop_move_p): Likewise.
- * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
- notes to non-existing libcall blocks.
- * cse.c (cse_insn): Change prototype. Don't update libcall notes.
- Remove orig_set.
- (cse_extended_basic_block): Don't track libcall and no-conflict notes.
- (dead_libcall_p): Remove.
- (delete_trivially_dead_insns): Don't use it.
- * web.c (union_defs): Remove comment about keeping nops.
- * gcse.c (hash_scan_insn): Don't take libcall pointers.
- (compute_hash_table_work): Don't track libcall notes.
- (do_local_cprop): Don't take libcall pointers. Don't update
- libcall notes.
- (adjust_libcall_notes): Deleted.
- (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
- ever have existed in the first place).
- (replace_store_insn): Don't try to remove libcall notes.
- * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
- (resolve_reg_notes): Don't call them.
- (resolve_simple_move): Likewise.
- (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
- Don't remove REG_RETVAL notes.
- * emit-rtl.c (try_split): Don't update libcall notes.
- (emit_copy_of_insn_after): Dito.
- * cselib.c (cselib_current_insn_in_libcall): Remove.
- (cselib_process_insn): Don't set/clear it.
- (new_elt_loc_list): Don't record it.
- (cselib_init): Don't initialize it.
- * cselib.c (struct elt_loc_list): Remove in_libcall field.
- * loop-invariant.c (find_invariant_insn): Don't look for libcall
- notes.
- * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
- (sched_analyze): Don't set up deps->libcall_block_tail_insn.
- (init_deps): Don't initialize it.
- * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
- * combine.c (delete_noop_moves): Don't update libcall notes.
- (can_combine_p): Remove now pointless #if 0 block.
- (try_combine): Remove another obsolete #if 0 block.
- (distribute_notes): Don't distribute libcall notes.
- * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
- * dce.c (libcall_dead_p): Remove.
- (delete_unmarked_insns): Don't handle libcall blocks.
- (preserve_libcall_for_dce): Remove.
- (prescan_insns_for_dce): Don't special-case libcall block insns.
- * reload1 (reload): Don't handle libcall notes.
- * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
- documentation.
-
-2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
-
- * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
- * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
-
-2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
-
- * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
- * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
- * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
-
-2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
-
-2008-06-16 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36493
- * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
- the arguments list. Use VECTYPE to create vector pointer.
- (vectorizable_store): Fail if accesses through a pointer to vectype
- do not alias the original memory reference operands.
- Call vect_create_data_ref_ptr without the removed argument.
- (vectorizable_load): Likewise.
- (vect_setup_realignment): Call vect_create_data_ref_ptr without the
- removed argument.
-
-2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/36336
- * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
- reg_equiv_constant.
-
-2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/mips/loongson2ef.md: New file.
- * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
- (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
- (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
- (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
- (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
- and loongson_2f.
- (loongson2ef.md): New include.
- * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
- (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
- (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
- (loongson_gt_<mode>, loongson_extract_halfword)
- (loongson_insert_halfword_0, loongson_insert_halfword_2)
- (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
- (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
- (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
- (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
- (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
- (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
- (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
- (vec_interleave_low<mode>): Define type attribute.
- * config/mips/mips.c (mips_ls2): New static variable.
- (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
- (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
- (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
- Implement target scheduling hooks.
- (mips_multipass_dfa_lookahead): Update to handle tuning for
- Loongson 2E/2F.
- (mips_sched_init): Initialize data for Loongson scheduling.
- (mips_ls2_variable_issue): New static function.
- (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
- Add sanity check.
- (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
- (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
- * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
- (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
- Handle ST Loongson 2E/2F cores.
- (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
-
-2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * omp-low.c (extract_omp_for_data): Fix comment typo.
- * c.opt: Fix typo.
-
-2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/sourcebuild.texi (Config Fragments): Remove obsolete
- FIXME note about gcc/config.guess.
- * doc/options.texi (Option file format): Remove non-ASCII bytes.
- * doc/cpp.texi: Expand TABs, drop indentation outside examples.
- * doc/cppopts.texi: Likewise.
- * doc/extend.texi: Likewise.
- * doc/gcc.texi: Likewise.
- * doc/gccint.texi: Likewise.
- * doc/gcov.texi: Likewise.
- * doc/gty.texi: Likewise.
- * doc/hostconfig.texi: Likewise.
- * doc/install.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * doc/loop.texi: Likewise.
- * doc/makefile.texi: Likewise.
- * doc/md.texi: Likewise.
- * doc/passes.texi: Likewise.
- * doc/tm.texi: Likewise.
- * doc/tree-ssa.texi: Likewise.
- * doc/trouble.texi: Likewise.
-
-2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
- Maxim Kuvyrkov <maxim@codesourcery.com>
- Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
- * config/mips/mips-protos.h (mips_expand_vector_init): New.
- * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
- builtins.
- * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
- (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
- (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
- V8QImode cases.
- (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
- (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
- (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
- (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
- (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
- (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
- (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
- (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
- (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
- (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
- (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
- (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
- (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
- (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
- (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
- (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
- (mips_builtins): Add Loongson builtins.
- (mips_loongson_2ef_bdesc): New.
- (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
- (mips_builtin_vector_type): Handle unsigned versions of vector modes.
- (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
- (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
- New.
- (mips_expand_vector_init): New.
- * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
- (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
- if appropriate.
- * config/mips/mips.md: Add unspec numbers for Loongson
- builtins. Include loongson.md.
- (MOVE64): Include Loongson vector modes.
- (SPLITF): Include Loongson vector modes.
- (HALFMODE): Handle Loongson vector modes.
- * config/mips/loongson.md: New.
- * config/mips/loongson.h: New.
- * config.gcc: Add loongson.h header for mips*-*-* targets.
- * doc/extend.texi (MIPS Loongson Built-in Functions): New.
-
-2008-06-14 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
- h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
- i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
- iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
- m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
- m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
- mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
- mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
- mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
- mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
- powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
- sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
- sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
- sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
- sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
- v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
- Remove use_fixproto=yes.
- (ia64*-*-hpux*): Remove comment about using fixproto.
- (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
-
-2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure.ac: Update gthr-default.h lazily, to avoid unneeded
- library rebuilds.
- * configure: Regenerate.
-
-2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/36520
- * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
- before evaluating it.
-
-2008-06-13 Jakub Jelinek <jakub@redhat.com>
-
- PR c/36507
- * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
- nested inline functions.
- (start_decl, start_function): Don't invert DECL_EXTERNAL
- for nested inline functions.
-
-2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
- splits that must be made for correctness.
-
-2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
- (AVAIL_NON_MIPS16): Likewise.
- (mips_builtin_description): Replace target_flags with a predicate.
- (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
- (dspr2_32): New availability predicates.
- (MIPS_BUILTIN): New macro.
- (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
- (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
- (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
- Replace the TARGET_FLAGS parameters with AVAIL parameters.
- (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
- (mips_dsp_32only_bdesc): Merge into...
- (mips_builtins): ...this new array.
- (mips_bdesc_map, mips_bdesc_arrays): Delete.
- (mips_init_builtins): Update after above changes.
- (mips_expand_builtin_1): Merge into...
- (mips_expand_builtin): ...here and update after above changes.
-
-2008-06-12 Paul Brook <paul@codesourcery.com>
-
- * longlong.h (__arm__): Define count_leading_zeros.
- * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
- (clzsi2, clzdi2): New functions.
- * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
- * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
- * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
- * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
- * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
- * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
- * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
- * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
- * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
- * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
-
-2008-06-12 Kazu Hirata <kazu@codesourcery.com>
-
- * config/m68k/m68k.c (m68k_tune_flags): New.
- (override_options): Compute m68k_tune_flags.
- (MULL_COST, MULW_COST): Update for various variants of CFV2.
- * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
-
-2008-06-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36506
- * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
-
-2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
- TREE_THIS_VOLATILE on INDIRECT_REF nodes.
-
-2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
- (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
-
-2008-06-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36506
- * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
- reductions.
-
-2008-06-12 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36345
- * tree-flow.h (struct ptr_info_def): Align escape_mask,
- add memory_tag_needed flag.
- (may_alias_p): Declare.
- * tree-ssa-alias.c (may_alias_p): Export.
- (set_initial_properties): Use memory_tag_needed flag.
- (update_reference_counts): Likewise.
- (reset_alias_info): Reset memory_tag_needed flag.
- (create_name_tags): Check memory_tag_needed flag.
- (dump_points_to_info_for): Dump it.
- * tree-ssa-structalias.c (struct variable_info): Remove
- directly_dereferenced flag.
- (new_var_info): Do not initialize it.
- (process_constraint_1): Do not set it.
- (update_alias_info): Set is_dereferenced flag.
- (set_uids_in_ptset): Use may_alias_p.
- (set_used_smts): Check memory_tag_needed flag.
- (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
- * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
- memory_tag_needed flag.
- * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
- from broken design.
-
-2008-06-12 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (ix86_compute_frame_layout): Disable
- red zone for w64 abi.
- (ix86_expand_prologue): Likewise.
- (ix86_force_to_memory): Likewise.
- (ix86_free_from_memory): Likewise.
-
-2008-06-11 Edmar Wienskoski <edmar@freescale.com>
-
- PR target/36425
- * config/rs6000/rs6000.c (rs6000_override_options): Set
- rs6000_isel conditionally to the absence of comand line override.
- * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
- Remove duplicate rs6000_isel setting.
- * config/rs6000/eabispe.h: Ditto.
-
-2008-06-11 Richard Guenther <rguenther@suse.de>
-
- * alias.c (get_alias_set): Use the element alias-set for arrays.
- (record_component_aliases): For arrays and vectors do nothing.
- * c-common.c (strict_aliasing_warning): Handle the cases
- of alias set zero explicitly.
- * Makefile.in (dfp.o-warn): Add -Wno-error.
-
-2008-06-11 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
- tune_32 tune_64.
- (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
- tune_32 tune_64 to supported_defaults. Allow values not
- supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
- x86_64. Do not override cpu_32 or cpu_64 values from target name.
- (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
- with_cpu_64 to generic for 64-bit-supporting configurations, not
- with_cpu. Remove FIXMEs.
- * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
- --with-arch-64, --with-tune-32, --with-tune-64): Document.
- * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
- (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
- arch_32 and arch_64.
-
-2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
- Use DECL_SIZE_UNIT to retrieve the size of the field.
-
-2008-06-11 Joseph Myers <joseph@codesourcery.com>
-
- * config/arm/arm.c (arm_init_neon_builtins): Move initialization
- with function calls after declarations. Lay out
- neon_float_type_node before further use.
-
-2008-06-11 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (may_point_to_global_var): Declare.
- * tree-ssa-alias.c (may_point_to_global_var): New function.
- * tree-ssa-sink.c (is_hidden_global_store): Use it.
-
-2008-06-10 Kazu Hirata <kazu@codesourcery.com>
-
- * configure.ac: Teach that fido supports .debug_line.
- * configure: Regenerate.
-
-2008-06-10 Tom Tromey <tromey@redhat.com>
-
- * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
- debug hook.
-
-2008-06-10 Joseph Myers <joseph@codesourcery.com>
-
- * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
- (encode_decimal64, decode_decimal64, encode_decimal128,
- decode_decimal128): Reverse order of 32-bit parts of value if host
- and target endianness differ.
-
-2008-06-10 Vinodha Ramasamy <vinodha@google.com>
-
- * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
- Avoid division by 0.
- (tree_mod_pow2_value_transform): Likewise.
- (tree_ic_transform): Likewise.
- (tree_stringops_transform): Likewise.
- (tree_mod_subtract_transform): Likewise.
- * tree-inline-c (copy_bb): Corrected int type to gcov_type.
- (copy_edges_for_bb): Likewise.
- (initialize_cfun): Likewise.
-
-2008-06-10 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
- nonmemory_operand. Add "N" operand constraint.
- (*btsi): Ditto.
- (*jcc_btdi_mask_rex64): New instruction and split pattern.
- (*jcc_btsi_mask): Ditto.
- (*jcc_btsi_mask_1): Ditto.
-
-2008-06-10 Joseph Myers <joseph@codesourcery.com>
-
- * config/rs6000/rs6000.c (build_opaque_vector_type): Set
- TYPE_CANONICAL for copied element type.
-
-2008-06-10 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36473
- * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
- Add m_CORE2 and m_GENERIC.
- * config/i386/predicates.md (bt_comparison_operator): New predicate.
- * config/i386/i386.md (*btdi_rex64): New instruction pattern.
- (*btsi): Ditto.
- (*jcc_btdi_rex64): New instruction and split pattern.
- (*jcc_btsi): Ditto.
- (*jcc_btsi_1): Ditto.
- (*btsq): Fix Intel asm dialect operand order.
- (*btrq): Ditto.
- (*btcq): Ditto.
-
-2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR middle-end/36447
- * simplify-rtx.c (simplify_subreg): Add check for shift count
- greater than size.
-
-2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * doc/md.texi: Synchronize with later constraints.md change.
- * longlong.h (umul_ppmm): Replace the MIPS asm implementation
- with a C implementation.
- * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
- MFLO handling.
- (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
- (mips_split_doubleword_move): Use special MTHI and MFHI instructions
- when moving to and from MD_REGNUM.
- (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
- Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
- Handle byte and halfword moves.
- (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
- separately.
- * config/mips/constraints.md (h): Turn into NO_REGS.
- (l, x): Update documentation.
- * config/mips/mips.md (UNSPEC_MFHILO): Delete.
- (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
- (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
- (HILO): New mode iterator.
- (MOVE128): Add TI.
- (any_div): New code iterator.
- (u): Extend code attribute to div and udiv.
- (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
- d_operand in the splitters. Remove redundant CONST_INT checks.
- (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
- (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
- (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
- accordingly, using normal moves instead of unspecs to move LO into
- a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
- (<u>mulsidi3): Handle expansion in C code.
- (<u>mulsidi3_32bit_internal): Rename to...
- (<u>mulsidi3_32bit): ...this.
- (<u>mulsidi3_32bit_r4000): Fix insn separator.
- (*<u>mulsidi3_64bit): Rename to...
- (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
- into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
- to set LO and HI to the multiplication result. Use a normal move
- for MFLO and an unspec for MFHI.
- (*<u>mulsidi3_64bit_parts): Replace with...
- (<u>mulsidi3_64bit_hilo): ...this new instruction.
- (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
- (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
- and extend it to TARGET_FIX_R4000. Store the destination in a GPR
- instead of HI. Split the instruction into a separate multiplication
- and MFHI if !TARGET_FIX_R4000.
- (<su>muldi3_highpart): Likewise.
- (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
- and the "=h" clobber.
- (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
- (<u>mulditi3): New expander.
- (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
- (madsi): Remove "=h" clobber.
- (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
- Force the modulus result to be a GPR and split the instruction into
- a division followed by an MFHI after reload.
- (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
- (*lea_high64): Use d_operand in the define_peephole2. Likewise
- the MIPS16 HIGH define_split.
- (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
- of acc<->gpr moves to "multi".
- (*movdi_64bit): Replace the single "x" alternative with
- alternatives for moving into and out of "a".
- (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
- (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
- (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
- Use d_operand in the splitters. Remove redundant CONST_INT checks.
- (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
- (movti): New expander.
- (*movti, *movti_mips16): New insns.
- (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
- (mfhi<GPR:mode>_<HILO:mode>): New pattern.
- (mthi<GPR:mode>_<HILO:mode>): Likewise.
- * config/mips/predicates.md (fpr_operand): Delete.
- (d_operand): New predicate.
-
-2008-06-09 Michael Meissner <michael.meissner@amd.com>
-
- * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
- failure on some Bourne shells.
- (x86_64-*-*): Ditto.
-
-2008-06-09 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
-
-2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
-
- * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
- (sparc-sun-solaris2*): Likewise.
-
-2008-06-09 Arnaud Charlet <charlet@adacore.com
-
- * doc/install.texi: Update requirements to build the Ada compiler.
-
-2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * df-scan.c (struct df_scan_problem_data): Remove the
- mw_link_pool alloc pool.
- (df_scan_free_internal): Don't free it.
- (df_scan_alloc): Don't allocate it.
- * df.h (struct df_link): Update comment.
-
-2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
-
- * except.h: Correct checks for when SJLJ exceptions must be used.
-
-2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
- default.
-
-2008-06-08 Joseph Myers <joseph@codesourcery.com>
-
- PR tree-optimization/36218
- * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
- configure for the build system.
- (BUILD_LDFLAGS): Define.
- * configure: Regenerate.
- * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
-
-2008-07-08 Anatoly Sokolov <aesok@post.ru>
-
- PR target/36424
- * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
- * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
- * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
-
-2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
-
-2008-06-07 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (Obsolete configurations): Remove list of
- configurations.
- (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
- *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
- targets matched by those patterns.
- (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
- m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
- alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
- arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
- hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
- i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
- i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
- i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
- i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
- mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
- powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
- powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
- strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
- vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
- i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
- Make code for Solaris 7 and greater unconditional for Solaris.
- (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
- Remove --with-* handling.
- * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
- (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
- ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
- LINK_OS_WINDISS_SPEC): Remove.
- * config/rs6000/sysv4.opt (mwindiss): Remove.
- * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
- * configure: Regenerate.
- * doc/cpp.texi: Don't mention BeOS.
- * doc/extend.texi (interrupt): Don't mention MS1.
- * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
- m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
- alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
- i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
- powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
- Remove.
- * doc/invoke.texi (MT Options): Remove.
- (-mwindiss): Remove.
- (CRIS Options): Remove cris-axis-aout references.
- (HPPA Options): Don't mention hppa1.1-*-pro.
- * doc/md.texi: (MorphoTech family): Remove.
- * libgcc2.c: Don't handle UWIN.
- * config/alpha/t-unicosmk: Remove.
- * config/alpha/unicosmk.h: Remove.
- * config/arm/kaos-arm.h: Remove.
- * config/arm/kaos-strongarm.h: Remove.
- * config/arm/strongarm-coff.h: Remove.
- * config/arm/strongarm-elf.h: Remove.
- * config/arm/strongarm-pe.h: Remove.
- * config/arm/t-strongarm-pe: Remove.
- * config/arm/t-xscale-coff: Remove.
- * config/arm/t-xscale-elf: Remove.
- * config/arm/xscale-coff.h: Remove.
- * config/arm/xscale-elf.h: Remove.
- * config/chorus.h: Remove.
- * config/cris/aout.h: Remove.
- * config/cris/aout.opt: Remove.
- * config/cris/t-aout: Remove.
- * config/i386/beos-elf.h: Remove.
- * config/i386/kaos-i386.h: Remove.
- * config/i386/ptx4-i.h: Remove.
- * config/i386/sco5.h: Remove.
- * config/i386/sco5.opt: Remove.
- * config/i386/sysv4-cpp.h: Remove.
- * config/i386/sysv5.h: Remove.
- * config/i386/t-beos: Remove.
- * config/i386/t-sco5: Remove.
- * config/i386/t-uwin: Remove.
- * config/i386/uwin.asm: Remove.
- * config/i386/uwin.h: Remove.
- * config/kaos.h: Remove.
- * config/mips/windiss.h: Remove.
- * config/mt: Remove directory.
- * config/pa/pa-osf.h: Remove.
- * config/pa/pa-pro-end.h: Remove.
- * config/pa/t-pro: Remove.
- * config/ptx4.h: Remove.
- * config/rs6000/beos.h: Remove.
- * config/rs6000/kaos-ppc.h: Remove.
- * config/rs6000/t-beos: Remove.
- * config/rs6000/windiss.h: Remove.
- * config/sh/kaos-sh.h: Remove.
- * config/sol2-6.h: Remove.
- * config/sparc/sol26-sld.h: Remove.
- * config/sparc/sysv4-only.h: Remove.
- * config/vax/bsd.h: Remove.
- * config/vax/t-memfuncs: Remove.
- * config/vax/ultrix.h: Remove.
- * config/vax/vaxv.h: Remove.
- * config/windiss.h: Remove.
-
-2008-06-06 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/36438
- * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
- for vector shifts with constant scalar shift operands.
-
-2008-06-06 Sandip Matte <sandip@rmicorp.com>
-
- * doc/invoke.texi: Document -march=xlr.
- * config/mips/xlr.md: New file.
- * config/mips/mips.md: Include it.
- (cpu): Add "xlr".
- * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
- * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
- (mips_rtx_cost_data): Likewise.
-
-2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
- PRE_INC and PRE_DEC cases.
-
-2008-06-06 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36419
- * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
- the emitting jump insn.
-
- PR target/36362
- * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
- is not bool, boolify the whole *expr_p and convert to the desired type.
-
-2008-06-06 Jakub Jelinek <jakub@redhat.com>
-
- * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
- * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
- Add omp_private_outer_ref hook, add another argument to
- omp_clause_default_ctor hook.
- * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
- (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
- (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
- hook_tree_tree_tree_tree_null.
- (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
- LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
- * hooks.c (hook_tree_tree_tree_tree_null): New function.
- * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
- * tree.def (OMP_TASK): New tree code.
- * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
- OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
- OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
- OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
- OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
- OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
- OMP_CLAUSE_COLLAPSE_EXPR): Define.
- (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
- (OMP_DIRECTIVE_P): Add OMP_TASK.
- (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
- (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
- * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
- and OMP_CLAUSE_UNTIED entries.
- (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
- num_ops to 2.
- (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
- Walk OMP_CLAUSE_LASTPRIVATE_STMT.
- * tree-pretty-print.c (dump_omp_clause): Handle
- OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
- OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
- (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
- * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
- warning about unsigned iterators. Change decl/init/cond/incr
- arguments to TREE_VECs, check arguments for all collapsed loops.
- (c_finish_omp_taskwait): New function.
- (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
- ws_clauses.
- * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
- default_function_array_conversion on init. Add par_clauses argument.
- If decl is present in parallel's lastprivate clause, change it to
- shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
- Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
- collapse count in clauses.
- (c_parser_omp_for, c_parser_omp_parallel): Adjust
- c_parser_omp_for_loop callers.
- (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
- (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
- (c_parser_omp_clause_name): Handle collapse and untied clauses.
- (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
- functions.
- (c_parser_omp_clause_schedule): Handle schedule(auto).
- Include correct location in the error message.
- (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
- and PRAGMA_OMP_CLAUSE_UNTIED.
- (OMP_TASK_CLAUSE_MASK): Define.
- (c_parser_omp_task, c_parser_omp_taskwait): New functions.
- (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
- * tree-nested.c (convert_nonlocal_omp_clauses,
- convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
- OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
- OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
- Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
- OMP_CLAUSE_DECL.
- (conver_nonlocal_reference, convert_local_reference,
- convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
- OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
- (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
- * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
- * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
- * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
- (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
- * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
- (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
- OMP_CLAUSE_UNTIED.
- * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
- * c-common.h (c_finish_omp_taskwait): New prototype.
- * gimple-low.c (lower_stmt): Handle OMP_TASK.
- * tree-parloops.c (create_parallel_loop): Create 1 entry
- vectors for OMP_FOR_{INIT,COND,INCR}.
- * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
- (make_edges): Handle OMP_TASK.
- * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
- loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
- * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
- * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
- BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
- BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
- BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
- BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
- * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
- BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
- BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
- BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
- BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
- BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
- BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
- * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
- handle POINTER_PLUS_EXPR. If loop counter has been replaced and
- original iterator is present in lastprivate clause or if
- collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
- OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
- (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
- (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
- (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
- if it is set, lookup var in outer contexts too. Handle
- OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
- to be implicitly determined firstprivate for task regions.
- (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
- if it is set, lookup var in outer contexts too. Set
- OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
- Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
- OMP_CLAUSE_UNTIED. Take region_type as last argument
- instead of in_parallel and in_combined_parallel.
- (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
- Adjust callers.
- (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
- GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
- (new_omp_context): Set default_kind to
- OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
- (omp_region_type): New enum.
- (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
- fields, add region_type.
- (new_omp_context): Take region_type as argument instead of is_parallel
- and is_combined_parallel.
- (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
- omp_is_private, omp_check_private): Adjust ctx->is_parallel and
- ctx->is_combined_parallel checks.
- (gimplify_omp_task): New function.
- (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
- OMP_CLAUSE_UNTIED.
- * omp-low.c (extract_omp_for_data): Use schedule(static)
- for schedule(auto). Handle pointer and unsigned iterators.
- Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
- Add loops argument. Extract data for collapsed OMP_FOR loops.
- (expand_parallel_call): Assert sched_kind isn't auto,
- map runtime schedule to index 3.
- (struct omp_for_data_loop): New type.
- (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
- Add loop, loops, collapse and iter_type fields.
- (workshare_safe_to_combine_p): Disallow combined for if
- iter_type is unsigned long long. Don't combine collapse > 1 loops
- unless all bounds and steps are constant. Adjust extract_omp_for_data
- caller.
- (expand_omp_for_generic): Handle pointer, unsigned and long long
- iterators. Handle collapsed OMP_FOR loops. Adjust
- for struct omp_for_data changes. If libgomp function doesn't return
- boolean_type_node, add comparison of the return value with 0.
- (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
- pointer, unsigned and long long iterators. Adjust for struct
- omp_for_data changes.
- (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
- to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
- unsigned long long. Allocate loops array, pass it to
- extract_omp_for_data. For collapse > 1 loops use always
- expand_omp_for_generic.
- (omp_context): Add sfield_map and srecord_type fields.
- (is_task_ctx, lookup_sfield): New functions.
- (use_pointer_for_field): Use is_task_ctx helper. Change first
- argument's type from const_tree to tree. Clarify comment.
- In OMP_TASK disallow copy-in/out sharing.
- (build_sender_ref): Call lookup_sfield instead of lookup_field.
- (install_var_field): Add mask argument. Populate both record_type
- and srecord_type if needed.
- (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
- in srecord_type.
- (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
- and DECL_FIELD_OFFSET.
- (scan_sharing_clauses): Adjust install_var_field callers. For
- firstprivate clauses on explicit tasks allocate the var by value in
- record_type unconditionally, rather than by reference.
- Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
- Use is_taskreg_ctx instead of is_parallel_ctx.
- Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
- (create_omp_child_function_name): Add task_copy argument, use
- *_omp_cpyfn* names if it is true.
- (create_omp_child_function): Add task_copy argument, if true create
- *_omp_cpyfn* helper function.
- (scan_omp_parallel): Adjust create_omp_child_function callers.
- Rename parallel_nesting_level to taskreg_nesting_level.
- (scan_omp_task): New function.
- (lower_rec_input_clauses): Don't run constructors for firstprivate
- explicit task vars which are initialized by *_omp_cpyfn*.
- Pass outer var ref to omp_clause_default_ctor hook if
- OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
- Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
- OMP_CLAUSE_REDUCTION_INIT.
- (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
- avoid duplicate setting of fields. Handle
- OMP_CLAUSE_PRIVATE_OUTER_REF.
- (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
- copy-out if TREE_READONLY, only copy-in.
- (expand_task_copyfn): New function.
- (expand_task_call): New function.
- (struct omp_taskcopy_context): New type.
- (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
- New functions.
- (lower_omp_parallel): Rename to...
- (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
- Call create_task_copyfn if srecord_type is needed. Adjust
- sender_decl type.
- (task_shared_vars): New variable.
- (check_omp_nesting_restrictions): Warn if work-sharing,
- barrier, master or ordered region is closely nested inside OMP_TASK.
- Add warnings for barrier if closely nested inside of work-sharing,
- ordered, or master region.
- (scan_omp_1): Call check_omp_nesting_restrictions even for
- GOMP_barrier calls. Rename parallel_nesting_level to
- taskreg_nesting_level. Handle OMP_TASK.
- (lower_lastprivate_clauses): Even if some lastprivate is found on a
- work-sharing construct, continue looking for them on parent parallel
- construct.
- (lower_omp_for_lastprivate): Add lastprivate clauses
- to the beginning of dlist rather than end. Adjust for struct
- omp_for_data changes.
- (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
- not after it. Handle collapsed OMP_FOR loops, adjust for
- OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
- (get_ws_args_for): Adjust extract_omp_for_data caller.
- (scan_omp_for): Handle collapsed OMP_FOR
- loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
- (lower_omp_single_simple): If libgomp function doesn't return
- boolean_type_node, add comparison of the return value with 0.
- (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
- loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
- (parallel_nesting_level): Rename to...
- (taskreg_nesting_level): ... this.
- (is_taskreg_ctx): New function.
- (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
- of is_parallel_ctx.
- (execute_lower_omp): Rename parallel_nesting_level to
- taskreg_nesting_level.
- (expand_omp_parallel): Rename to...
- (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
- Call omp_task_call for OMP_TASK regions.
- (expand_omp): Adjust caller, handle OMP_TASK.
- (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
-
- * bitmap.c (bitmap_default_obstack_depth): New variable.
- (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
- if argument is NULL and bitmap_default_obstack is already initialized.
- * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
- at the end.
- * matrix-reorg.c (matrix_reorg): Likewise.
-
-2008-06-06 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*indirect_jump): Macroize using P
- mode iterator. Remove !TARGET_64BIT from insn constraints.
- (*tablejump_1): Ditto.
- (*indirect_jump_rex64): Remove insn pattern.
- (*tablejump_1_rex64): Ditto.
- (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
- and eh_return_si insn patterns.
-
-2008-06-06 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (merge_smts_into): Remove.
- (find_what_p_points_to): Do not bother to compute the
- points-to set for pt_anything pointers.
- * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
- for pt_anything pointers is ok.
-
-2008-06-06 Jan Hubicka <jh@suse.cz>
-
- * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
-
-2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * cgraph.c: Fix typos in comments.
- (cgraph_availability_names): Fix string typo.
- * fold-const.c: Fix typos in comments.
- (fold_binary): Fix typo in warning.
- * genautomata.c: Fix typos in comments.
- (check_presence_pattern_sets): Fix typo in local variable.
- (output_description): Fix typo in output.
- * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
- * hwint.h: Likewise.
- * matrix-reorg.c (check_allocation_function): Likewise.
- * omega.c (smooth_weird_equations): Likewise.
- * auto-inc-dec.c: Fix typos in comments.
- * bb-reorder.c: Likewise.
- * builtins.c: Likewise.
- * c-common.c: Likewise.
- * c-cppbuiltin.c: Likewise.
- * c-parser.c: Likewise.
- * c-pretty-print.c: Likewise.
- * cfgcleanup.c: Likewise.
- * cfgexpand.c: Likewise.
- * cfghooks.c: Likewise.
- * cfglayout.c: Likewise.
- * cfgloopmanip.c: Likewise.
- * cgraphunit.c: Likewise.
- * coverage.c: Likewise.
- * dbxout.c: Likewise.
- * df-byte-scan.c: Likewise.
- * df-core.c: Likewise.
- * df-problems.c: Likewise.
- * df-scan.c: Likewise.
- * dfp.c: Likewise.
- * dominance.c: Likewise.
- * domwalk.c: Likewise.
- * dse.c: Likewise.
- * dwarf2out.c: Likewise.
- * emit-rtl.c: Likewise.
- * et-forest.c: Likewise.
- * function.c: Likewise.
- * function.h: Likewise.
- * gcc.c: Likewise.
- * gcov-io.c: Likewise.
- * gcov.c: Likewise.
- * gcse.c: Likewise.
- * genattrtab.c: Likewise.
- * ggc-page.c: Likewise.
- * gimplify.c: Likewise.
- * gthr-lynx.h: Likewise.
- * haifa-sched.c: Likewise.
- * ipa-cp.c: Likewise.
- * ipa-inline.c: Likewise.
- * ipa-prop.h: Likewise.
- * ipa-pure-const.c: Likewise.
- * ipa-struct-reorg.c: Likewise.
- * ipa-struct-reorg.h: Likewise.
- * ipa-type-escape.c: Likewise.
- * ipa.c: Likewise.
- * loop-doloop.c: Likewise.
- * mips-tfile.c: Likewise.
- * mkmap-flat.awk: Likewise.
- * mkmap-symver.awk: Likewise.
- * modulo-sched.c: Likewise.
- * omp-low.c: Likewise.
- * optabs.c: Likewise.
- * optabs.h: Likewise.
- * opts.c: Likewise.
- * passes.c: Likewise.
- * postreload-gcse.c: Likewise.
- * postreload.c: Likewise.
- * predict.c: Likewise.
- * pretty-print.h: Likewise.
- * profile.c: Likewise.
- * protoize.c: Likewise.
- * ra-conflict.c: Likewise.
- * real.c: Likewise.
- * recog.c: Likewise.
- * regclass.c: Likewise.
- * regs.h: Likewise.
- * reload.c: Likewise.
- * rtl-error.c: Likewise.
- * rtlanal.c: Likewise.
- * scan.h: Likewise.
- * sched-rgn.c: Likewise.
- * see.c: Likewise.
- * stmt.c: Likewise.
- * target.h: Likewise.
- * tree-dfa.c: Likewise.
- * tree-eh.c: Likewise.
- * tree-flow-inline.h: Likewise.
- * tree-inline.c: Likewise.
- * tree-into-ssa.c: Likewise.
- * tree-loop-distribution.c: Likewise.
- * tree-nested.c: Likewise.
- * tree-parloops.c: Likewise.
- * tree-pass.h: Likewise.
- * tree-pretty-print.c: Likewise.
- * tree-profile.c: Likewise.
- * tree-scalar-evolution.c: Likewise.
- * tree-sra.c: Likewise.
- * tree-ssa-alias-warnings.c: Likewise.
- * tree-ssa-ccp.c: Likewise.
- * tree-ssa-coalesce.c: Likewise.
- * tree-ssa-dom.c: Likewise.
- * tree-ssa-dse.c: Likewise.
- * tree-ssa-forwprop.c: Likewise.
- * tree-ssa-live.c: Likewise.
- * tree-ssa-live.h: Likewise.
- * tree-ssa-loop-im.c: Likewise.
- * tree-ssa-loop-ivopts.c: Likewise.
- * tree-ssa-loop-niter.c: Likewise.
- * tree-ssa-loop-prefetch.c: Likewise.
- * tree-ssa-phiopt.c: Likewise.
- * tree-ssa-phiprop.c: Likewise.
- * tree-ssa-sccvn.c: Likewise.
- * tree-ssa-ter.c: Likewise.
- * tree-ssa-threadupdate.c: Likewise.
- * tree-ssa.c: Likewise.
- * tree-vect-analyze.c: Likewise.
- * tree-vect-transform.c: Likewise.
- * tree-vectorizer.c: Likewise.
- * tree-vn.c: Likewise.
- * tree-vrp.c: Likewise.
- * tree.c: Likewise.
- * tree.def: Likewise.
- * tree.h: Likewise.
- * unwind-dw2-fde.c: Likewise.
- * unwind.inc: Likewise.
- * value-prof.c: Likewise.
- * vmsdbgout.c: Likewise.
-
-2008-06-05 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
- always place FP constants in the TOC for TARGET_POWERPC64.
- * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
-
-2008-06-05 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
- * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
- enable for TARGET_E500_DOUBLE.
- (*movdd_softfloat32): Also enable for !TARGET_FPRS.
- * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
- floating-point modes like integer modes for E500 double.
- (rs6000_legitimate_offset_address_p): Likewise.
- (rs6000_legitimize_address): Likewise. Do not allow REG+REG
- addressing for DDmode for E500 double.
- (rs6000_hard_regno_nregs): Do not treat decimal floating-point
- modes as using 64-bits of registers for E500 double.
- (spe_build_register_parallel): Do not handle DDmode or TDmode.
- (rs6000_spe_function_arg): Do not handle DDmode or TDmode
- specially for E500 double.
- (function_arg): Do not call rs6000_spe_function_arg for DDmode or
- TDmode for E500 double.
- (rs6000_gimplify_va_arg): Only handle SDmode in registers
- specially if TARGET_HARD_FLOAT && TARGET_FPRS.
- (rs6000_split_multireg_move): Do not handle TDmode specially for
- E500 double.
- (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
- using 64-bit registers for E500 double.
- (emit_frame_save): Do not handle DDmode specially for E500 double.
- (gen_frame_mem_offset): Likewise.
- (rs6000_function_value): Do not call spe_build_register_parallel
- for DDmode or TDmode.
- (rs6000_libcall_value): Likewise.
- * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
- DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
- for E500 double.
-
-2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
- in comments.
-
-2008-06-04 Junjie Gu <jgu@tensilica.com>
-
- * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
- comparison for frame pointers.
-
-2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/27386
- * config/avr/avr.h (PUSH_ROUNDING): Remove.
-
-2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/30243
- * builtins.c (expand_builtin_signbit): Don't take lowpart when
- register is already smaller or equal to required mode.
-
-2008-06-04 Xinliang David Li <davidxl@google.com>
-
- * tree-call-cdce.c: New file.
- (cond_dead_built_in_calls): New static variable.
- (input_domain): New struct.
- (check_pow): New function.
- (check_builtin_call): Ditto.
- (check_target_format): Ditto.
- (is_call_dce_candidate): Ditto.
- (gen_one_condition): Ditto.
- (gen_conditions_for_domain): Ditto.
- (get_domain): Ditto.
- (gen_conditions_for_pow_cst_base): Ditto.
- (gen_conditions_for_pow_int_base): Ditto.
- (gen_conditions_for_pow): Ditto.
- (get_no_error_domain): Ditto.
- (gen_shrink_wrap_conditions): Ditto.
- (shrink_wrap_one_built_in_call): Ditto.
- (shink_wrap_conditional_dead_built_in_calls): Ditto.
- (tree_call_cdce): Ditto.
- (gate_call_cdce): Ditto.
- (pass_call_cdce): New gimple pass.
- * passes.c: (init_optimization_passes): New pass.
- * tree-pass.h: New pass declaration.
- * opts.c (decode_options): New flag setting.
- * common.opt: Add -ftree-builtin-call-dce flag.
- * Makefile.in: Add new source file.
- * tempvar.def: New tv_id.
- * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
-
-2008-06-04 Richard Guenther <rguenther@suse.de>
-
- * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
- (is_call_clobbered): Always check var_ann->call_clobbered.
- (mark_call_clobbered): Always set var_ann->call_clobbered.
- (clear_call_clobbered): Always clear var_ann->call_clobbered.
- * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
- (reset_alias_info): Clear call clobbering info on MTAGs and
- globals as well.
- (set_pt_anything): Set pt_global_mem.
- (create_tag_raw): Adjust comment.
- (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
-
-2008-06-04 Joseph Myers <joseph@codesourcery.com>
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config/m68k/m68k.opt (mxgot): New option.
- * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
- (m68k_output_addr_const_extra): New.
- * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
- * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
- * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
- * doc/invoke.texi (M680x0 Options): Document -mxgot.
-
-2008-06-04 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
- negative or non-representable offsets.
-
-2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_gen_leave): New.
- (ix86_gen_pop1): Likewise.
- (ix86_gen_add3): Likewise.
- (ix86_gen_sub3): Likewise.
- (ix86_gen_sub3_carry): Likewise.
- (ix86_gen_one_cmpl2): Likewise.
- (ix86_gen_monitor): Likewise.
- (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
- ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
- ix86_gen_one_cmpl2 and ix86_gen_monitor.
- (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
- (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
- mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
- (ix86_expand_epilogue): Updated.
- (print_operand): Handle integer register operand for 'z'.
- (ix86_expand_strlensi_unroll_1): Likewise.
- (ix86_expand_strlen): Likewise.
- (ix86_expand_builtin): Likewise.
- (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
- mov{q}/mov{l} and add{q}/add{l}.
-
-2008-06-03 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.md (P): New mode iterator.
- (SFmode push_operand splitter): Macroize DImode and SImode pushes
- using P mode iterator.
- (DFmode push_operand splitter): Ditto.
- (XFmode push_operand splitter): Ditto.
- (DFmode float_extend SFmode push_operand splitter): Ditto.
- (XFmode float_extend SFmode push_operand splitter): Do not generate
- SImode pushes for 64bit target. Macroize Dimode and SImode
- pushes using P mode iterator.
- (XFmode float_extend DFmode push_operand splitter): Ditto.
-
-2008-06-03 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
- * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
- * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
- return type to int.
- (ix86_call_abi_override): Remove check for call_used_regs.
-
-2008-06-03 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (find_func_aliases): Add constraints
- for the lhs of calls if the return type contains pointers.
-
-2008-06-03 Kai Tietz <kai.tietz@onevision.com>
-
- * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
- * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
- * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
- * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
- of cfun and DEFAULT_ABI to deceide abi mode.
- (DEFAULT_ABI): New.
- (REG_PARM_STACK_SPACE): Removed.
- (OUTGOING_REG_PARM_STACK_SPACE): Removed.
- (STACK_BOUNDARY): Use default target to deceide stack boundary.
- * config/i386/i386-protos.h (ix86_cfun_abi): New.
- (ix86_function_abi): Likewise.
- (ix86_function_type_abi): Likewise.
- (ix86_call_abi_override): Likewise.
- * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
- specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
- * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
- (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
- specific defines.
- (X86_64_REGPARM_MAX): New.
- (X86_64_SSE_REGPARM_MAX): New.
- (X64_REGPARM_MAX): New.
- (X64_SSE_REGPARM_MAX): New.
- (X86_32_REGPARM_MAX): New.
- (X86_32_SSE_REGPARM_MAX): New.
- (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
- (ix86_function_regparm): Handle user calling abi.
- (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
- by DEFAULT_ABI versus SYSV_ABI check.
- (ix86_reg_parm_stack_space): New.
- (ix86_function_type_abi): New.
- (ix86_call_abi_override): New.
- (ix86_function_abi): New.
- (ix86_cfun_abi): New.
- (init_cumulative_args): Call abi specific initialization.
- (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
- (function_arg_64): Extend SSE_REGPARM_MAX check.
- (function_arg (): Remove TARGET_64BIT_MS_ABI.
- (ix86_pass_by_reference): Likewise.
- (ix86_function_value_regno_p): Likewise.
- (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
- (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
- (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
- (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
- (setup_incoming_varargs_64): Adjust regparm for call abi.
- (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
- (ix86_va_start): Likewise.
- (ix86_gimplify_va_arg): Likewise.
- (ix86_expand_prologue): Likewise.
- (output_pic_addr_const): Likewise.
- (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
- (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
- (x86_output_mi_thunk): Likewise.
- (x86_function_profiler): Likewise.
- * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
- (SYSV_ABI, MS_ABI): New constants.
- (DEFAULT_ABI): New.
- (init_regs): Add prototype of function in regclass.c file.
- (OVERRIDE_ABI_FORMAT): New.
- (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
- (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
- (OUTGOING_REG_PARM_STACK_SPACE): New.
- (ix86_reg_parm_stack_space): New prototype.
- (CUMULATIVE_ARGS): Add call_abi member.
- (machine_function): Add call_abi member.
- * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
- TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
-
-2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/34879
- * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
- (avr_builtin_setjmp_frame_value): New function.
- * config/avr/avr.md (nonlocal_goto_receiver): Define.
- (nonlocal_goto): Define.
-
-2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_emit_loadgp): Return early if
- there is nothing do to, otherwise emit a blockage if
- !TARGET_EXPLICIT_RELOCS || crtl->profile.
- * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
-
-2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure.ac: Drop unneeded backslash ending up in config.in.
- * acinclude.m4: Likewise.
- * config.in: Regenerate.
-
-2008-05-26 Jan Hubicka <jh@suse.cz>
-
- * predict.c (maybe_hot_frequency_p): Break out of...
- (maybe_hot_bb_p): ... here.
- (maybe_hot_edge_p): New.
- * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
- * basic-block.h (maybe_hot_edge_p): Declare.
-
-2008-05-31 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
- (*cmpfp_<mode>_cc): Ditto.
- (*fp_jcc_8<mode>_387): Ditto.
- (*fop_<MODEF:mode>_2_i387): Ditto.
- (*fop_<MODEF:mode>_3_i387): Ditto.
- (*fop_xf_2_i387): Ditto.
- (*fop_xf_3_i387): Ditto.
-
-2008-06-02 Tomas Bily <tbily@suse.cz>
-
- * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
-
-2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips.c (mips_valid_offset_p): New function.
- (mips_valid_lo_sum_p): Likewise.
- (mips_classify_address): Use them.
- (mips_force_address): New function.
- (mips_legitimize_address): Use it.
- * config/mips/mips.md (MOVE128): New mode iterator.
- (movtf): Require TARGET_64BIT. Remove empty strings.
- (*movtf_internal): Rename to...
- (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
- of "R" and use {,fp}{load,store} attributes instead of "multi".
- Use a separate define_split.
- (*movtf_mips16): New pattern.
-
-2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/mips/mips-protos.h (mips_expand_before_return): Declare.
- * config/mips/mips.c (mips_expand_before_return): New function.
- (mips_expand_epilogue): Call it.
- * config/mips/mips.md (return): Turn into a define_expand.
- (*return): New insn.
-
-2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
-
- * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
- * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
- functions. Do not emit uses and clobbers of CONCATs; individually
- use and clobber their operands.
- * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
- gen_clobber, emit_use and gen_use.
- (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
- (expand_builtin_return): Likewise.
- * cfgbuild.c (count_basic_blocks): Likewise.
- * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
- * explow.c (emit_stack_restore): Likewise.
- * expmed.c (extract_bit_field_1): Likewise.
- * expr.c (convert_move, emit_move_complex_parts): Likewise.
- (emit_move_multi_word, store_constructor): Likewise.
- * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
- (thread_prologue_and_epilogue_insns): Likewise.
- * lower-subreg.c (resolve_simple_move): Likewise.
- * optabs.c (widen_operand, expand_binop): Likewise.
- (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
- * reload.c (find_reloads): Likewise.
- * reload1.c (eliminate_regs_in_insn): Likewise.
- * stmt.c (expand_nl_goto_receiver): Likewise.
- * config/alpha/alpha.md (builtin_longjmp): Likewise.
- * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
- * config/arm/arm.c (arm_load_pic_register): Likewise.
- (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
- * config/arm/arm.md (untyped_return): Likewise.
- * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
- * config/avr/avr.c (expand_prologue): Likewise.
- * config/bfin/bfin.c (do_unlink): Likewise.
- * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
- * config/cris/cris.c (cris_expand_prologue): Likewise.
- * config/darwin.c (machopic_indirect_data_reference): Likewise.
- (machopic_legitimize_pic_address): Likewise.
- * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
- (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
- * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
- (ix86_expand_convert_uns_didf_sse): Likewise.
- (ix86_expand_vector_init_general): Likewise.
- * config/ia64/ia64.md (eh_epilogue): Likewise.
- * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
- * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
- * config/m32r/m32r.c (m32r_reload_lr): Likewise.
- (config/iq2000/iq2000.c): Likewise.
- * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
- (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
- (builtin_longjmp): Likewise.
- * config/mn10300/mn10300.md (call, call_value): Likewise.
- * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
- * config/pdp11/pdp11.md (abshi2): Likewise.
- * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
- * config/s390/s390.c (s390_emit_prologue): Likewise.
- * config/s390/s390.md (movmem_long, setmem_long): Likewise.
- (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
- (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
- * config/sh/sh.c (prepare_move_operands): Likewise.
- (output_stack_adjust, sh_expand_epilogue): Likewise.
- (sh_set_return_address, sh_expand_t_scc): Likewise.
- * config/sparc/sparc.c (load_pic_register): Likewise.
- * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
- * config/spu/spu.c (spu_expand_epilogue): Likewise.
- * config/v850/v850.c (expand_epilogue): Likewise.
-
-2008-05-31 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
- (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
- (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
- * config/avr/avr.c (expand_prologue, expand_epilogue): Use
- movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
- stack pointer register.
- (output_movhi): Remove code for interrupt specific writing to the
- stack pointer register.
-
-2008-05-31 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34244
- * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
- (tree_expr_nonzero_warnv_p): Likewise.
- * tree-vrp.c (vrp_expr_computes_nonnegative): Call
- ssa_name_nonnegative_p.
- (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
- (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
- not tree_expr_nonzero_warnv_p.
-
- PR tree-optimization/36262
- Revert
- 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
-
- PR tree-optimization/34244
- * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
- (record_numbers_of_iterations): New function.
- (execute_vrp): Cache the numbers of iterations of loops.
- * tree-scalar-evolution.c (scev_reset_except_niters):
- New function.
- (scev_reset): Use scev_reset_except_niters.
- * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
-
-2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
- __WORKAROUND_RETS when appropriate.
-
-2008-05-31 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
- *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
- mode iterator.
- (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
- *fop_df_comm_sse insn patterns using MODEF mode iterator.
- (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
- *fop_df_comm_i387 insn patterns using MODEF mode iterator.
- (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
- *fop_df_1_mixed insn patterns using MODEF mode iterator.
- (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
- *fop_df_1_sse insn patterns using MODEF mode iterator.
- (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
- *fop_df_1_i387 insn patterns using MODEF mode iterator.
- (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
- *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
- (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
- *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
- (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
- (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
- (*fop_xf_4_i387): Use <MODE> for mode attribute.
- (*fop_xf_5_i387): Ditto.
- (*fop_xf_6_i387): Ditto.
-
-2008-05-30 Richard Guenther <rguenther@suse.de>
-
- * builtins.c (build_string_literal): Avoid generating
- a non-gimple_val result.
-
-2008-05-30 DJ Delorie <dj@redhat.com>
-
- * exec-tool.in: Use an environment variable (private) instead of a
- file (shared) as a semaphore, so as to not break parallel builds.
-
-2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * optabs.c (maybe_encapsulate_block): Remove.
- (emit_libcall_block): Adjust accordingly.
- * optabs.h (maybe_encapsulate_block): Remove prototype.
-
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
- Don't use maybe_encapsulate_block.
-
-2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * config/rs6000/rs6000.c (rs6000_legitimize_address,
- rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
- rtx is a SYMBOL_REF before calling get_pool_constant.
-
-2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
-
-2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
-
- * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
- rather than OS names to choose INO_T_EQ definition.
- (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
- (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
-
-2008-05-29 Daniel Franke <franke.daniel@gmail.com>
-
- PR target/36348
- * config/darwin-f.c: New.
- * config/t-darwin: Added rule to build darwin-f.o.
- * config.gcc: Defined new variable, fortran_target_objs.
- (*-*-darwin*): Set fortran_target_objs.
- * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
- * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
- * configure: Regenerated.
-
-2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35771
- * config/i386/i386.c (ix86_function_arg_boundary): Convert to
- canonical type if needed.
-
-2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
-
-2008-05-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36343
- PR tree-optimization/36346
- PR tree-optimization/36347
- * tree-flow.h (clobber_what_p_points_to): Declare.
- * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
- pointed-to variable is dereferenced is irrelevant to whether
- the pointer can access the pointed-to variable.
- (clobber_what_p_points_to): New function.
- * tree-ssa-alias.c (set_initial_properties): Use it.
- * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
- call clobber check for NMTs.
-
-2008-05-28 Seongbae Park <seongbae.park@gmail.com>
-
- * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
- for printing gcov_type.
-
-2008-05-28 Seongbae Park <seongbae.park@gmail.com>
-
- * tree-ssa-propagate.c (set_rhs): Preserve the histogram
- and the eh region information.
- * value-prof.c (gimple_move_stmt_histograms): New function.
- * value-prof.h (gimple_move_stmt_histograms): New function declaration.
-
-2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
-
- * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
-
-2008-05-28 Seongbae Park <seongbae.park@gmail.com>
-
- * value-prof.c (tree_ic_transform): Print counts.
- * tree-profile.c (tree_gen_ic_func_profiler):
- Clear __gcov_indreict_call_callee variable to avoid misattribution
- of the profile.
-
-2008-05-28 Rafael Espíndola <espindola@google.com>
-
- * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
- invalid sharing.
-
-2008-05-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36339
- * tree-ssa-alias.c (set_initial_properties): Move pt_anything
- and clobbering code out of the loop.
-
-2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
- letters defined.
-
- * config/s390/s390.c (s390_compare_and_branch_condition_mask,
- s390_contiguous_bitmask_p, s390_symref_operand_p,
- s390_check_symref_alignment, s390_reload_larl_operand,
- s390_reload_symref_address): New functions.
- (s390_branch_condition_mnemonic): Support compare and branch
- instructions.
- (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
- and 'W' constraints.
- (s390_secondary_reload): Add secondary reloads for unaligned
- symbol refs or symbol refs to floating point or QI/TI mode
- integer values.
- (legitimate_address_p): Accept symbol references as addresses.
- (s390_expand_insv): Use rotate and insert selected bits
- instruction for insv when building for z10.
- (print_operand_address): Handle symbol ref addresses.
- (print_operand): Output modifier 'c' added for signed byte values.
- (s390_encode_section_info): Mark symbol refs with
- SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
-
- * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
- (length attribute): RRF, RRR have 4 byte length.
- (FPALL, INTALL): New mode iterators added.
- (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
- *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
- *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
- *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
- *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
- *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
- *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
- *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
- instructions.
- (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
- *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
- *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
- reload<INTALL:mode><P:mode>_toreg_z10,
- reload<FPALL:mode><P:mode>_tomem_z10,
- reload<FPALL:mode><P:mode>_toreg_z10,
- reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
- *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
- *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
- *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
- definition.
- (movmem, clrmem, cmpmem): New splitters added.
-
- * config/s390/predicates.md (larl_operand): Use
- SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
- SYMBOL_REF_ALIGN1_P.
- (s390_signed_integer_comparison,
- s390_unsigned_integer_comparison): New predicates.
-
- * config/s390/s390-protos.h (s390_check_symref_alignment,
- s390_contiguous_bitmask_p, s390_reload_larl_operand,
- s390_reload_symref_address,
- s390_compare_and_branch_condition_mask): Prototypes added.
-
- * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
- SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
- SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
-
-2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.c (z10_cost): New cost function for z10.
- (s390_handle_arch_option, override_options): Support -march=z10 switch.
- (s390_issue_rate): Adjust issue rate for z10.
- * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
- (processor_flags): Add PF_Z10.
- (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
- * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
- * gcc/config.gcc: Add z10.
-
-2008-05-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36291
- * tree-flow. h (struct gimple_df): Remove var_anns member.
- * tree-flow-inline.h (gimple_var_anns): Remove.
- (var_ann): Simplify.
- * tree-dfa.c (create_var_ann): Simplify.
- (remove_referenced_var): Clear alias info from var_anns of globals.
- * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
- (delete_tree_ssa): Clear alias info from var_anns of globals.
- Do not free var_anns.
- (var_ann_eq): Remove.
- (var_ann_hash): Likewise.
-
-2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
-
- * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
- and loongson2f entries.
- (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
- * config/mips/mips.h (processor_type): Add Loongson-2E
- and Loongson-2F entries.
- (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
- (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
- * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
- * doc/invoke.texi (MIPS Options): Document loongson2e
- and loongson2f processor names.
-
-2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35767
- PR target/35771
- * config/i386/i386.c (ix86_function_arg_boundary): Use
- alignment of canonical type.
- (ix86_expand_vector_move): Check unaligned memory access for
- all SSE modes.
-
-2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
- Moved to the front of file.
-
-2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * dwarf2out.c (current_fde): New.
- (add_cfi): Use it.
- (lookup_cfa:): Likewise.
- (dwarf2out_end_epilogue): Likewise.
- (dwarf2out_note_section_used): Likewise.
-
-2008-05-27 Michael Matz <matz@suse.de>
-
- PR c++/27975
- * c.opt (Wenum-compare): New warning option.
- * doc/invoke.texi (Warning Options): Document -Wenum-compare.
-
-2008-05-27 Michael Matz <matz@suse.de>
-
- PR middle-end/36326
- * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
- non-BLKmode types.
- * tree-tailcall.c (find_tail_calls): Don't mark calls storing
- into memory as tail calls.
-
-2008-05-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36339
- * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
- pointers cause all addressable variables to be call clobbered.
-
-2008-05-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36245
- * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
-
-2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.md: Replace all occurences of the 'm'
- constraint with 'RT'.
-
-2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
- definitions added.
- ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
- "*movdi_64".
- ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
- ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
- ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
-
-2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * reload.c: (find_reloads): Skip alternatives according to the
- "enabled" attribute. Constify the constraint variable.
- * recog.c (get_attr_enabled): Add default implementation.
- (extract_insn): Set the alternative_enabled_p array
- in the recog_data struct.
- (preprocess_constraints, constrain_operands): Skip
- alternatives according to the "enabled" attribute
- * recog.h (struct recog_data): New field alternative_enabled_p.
- (skip_alternative): New inline function.
- * regclass.c: (record_operand_costs): Check the "enabled" attribute.
- (record_reg_classes): Skip alternative according to the
- "enabled" attribute.
-
- * doc/md.texi: Add documention for the "enabled" attribute.
-
-2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
- * postreload.c (reload_cse_simplify_operands): Replace 'm'
- constraint with TARGET_MEM_CONSTRAINT.
- * recog.c (asm_operand_ok, preprocess_constraints,
- constrain_operands): Likewise.
- * regclass.c (record_reg_classes): Likewise.
- * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
- * reload1.c (maybe_fix_stack_asms): Likewise.
- * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
- * recog.h: Adjust comment.
- * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
- * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
- * doc/md.texi: Add a note to description of 'm' constraint.
- * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
-
-2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
- that the bitfield is of integral type before testing its precision.
-
-2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
- Sa Liu <saliu@de.ibm.com>
-
- * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
- __modti3, __udivti3, __umodti3 and __udivmodti4.
- * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
- that implement TImode mul and div functions.
- * config/spu/multi3.c: New. Implement __multi3.
- * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
- * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
- functions on SPU.
-
-2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
- new tls_gd_* and tls_ld_* insns instead of an insn sequence.
- * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
- tls_sysv_suffix): New mode and mode attribute iterators.
- (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
- (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
- (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
- tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
- tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
- iterators.
-
-2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
-
- PR tree-optimization/36329
- * tree.h (CALL_CANNOT_INLINE_P): Add access check.
- * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
- * cgraphbuild.c (initialize_inline_failed): Use the latter
- macro in lieu of the former.
- * ipa-inline.c (cgraph_mark_inline): Likewise.
- (cgraph_decide_inlining_of_small_function): Likewise.
- (cgraph_decide_inlining): Likewise.
- (cgraph_decide_inlining_incrementally): Likewise.
-
-2008-05-26 Tristan Gingold <gingold@adacore.com>
- Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
- instead of pm_lo8/pm_hi8 to makes this call working on avr6.
- * config/avr/avr.c (expand_prologue): Tune "call_prologue"
- optimization for 'avr6' architecture.
-
-2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/34932
- * config/avr/avr.md (*addhi3_zero_extend2): Remove.
-
-2008-05-26 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (expr_has_constants): Declare.
- (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
-
-2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36253
- * caller-save.c (insert_restore): Verify alignment of spill space.
- (insert_save): Likewise.
- * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
- * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
- (STACK_SLOT_ALIGNMENT): Likewise.
- * function.c (LOCAL_ALIGNMENT): Removed.
- (get_stack_local_alignment): New.
- (assign_stack_local): Use it. Set alignment on stack slot.
- (assign_stack_temp_for_type): Use get_stack_local_alignment.
- * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
- (STACK_SLOT_ALIGNMENT): New.
- * config/i386/i386.c (ix86_local_alignment): Handle caller-save
- stack slot in XFmode.
-
- * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
-
-2008-05-26 Kai Tietz <kai.tietz@onevision.com>
-
- PR/36321
- * config/i386/i386.md (allocate_stack_worker_64): Make sure
- argument operand in rax isn't removed.
-
-2008-05-26 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36300
- * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
- not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
-
-2008-05-26 Daniel Franke <franke.daniel@gmail.com>
-
- PR bootstrap/36331
- * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
-
-2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
-
- * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
- * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
-
-2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
- build a trampoline if we don't want one.
- * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
- return zero for nested functions if we don't want a trampoline.
-
-2008-05-26 Daniel Franke <franke.daniel@gmail.com>
-
- * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
-
-2008-05-26 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/18428
- * c.opt: Removed undocumented option '-lang-fortran'.
- * c-common.h: Removed global variable 'lang_fortran'.
- * c-opts.c (c_common_handle_option): Removed code to handle
- option '-lang-fortran'. Updated includes.
- * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
- definition of '__GFORTRAN__'.
- (define__GNUC__): Reimplemented to use BASEVER and
- cpp_define_formatted.
- (builtin_define_with_value_n): Removed.
- * c-incpath.h: Renamed to ...
- * incpath.h: ... this.
- * c-incpath.c: Renamed to ...
- * incpath.c: ... this. Updated includes.
- * fix-header.c: Updated includes.
- * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
- (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
- (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
-
-2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.h: Update the table of flags used on tree nodes.
- (TREE_NO_TRAMPOLINE): New accessor for static_flag.
- (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
- (FORCED_LABEL): Add access check.
- (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
- (ASM_INPUT_P): Likewise.
- (ASM_VOLATILE_P): Likewise.
- (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
- (OMP_SECTION_LAST): Access private_flag directly.
- (OMP_RETURN_NOWAIT): Likewise.
- (OMP_PARALLEL_COMBINED): Likewise.
- (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
- (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
- * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
- deprecated_flag directly.
-
-2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * final.c (frame_pointer_needed): Removed.
- * flags.h (frame_pointer_needed): Likewise.
-
- * function.h (rtl_data): Add frame_pointer_needed.
- (frame_pointer_needed): New.
-
-2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
-
- * config.gcc (sh2[lbe]*-*-linux*): Allow target.
-
-2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
- SRC is a REG.
-
-2008-05-25 Alan Modra <amodra@bigpond.net.au>
-
- * c-common.c (strip_array_types): Move function to..
- * tree.c: ..here.
- (get_inner_array_type): Delete.
- * c-common.h (strip_array_types): Move declaration to..
- * tree.h: ..here.
- (get_inner_array_type): Delete.
- * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
- * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
- * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
- * config/pa/pa.c (emit_move_sequence): Likewise.
-
-2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md (*sse_prologue_save_insn): Set length
- attribute to 34.
-
-2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * function.c: Include target hook for nonlocal_goto frame value.
-
-2008-05-24 Richard Guenther <rguenther@suse.de>
-
- * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
- variable can be only accessed through a pointer or a union.
-
-2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
- * doc/extend.texi: Likewise.
-
-2008-05-23 DJ Delorie <dj@redhat.com>
-
- * config/m32c/jump.md (untyped_call): Add.
-
- * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
- for A24 to PSImode.
- (m32c_address_cost): Detail costs for indirect offsets.
-
-2008-05-23 Rafael Espíndola <espindola@google.com>
-
- * see.c (see_get_extension_data): Don't use SUBREG_REG to test
- if a node is a SUBREG.
- (see_analyze_one_def): Don't use SUBREG_REG to test if a node
- is a SUBREG.
-
-2008-05-23 Paul Brook <paul@codesourcery.com>
- Carlos O'Donell <carlos@codesourcery.com>
-
- * doc/extend.texi: Clarify use of __attribute__((naked)).
- * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
- * target.h (gcc_target): Add allocate_stack_slots_for_args.
- * function.c (use_register_for_decl): Use
- targetm.calls.allocate_stack_slots_for_args.
- * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
- * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
- (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
-
-2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
-
-2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
-
- * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
- PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
- is only rounded once.
-
-2008-05-23 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
-
-2008-05-23 Uros Bizjak <ubizjak@gmail.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR target/36079
- * configure.ac: Handle --enable-cld.
- * configure: Regenerated.
- * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
- * config/i386/i386.h (struct machine_function): Add needs_cld field.
- (ix86_current_function_needs_cld): New define.
- * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
- (cld): New isns pattern.
- (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
- cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
- * config/i386/i386.opt (mcld): New option.
- * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
- TARGET_CLD and ix86_current_function_needs_cld.
- (override_options): Use -mcld by default for 32-bit code if
- USE_IX86_CLD.
-
- * doc/install.texi (Options specification): Document --enable-cld.
- * doc/invoke.texi (Machine Dependent Options)
- [i386 and x86-64 Options]: Add -mcld option.
- (Intel 386 and AMD x86-64 Options): Document -mcld option.
-
-2008-05-23 Kai Tietz <kai.tietz@onevison.com>
- * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
- (return_in_memory_64): Likewise.
- (return_in_memory_ms_64): Likewise.
-
-2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
- * builtins.c (fold_builtin_fpclassify): New.
- (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
- * builtins.def (BUILT_IN_FPCLASSIFY): New.
- * c-common.c (handle_type_generic_attribute): Adjust to accept
- fixed arguments before an elipsis.
- (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
- * doc/extend.texi: Document __builtin_fpclassify.
-
-2008-05-22 Aldy Hernandez <aldyh@redhat.com>
-
- * omp-low.c (gate_expand_omp_ssa): Remove.
- (pass_expand_omp_ssa): Remove.
- (gate_expand_omp): Do not check for flag_openmp_ssa.
- * common.opt (-fopenmp-ssa): Remove.
- * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
-
-2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.opt (mfixed-range): New option.
- * config/sh/sh-protos.h (sh_fix_range): Declare.
- * config/sh/sh.c (sh_fix_range): New function.
- * config/sh/sh.h (sh_fixed_range_str): Declare.
- (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
- is not empty.
- * doc/invoke.texi (SH Options): Document -mfixed-range.
-
-2008-05-22 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
- it before the redeclaration.
-
-2008-05-22 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (get_sequence_length): Add new function.
- (expand_prologue, expand_epilogue): Remove duplicate code.
-
-2008-05-22 Rafael Espíndola <espindola@google.com>
-
- * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
- sharing.
-
-2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
- * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
-
- * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
- UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
- (vect_update_misalignment_for_peel): Likewise.
- (vector_alignment_reachable_p): Likewise.
- * tree-vect-transform.c (vectorizable_load): Likewise.
- * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
- (get_vectype_for_scalar_type): Pass mode of scalar_type
- to UNITS_PER_SIMD_WORD.
-
- * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
- * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
- * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
- * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
- * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
-
-2008-05-22 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36293
- * tree-vect-transform.c (vect_transform_strided_load): Don't check
- if the first load must be skipped because of a gap.
-
-2008-05-22 Richard Guenther <rguenther@suse.de>
-
- * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
- more cases of offset disambiguation that is possible if
- strict-aliasing rules apply.
- * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
- for basic offset and type-based disambiguation.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
- ix86_expand_vector_set on V16QImode for SSE4.1.
-
-2008-05-21 Tom Tromey <tromey@redhat.com>
-
- * c.opt (Wimport): Mark as undocumented.
- * doc/invoke.texi (Option Summary): Don't mention -Wimport or
- -Wno-import.
- (Warning Options): Likewise.
- * doc/cppopts.texi: Don't mention -Wimport.
-
-2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36287
- PR tree-optimization/36286
- * lambda-code.c (build_access_matrix): Do not use the loop->num
- for computing the number of induction variables: use the loop depth
- instead.
-
-2008-05-21 Kai Tietz <kai.tietz@onevision.com>
-
- PR/36280
- * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
- option -f(no-)leading-underscore.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_general): Use
- GET_MODE_NUNITS (mode).
-
-2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
-
- * doc/invoke.texi: Add cpu_type's 464 and 464fp.
- (-mmulhw): Add 464 to description.
- (-mdlmzb): Likewise.
- * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
- * config/rs6000/rs6000.c (processor_target_table): Add 464 and
- 464fp entries.
- * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
- * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
- * config/rs6000/rs6000.md: Update comments for 464.
-
-2008-05-21 Janis Johnson <janis187@us.ibm.com>
-
- * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (vec_extractv4sf): Removed.
- (vec_extractv2df): Likewise.
- (vec_extractv2di): Likewise.
- (vec_extractv4si): Likewise.
- (vec_extractv8hi): Likewise.
- (vec_extractv16qi): Likewise.
- (vec_extract<mode>): New.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (vec_setv4sf): Removed.
- (vec_setv2df): Likewise.
- (vec_setv2di): Likewise.
- (vec_setv4si): Likewise.
- (vec_setv8hi): Likewise.
- (vec_setv16qi): Likewise.
- (vec_set<mode>): New.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_general): Remove
- goto for vec_concat and vec_interleave.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (vec_initv4sf): Removed.
- (vec_initv2df): Likewise.
- (vec_initv2di): Likewise.
- (vec_initv4si): Likewise.
- (vec_initv8hi): Likewise.
- (vec_initv16qi): Likewise.
- (vec_init<mode>): New.
-
-2008-05-21 Joseph Myers <joseph@codesourcery.com>
-
- * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
-
-2008-05-21 Tom Tromey <tromey@redhat.com>
-
- * ggc-zone.c (lookup_page_table_if_allocated): New function.
- (zone_find_object_offset): Likewise.
- (gt_ggc_m_S): Likewise.
- (highest_bit): Likewise.
- * ggc-page.c (gt_ggc_m_S): New function.
- * stringpool.c (string_stack): Remove.
- (init_stringpool): Update.
- (ggc_alloc_string): Use ggc_alloc.
- (maybe_delete_ident): New function.
- (ggc_purge_stringpool): Likewise.
- (gt_ggc_m_S): Remove.
- * ggc-common.c (ggc_protect_identifiers): New global.
- (ggc_mark_roots): Call ggc_purge_stringpool. Use
- ggc_protect_identifiers.
- * ggc.h (ggc_protect_identifiers): Declare.
- (gt_ggc_m_S): Update.
- (ggc_purge_stringpool): Declare.
- * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
- * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
- special case.
- (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
-
-2008-05-21 David S. Miller <davem@davemloft.net>
-
- * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
- tmake_file.
-
-2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
-
- * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
- once finished.
-
-2008-05-20 David Daney <ddaney@avtrex.com>
-
- * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
- UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
- (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
- UNSPEC_UPDATE_GOT_VERSION): Renumber.
- (optab, insn): Add 'plus' and 'minus' to define_code_attr.
- (atomic_hiqi_op): New define_code_iterator.
- (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
- mips_expand_compare_and_swap_12.
- (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
- MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
- (sync_<optab><mode>, sync_old_<optab><mode>,
- sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
- sync_new_nand<mode>): New define_expands for HI and QI mode operands.
- (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
- sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
- (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
- (test_and_set_12): New insn.
- (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
- sync_new_<optab><mode>, sync_old_nand<mode>,
- sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
- clobber to operand 0 for SI and DI mode insns.
- * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
- mips_gen_fn_4): New typedefs.
- (mips_gen_fn_ptrs): Define new union type.
- (mips_expand_compare_and_swap_12): Remove declaration.
- (mips_expand_atomic_qihi): Declare function.
- * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
- (mips_expand_atomic_qihi): ... this. Use new generator function
- parameter.
- * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
- (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
- (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
- MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
- MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
- MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
- MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
- MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
- MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
- MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
- New macros.
-
-2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
- the missing break.
-
-2008-05-20 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
- * config/avr/avr.c (avr_OS_main_function_p): Add new function.
- (avr_attribute_table): Add 'OS_main' function attribute.
- (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
- functions with 'OS_main' attribute.
-
-2008-05-20 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35204
- * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
- helper, split out from ...
- (DFS): ... here. Make the DFS walk non-recursive.
-
-2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
+2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
- PR tree-optimization/36181
- * tree-parloops.c (loop_has_vector_phi_nodes): New.
- (parallelize_loops): Don't parallelize when the loop has vector
- phi nodes.
-
-2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-loop-linear.c (gather_interchange_stats): Look in the access
- matrix, and never look at the tree representation of the memory
- accesses.
- (linear_transform_loops): Computes parameters and access matrices.
- * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
- when fails.
- (access_matrix_get_index_for_parameter): New.
- * tree-data-ref.h (struct access_matrix): New.
- (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
- AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
- AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
- am_vector_index_for_loop): New.
- (struct data_reference): Add field access_matrix.
- (DR_ACCESS_MATRIX): New.
- (compute_data_dependences_for_loop): Update declaration.
- (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
- * lambda.h (lambda_vector_vec_p): Declared.
- * lambda-code.c: Depend on pointer-set.h.
- (lambda_collect_parameters_from_af, lambda_collect_parameters,
- av_for_af_base, av_for_af, build_access_matrix,
- lambda_compute_access_matrices): New.
- * Makefile.in (lambda-code.o): Depend on pointer-set.h.
-
-2008-05-20 Joseph Myers <joseph@codesourcery.com>
-
- * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
- $SOURCEDIR/include.
-
-2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36206
- * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
- FOLD_CONVERSIONS.
- (instantiate_scev_1): Rename flags to fold_conversions.
- Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
- outeside instantiation_loop.
- * tree-chrec.h (evolution_function_is_affine_in_loop): New.
- (evolution_function_is_affine_or_constant_p): Removed.
- * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
- instantiate_scev.
- (analyze_siv_subscript): Pass in the loop nest number.
- Call evolution_function_is_affine_in_loop instead of
- evolution_function_is_affine_p.
- (analyze_overlapping_iterations): Pass in the loop nest number.
-
-2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36206
- * tree-chrec.h (chrec_fold_op): New.
- * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
- and other trees.
-
-2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
-
- * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
- (DIRS_EQ): New.
- (remove_duplicates): Do not set inode on non-inode systems.
- Use DIRS_EQ.
-
-2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
-
- * config.gcc (tm_file): Update comments about relative pathnames.
-
-2008-05-20 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
- * tree-ssa-sccvn.c (process_scc): Likewise.
- * tree-ssa-sink.c (execute_sink_code): Likewise.
- * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
- * tree-vrp.c (process_assert_insertions): Likewise.
- * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
- (perform_tree_ssa_dce): Likewise.
- * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
- (dump_dominator_optimization_stats): Likewise.
- * tree-vectorizer.c (vectorize_loops): Likewise.
-
-2008-05-20 Richard Guenther <rguenther@suse.de>
-
- * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
-
-2008-05-20 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
- (ix86_i386elf_return_in_memory): Likewise.
- (ix86_i386interix_return_in_memory): Likewise.
- * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
- (SUBTARGET_RETURN_IN_MEMORY): New.
- * config/i386/i386elf.h: Likewise.
- * config/i386/ptx4-i.h: Likewise.
- * config/i386/sol2-10.h: Likewise.
- * config/i386/sysv4.h: Likewise.
- * config/i386/vx-common.h: Likewise.
- * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
- * config/i386/i386.c (ix86_return_in_memory): Made static and
- make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
- (ix86_i386elf_return_in_memory): Removed.
- (ix86_i386interix_return_in_memory): Removed.
- (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
- * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
-
-2008-05-20 Alexandre Oliva <aoliva@redhat.com>
-
- * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
-
-2008-05-19 Xinliang David Li <davidxl@google.com>
-
- * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
- * opts.c: Ditto.
- * common.opt: Ditto.
- * doc/invoke.texi: Ditto.
-
-2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
- (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
-
-2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_concat): Change
- sizes of operand array from 8/4 to 4/2.
- (ix86_expand_vector_init_general): Change size of operand array
- from 32 to 16. Remove op0, op1 and half_mode.
-
-2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_concat): New.
- (ix86_expand_vector_init_interleave): Likewise.
- (ix86_expand_vector_init_general): Use them. Assert
- word_mode == SImode when n_words == 4.
-
-2008-05-19 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (ix86_secondary_reload): New static function.
- (TARGET_SECONDARY_RELOAD): New define.
- * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
- * config/i386/i386.md (reload_outqi): Remove.
-
-2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- PR middle-end/35509
- * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
- Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
- (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
- (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
- (fold_builtin_1): Likewise.
- * builtins.def (BUILT_IN_ISINF_SIGN): New.
- c-common.c (check_builtin_function_arguments): Handle
- BUILT_IN_ISINF_SIGN.
- * doc/extend.texi: Document __builtin_isinf_sign.
- * fold-const.c (operand_equal_p): Handle COND_EXPR.
-
-2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
- EH cleanup at the end of the pass, search for those that have been
- turned into forwarder blocks and do the cleanup on their successor.
-
-2008-05-18 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_gimple_expr): Allow conversions from
- pointers to sizetype and vice versa.
-
-2008-05-18 Xinliang David Li <davidxl@google.com>
-
- * gcc/tree-ssa-dce.c: Coding style fix.
- (check_pow): Documentation comment.
- (check_log): Documenation comment. Coding style fix.
- (is_unnecessary_except_errno_call): Ditto.
- (gen_conditions_for_pow): Ditto.
- (gen_conditions_for_log): Ditto.
- (gen_shrink_wrap_conditions): Ditto.
- (shrink_wrap_one_built_in_calls): Ditto.
- * gcc/doc/invoke.texi: Better documentation string.
- * ChangeLog: Fix wrong change log entries from
- May 17 checkin on function call DCE.
-
-2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
-
-2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
- * df-problems.c (simulation routines): Fixed block comment to
- properly say how to add forwards scanning functions.
-
-2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-inline.c (setup_one_parameter): Remove dead code.
-
-2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
- a BIT_AND_EXPR only for an INTEGER_TYPE.
-
-2008-05-17 Xinliang David Li <davidxl@google.com>
-
- * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
- (check_pow, check_log, is_unnecessary_except_errno_call): New
- functions to check for eliminating math functions that are pure
- except for setting errno.
- (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
- general condition expressions for shrink-wrapping pow/log calls.
- (gen_shrink_wrap_conditions): Ditto.
- (shrink_wrap_one_built_in_call): Ditto.
- (shrink_wrap_conditional_dead_built_in_calls): Ditto.
- (mark_operand_necessary): If debugging, output if OP is necessary.
- (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
- unnecessary.
- * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
- opt level >= 2.
- * gcc/common.opt: New user flag -ftree-builtin-dce.
- * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
-
-2008-05-16 David S. Miller <davem@davemloft.net>
-
- * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
- * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
-
-2008-05-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36246
- * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
-
-2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * ifcvt.c (dead_or_predicable): Rename
- df_simulate_one_insn_backwards to df_simulate_one_insn.
- * recog.c (peephole2_optimize): Ditto.
- * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
- Ditto.
- * df.h: Rename df_simulate_one_insn_backwards to
- df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
- * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
- scanning of defs and uses.
- (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
- (df_simulate_one_insn_forwards): Removed.
-
-2008-05-16 Doug Kwan <dougkwan@google.com>
-
- * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
- QNaN & SNaN.
- (real_from_string): Handle NaNs and Inf as approriate.
-
-2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
-
- * doc/gty.texi (Source Files Containing Type Information): Note
- that headers should appear first in the gtfiles list.
-
-2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * tree.def (COND_EXEC): Properly documented this code.
-
-2008-05-16 Diego Novillo <dnovillo@google.com>
-
- * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
- * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
- the new field.
-
-2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * tree-ssa-dse (max_stmt_uid): Removed.
- (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
- tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
- * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
- * function.h (cfun.last_stmt_uid): New field.
- * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
- gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
- New functions.
- * tree-dfa.c (renumber_gimple_stmt_uids): New function.
- (create_stmt_ann): Initialize the ann->uid field.
- * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
- with new calls.
- * tree-flow.h (renumber_gimple_stmt_uids): New function.
-
-2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
-
- * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
- * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
- (init_empty_tree_cfg): Call it.
-
-2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
- Update all users.
-
-2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/invoke.text (-fdump-tree-*-verbose): New option.
- * tree-dump.c (dump_options): New verbose option.
- * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
- Add verbose dump.
- * tree-pass.h (TDF_VERBOSE): New dump flag.
- * print-tree.c (print_node): Added code to be able to print PHI_NODES.
- (tree-flow.h): Added include.
- * Makefile.in (print-tree.o): Added TREE_FLOW_H.
-
-2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
-
- From Jie Zhang <jie.zhang@analog.com>
- * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
- MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
- mcpu=bf561-none and mcpu=bf561-0.2.
- * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
- MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
- * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
- MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
- * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
- * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
- (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
- option.
- * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
- (cputype_selected): Remove.
- (bfin_handle_option): Don't use cputype_selected.
- (override_options): When no mcpu option, enable all workarounds.
- Don't use bfin_workarounds.
- * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
- processor type.
- (DEFAULT_CPU_TYPE): Don't define.
-
-2008-05-16 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
- on deletion of the last stmt.
-
-2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
- V8HImode for SSE2 and V16QImode for SSE4.1.
-
-2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * cgraph.h (compute_inline_parameters): Made public.
- * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
- variable_generate_summary, function_write_summary,
- variable_write_summary, variable_read_summary. Added generate_summary,
- write_summary, read_summary.
- * cgraphunit.c (cgraph_process_new_functions): Changed call from
- pass_ipa_inline.function_generate_summary, to
- compute_inline_parameters.
- * ipa-inline.c (compute_inline_parameters): Made public and added
- node parameter.
- (compute_inline_parameters_for_current): New function.
- (pass_inline_param): Now calls compute_inline_parameters_for_current.
- (inline_generate_summary): Removed parameter and made to loop over
- all cgraph nodes.
- (pass_ipa_inline): Updated for new IPA_PASS structure.
- * passes.c (execute_ipa_summary_passes): Now is called once per
- pass rather than once per node*pass.
-
-2008-05-15 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
- avr_have_mul_p, avr_asm_only_p): Remove variables.
- (avr_override_options): Remove initialization of removed variables.
- (avr_file_start): Convert removed variables to fields of
- 'struct base_arch_s *avr_current_arch'.
- * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
- (AVR_HAVE_MUL): (Ditto.).
- (AVR_HAVE_MOVW): (Ditto.).
- (AVR_HAVE_LPMX): (Ditto.).
- (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
- avr_asm_only_p): Remove declaration.
-
-2008-05-15 Diego Novillo <dnovillo@google.com>
-
- * config/arm/arm.c (arm_return_in_memory): Fix return type.
- * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
-
-2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
-
- PR middle-end/36194
- * combine.c (check_conversion): Rename back to check_promoted_subreg.
- Don't call record_truncated_value from here.
- (record_truncated_value): Turn it into a for_each_rtx callback.
- (record_truncated_values): New function.
- (combine_instructions): Call note_uses with record_truncated_values.
- Change name of check_conversion to check_promoted_subreg.
-
-2008-05-15 Janis Johnson <janis187@us.ibm.com>
-
- * doc/sourcebuild.texi: Document support for torture tests.
-
-2008-05-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
- to alternative 4 of operand 2.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- * tree-pass.h (current_pass): Declare.
- (get_pass_for_id): Likewise.
- * passes.c (passes_by_id, passes_by_id_size): New globals.
- (set_pass_for_id): New function.
- (get_pass_for_id): Likewise.
- (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
- (execute_function_todo): Flush per function statistics.
- * toplev.c (compile_file): Init statistics.
- (general_init): Do early statistics initialization.
- (finalize): Finish statistics.
- * statistics.h (statistics_early_init): Declare.
- (statistics_init): Likewise.
- (statistics_fini): Likewise.
- (statistics_fini_pass): Likewise.
- (statistics_counter_event): Likewise.
- (statistics_histogram_event): Likewise.
- * statistics.c: New file.
- * Makefile.in (OBJS-common): Add statistics.o.
- (statistics.o): Add dependencies.
- * doc/invoke.texi (-fdump-statistics): Document.
-
- * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
- (insert): Likewise.
- (execute_pre): Use statistics_counter_event.
- * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
- (substitute_and_fold): Increment it. Use statistics_counter_event.
-
-2008-05-15 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
-
- * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
- * tree-ssa-alias.c (new_type_alias): Remove references to
- sub-variables from comment.
- * tree-ssa-operands.c (swap_tree_operands): Likewise.
-
-2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
- attribute to 1 only for insertps alternative.
-
-2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.md (loadbytes): New pattern.
- * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
- (bfin_init_builtins): Initialize it.
- (bdesc_1arg): Add it.
-
-2008-05-15 Sa Liu <saliu@de.ibm.com>
-
- * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
- * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
- * testsuite/lib/target-supports.exp: Add
- check_effective_target_fortran_integer_16.
-
-2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
- * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
- * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
- (TARGET_RETURN_IN_MEMORY): Define.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36244
- * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
- * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
- represent unmodifiable vars.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- * tree-dfa.c (refs_may_alias_p): Allow all kinds of
- INDIRECT_REF and TARGET_MEM_REF.
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
- TARGET_MEM_REF.
-
-2008-05-15 Uros Bizjak <ubizjak@gmail.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
- (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
- for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
- insn alternatives. Add missing alternatives.
- (*vec_concatv2di_rex64_sse4_1): Likewise.
- (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
- (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
- Require TARGET_SSE.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36009
- PR tree-optimization/36204
- * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
- (determine_invariantness_stmt): Record the loop a store is
- always executed in.
- * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
- dependency.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34330
- * tree-ssa-alias.c (get_smt_for): Only assert that accesses
- through the pointer will alias the SMT.
-
-2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
-
- * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
-
-2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
-
-2008-05-14 Michael Meissner <michael.meissner@amd.com>
- Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
-
- * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
- OTI_vrotl, OTI_vrotr to support vector/vector shifts.
- (vashl_optab): New optab for vector/vector shifts.
- (vashr_optab): Ditto.
- (vlshr_optab): Ditto.
- (vrotl_optab): Ditto.
- (vrotr_optab): Ditto.
- (optab_subtype): New enum for optab_for_tree_code call.
- (optab_for_tree_code): Add enum optab_subtype argument.
-
- * optabs.c (optab_for_tree_code): Take an additional argument to
- distinguish between a vector shift by a scalar and vector shift by
- a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
- shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
- vector shift by a vector.
- (expand_widen_pattern_expr): Pass additional argument to
- optab_for_tree_code.
-
- * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
- vrotl_optab, vrotr_optab.
-
- * expr.c (expand_expr_real_1): Update calls to
- optab_for_tree_code to distinguish between vector shifted by a
- scalar and vector shifted by a vector.
- * tree-vectorizer.c (supportable_widening_operation): Ditto.
- (supportable_narrowing_operation): Ditto.
- * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
- * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
- * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
- (vect_create_epilog_for_reduction): Ditto.
- (vectorizable_reduction): Ditto.
- (vectorizable_operation): Ditto.
- (vect_strided_store_supported): Ditto.
- (vect_strided_load_supported): Ditto.
- * tree-vect-generic.c (expand_vector_operations_1): Ditto.
- * expmed.c (expand_shift): Ditto.
-
- * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
- scalar type.
- (ashr@var{m}3): Ditto.
- (vashl@var{m}3): Document new vector/vector shift standard name.
- (vashr@var{m}3): Ditto.
- (vlshr@var{m}3): Ditto.
- (vrotl@var{m}3): Ditto.
- (vrotr@var{m}3): Ditto.
-
- * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
- (PPERM_INVERT): Ditto.
- (PPERM_REVERSE): Ditto.
- (PPERM_REV_INV): Ditto.
- (PPERM_ZERO): Ditto.
- (PPERM_ONES): Ditto.
- (PPERM_SIGN): Ditto.
- (PPERM_INV_SIGN): Ditto.
- (PPERM_SRC1): Ditto.
- (PPERM_SRC2): Ditto.
-
- * config/i386/sse.md (mulv2di3): Add SSE5 support.
- (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
- allows a memory operand to be the value being added, and split it
- to improve vectorization.
- (sse5_pmacsdqh_mem): Ditto.
- (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
- (sse5_mulv2div2di3_high): Ditto.
- (vec_pack_trunc_v8hi): Add SSE5 pperm support.
- (vec_pack_trunc_v4si): Ditto.
- (vec_pack_trunc_v2di): Ditto.
- (sse5_pcmov_<mode>): Remove code that tried to use use
- andps/andnps instead of pcmov.
- (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
- pmacsdqh instructions.
- (vec_widen_smult_lo_v4si): Ditto.
-
- * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
- (PPERM_INVERT): Ditto.
- (PPERM_REVERSE): Ditto.
- (PPERM_REV_INV): Ditto.
- (PPERM_ZERO): Ditto.
- (PPERM_ONES): Ditto.
- (PPERM_SIGN): Ditto.
- (PPERM_INV_SIGN): Ditto.
- (PPERM_SRC1): Ditto.
- (PPERM_SRC2): Ditto.
- (ix86_expand_sse_movcc): Move the SSE5 test after the if
- true/false tests.
- (ix86_expand_int_vcond): If SSE5 generate all possible integer
- comparisons.
- (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
- says ignore whether the last reference is a memory operand.
-
-2008-05-14 Michael Meissner <michael.meissner@amd.com>
- Paolo Bonzini <bonzini at gnu dot org>
-
- * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
- shift patterns.
-
- * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
- (vlshr<mode>3): Rename from vlshr<mode>3.
- (vashr<mode>3): Rename from vashr<mode>3.
- (mulv4sf3): Change the names of vector shift patterns.
- (mulv4si3): Ditto.
- (negv4sf2): Ditt.
-
- * config/spu/spu.c (spu_initialize_trampoline): Rename vector
- shift insns.
-
- * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
- (SI_SHLHI): Ditto.
- (SI_SHL): Ditto.
- (SI_SHLI): Ditto.
- (SI_ROTH): Ditto.
- (SI_ROTHI): Ditto.
- (SI_ROT): Ditto.
- (SI_ROTI): Ditto.
- (SPU_RL_0): Ditto.
- (SPU_RL_1): Ditto.
- (SPU_RL_2): Ditto.
- (SPU_RL_3): Ditto.
- (SPU_RL_4): Ditto.
- (SPU_RL_5): Ditto.
- (SPU_RL_6): Ditto.
- (SPU_RL_7): Ditto.
- (SPU_SL_0): Ditto.
- (SPU_SL_1): Ditto.
- (SPU_SL_2): Ditto.
- (SPU_SL_3): Ditto.
- (SPU_SL_4): Ditto.
- (SPU_SL_5): Ditto.
- (SPU_SL_6): Ditto.
- (SPU_SL_7): Ditto.
-
- * config/spu/spu.md (v): New iterator macro to add v for vector types.
- (floatunssidf2_internal): Change vector/vector shift names.
- (floatunsdidf2_internal): Ditto.
- (mulv8hi3): Ditto.
- (ashrdi3): Ditto.
- (ashrti3): Ditto.
- (cgt_df): Ditto.
- (cgt_v2df): Ditto.
- (dftsv): Ditto.
- (vashl<mode>3): Rename from ashl<mode>3.
- (vashr<mode>3): Rename from ashr<mode>3.
- (vlshr<mode>3): Rename from lshr<mode>3.
- (vrotl<mode>3): Rename from rotl<mode>3.
-
-2008-05-14 Michael Meissner <michael.meissner@amd.com>
-
- PR target/36224
- * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
- multiply gives the wrong value when doing widening multiplies.
- (vec_widen_smult_lo_v4si): Ditto.
-
-2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
- LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
- emit_library_call_value.
- * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
- * tree.h (ECF_LIBCALL_BLOCK): Removed.
- * calls.c (initialize_argument_information, precompute_arguments,
- expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
- (precompute_arguments): Removed flags parameter.
- * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
-
-2008-05-14 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
- Make sure to register the store if the use is a PHI_NODE.
-
-2008-05-14 Olivier Hainque <hainque@adacore.com>
-
- * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
- memory if the component is to be referenced in BLKmode according
- to get_inner_reference.
-
-2008-05-14 Adam Nemet <anemet@caviumnetworks.com>
-
- * calls.c (emit_library_call_value_1): Restore code clearing
- ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
-
-2008-05-14 Olivier Hainque <hainque@adacore.com>
- Nicolas Roche <roche@adacore.com>
-
- * configure.ac: Add support for a "gcc_subdir" variable in
- config-lang.in, to denote a subdirectory where the language/GCC
- integration files are to be found.
- * configure: Regenerate.
-
-2008-05-14 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36098
- * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
- value for the first load in the group in case of a gap.
- (vect_build_slp_tree): Check that there are no gaps in loads.
-
-2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
- * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
- expand_copysign_bit, ): Change call to emit_no_conflict_block to
- emit_insn and remove unneeded code to construct extra args.
- (emit_no_conflict_block): Removed.
- * optabls.h: (emit_no_conflict_block): Removed.
- * cse.c (cse_extended_basic_block): Remove search for
- REG_NO_CONFLICT note.
- * global.c: Removed incorrect comment added in revision 117.
- * expr.c (convert_move): Change call to emit_no_conflict_block to
- emit_insn.
- * recog.c: Change comments so that they do not mention
- REG_NO_CONFLICT.
- * local_alloc.c (combine_regs): Removed last parameter.
- (no_conflict_p): Removed.
- (block_alloc): Removed note, no_conflict_combined_regno and set
- local vars. Removed all code to process REG_NO_CONFLICT blocks.
- (combine_regs): Removed already_dead and code to look for
- REG_NO_CONFLICT notes.
- * lower_subreg (remove_retval_note): Removed code to look for
- REG_NO_CONFLICT block.
- (resolve_reg_notes): Removed REG_NO_CONFLICT case.
- (resolve_clobber): Remove code to process libcalls that have
- REG_NO_CONFLICT notes.
- * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
- case.
- * combine.c (can_combine_p, distribute_notes): Removed
- REG_NO_CONFLICT case.
- * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
- to emit_insns.
- * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
- * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
- Ditto.
- * reg-notes.def (NO_CONFLICT): Removed.
-
-2008-05-14 David S. Miller <davem@davemloft.net>
-
- * config/sparc/sparc.c (sparc_profile_hook): If
- NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
- * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
- * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
-
-2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
-
-2008-05-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36222
- * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
- and op1 expansion before vector concat to have less live pseudos.
-
-2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
- ix86_expand_vector_set if supported.
-
-2008-05-13 Diego Novillo <dnovillo@google.com>
- Kenneth Zadeck <zadeck@naturalbridge.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
-
- * tree.h (init_phinodes, fini_phinodes, release_phi_node,
- phinodes_print_statistics, init_ssanames, fini_ssanames,
- make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
- release_ssa_name, release_defs, replace_ssa_name_symbol,
- ssanames_print_statistics): Move ...
- * tree-flow.h: ... here.
- * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
- Use FN instead of cfun.
- (make_ssa_name_fn): Rename from make_ssa_name.
- (pass_release_ssa_names): Add TODO_dump_func to finish flags.
- * tree-flow-inline.h (make_ssa_name): Move from
- tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
- * omp-low.c (expand_omp_parallel):
- * tree-flow-inline.h (redirect_edge_var_map_result):
- * tree-ssa.c (init_tree_ssa): Add argument FN.
- Use it instead of cfun. Update all users.
-
-2008-05-13 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/22168:
- * doc/cpp.texi (Top): Update menu.
- (Alternatives to Wrapper #ifndef): New node.
- (Other Directives): Document deprecation.
- (Obsolete Features): Remove menu.
- (Assertions): Merge node into Obsolete Features.
- (Obsolete once-only headers): Move earlier; rename to Alternatives
- to Wrapper #ifndef.
- * doc/cppopts.texi: Update.
- * c.opt (Wdeprecated): Enable for C and ObjC.
- * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
- (C++ Dialect Options): Move -Wno-deprecated from here to...
- (Warning Options): ... here.
-
-2008-05-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36227
- * fold-const.c (fold_sign_changed_comparison): Do not allow
- changes in pointer-ness.
-
-2008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/24713
- * config/sh/sh.c (sh_expand_prologue): Don't clear
- RTX_FRAME_RELATED_P for push insns.
-
-2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
-
-2008-05-12 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (machine_function): Add 'is_leaf' field.
- * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
- Use 'machine->is_leaf' instead of 'leaf_func_p'.
-
-2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
- (*vec_concatv4sf_sse): This.
- (*sse2_concatv2si): Renamed to ...
- (*vec_concatv2si_sse2): This.
- (*sse1_concatv2si): Renamed to ...
- (*vec_concatv2si_sse): This.
- (*vec_concatv2di_rex): Renamed to ...
- (*vec_concatv2di_rex64): This.
- (*vec_concatv2si_sse4_1): New.
- (*vec_concatv2di_rex64_sse4_1): Likewise.
-
-2008-05-12 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/36111
- * recog.c (validate_replace_rtx_1): Unshare new RTL expression
- that was created for swappable operands.
-
-2008-05-12 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/36001
- * Makefile.in: Substitute GNATMAKE and GNATBIND.
- * configure.ac: Add call to ACX_PROG_GNAT.
-
-2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
-
- * optc-gen.awk: Fix comment typo.
-
-2008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * pretty-print.c (pp_integer_with_precision): Use
- HOST_LONG_LONG_FORMAT.
-
-2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
-
-2008-05-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (bdesc_ptest): Removed.
- (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
- (bdesc_args): Add __builtin_ia32_ptestz128,
- __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
- (ix86_expand_builtin): Updated.
-
-2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
-
- * tree-cfg.c (valid_fixed_convert_types_p): New function.
- (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
-
-2008-05-10 Uros Bizjak <ubizjak@gmail.com>
-
- * value-prof.c (interesting_stringop_to_profile): Do not
- return early for BUILT_IN_MEMPCPY.
-
-2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
-
- * calls.c (expand_call): Don't use callgraph to increase
- preferred_stack_boundary.
-
- * cgraph.h (cgraph_rtl_info): Use unsigned on
- preferred_incoming_stack_boundary.
-
- * final.c (rest_of_clean_state): Use unsigned on
- preferred_stack_boundary.
-
-2008-05-09 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/22231:
- * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
- proceeding.
-
-2008-05-09 Uros Bizjak <ubizjak@gmail.com>
-
- PR tree-optimization/36129
- * tree-ssa-ccp.c: Include value-prof.h.
- (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
- built-in function was folded to a constant.
- * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
-
-2008-05-09 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-scalar-evolution.c: Document instantiate_scev.
- (instantiate_parameters_1): Renamed instantiate_scev_1.
- Don't use the same loop for instantiation_loop and evolution_loop.
- (instantiate_scev): New.
- (instantiate_parameters): Moved...
- (resolve_mixers): Update call to instantiate_scev_1 to pass the
- same loop twice. Maintains the semantics for this function.
- * tree-scalar-evolution.h (instantiate_scev): Declare.
- (instantiate_parameters): ...here. Now static inline.
- * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
- instead of resolve_mixers.
-
-2008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * rtl-factoring.c (collect_pattern_seqs): Fix typo.
-
-2008-05-09 Tomas Bily <tbily@suse.cz>
-
- * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
- * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
- * tree-ssa-structalias.c (get_constraint_for): Likewise.
- * c-common.c (c_common_truthvalue_conversion): Likewise.
- * tree-object-size.c (compute_object_offset): Likewise.
- * tree-inline.c (estimate_num_insns_1): Likewise.
- * varasm.c (const_hash_1, compare_constant, copy_constant)
- (compute_reloc_for_constant, output_addressed_constants)
- (initializer_constant_valid_p): Likewise.
- * c-omp.c (check_omp_for_incr_expr): Likewise.
- * gimplify.c (gimplify_expr): Likewise.
- * c-typeck.c (c_finish_return): Likewise.
- * tree-vectorizer.c (supportable_widening_operation)
- (supportable_narrowing_operation): Likewise.
- * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
- * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
- * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
- * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
- (descr_info_loc): Likewise.
- * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
- * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
- (fold_unary): Likewise.
- * builtins.c (get_pointer_alignment): Likewise.
- * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
- (instantiate_parameters_1): Likewise.
- * tree.c (expr_align, stabilize_reference): Likewise.
- * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
- * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
- * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
- * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
- * config/alpha/alpha.c (va_list_skip_additions): Likewise.
- * c-common.c (c_alignof_expr, check_function_arguments_recurse):
- Likewise.
- * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
- * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
- * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
- (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
- (forward_propagate_comparison)
- (tree_ssa_forward_propagate_single_use_vars): Likewise.
- * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
- * emit-rtl.c (component_ref_for_mem_expr)
- (set_mem_attributes_minus_bitpos): Likewise.
- * tree-ssa-phiopt.c (conditional_replacement): Likewise.
- * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
- Likewise.
- * c-typeck.c (default_function_array_conversion, build_indirect_ref)
- (build_function_call, pointer_diff, build_compound_expr)
- (c_finish_return): Likewise.
- * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
- * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
- Likewise.
- * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
- * expr.c (is_aligning_offset): Likewise.
- * tree-ssa-alias.c (is_escape_site): Likewise.
- * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
- (check_all_va_list_escapes): Likewise.
- * tree-ssa-loop-ivopts.c (determine_base_object)
- (determine_common_wider_type): Likewise.
- * dojump.c (do_jump): Likewise.
- * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
- * tree-gimple.c (is_gimple_cast): Likewise.
- * fold-const.c (decode_field_reference, )
- (fold_sign_changed_comparison, fold_unary, fold_comparison)
- (fold_binary): Likewise.
- * tree-ssa-alias-warnings.c (find_alias_site_helper)
- (already_warned_in_frontend_p): Likewise.
- * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
- * tree.c (really_constant_p, get_unwidened): Likewise.
- * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
- * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
- * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
- Likewise.
- * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
- CONVERT_EXPR_P.
- (CONVERT_EXPR_P): Define.
- (CASE_CONVERT): Define.
-
-2008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR middle-end/36117
- * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
- (delete_unmarked_insns): When deleting a call, call
- delete_unreachable_blocks.
- * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
- RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
- (-ftree-salias): Likewise.
- (salias-max-implicit-fields): Remove param documentation.
- (salias-max-array-elements): Likewise.
- * tree-pass.h (pass_create_structure_vars): Remove.
- * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
- (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
- * tree-ssa-alias.c (create_structure_vars): Remove.
- (gate_structure_vars): Likewise.
- (pass_create_structure_vars): Likewise.
- (gate_build_alias): Likewise.
- (pass_build_alias): Adjust to run always and dump the function.
- * common.opt (ftree-salias): Hide.
- * passes.c (init_optimization_passes): Remove
- pass_create_structure_vars, adjust comment.
- * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
- (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
- * opts.c (decode_options): Do not set flag_tree_salias.
- (common_handle_option): Add OPT_ftree_salias to the backward
- compatibility section.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- * tree-flow-inline.h (var_can_have_subvars): Move ...
- * tree-ssa-structalias.c (var_can_have_subvars): ... here.
- * tree-flow.h (var_can_have_subvars): Remove.
- (push_fields_onto_fieldstack): Remove.
- (sort_fieldstack): Likewise.
- (struct fieldoff): Move ...
- * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
- alias_set and base_for_components fields.
- (sort_fieldstack): Make static.
- (push_fields_onto_fieldstack): Likewise. Remove code that
- handles anything but RECORD_TYPEs. Remove alias_set and
- base_for_components handling.
- (create_variable_info_for): Adjust.
-
-2008-05-08 Seongbae Park <seongbae.park@gmail.com>
-
- * common.opt (Wframe-larger-than=): Shorten the help message
- to one line.
- * doc/invoke.texi (Wframe-larger-than=): Add more description.
-
-2008-05-08 Rafael Espíndola <espindola@google.com>
-
- * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
- trap.
- * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
- trap and that both operands are gimple values.
- (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
- * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
- is a fp operation.
-
-2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * read-rtl.c (join_c_conditions): Return the first string if the
- two strings are equal.
-
-2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * gensupport.h (pred_data): Add a "num_codes" field.
- (add_predicate_code): Declare.
- * gensupport.c (add_predicate_code): New function.
- (std_pred_table): Add an "allows_const_p" field.
- (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
- Remove the (incomplete) list of such codes from the codes field.
- (init_predicate_table): Use add_predicate_code. Add all
- RTX_CONST_OBJs if allows_const_p is true.
- * genrecog.c (process_define_predicate): Use add_predicate_code.
-
-2008-05-08 David Daney <ddaney@avtrex.com>
- Richard Sandiford <rsandifo@nildram.co.uk>
-
- * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
- special case of constant zero operands.
- * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
- old and new values. Special case constant zero values.
- * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
- fails.
- (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
- (MIPS_COMPARE_AND_SWAP_12_0): New macro.
-
-2008-05-08 Paolo Bonzini <bonzini@gnu.org>
-
- PR target/36090
- * simplify-rtx.c (simplify_plus_minus): Create CONST of
- similar RTX_CONST_OBJ before CONST_INT.
-
-2008-05-08 Steve Ellcey <sje@cup.hp.com>
-
- * stmt.c (expand_stack_restore): Change sa mode if needed.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
- return type to bool.
- (ix86_sol10_return_in_memory): Likewise.
- (ix86_i386elf_return_in_memory): Likewise.
- (ix86_i386interix_return_in_memory): Likewise.
- * config/i386/i386.c (ix86_return_in_memory): Likewise.
- (ix86_sol10_return_in_memory): Likewise.
- (ix86_i386elf_return_in_memory): Likewise.
- (ix86_i386interix_return_in_memory): Likewise.
-
-2008-05-08 Kai Tietz <kai.tietz@onevision.com>
-
- PR bootstrap/36180
- * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
- fndecl argument.
- (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
- * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
- declared in front.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
- * tree-data-ref.h (struct dr_alias): Remove subvars field.
- (DR_SUBVARS): Remove.
- * tree-dfa.c (dump_subvars_for): Remove.
- (debug_subvars_for): Likewise.
- (dump_variable): Do not dump subvars.
- (remove_referenced_var): Do not remove subvars.
- * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
- (lookup_subvars_for_var): Remove.
- (get_subvars_for_var): Likewise.
- (get_subvars_at): Likewise.
- (get_first_overlapping_subvar): Likewise.
- (overlap_subvar): Likewise.
- * tree-flow.h (subvar_t): Remove.
- (struct var_ann_d): Remove subvars field.
- * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
- argument. Remove special handling of SFTs.
- (compute_tag_properties): Likewise.
- (set_initial_properties): Likewise.
- (compute_call_clobbered): Likewise.
- (count_mem_refs): Likewise.
- (compute_memory_partitions): Likewise.
- (compute_flow_insensitive_aliasing): Likewise.
- (setup_pointers_and_addressables): Likewise.
- (new_type_alias): Likewise.
- (struct used_part): Remove.
- (used_portions): Likewise.
- (struct used_part_map): Likewise.
- (used_part_map_eq): Likewise.
- (used_part_map_hash): Likewise.
- (free_used_part_map): Likewise.
- (up_lookup): Likewise.
- (up_insert): Likewise.
- (get_or_create_used_part_for): Likewise.
- (create_sft): Likewise.
- (create_overlap_variables_for): Likewise.
- (find_used_portions): Likewise.
- (create_structure_vars): Likewise.
- * tree.def (STRUCT_FIELD_TAG): Remove.
- * tree.h (MTAG_P): Adjust.
- (struct tree_memory_tag): Remove base_for_components and
- unpartitionable flags.
- (struct tree_struct_field_tag): Remove.
- (SFT_PARENT_VAR): Likewise.
- (SFT_OFFSET): Likewise.
- (SFT_SIZE): Likewise.
- (SFT_NONADDRESSABLE_P): Likewise.
- (SFT_ALIAS_SET): Likewise.
- (SFT_UNPARTITIONABLE_P): Likewise.
- (SFT_BASE_FOR_COMPONENTS_P): Likewise.
- (union tree_node): Remove sft field.
- * alias.c (get_alias_set): Remove special handling of SFTs.
- * print-tree.c (print_node): Remove handling of SFTs.
- * tree-dump.c (dequeue_and_dump): Likewise.
- * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
- * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
- * tree-predcom.c (set_alias_info): Do not set subvars.
- * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
- * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
- * tree-ssa-operands.c (access_can_touch_variable): Likewise.
- (add_vars_for_offset): Remove.
- (add_virtual_operand): Remove special handling of SFTs.
- (add_call_clobber_ops): Likewise.
- (add_call_read_ops): Likewise.
- (get_asm_expr_operands): Likewise.
- (get_modify_stmt_operands): Likewise.
- (get_expr_operands): Likewise.
- (add_to_addressable_set): Likewise.
- * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
- * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
- * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
- * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
- (tree_code_size): Remove STRUCT_FIELD_TAG handling.
- (tree_node_structure): Likewise.
- * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
- handling of SFTs.
- (find_what_p_points_to): Likewise.
-
-2008-05-08 Sa Liu <saliu@de.ibm.com>
-
- * config/spu/spu.md: Fixed subti3 pattern.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36154
- * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
- sure to create a representative for trailing arrays for PTA.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36172
- * fold-const.c (operand_equal_p): Two objects which types
- differ in pointerness are not equal.
-
-2008-05-08 Kai Tietz <kai.tietz@onevision.com>
-
- * calls.c (compute_argument_block_size): Add argument tree fndecl.
- (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
- (emit_library_call_value_1): Add new variable fndecl initialized by
- NULL_TREE. It should be the decl type of orgfun, but this information
- seems not to be available here, so it uses the default calling abi.
- * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
- * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
- by TARGET_RETURN_IN_MEMORY.
- * config/i386/i386-interix.h: Likewise.
- * config/i386/i386.h: Likewise.
- * config/i386/i386elf.h: Likewise.
- * config/i386/ptx4-i.h: Likewise.
- * config/i386/sol2-10.h: Likewise.
- * config/i386/sysv4.h: Likewise.
- * config/i386/vx-common.h: Likewise.
- * config/cris/cris.h: Removed #if 0 clause.
- * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
- * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
- argument.
- (ix86_sol10_return_in_memory): Likewise.
- (ix86_i386elf_return_in_memory): New.
- (ix86_i386interix_return_in_memory): New.
- * config/mt/mt-protos.h (mt_return_in_memory): New.
- * config/mt/mt.c: Likewise.
- * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
- (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
- * config/bfin/bfin.h: Likewise.
- * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
- argument.
- * config/bfin/bfin.c: Likewise.
- * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
- * config/alpha/unicosmk.h: Likewise.
- * config/i386/cygming.h: Likewise.
- * config/iq2000/iq2000.h: Likewise.
- * config/mips/mips.h: Likewise.
- * config/mn10300/mn10300.h: Likewise.
- * config/rs6000/rs6000.h: Likewise.
- * config/score/score.h: Likewise.
- * config/spu/spu.h: Likewise.
- * config/v850/v850.h: Likewise.
- * defaults.h: Likewise.
- * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
- * expr.c (emit_block_move): Adjust use of
- OUTGOING_REG_PARM_STACK_SPACE.
- * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
- OUTGOING_REG_PARM_STACK_SPACE.
- * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
-
-2008-05-08 Jakub Jelinek <jakub@redhat.com>
-
- * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
- on OMP_RETURN for OMP_FOR.
-
- PR debug/35896
- * dwarf2out.c (dw_expand_expr, common_check): Removed.
- (fortran_common): New function.
- (gen_variable_die): Call fortran_common instead of common_check,
- adjust for it returning tree instead of rtx. Formatting.
-
-2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl/7335
- PR rtl/33826
- * see.c (see_copy_insn): Copy new pure const attributes for new call.
- * c-decl.c (merge_decls): Ditto.
- * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
- to RTL_CONST_OR_PURE_CALL_P.
- * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
- Initialized DECL_LOOPING_CONST_PURE.
- (process_call_operands): Set tree_side_effects properly.
- * tree.h (TREE_READONLY_DECL_P): Removed.
- (DECL_IS_PURE): Renamed to DECL_PURE_P.
- (DECL_LOOPING_OR_CONST_P): New macro.
- (struct tree_function_decl): Added looping_const_or_pure_p.
- (ECF_*) Renumbered.
- (ECF_LOOPING_OR_CONST_P): New macro.
- * rtlanal.c (pure_const_p): Removed.
- * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
- * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
- to RTL_CONST_CALL_P.
- * ipa-pure-const.c (pure_const_state_e): Added looping field.
- (check_decl, check_tree, check_call, scan_function): Initialize
- looping.
- (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
- (static_execute): Set looping true for recursive functions.
- Undo setting state to IPA_NEITHER for recursive functions.
- * cse.c (cse_insn):
- * ifcvt.c (noce_can_store_speculate_p): Changed
- CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
- RTL_CONST_OR_PURE_CALL_P.
- * dse.c (scan_insn): Ditto.
- * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
- * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
- pure_call_p to RTL_CONST_CALL_P.
- * gimplify.c (gimplify_call_expr): Clear side effects for
- non-looping pure and constant calls.
- * calls.c (emit_call_1): Set rtl flags from ecf flags.
- (flags_from_decl_or_type): Set ecf flags from decl flags.
- (initialize_argument_information): Turn off
- ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
- Change const to pure if callee_copies is true rather than just
- turning off const.
- (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
- way of marking pure calls.
- (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
- Remove hack that was supposed to fix pr7335 and remove old
- way of marking pure calls.
- * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
- RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
- * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
- * loop-invariant.c (find_exits, find_invariant_bb): Changed
- CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
- * sched-deps.c (schedule_analyze): Ditto.
- * rtl.h (struct rtx_def): Use call field, unchanging field, and
- return_val field of calls to represent pure and const function info.
- (CONST_OR_PURE_CALL_P): Deleted macro.
- (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
- RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
- * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
- TREE_READONLY.
- * tree-optimize.c (execute_fixup_cfg): Added test for
- ECF_LOOPING_CONST_OR_PURE.
- * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
- DECL_PURE_P.
- * tree-cfg.c (update_call_expr_flags): Do not clear tree side
- effects for looping pure or const calls.
- (verify_gimple_expr): Added verification code.
- * config/alpha/alpha.c (alpha_legitimize_address,
- alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_CALL_P.
- * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
- * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
- * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
- RTL_CONST_OR_PURE_CALL_P.
- * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
- and const calls to be deleted.
-
-2008-05-07 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35714
- * config/i386/mmx.md (mmx_subv2sf3): New expander.
- (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
- (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
- (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
- to handle nonimmediate operands.
- (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
- (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
- to handle nonimmediate operands.
- (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
- (mmx_pmulhrwv4hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
- (sse2_umulv1siv1di3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
- (mmx_eq<mode>3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
- (mmx_uavgv8qi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
- (mmx_uavgv4hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
-
- * config/i386/sse.md
- (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (sse2_unpckhpd_exp): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (sse2_unpcklpd_exp): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
- to handle nonimmediate operands.
- (*sse2_<plusminus_insn><mode>3): Rename from
- sse2_<plusminus_insn><mode>3 insn pattern.
- (sse2_<plusminus_insn><mode>3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
- (sse2_umulv2siv2di3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
- (sse4_1_mulv2siv2di3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
- (sse2_pmaddwd): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
- (sse2_eq<mode>3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
- (sse4_1_eqv2di3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
- (sse2_uavgv16qi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
- (sse2_uavgv16qi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
- (sse2_uavgv8hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
- (ssse3_pmulhrswv8hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
- (ssse3_pmulhrswv4hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
-
- (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
- (<sse>_vmmul<mode>3): Ditto.
- (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
- (divv2df3): Ditto.
- (ssse3_pmaddubsw128): Use register_operand for operand 1.
- (ssse3_pmaddubsw): Ditto.
-
- * config/i386/i386.c (struct_builtin_description)
- [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
- [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
- [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
- [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
- [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
- [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
- [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
- [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
- (ix86_fixup_binary_operands): Assert that src1
- and src2 must have the same mode when swapped.
- (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
- and ix86_binary_operator_ok. Do not force operands in registers
- when optimizing.
-
-2008-05-07 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (dump_cgraph_node): Update.
- * cgraph.h (cgraph_local_info): Break out inline summary.
- * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
- hook.
- * ipa-inline (inline_summary): New accestor function.
- (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
- cgraph_decide_inlining, compute_inline_parameters): Update.
- * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
-
-2008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- Cleanup ColdFire scheduling support and add V4 pipeline model.
-
- * config/m68k/m68k.md (UNSPEC_TIE): New constant.
- (define_attr cpu): Add cfv4 value.
- (define_attr type, define_attr type1): Merge into a single 'type'
- attribute. Update all uses.
- (define_attr opx_type, define_attr opy_type, define_attr opx_access):
- Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
- Update all uses.
- (define_attr opx_mem, define_attr opy_mem): Remove.
- (define_attr op_mem): Clean up, update comment.
- (define_attr size): Use specific values instead of general int.
- (define_attr guess, define_attr split): Remove. Update all uses.
- (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
- tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
- movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
- zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
- 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
- floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
- fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
- adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
- add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
- add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
- sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
- sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
- mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
- umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
- mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
- div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
- one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
- bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
- beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
- bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
- symbolic_call_value_jsr, symbolic_call_value_bsr, link):
- Update or set attributes.
- (stack_tie): New fake instruction.
-
- * config/m68k/m68k.h (TUNE_CFV4): New macro.
- (m68k_sched_attr_size): Update declaration.
- (m68k_sched_attr_type2): Remove.
- (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
- Declare new bypass predicates.
-
- * config/m68k/m68k.c (m68k_sched_issue_rate,
- m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
- implementations.
- (TARGET_SCHED_ISSUE_RATE,
- TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
- (override_options): Handle scheduling for ColdFire V4 core.
- (m68k_expand_prologue): Emit stack_tie.
- (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
- 'OP_TYPE_FPN'. Update all uses.
- (sched_guess_p): Remove.
- (sched_address_type): Handle symbolic addresses.
- (sched_get_operand): New static function.
- (sched_operand_type): Merge into sched_attr_op_type.
- (sched_attr_op_type): Handle FP registers, handle quick constants,
- update.
- (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
- (m68k_sched_attr_size): Update. Move logic to ...
- (sched_get_attr_size_int): New static function.
- (sched_get_opxy_mem_type): New static function.
- (m68k_sched_attr_op_mem): Update.
- (m68k_sched_attr_type2): Remove.
- (sched_cfv4_bypass_data): New static variable.
- (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
- (m68k_sched_issue_rate): Implement scheduler hook.
- (struct _sched_ib: enabled_p): New field.
- (m68k_sched_variable_issue): Update. Handle V4.
- (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
- sched_dump_class_func_t, sched_dump_split_class,
- sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
- sched_dump_dfa_class, m68k_sched_dump): Remove.
- (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
- hook.
- (m68k_sched_init_global): Remove statisctics dumping, introduce
- sanity check that all instructions have pipeline reservations. Handle
- ColdFire V4 core.
- (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
- Handle ColdFire V4 core.
- (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
- New static functions.
- (m68k_sched_address_bypass_p): New bypass predicate.
- (sched_get_indexed_address_scale): New static function.
- (m68k_sched_indexed_address_bypass_p): New bypass predicate.
-
- * cf.md: Update comments.
- (define_attr type2): Remove. Use 'type' attribute instead.
- Update all uses.
- (cf_ib): Rename to cfv123_ib. Update all uses.
- (cf_oep): Rename to cfv123_oep. Update all uses.
- (cf_chr): Rename to cfv123_chr. Update all uses.
- (cf_mem): Rename to cfv123_mem. Update all uses.
- (cf_mac): Move to more appropriate place.
- (cfv123_guess): New automaton and cpu_unit.
- (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
- Update uses of 'size' attribute. Handle before reload scheduling.
- (cfv123_guess): New dummy reservation for unhandled instructions.
- (cfv4_*): Pipeline description of ColdFire V4 core.
- (ignore): New reservation to handle 'ignore' type.
-
-2008-05-07 Ian Lance Taylor <iant@google.com>
-
- PR middle-end/36013
- * gimplify.c (find_single_pointer_decl_1): Don't look through
- indirections.
- (find_single_pointer_decl): Adjust comments.
-
-2008-05-07 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36137
- * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
- STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
-
- PR middle-end/36106
- * omp-low.c (expand_omp_atomic_pipeline): Load value using the
- integral type rather than floating point, then VIEW_CONVERT_EXPR
- to the floating point type.
-
-2008-05-07 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
- TFmode op0 to register.
-
-2008-05-07 Alan Modra <amodra@bigpond.net.au>
-
- * c-decl.c (grokdeclarator): Comment typo.
-
-2008-05-06 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-flow.h: Remove prototype for computed_goto_p.
- * tree-cfg.c (computed_goto_p): Make static.
-
-2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35657
- * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
- (contains_aligned_value_p): This. Handle _Decimal128.
- (ix86_function_arg_boundary): Only align _Decimal128 to its
- natural boundary and handle it properly.
-
-2008-05-06 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
- (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
- (ipcp_method_set_orig_node): Removed.
- (ipcp_cval_get_cvalue_type): Removed.
- (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
- (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
- (ipcp_cval_set_cvalue_type): Removed.
- (ipcp_cval_get_cvalue): Removed.
- (ipcp_cval_set_cvalue): Removed.
- (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
- (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
- (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
- (ipcp_cval_meet): Renamed to ipa_lattice_meet
- (ipcp_cval_changed): Changed to use ipcp_lat_is_const
- (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
- (ipcp_get_ith_lattice): Changed parameters.
- (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
- (ipcp_lattice_from_jfunc): Changed parameters.
- (ipcp_redirect): Local lattice pointer instead of lattice type variable.
- (ipcp_method_cval_print): Added temporary variable info.
- (ipcp_redirect): Removed already unused local variable caller.
- (ipcp_redirect): New temporary variable orig_callee_info
- (ipcp_redirect): Removed newly unused local variable callee.
- (ipcp_redirect): Removed (a bit confusing) local variable type.
- (ipcp_insert_stage): Added local variable info.
- (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
- renamed too
- (ipcp_formal_create): Removed.
- (ipcp_method_cval_set): Removed.
- (ipcp_propagate_stage): Renamed lattice variables.
- (ipcp_method_cval_set_cvalue_type): Removed.
- (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
- (ipcp_print_all_lattices): Changed printed strings to refer to
- lattices rather than cvals.
- (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
- (ipcp_propagate_const): Changed formal parameters.
- (build_const_val): Changed formal parameters.
- (ipcp_insert_stage): Removed useless variable cvalue
- (build_const_val): Changed formal parameters.
- (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
- (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
- (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
- (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
- (ipcp_print_func_profile_counts): Changed string from "method" to
- "function"
- (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
- (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
- (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
- (ipcp_structures_print): Renamed to ipcp_print_all_structures
- (ipcp_profile_print): Renamed to ipcp_print_profile_data
- (ipcp_lat_is_const): Changed parameters and made inline.
- (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
- (ipcp_redirect): Renamed to ipcp_need_redirect_p
- (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
- the predicate condition directly
- (ipcp_propagate_stage): Added local variable args. Removed local
- variable callee. (Both are mere code simplifications.)
- (ipcp_method_dont_insert_const): Renamed to
- ipcp_node_not_modifiable_p.
- (ipcp_node_not_modifiable_p): Made inline.
- (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
- (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
- (ipcp_print_all_lattices): Removed variable cvalue
- (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
- Updated comments.
-
-2008-05-06 Olivier Hainque <hainque@adacore.com>
-
- * tree-sra.c (try_instantiate_multiple_fields): Early return
- if field has POINTER_TYPE.
-
-2008-05-06 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
- by using 'q' specifier for instruction.
- (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
-
-2008-05-06 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
- Change mode of zero_extract from QImode to HImode.
- (sign bit tests peepholes): (Ditto.).
-
-2008-05-06 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/mmx.md: Remove double backslashes from asm templates.
- (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
- (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
- to handle nonimmediate operands.
- (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
- (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
- to handle nonimmediate operands.
- (*mmx_<code>v2sf3_finite): New insn pattern.
- (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
- (mmx_<code>v2sf3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (mmx_<plusminus_insn><mode>3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_<plusminus_insn><mode>3): New insn pattern.
- (mmx_add<mode>3): Removed.
- (mmx_ssadd<mode>3): Ditto.
- (mmx_usadd<mode>3): Ditto.
- (mmx_sub<mode>3): Ditto.
- (mmx_sssub<mode>3): Ditto.
- (mmx_ussub<mode>3): Ditto.
- (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
- (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
- to handle nonimmediate operands.
- (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
- insn pattern.
- (mmx_smulv4hi3_highpart): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
- insn pattern.
- (mmx_umulv4hi3_highpart): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
- (mmx_<code>v4hi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
- (mmx_<code>v8qi3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
- (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
- (mmx_<code><mode>3): New expander. Use
- ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
-
-2008-05-05 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/36118
- * passes.c (pass_init_dump_file): Fix dump header.
-
-2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36141
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
- VCE for function decls.
-
-2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
-
-2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md (sat_plusminus): New.
- (plusminus_insn): Likewise.
- (plusminus_mnemonic): Likewise.
- (addsub): Removed.
- (comm): Add ss_plus, us_plus, ss_minus and us_minus.
- (*<addsub><mode>3_cc_overflow): Renamed to ...
- (*<plusminus_insn><mode>3_cc_overflow): This.
- (*<addsub>si3_zext_cc_overflow): Renamed to ...
- (*<plusminus_insn>si3_zext_cc_overflow): This.
-
- * config/i386/sse.md (<addsub><mode>3): Renamed to ...
- (<plusminus_insn><mode>3): This.
- (*<addsub><mode>3): Renamed to ...
- (*<plusminus_insn><mode>3): This.
- (<sse>_vm<addsub><mode>3): Renamed to ...
- (<sse>_vm<plusminus_insn><mode>3): This.
- (sse3_h<addsub>v4sf3): Renamed to ...
- (sse3_h<plusminus_insn>v4sf3): This.
- (sse3_h<addsub>v2df3): Renamed to ...
- (sse3_h<plusminus_insn>v2df3): This.
- (<plusminus_insn><mode>3): New.
- (*<plusminus_insn><mode>3): Likewise.
- (sse2_<plusminus_insn><mode>3): Likewise.
- (add<mode>): Removed.
- (*add<mode>3): Likewise.
- (sse2_ssadd<mode>3): Likewise.
- (sse2_usadd<mode>3): Likewise.
- (sub<mode>3): Likewise.
- (*sub<mode>3): Likewise.
- (sse2_sssub<mode>3): Likewise.
- (sse2_ussub<mode>3): Likewise.
-
-2008-05-05 Benjamin Kosnik <bkoz@redhat.com>
-
- * gthr-single.h: Add in required interface elements as per gthr.h.
- Add stub types for __gthread_key_t, __gthread_once_t. Add defines
- for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
- Generalize UNUSED macro.
- (__gthread_once): Add.
- (__gthread_key_create): Add.
- (__gthread_key_delete): Add.
- (__gthread_getspecific): Add.
- (__gthread_setspecific): Add.
-
-2008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
-
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
- the same size types for the indirect reference on the rhs, then
- create a VCE.
-
-2008-05-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md
- (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
- one insn template instead of template series.
- (*xordi_1_rex64): Ditto.
- (*xordi_2_rex64): Ditto.
-
-2008-05-05 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36119
- * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
- in case of SLP.
-
-2008-06-04 Jan Hubicka <jh@suse.cz>
-
- tree-optimization/36100
- * tree-pass.h (pass_O0_always_inline): Declare.
- * ipa-inline.c (inline_transform): Remove dead code.
- (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
- pass_O0_always_inline): New.
- * passes.c (init_optimization_passes): Add pass_O0_always_inline.
-
-2008-05-04 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
- mnemonic in this_param move for TARGET_64BIT.
-
-2008-05-04 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
- (*strmovsi_rex_1): Ditto.
- (*strsetsi_1): Ditto.
- (*strsetsi_rex_1): Ditto.
-
- (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
- adddicc expanders using SWI mode iterator.
-
-2008-05-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36121
- * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
- argument handling.
-
-2008-05-04 David S. Miller <davem@davemloft.net>
-
- * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
- (sparc*-*-linux*): Use linux.h in tm_file.
- (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
- compiler defaulting to 32-bit.
- (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
- no longer needed.
- * config/sparc/linux.h: Remove definitions now obtained
- properly from linux.h
- * config/sparc/linux64.h: Likewise.
- (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
- don't want this setting for 32-bit builds in a biarch compiler.
- * doc/install.texi: Add sparc-linux to list of targets
- supporting --enable-targets=all.
-
-2008-05-03 Andrew Pinski <pinskia@gmail.com>
-
- * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
-
-2008-05-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
- after V4SI_FTYPE_V8HI.
- (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
- case V4SI_FTYPE_V2DF.
-
-2008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/invoke.texi (max-flow-memory-locations): Removed.
- * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
-
-2008-05-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34973
- * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
-
-2008-05-02 David S. Miller <davem@davemloft.net>
-
- * config.gcc (need_64bit_hwint): Document libcpp dependency.
-
-2008-05-02 Simon Baldwin <simonb@google.com>
-
- PR bootstrap/36108
- * c-common.h (warn_array_subscript_range): Removed.
- * c-common.c (warn_array_subscript_range): Ditto.
- * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
- * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
-
-2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_special_builtin_type): New.
- (bdesc_special_args): Likewise.
+ PR tree-optimization/38559
+ * graphite.c (debug_value, copy_constraint,
+ swap_constraint_variables, scale_constraint_variable, ): New.
+ (get_lower_bound, get_upper_bound): Removed.
+ (graphite_trans_bb_strip_mine): Clean up this code that works
+ only for constant number of iterations. Fully copy upper and
+ lower bound constraints, not only the constant part of them.
+ * graphite.h (debug_value): Declared.
+
+2009-01-08 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37194
+ * tree-vect-transform.c (vect_estimate_min_profitable_iters):
+ Don't add the cost of cost model guard in prologue to scalar
+ outside cost in case of known number of iterations.
+
+2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
+ non-word-aligned REG+CONST addressing.
+
+2009-01-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38706
+ * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
+ free_after_compilation when outputting a thunk.
+ (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
+ Do not call free_after_compilation here.
+
+2009-01-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
+ (ix86_valid_target_attribute_inner_p): Ditto.
+
+2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/38492
+ PR tree-optimization/38498
+ * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
+ * tree-chrec.h (scev_is_linear_expression): Declared.
+ * graphite.c (graphite_cannot_represent_loop_niter): New.
+ (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
+ (graphite_loop_normal_form): Use gcc_assert.
+ (scan_tree_for_params): Use CASE_CONVERT.
+ (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
+ (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
+ Use gcc_assert. Discard scops that contain unhandled cases.
+ (build_scop_conditions): Return a boolean status for unhandled cases.
+ (strip_mine_profitable_p): Print the loop number, not its depth.
+ (is_interchange_valid): Pass the depth of the loop nest, don't
+ recompute it wrongly.
+ (graphite_trans_bb_block): Same.
+ (graphite_trans_bb_block): Print tentative of loop blocking.
+ (graphite_trans_scop_block): Do not print that the loop has been
+ blocked.
+ (graphite_transform_loops): Do not handle scops that contain condition
+ scalar phi nodes.
+
+2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ AVX Programming Reference (December, 2008)
+ * config/i386/avxintrin.h (_mm256_stream_si256): New.
+ (_mm256_stream_pd): Likewise.
+ (_mm256_stream_ps): Likewise.
+
+ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
+ IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
+ (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
+ (bdesc_special_args): Add __builtin_ia32_movntdq256,
+ __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
+ (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
(ix86_expand_special_args_builtin): Likewise.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_builtin): Updated.
- (ix86_expand_store_builtin): Removed.
- (ix86_expand_unop_builtin): Likewise.
-
- * config/i386/mm3dnow.h (__v2sf): Moved to ...
- * config/i386/mmintrin.h (__v2sf): Here.
-
- * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
- const __v2sf.
- (_mm_loadl_pi): Likewise.
- (_mm_storeh_pi): Replace __v2si with __v2sf.
- (_mm_storel_pi): Likewise.
-
- * doc/extend.texi: Correct __builtin_ia32_loadhps,
- __builtin_ia32_loadlps, __builtin_ia32_storehps,
- __builtin_ia32_storelps, __builtin_ia32_loadhpd and
- __builtin_ia32_loadlpd.
-
-2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
- V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
- (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Likewise.
- (ix86_expand_builtin): Likewise.
- (ix86_expand_unop1_builtin): Renamed to ...
- (ix86_expand_unop_vec_merge_builtin): This.
-
-2008-05-01 Jan Hubicka <jh@suse.cz>
-
- PR bootstrap/36100
- * ipa-inline.c (inline_generate_summary): Make static.
- (inline_transform): Do not call inlining at -O0; make static.
- * passes.c (execute_todo): Add sanity check.
- (execute_one_ipa_transform_pass): Execute proper flags.
-
-2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
- (DECL_NONADDRESSABLE_P): Likewise.
- * alias.c (record_component_aliases): Fix comment.
-
-2008-05-01 Simon Baldwin <simonb@google.com>
- * c-common.h (warn_array_subscript_range): New function.
- * c-common.c (warn_array_subscript_range): Ditto.
- * tree-vrp.c (check_array_ref): Corrected code to agree with
- comment, ignoring only arrays of size 0 or size 1.
- * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
+ * config/i386/sse.md (AVXMODEDI): New.
+ (avx_movnt<mode>): Likewise.
+ (avx_movnt<mode>): Likewise.
+ (<sse>_movnt<mode>): Remove AVX support.
+ (sse2_movntv2di): Likewise.
-2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-07 Richard Guenther <rguenther@suse.de>
- * config/i386/i386.c (ix86_builtin_type): Replace
- DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
- (bdesc_args): Updated.
- (ix86_init_mmx_sse_builtins): Likewise.
- (ix86_expand_args_builtin): Likewise.
+ PR middle-end/38751
+ * fold-const.c (extract_muldiv): Remove obsolete comment.
+ (fold_plusminus_mult_expr): Undo MINUS_EXPR
+ to PLUS_EXPR canonicalization for the canonicalization.
- * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
- with __v1di.
+2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
- * doc/extend.texi: Correct __builtin_ia32_palignr.
+ * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
+ hosted cross-compilers generating less efficient code.
-2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
- PR target/36095
- * config/i386/i386.c (bdesc_crc32): Removed.
- (ix86_expand_crc32): Likewise.
- (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
- V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
- V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
- UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
- UINT_FTYPE_UINT_UCHAR.
- (bdesc_args): Updated. Add crc32 builtins.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Updated to support subreg.
+ * function.h (rtl_data): Add a dbr_scheduled_p field.
+ * reorg.c (dbr_schedule): Set it.
+ (gate_handle_delay_slots): Check it.
+ * config/mips/mips.c (mips_base_delayed_branch): Delete.
+ (mips_reorg): Check flag_delayed_branch instead of
+ mips_base_delayed_branch.
+ (mips_override_options): Don't set mips_base_delayed_branch
+ or flag_delayed_branch.
- * doc/extend.texi: Correct __builtin_ia32_crc32di.
+2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
-2008-05-01 Jan Hubicka <jh@suse.cz>
+ PR rtl-optimization/38426.
+ * ira.c (ira): Set current_function_is_leaf earlier.
- * tree-pass.h (opt_pass): Add IPA_PASS.
- (varpool_node, cgraph_node): Forward declare.
- (ipa_opt_pass): Define.
- (pass_ipa_inline): Turn into ipa_opt_pass.
- (pass_apply_inline): Remove.
- * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
- (apply_inline): Turn into ....
- (inline_transform): ... this one.
- (inline_generate_summary): New function.
- (pass_apply_inline): Remove.
- * function.h (ipa_opt_pass): Forward declare structure; typedef;
- vector.
- (struct function): Add ipa_transforms_to_apply.
- * passes.c (register_one_dump_file): Work on IPA_PASS.
- (init_optimization_passes): Remove pass_inline_parameters and
- pass_apply_inline.
- (pass_init_dump_file, pass_fini_dump_file): Break out from ....
- (execute_one_pass) ... here; apply transforms when possible.
- (add_ipa_transform_pass, execute_ipa_summary_asses,
- execute_one_ipa_transform_pass): New.
- (execute_ipa_pass_list): Update for IPA_PASS type.
+2009-01-06 Jakub Jelinek <jakub@redhat.com>
-2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+ PR rtl-optimization/38722
+ * combine.c (try_combine): Don't modify PATTERN (i3) and notes
+ too early, only set a flag and modify after last possible
+ undo_all point.
- * config/i386/i386.c (ix86_builtin_type): Add
- V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
- V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
- (bdesc_args): Add SSE4a builtins.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Likewise.
- (ix86_expand_builtin): Likewise.
+2009-01-06 Janis Johnson <janis187@us.ibm.com>
-2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+ PR c/34252
+ * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
+ * real.c (decimal_single_format): Correct values of emin and emax.
+ (decimal_double_format): Ditto.
+ (decimal_quad_format): Ditto.
+ * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
+ computation of DECnn_MIN and DECnn_MAX for corrected values of
+ emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
+ __DECnn_MIN__, and adjust its computation for the corrected value
+ of emin.
- * config/i386/i386.c (ix86_builtin_type): Add
- V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
- V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
- V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
- V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
- V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
- V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
- V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
- V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
- and DI_FTYPE_DI_DI_INT.
- (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
- (ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Likewise.
- (ix86_expand_builtin): Likewise.
- (ix86_expand_binop_imm_builtin): Removed.
+2009-01-06 Jan Hubicka <jh@suse.cz>
- * doc/extend.texi: Correct __builtin_ia32_palignr128.
+ PR target/38744
+ * i386.c (ix86_expand_call): Use ARRAY_SIZE.
-2008-04-30 Richard Guenther <rguenther@suse.de>
+2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
- PR tree-optimization/32921
- * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
+ * doc/contrib.texi (Contributors): Slightly adjust the end note.
+ Add Robert Clark to the list of testers.
-2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
+2009-01-06 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
- * config/arm/arm.c (arm_unwind_emit): Use
- crtl->all_throwers_are_sibcalls instead of
- cfun->all_throwers_are_sibcalls.
- (arm_output_fn_unwind): Likewise.
- * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
- instead of cfun->uses_pic_offset_table.
- (frv_expand_prologue): Likewise.
- (frv_frame_pointer_required): Likewise.
- (frv_expand_fdpic_call): Likewise.
- (frv_emit_movsi): Likewise.
- * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
- cfun->returns_pcc_struct instead of
- current_function_returns_pcc_struct.
- * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
- instead of cfun->calls_eh_return.
- (m32c_pushm_popm): Likewise.
- * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
- "extern" declaration.
+ * i386.md (*msabi_syvabi): Add SSE regs clobbers.
+ * i386.c (ix86_expand_call): Add clobbers.
-2008-04-30 Richard Guenther <rguenther@suse.de>
+2009-01-06 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
- PR tree-optimization/21636
- * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
- constant address.
- (evaluate_stmt): Print the likely value.
- (ccp_visit_stmt): Avoid excessive vertical spacing.
+ * i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used for w64 ABI.
+ * i386.c (struct ix86_frame): Add padding0 and nsseregs.
+ (ix86_nsaved_regs): Count only general purpose regs.
+ (ix86_nsaved_sseregs): New.
+ (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
+ to 16 for w64; compute padding and size of sse reg save area.
+ (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
+ general purpose regs.
+ (ix86_emit_save_sse_regs_using_mov): New.
+ (ix86_expand_prologue): Save SSE regs if needed.
+ (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
+ (ix86_emit_restore_sse_regs_using_mov): New.
+ (ix86_expand_epilogue): Save SSE regs if needed.
-2008-04-30 Rafael Espíndola <espindola@google.com>
+2009-01-06 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
- * builtins.c (fold_call_expr): Return realret.
- * tree-ssa-threadedge.c
- (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
- __builtin_object_size.
+ * i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
+ * i386.c (init_cumulative_args): Disallow calls of MSABI functions
+ when accumulate outgoing args is off.
-2008-04-30 Seongbae Park <seongbae.park@gmail.com>
+2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
- * gcc.c (wrapper_string): New variable.
- (insert_wrapper): New function.
- (execute): New option -wrapper.
- * doc/invoke.texi (Overall Options): New driver option -wrapper.
+ PR bootstrap/38742
+ * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
+ before using pseudos_have_intersected_live_ranges_p.
-2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
+ * ira-int.h (ira_assert): Always define.
- * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
- config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
- config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
- from...
- * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
- * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
- config/rs6000/e500crtres64gprctr.asm,
- config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
- config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
- config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
- config/rs6000/e500crtsav64gprctr.asm,
- config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
- config/rs6000/e500crtsavg64gprctr.asm: New files.
- * config/rs6000/t-ppccomm: Add build rules for new files.
- (LIB2FUNCS_STATIC_EXTRA): Add new files.
- * config/rs6000/t-netbsd: Add build rules for new files.
- (LIB2FUNCS_STATIC_EXTRA): New variable.
- * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
- (CRTSAVRES_DEFAULT_SPEC): Likewise.
- * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
+2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
-2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
+ AVX Programming Reference (December, 2008)
+ * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
+ (_mm256_permute2_pd): Likewise.
+ (_mm_permute2_ps): Likewise.
+ (_mm256_permute2_ps): Likewise.
+ * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
+ * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
- * config/i386/i386.c (ix86_builtin_type): Add
- FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
- V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
- V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
- V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
- V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
- V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
- V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
- V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
- V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
- V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
- V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
- V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
- V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
- V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
- V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
- V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
- V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
- V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
- V1DI_FTYPE_V2SI_V2SI.
- (bdesc_2arg): Moved to ...
- (bdesc_args): Here.
+ * config/i386/i386.c (ix86_builtins): Remove
+ IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
+ IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
+ (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
+ V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
+ and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
+ (bdesc_args): Remove __builtin_ia32_vpermil2pd,
+ __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
+ __builtin_ia32_vpermil2ps256.
(ix86_init_mmx_sse_builtins): Updated.
- (ix86_expand_args_builtin): Updated. Take a pointer
- to const struct builtin_description. Handle comparison
- builtin functions.
- (ix86_expand_sse_compare): Take a new argument for swapping operands.
- (ix86_expand_builtin): Updated.
-
- * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
- (ssse3_pmaddubsw128): This.
- (ssse3_pmaddubswv4hi3): Renamed to ...
- (ssse3_pmaddubsw): This.
-
- * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
- (__builtin_ia32_packssdw128): Likewise.
- (__builtin_ia32_packuswb128): Likewise.
- (__builtin_ia32_pmaddubsw): Likewise.
- (__builtin_ia32_pmaddubsw128): Likewise.
-
-2008-04-30 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14847
- * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
- (recognize_bits_test): Use it.
- (recognize_single_bit_test): Likewise.
-
-2008-04-30 Martin Jambor <mjambor@suse.cz>
-
- * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
- instead of setting number of formal parameters to zero.
- (ipcp_init_stage): Do not set the number of actual parameters to zero
- either.
- (ipcp_propagate_stage): Explicitly skipping all calls to nodes
- which are called with variable number of arguments.
- (ipcp_insert_stage): Explicitely skipping all nodes which are
- called with variable number of arguments.
- (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
- number of parameters.
-
- * ipa-prop.h (struct ipa_node_params): Added flag
- called_with_var_arguments
- (ipa_set_param_count): Added. Changed sole setter to use it.
- (ipa_get_param_count): Added. All readers of param_count
- converted to use it instead.
- (ipa_set_called_with_variable_arg): Added.
- (ipa_is_called_with_var_arguments): Added.
- (ipa_get_ith_param): Added. All readers of param_decls converted
- to use it instead.
- (ipa_set_cs_argument_count): Added, sole writer to argument_count
- changed to use it.
- (ipa_get_cs_argument_count): Added, all readers of argument_count
- changed to cal it.
- (ipa_get_ith_jump_func): Added. Accessors of jump values changed
- to use it.
-
- * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
- (struct ipcp_lattice): Renamed cval_type to type
- (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
-
- * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
- (ipcp_cval_set_cvalue): Changed type of parameter value to tree
- (ipcp_insert_stage): Changed the type of variable cvalue to tree
- (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
- (build_const_val): Changed the type of parameter cvalue to tree
- (ipcp_propagate_const): Changed the type of parameter cvalue to tree
- (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
-
- * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
- constant
-
- * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
- (ipa_methodlist_not_empty): Removed, the sole user now checks directly
- (ipa_add_method): Renamed to ipa_push_func_to_list
- (ipa_remove_method): Renamed to ipa_pop_func_from_list
- (ipa_callsite_param_count): Removed.
- (ipa_callsite_param_count_set): Removed.
- (ipa_callsite_param): Removed.
- (ipa_callsite_callee): Removed.
- (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
- (ipa_callsite_compute_count): Renamed to ipa_count_arguments
- (ipa_method_formal_count): Removed.
- (ipa_method_formal_count_set): Removed.
- (ipa_method_get_tree): Removed.
- (ipa_method_tree_map_create): Removed.
- (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
- (ipa_create_param_decls_array): Creates the array itself
- (ipa_create_param_decls_array): Temporary variable info instead of
- a few dereferences.
- (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
- (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
- (get_type): Removed.
- (ipa_jf_get_info_type): Removed.
- (ipa_node_create): Renamed to ipa_create_node_params
- (ipa_free): Renamed to ipa_free_all_node_params
- (ipa_nodes_create): Renamed to ipa_create_all_node_params
- (ipa_edges_create): Renamed to ipa_create_all_edge_args
- (ipa_edges_free): Renamed to ipa_free_all_edge_args
- (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
- (ipa_free_all_node_params): Deallocation to jump_functions moved to
- ipa_free_all_edge_args
- (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
- (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
- (ipa_create_methodlist_node): Removed.
- (ipa_methodlist_method): Removed.
- (ipa_methodlist_method_set): Removed.
- (ipa_methodlist_next_method): Removed.
- (ipa_methodlist_next_method_set): Removed.
- (ipa_method_is_modified): Removed.
- (ipa_method_modify_create): Removed.
- (ipa_method_modify_init): Temporary variable info instead of a few
- dereferences.
- (ipa_detect_param_modifications): Temporary variable info instead of
- a few dereferences.
- (ipa_compute_jump_functions): Temporary variable info instead of
- a few dereferences.
- (ipa_method_modify_set): Removed.
- (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
- (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
- than craph_node as the first parameter.
- (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
- (ipa_method_modify_init): Removed.
- (ipa_compute_jump_functions): Added a temp variable instead of
- repeatadly dereferencing the cgraph_edge.aux pointer
- (ipa_callsite_param_set_type): Removed.
- (ipa_compute_jump_functions): i renamed to index and moved to
- an inner block
- (ipa_callsite_param_set_info_type_formal): Removed.
- (ipa_callsite_param_set_info_type): Removed.
- (ipa_callsite_param_map_create): Removed.
- (ipa_callsite_tree): Removed.
- (ipa_callsite_caller): Removed.
- (ipa_pop_func_from_list): return_method removed to return_func
-
- * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
- prefixed all values with IPA_. Changed all users.
- (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
- CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
- and FORMAL_IPATYPE IPA_PASS_THROUGH.
- (union parameter_info): Renamed to jump_func_value.
- (union jump_func_value): Renamed value to constant
- (struct ipa_jump_func): Renamed info_type to value
- (struct ipa_node): Renamed to ipa_node_params
- (struct ipa_node_params): Renamed ipa_arg_num to param_count
- (struct ipa_node_params): Renamed ipa_param_tree to param_decls
- (struct ipa_node_params): Renamed ipa_mod to modified_flags
- (struct ipa_edge): Renamed to ipa_edge_args
- (struct ipa_edge_args): Renamed ipa_param_num to argument_count
- (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
- (struct ipa_methodlist): Renamed to ipa_func_list
- (struct ipa_func_list): method_p renamed to node, next_method
- renamed to next
- (ipa_methodlist_p): Removed, switched all users to struct pointer
- (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
-
-2008-04-30 Alan Modra <amodra@bigpond.net.au>
-
- * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
- (rs6000_emit_epilogue): Use backchain to restore only when we
- have a large frame. Make use of frame pointer to restore if we
- have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
-
-2008-04-29 Paolo Bonzini <bonzini@gnu.org>
-
- * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
- Add mode to zero_extract.
- (sign bit tests peepholes): (Ditto.).
-
-2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (ix86_builtins): Replace Prescott New
- Instructions in comments with SSE3.
- (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
- INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
- INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
- V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
- V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
- V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
- V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
- V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
- V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
- V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
- V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
- V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
- (bdesc_sse_args): Renamed to ...
- (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
- IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
- IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
- IX86_BUILTIN_FABSQ.
- (bdesc_1arg): Moved to ...
- (bdesc_args): Here.
- (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
- Instructions in comments with SSE3.
- (ix86_expand_sse_operands_builtin): Renamed to ...
- (ix86_expand_args_builtin): This. Updated.
- (ix86_expand_unop1_builtin): Update comments.
- (ix86_expand_builtin): Updated.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36078
- * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
- Update virtual SSA form after cleaning up the CFG.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/15255
- * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
- (compute_may_aliases): Do not call finalize_ref_all_pointers.
- (compute_flow_insensitive_aliasing): Do not treat
- PTR_IS_REF_ALL pointers special.
- (get_smt_for): Likewise.
- (may_alias_p): Re-structure.
- (is_escape_site): A ref-all pointer conversion is not an escape site.
- * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
- PTR_IS_REF_ALL pointers special.
- * tree-ssa-structalias.h (struct alias_info): Remove
- ref_all_symbol_mem_tag field.
- (PTR_IS_REF_ALL): Remove.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36077
- * fold-const.c (extract_muldiv_1): In combining division constants
- make sure to never overflow.
-
-2008-04-29 Nick Clifton <nickc@redhat.com>
-
- * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
-
-2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR bootstrap/35169
- * optc-gen.awk: Work around HP-UX/IA awk bug.
-
-2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
- 2008-04-25 commit.
-
-2008-04-28 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36073
- * config/i386/i386.md
- (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
- Change operand 1 predicate to nonimmediate_operand.
-
-2008-04-28 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/36060
- * dwarf2out.c (struct die_struct): Mark as chain_circular through
- die_sub field.
- * gengtype.c (walk_type, write_func_for_structure): Handle
- chain_circular.
- * doc/gty.texi: Document chain_circular.
-
-2008-04-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36066
- * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
- SCEV and loop.
-
-2008-04-28 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36064
- * config/i386/i386.md
- (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
- Use match_scratch instead of match_operand for operands 3 and 4.
-
-2008-04-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/18754
- PR tree-optimization/34223
- * tree-pass.h (pass_complete_unrolli): Declare.
- * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
- loop size before and after unconditionally of UL_NO_GROWTH in effect.
- Rewrite loop into loop closed SSA form if it is not already.
- (tree_unroll_loops_completely): Re-structure to iterate over
- innermost loops with intermediate CFG cleanups.
- Unroll outermost loops only if requested or the code does not grow
- doing so.
- * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
- loops are available.
- (tree_vectorize): Instead do so here.
- (tree_complete_unroll): Also unroll outermost loops.
- (tree_complete_unroll_inner): New function.
- (gate_tree_complete_unroll_inner): Likewise.
- (pass_complete_unrolli): New pass.
- * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
- uses outside of the loop.
- (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
- form if it is available.
- * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
- * passes.c (init_optimization_passes): Schedule complete inner
- loop unrolling pass before the first CCP pass after final inlining.
-
-2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
-
- * targhooks.h (default_emutls_var_fields,
- default_emutls_var_init): Declare.
- * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
- * target.h (struct gcc_target): Add struct emutls member.
- * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
- TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
- TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
- TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
- TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
- TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
- (TARGET_INITIALIZER): Add TARGET_EMUTLS.
- * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
- BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
- * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
- emit debug information.
- * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
- * varasm.c: Include targhooks.h.
- (emutls_object_section, emutls_tmpl_section): New.
- (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
- (EMUTLS_SEPARATOR): New.
- (prefix_name): New.
- (get_emutls_object_name): New.
- (default_emutls_var_fields): New, broken out of ...
- (get_emutls_object_type): ... here. Adjust to use target hooks.
- (get_emutls_init_templ_addr): Adjust to use target hooks.
- (emutls_decl): Adjust to use target hooks.
- (emutls_finish): Likewise.
- (default_emutls_var_init): New, broken out of ...
- (assemble_variable): ... here. Adjust to use target hooks.
- * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
- SECCAT_EMUTLS_TMPL.
- * c-common.c (handle_section_attribute): Prevent overriding
- sections for emulated tls with special sections.
- * config/i386/i386.c (x86_64_elf_select_section): Add
- SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
- (x86_64_elf_unique_section): Likewise.
- * config/vxworks.c: Include tree.h.
- (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
- (vxworks_override_options): Set TLS scheme.
- * doc/tm.texi (Emulated TLS): New node.
-
-2008-04-26 Simon Baldwin <simonb@google.com>
-
- PR c/35652
- * builtins.c (c_strlen): Suppressed multiple warnings that can occur
- with propagated string constants.
-
-2008-04-26 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
- constraint for operand 2 when operand 0 is memory operand.
- (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
- operand 0 is memory operand.
- (fix_trunc<mode>_i387_with_temp): Ditto.
- (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
- operand 2 when operand 1 is memory operand.
- (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
- (*floatsi<mode>2_vector_sse_with_temp): Ditto.
- (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
- (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
- (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
- operands 2,3 and 4 when operand 1 is memory operand.
- (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
- is memory operand.
- (fistdi2_floor_with_temp): Ditto.
- (fist<mode>2_floor_with_temp): Ditto.
- (fistdi2_ceil_with_temp): Ditto.
- (fist<mode>2_ceil_with_temp): Ditto.
- (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
-
-2008-04-26 David Daney <ddaney@avtrex.com>
-
- * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
- unspec_volitile.
- (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
- UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
- UNSPEC_UPDATE_GOT_VERSION): Renumber.
- (sync_compare_and_swap<mode>): New expand for QI and HI modes.
- (compare_and_swap_12): New insn.
- * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
- * config/mips/mips.c (mips_force_binary): New function.
- (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
- (mips_expand_compare_and_swap_12): New function.
- * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
-
-2008-04-25 Jan Hubicka <jh@suse.cz>
-
- PR testsuite/35843
- * cfgexpand.c (pass_expand): Turn into RTL pass.
- * passes.c (execute_one_pass): Do pass typechecking after execution.
- * tree-pass.h (pass_expand): Turn into RTL pass.
-
- * function.h (struct rtl_data): Move here fields
- accesses_prior_frames, calls_eh_return, saves_all_registers,
- has_nonlocal_goto, has_asm_statement, is_thunk,
- all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
- uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
- arg_pointer_save_area_init from struct function; turn into bool.
- (struct function): Move
- calls_eh_return, saves_all_registers, has_nonlocal_goto,
- has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
- profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
- tail_call_emit, arg_pointer_save_area_init
- into struct rtl_data. Remove recursive_call_emit and gimplified flags.
- (current_function_returns_struct, current_function_returns_pcc_struct,
- current_function_calls_setjmp, current_function_calls_alloca,
- current_function_accesses_prior_frames,
- current_function_calls_eh_return, current_function_is_thunk,
- current_function_stdarg, current_function_profile,
- current_function_limit_stack, current_function_uses_pic_offset_table,
- current_function_uses_const_pool, current_function_has_nonlocal_label,
- current_function_saves_all_registers,
- current_function_has_nonlocal_goto,
- current_function_has_asm_statement): Remove accesor macros.
- * ra-conflict.c (global_conflicts): Update.
- * tree-tailcall.c (suitable_for_tail_opt_p): Update.
- (suitable_for_tail_call_opt_p): Update.
- * builtins.c (expand_builtin_return_addr): Update.
- (expand_builtin_setjmp_setup): Update.
- (expand_builtin_nonlocal_goto): Update.
- * final.c (final_start_function): Update.
- (profile_function): Update.
- (leaf_function_p): Update.
- (only_leaf_regs_used): Update.
- * df-scan.c (df_get_exit_block_use_set): Update.
- * dojump.c (clear_pending_stack_adjust): Update.
- * tree-stdarg.c (gate_optimize_stdarg): Update.
- * gimple-low.c (lower_function_body): Update.
- * global.c (compute_regsets): Update.
- (global_alloc): Update.
- * dwarf2out.c (dwarf2out_begin_prologue): Update.
- * expr.c (expand_assignment): Update.
- * dse.c (dse_step0): Update.
- (dse_step1): Update.
- * c-decl.c (store_parm_decls): Update.
- * local-alloc.c (combine_regs): Update.
- (find_free_reg): Update.
- * function.c (assign_parms_augmented_arg_list): Update.
- (assign_parm_find_data_types): Update.
- (assign_parms): Update.
- (allocate_struct_function): Update.
- (expand_function_start): Update.
- (expand_function_end): Update.
- (get_arg_pointer_save_area): Update.
- (thread_prologue_and_epilogue_insns): Update.
- (rest_of_match_asm_constraints): Update.
- * stor-layout.c (variable_size): Update.
- * gcse.c (gcse_main): Update.
- (bypass_jumps): Update.
- * gimplify.c (gimplify_function_tree): Update.
- * calls.c (emit_call_1): Update.
- (expand_call): Update.
- * bt-load.c (compute_defs_uses_and_gen): Update.
- * except.c (sjlj_assign_call_site_values): Update.
- (sjlj_emit_function_enter): Update.
- (can_throw_external): Update.
- (set_nothrow_function_flags): Update.
- (expand_builtin_unwind_init): Update.
- (expand_eh_return): Update.
- (convert_to_eh_region_ranges): Update.
- (output_function_exception_table): Update.
- * emit-rtl.c (gen_tmp_stack_mem): Update.
- * cfgexpand.c (expand_used_vars): Update.
- (tree_expand_cfg): Update.
- * cfgcleanup.c (rest_of_handle_jump): Update.
- * explow.c (allocate_dynamic_stack_space): Update.
- * varasm.c (assemble_start_function): Update.
- (force_const_mem): Update.
- (mark_constant_pool): Update.
- * tree-optimize.c (tree_rest_of_compilation): Update.
- * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
- * tree-cfg.c (notice_special_calls): Update.
- (is_ctrl_altering_stmt): Update.
- (tree_can_make_abnormal_goto): Update.
- (tree_purge_dead_abnormal_call_edges): Update.
- * config/alpha/predicates.md: Update.
- * config/alpha/alpha.c (alpha_sa_mask): Update.
- (alpha_sa_size): Update.
- (alpha_does_function_need_gp): Update.
- (alpha_expand_prologue): Update.
- (alpha_start_function): Update.
- (alpha_output_function_end_prologue): Update.
- (alpha_expand_epilogue): Update.
- * config/frv/frv.c (frv_stack_info): Update.
- (frv_expand_epilogue): Update.
- * config/s390/s390.c (s390_regs_ever_clobbered): Update.
- (s390_register_info): Update.
- (s390_frame_info): Update.
- (s390_init_frame_layout): Update.
- (s390_can_eliminate): Update.
- (save_gprs): Update.
- * config/spu/spu.c (spu_split_immediate): Update.
- (need_to_save_reg): Update.
- (spu_expand_prologue): Update.
- (spu_expand_epilogue): Update.
- * config/sparc/sparc.md: Update.
- * config/sparc/sparc.c (eligible_for_return_delay): Update.
- (sparc_tls_got): Update.
- (legitimize_pic_address): Update.
- (sparc_emit_call_insn): Update.
- (sparc_expand_prologue): Update.
- (output_return): Update.
- (print_operand): Update.
- (sparc_function_ok_for_sibcall): Update.
- * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
- * config/m32r/m32r.md: Update.
- * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
- (m32r_compute_frame_size): Update.
- (m32r_expand_prologue): Update.
- (m32r_expand_epilogue): Update.
- (m32r_legitimize_pic_address): Update.
- * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
- * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
- * config/i386/i386.c (ix86_frame_pointer_required): Update.
- (gen_push): Update.
- (ix86_save_reg): Update.
- (ix86_compute_frame_layout): Update.
- (ix86_expand_prologue): Update.
- (ix86_expand_epilogue): Update.
- * config/sh/sh.c (output_stack_adjust): Update.
- (calc_live_regs): Update.
- (sh5_schedule_saves): Update.
- (sh_expand_prologue): Update.
- (sh_expand_epilogue): Update.
- (sh_setup_incoming_varargs): Update.
- (sh_allocate_initial_value): Update.
- (sh_get_pr_initial_val): Update.
- * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
- * config/sh/sh.md (label:): Update.
- * config/avr/avr.c (out_movhi_mr_r): Update.
- * config/crx/crx.h (enum): Update.
- * config/xtensa/xtensa.h (along): Update.
- * config/stormy16/stormy16.c Update.
- (xstormy16_compute_stack_layout): Update.
- * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
- (fr30_expand_prologue): Update.
- * config/cris/cris.c (cris_conditional_register_usage): Update.
- (cris_reg_saved_in_regsave_area): Update.
- (cris_initial_frame_pointer_offset): Update.
- (cris_simple_epilogue): Update.
- (cris_expand_prologue): Update.
- (cris_expand_epilogue): Update.
- (cris_expand_pic_call_address): Update.
- (cris_asm_output_symbol_ref): Update.
- (cris_asm_output_label_ref): Update.
- * config/cris/cris.md Update.
- * config/iq2000/iq2000.c (compute_frame_size): Update.
- (iq2000_expand_epilogue): Update.
- * config/mt/mt.h (save_direction): Update.
- * config/mn10300/mn10300.c (mn10300_function_value): Update.
- * config/ia64/ia64.c (ia64_compute_frame_size): Update.
- (ia64_secondary_reload_class): Update.
- * config/m68k/m68k.c (m68k_save_reg): Update.
- (m68k_expand_prologue): Update.
- (m68k_expand_epilogue): Update.
- (legitimize_pic_address): Update.
- * config/rs6000/rs6000.c (rs6000_got_register): Update.
- (first_reg_to_save): Update.
- (first_altivec_reg_to_save): Update.
- (compute_vrsave_mask): Update.
- (compute_save_world_info): Update.
- (rs6000_stack_info): Update.
- (spe_func_has_64bit_regs_p): Update.
- (rs6000_ra_ever_killed): Update.
- (rs6000_emit_eh_reg_restore): Update.
- (rs6000_emit_allocate_stack): Update.
- (rs6000_emit_prologue): Update.
- (rs6000_emit_epilogue): Update.
- (rs6000_output_function_epilogue): Update.
- (output_profile_hook): Update.
- (rs6000_elf_declare_function_name): Update.
- * config/rs6000/rs6000.h (rs6000_args): Update.
- * config/rs6000/rs6000.md: Update.
- * config/mcore/mcore.c (mcore_expand_prolog): Update.
- * config/arc/arc.c (arc_output_function_epilogue): Update.
- * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
- * config/darwin.c (machopic_function_base_name): Update.
- * config/score/score3.c (score3_compute_frame_size): Update.
- (rpush): Update.
- (rpop): Update.
- (score3_epilogue): Update.
- * config/score/score7.c (score7_compute_frame_size): Update.
- (score7_prologue): Update.
- (score7_epilogue): Update.
- * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
- * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
- * config/arm/arm.c (use_return_insn): Update.
- (require_pic_register): Update.
- (arm_load_pic_register): Update.
- (arm_compute_save_reg0_reg12_mask): Update.
- (arm_compute_save_reg_mask): Update.
- (thumb1_compute_save_reg_mask): Update.
- (output_return_instruction): Update.
- (arm_output_function_prologue): Update.
- (arm_output_epilogue): Update.
- (arm_get_frame_offsets): Update.
- (arm_expand_prologue): Update.
- (thumb_pushpop): Update.
- (thumb_exit): Update.
- (thumb1_expand_prologue): Update.
- (thumb1_expand_epilogue): Update.
- (arm_unwind_emit): Update.
- (arm_output_fn_unwind): Update.
- * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
- * config/arm/arm.md: Update.
- * config/pa/pa.md: Update.
- * config/pa/pa.c (legitimize_pic_address): Update.
- (compute_frame_size): Update.
- (hppa_expand_prologue): Update.
- (hppa_expand_epilogue): Update.
- (borx_reg_operand): Update.
- * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
- (HARD_REGNO_RENAME_OK): Update.
- * config/mips/mips.c (mips_global_pointer): Update.
- (mips_save_reg_p): Update.
- (mips_compute_frame_info): Update.
- (mips_frame_pointer_required): Update.
- (mips_expand_prologue): Update.
- (mips_expand_epilogue): Update.
- (mips_can_use_return_insn): Update.
- (mips_reorg_process_insns): Update.
- * config/v850/v850.c (compute_register_save_size): Update.
- * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
- * config/mmix/mmix.c (along): Update.
- (mmix_expand_epilogue): Update.
- * config/bfin/bfin.c (legitimize_pic_address): Update.
- (must_save_p): Update.
- (stack_frame_needed_p): Update.
- (add_to_reg): Update.
- (bfin_expand_prologue): Update.
- * stmt.c (expand_asm_operands): Update.
- * reload1.c (reload): Update.
- (init_elim_table): Update.
-
-2008-04-25 Bob Wilson <bob.wilson@acm.org>
-
- * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
-
-2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
- (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
- (mov<mode>): Removed.
- (*movv4sf_internal): Likewise.
- (*movv2df_internal): Likewise.
-
-2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
-
- * config.gcc (crx-*-elf): Remove deprecation.
-
-2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/cygming-crtend.c (register_frame_ctor): Register
- __gcc_deregister_frame with atexit.
- (deregister_frame_dtor): Remove.
-
-2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
-
- * config/rs6000/rs6000.opt (mspe): Remove Var property.
- (misel): Likewise.
- * config/rs6000/rs6000.h (rs6000_spe): Declare.
- (rs6000_isel): Likewise.
- * config/rs6000/rs6000.c (rs6000_spe): New variable.
- (rs6000_isel): New variable.
- (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35758
- * c-common.c (handle_vector_size_attribute): Call
- lang_hooks.types.reconstruct_complex_type instead of
- reconstruct_complex_type.
- * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
- * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
- * langhooks.h (struct lang_hooks_for_types): Add
- reconstruct_complex_type hook.
- * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
- (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
-
-2008-04-24 Richard Guenther <rguenther@suse.de>
-
- * c-common.h (check_builtin_function_arguments): Declare.
- * c-common.c (validate_nargs): New function.
- (check_builtin_function_arguments): Likewise.
- * c-typeck.c (build_function_call): Call
- check_builtin_function_arguments.
- * builtins.c (fold_builtin_classify): Remove error reporting code.
- (fold_builtin_unordered_cmp): Likewise.
- (fold_builtin_1): Likewise.
- (fold_builtin_n): Likewise.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36008
- * fold-const.c (try_move_mult_to_index): If s == NULL, divide
- the original op1, rather than delta by step.
-
-2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-parloops.c (take_address_of, eliminate_local_variables_1,
- eliminate_local_variables_stmt, eliminate_local_variables,
- separate_decls_in_loop_name, separate_decls_in_loop_stmt,
- separate_decls_in_loop, gen_parallel_loop): Make them work on a region
- of code delimited by two edges in the CFG.
- (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
- (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
- (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
- the case of parallelisation of reductions.
- (expr_invariant_in_region_p): New.
-
- * tree-flow.h (gather_blocks_in_sese_region): Declared.
- * tree-cfg.c (gather_blocks_in_sese_region): Extern.
-
-2008-04-24 Ira Rosen <irar@il.ibm.com>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36034
- * tree-vect-analyze.c (vect_analyze_group_access): SLP is
- incapable of dealing with loads with gaps.
-
-2008-04-24 Rafael Espíndola <espindola@google.com>
-
- * tree-flow.h (vrp_evaluate_conditional): Change signature.
- * tree-ssa-propagate.c (fold_predicate_in): Update call to
- vrp_evaluate_conditional.
- * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
- (vrp_evaluate_conditional): Split the cond argument.
- (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
- (simplify_stmt_for_jump_threading): Update call to
- vrp_evaluate_conditional.
-
-2008-04-24 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35982
- * tree-vect-analyze.c (vect_check_interleaving): Check that the
- interleaved data-refs are of the same type.
-
-2008-04-24 Danny Smith <dannysmith@users.net>
-
- * c-format.c (check_format_info_main): Use strncmp rather than a
- magic prefix to handle multichar length specs.
- * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
- Don't prefix "I64" and "I32" with '\0'.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36015
- * config/i386/i386.c (init_cumulative_args): Don't pass anything
- in registers for -m32 only if stdarg_p (fntype).
-
-2008-04-24 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/36006
- * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
- temp to op0 in order to avoid invalid rtx sharing.
-
-2008-04-23 Paolo Bonzini <bonzini@gnu.org>
-
- * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
- check TREE_INVARIANT.
- * tree-gimple.c (is_gimple_address): New.
- (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
- * tree-gimple.h (is_gimple_address): New.
- * tree.h (decl_address_invariant_p): New.
- * tree.c (make_node_stat): Don't set TREE_INVARIANT.
- (build_string): Likewise.
- (decl_address_invariant_p): New, from is_gimple_invariant_address.
- (tree_invariant_p_1): Likewise.
- (save_expr): Use it.
- (tree_invariant_p): New.
- (skip_simple_arithmetic): Use it.
- (stabilize_reference_1): Use it.
- (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
- simplify.
- (build1_stat): Drop code to compute TREE_INVARIANT.
- (build2_stat): Drop code to compute TREE_INVARIANT.
- (build3_stat): Drop code to compute TREE_INVARIANT.
- (build4_stat): Drop code to compute TREE_INVARIANT.
- (build5_stat): Drop code to compute TREE_INVARIANT.
- (build7_stat): Drop code to compute TREE_INVARIANT.
- (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
- * tree.h (struct tree_base): Remove invariant_flag.
- (TREE_INVARIANT): Remove.
- * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
- (fold_builtin_expect): Check TREE_CONSTANT.
- * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
- * c-tree.h (c_expr_to_decl): Drop third parameter.
- * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
- (build_c_cast): Don't set TREE_INVARIANT.
- (pop_init_level): Don't set TREE_INVARIANT.
- (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
- * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
- TREE_CONSTANT.
- (gimplify_init_constructor): Don't set TREE_INVARIANT.
- (gimplify_addr_expr): Adjust comment.
- * tree-mudflap.c (mf_build_string):
- * print-tree.c (print_node): Don't print TREE_INVARIANT.
- * tree-nested.c (convert_nonlocal_reference): Adjust comment.
- * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
- * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
- * langhooks.c (lhd_expr_to_decl): Drop third parameter.
- * langhooks.h (struct lang_hooks): Drop third parameter from
- expr_to_decl.
-
-2008-04-23 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/27799
- PR tree-optimization/32921
- PR tree-optimization/32624
- * tree-ssa-structalias.c (merge_smts_into): Only merge the
- SMTs aliases and the tag itself into the solution.
- * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
- merge the points-to solution back into the SMT aliases.
- (may_alias_p): Use alias_set_subset_of instead of
- aliases_conflict_p. A pointer which points to
- memory with alias set zero may access any variable.
-
-2008-04-23 Richard Guenther <rguenther@suse.de>
-
- * alias.c (alias_set_subset_of): Correctly handle asking
- if zero is a subset of an alias set with zero child.
- * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
- (compute_flow_insensitive_aliasing): Correctly walk all
- pointers. Do not unnecessarily union sets.
-
-2008-04-23 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36021
- * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
-
-2008-04-22 Tomas Bily <tbily@suse.cz>
-
- * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
- unreachable case.
- * tree-vrp.c (extract_range_from_unary_expr): Removed unused
- NON_LVALUE_EXPR.
- * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
- * tree-ssa-structalias.c (get_constraint_for): Likewise.
- * tree-inline.c (estimate_num_insns_1): Likewise.
- * varasm.c (const_hash_1, compare_constant, copy_constant)
- (compute_reloc_for_constant, output_addressed_constants): Likewise.
- * emit-rtl.c (component_ref_for_mem_expr)
- (set_mem_attributes_minus_bitpos): Likewise.
- * expr.c (highest_pow2_factor, expand_expr_real_1, )
- (is_aligning_offset): Likewise.
- * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
- * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
- * dojump.c (do_jump): Likewise.
- * builtins.c (get_pointer_alignment, get_memory_rtx)
- (integer_valued_real_p, fold_builtin_next_arg): Likewise.
- * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
-
-2008-04-23 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36017
- * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
- expanding the library call.
-
-2008-04-22 Ian Lance Taylor <iant@google.com>
-
- * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
- than size_in_bytes.
-
-2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
-
- * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
- of LR/CTR moves for Power6.
-
-2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR middle-end/36003
- * passes.c (init_optimization_passes): Remove
- pass_fast_rtl_byte_dce.
-
-2008-04-22 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/29096
- * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
- builtin functions to generate faster code.
- (_mm_cvtpu16_ps): Ditto.
- (_mm_cvtpi32x2_ps): Ditto.
-
-2008-04-22 Nick Clifton <nickc@redhat.com>
-
- * common.opt (ftree-loop-distribution): Add Optimization
- attribute.
-
- * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
- (frv_expand_builtin_va_start): Likewise.
-
- * config/arm/arm.c (thumb_find_work_register): Fix location of
- argument register count.
-
-2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- Support scheduling for ColdFire V1 and V3 microarchitecture.
- Improve scheduling of multiplication instructions.
-
- * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
- (mac): New instruction attribute.
- * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
- (m68k_sched_mac): New variable.
- (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
- Handle cfv1 and cfv3.
- (max_insn_size): New static variable.
- (struct _sched_ib): New type.
- (sched_ib): New static variable.
- (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
- to fields of 'struct _sched_ib sched_ib'. Update all uses.
- (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
- Update.
- (m68k_sched_md_init_global, m68k_sched_md_finish_global,
- m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
- new variables. Update.
- (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
- Add modeling of cfv3 instruction buffer. Update.
- * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
- * config/m68k/m68k.h (TUNE_CFV3): New macro.
- * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
- (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
- a particular reservation applies to.
- (type2): Reorganize attribute values. Rename alu to alu_reg,
- alu_l to alu, move_l to omove. Join move to alu. Split mul
- to mul_l and mul_w.
- (cf_ib_*): Simplify description of instruction buffer.
- (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
- (cf_mem): Split into cf_mem1 and cf_mem2.
- (cf_v2_move_??): Rename to cfv12_alu_??.
- (cf_v2_move_l_??): Rename to cfv12_omove_??.
- (cf_v2_mul_??): Remove reservations.
- (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
- cfv12_emac_??, cfv12_emac_w_i0): New reservations.
- (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
- appropriate place.
- (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
- cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
- cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
- cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
- cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
- cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
- (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
- expansions of the above reservations for instructions of sizes
- 1, 2 and 3 words.
-
-2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
-
-2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
-
- * coverage.c: Include tree-pass.h.
- (coverage_counter_alloc): Print da_file_name to the dump file.
-
-2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * sbitmap.c (sbitmap_range_empty_p): New function.
- * sbitmap.h (sbitmap_range_empty_p): New function.
- * bitmap.h: Now includes obstack.h.
-
-2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
- Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * dbgcnt.def (ra_byte_scan): Added.
- * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
- when the last hit happens for a counter.
- * timevar.def (TV_DF_BYTE_LR): New variable.
- * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
- * passes.c (pass_fast_rtl_byte_dce): New pass.
- * fwprop.c (update_df): Added mode to call df_ref_create.
- Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
- DF_REF_EXTRACT_OFFSET.
- * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
- DF_BYTE_LR_OUT, df_byte_lr): New macro.
- (df_mm): New enum.
- (df_ref_extract): Added mode field.
- (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
- DF_REF_EXTRACT_OFFSET.
- (DF_REF_EXTRACT_MODE): New macro.
- (df_byte_lr_bb_info): New structure.
- (df_print_byte_regset, df_compute_accessed_bytes,
- df_byte_lr_add_problem, df_byte_lr_get_regno_start,
- df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
- df_byte_lr_simulate_uses,
- df_byte_lr_simulate_artificial_refs_at_top,
- df_byte_lr_simulate_artificial_refs_at_end,
- df_compute_accessed_bytes): New function.
- (df_ref_create): Add parameter.
- (df_byte_lr_get_bb_info): New inline function.
- * df-scan.c (df_ref_record, df_uses_record,
- df_ref_create_structure): Added mode parameter.
- (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
- df_defs_record, df_uses_record, df_get_conditional_uses,
- df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
- df_entry_block_defs_collect, df_exit_block_uses_collect):
- Added mode parameter to calls to df_ref_record, df_uses_record,
- df_ref_create_structure.
- (df_ref_equal_p, df_ref_compare): Added test for modes.
- (df_ref_create_structure): Added code to set mode. Renamed
- DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
- DF_REF_EXTRACT_OFFSET.
- * df-core.c (df_print_byte_regset): New function.
- * df-byte-scan.c: New file.
- * df-problems.c (df_rd_transfer_function): Removed unnecessary
- calls to BITMAP_FREE.
- (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
- (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
- df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
- df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
- df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
- df_byte_lr_local_compute, df_byte_lr_init,
- df_byte_lr_confluence_0, df_byte_lr_confluence_n,
- df_byte_lr_transfer_function, df_byte_lr_free,
- df_byte_lr_top_dump, df_byte_lr_bottom_dump,
- df_byte_lr_add_problem, df_byte_lr_simulate_defs,
- df_byte_lr_simulate_uses,
- df_byte_lr_simulate_artificial_refs_at_top,
- df_byte_lr_simulate_artificial_refs_at_end): New function.
- * dce.c (byte_dce_process_block): New function.
- (dce_process_block): au is now passed in rather than computed
- locally. Changed loops that look at artificial defs to not look
- for conditional or partial ones, because there never are any.
- (fast_dce): Now is able to drive byte_dce_process_block or
- dce_process_block depending on the kind of dce being done.
- (rest_of_handle_fast_dce): Add parameter to fast_dce.
- (rest_of_handle_fast_byte_dce): New function.
- (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
- * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
-
-2008-04-21 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35019
- * gcc.h: Added fortran options that take arguments to
- DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
- macros.
-
-2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
- scalarization if on the LHS and not a full access.
-
-2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
-
-2008-04-18 Rafael Espíndola <espindola@google.com>
-
- * tree-vrp.c (find_case_label_index): Fix the binary search.
- (find_case_label_range): New.
- (vrp_visit_switch_stmt): Use find_case_label_range.
- (simplify_switch_using_ranges): Use find_case_label_range.
-
-2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
- using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
-
-2008-04-18 Tom Tromey <tromey@redhat.com>
-
- PR libcpp/15500:
- * doc/cpp.texi (Implementation-defined behavior): Mention
- -finput-charset.
-
-2008-04-18 Ian Lance Taylor <iant@google.com>
-
- * fold-const.c (pointer_may_wrap_p): New static function.
- (fold_comparison): Add another test for pointer overflow. Use
- pointer_may_wrap_p to disable some false positives.
-
-2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
- (fname_as_string): Match updated cpp_interpret_string prototype.
- (fix_string_type): Support char16_t* and char32_t*.
- (c_common_nodes_and_builtins): Add char16_t and char32_t (and
- derivative) nodes. Register as builtin if C++0x.
- (c_parse_error): Support CPP_CHAR{16,32}.
- * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
- (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
- CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
- CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
- CTI_CHAR32_ARRAY_TYPE>: New elements.
- (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
- char32_type_node, signed_char32_type_node, char16_array_type_node,
- char32_array_type_node): New defines.
- * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
- (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
- (lex_string): Support CPP_STRING{16,32}, match updated
- cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
- (lex_charconst): Support CPP_CHAR{16,32}.
- * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
- and CPP_STRING{16,32}.
-
-2008-04-18 Paolo Bonzini <bonzini@gnu.org>
-
- PR bootstrap/35457
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2008-04-18 Jan Hubicka <jh@suse.cz>
-
- * except.c (dw2_size_of_call_site_table,
- sjlj_size_of_call_site_table): Use vector API for call_site_record.
-
- * cgraphbuild.c (build_cgraph_edges): Update.
- * tree-pass.h: Update comment.
- * final.c (leaf_function_p): Update.
- (leaf_renumber_regs): Update.
- (rest_of_clean_state): Update.
- * omp-low.c (expand_omp_parallel): Update.
- * ipa-reference.c (analyze_function): Update.
- * reorg.c (find_end_label): Update.
- (optimize_skip): Update.
- (fill_simple_delay_slots): Update.
- (fill_simple_delay_slots): Update.
- (make_return_insns): Update.
- (dbr_schedule): Update.
- * gimple-low.c (record_vars_into): Update.
- * cfgbuild.c (make_edges): Update.
- * function.c (assign_stack_local): Update.
- (assign_parm_adjust_stack_rtl): Update.
- (locate_and_pad_parm): Update.
- (allocate_struct_function): Do not initialize stack_alignment_needed
- and preferred_stack_boundary here.
- (stack_protect_prologue): Update.
- (stack_protect_epilogue): Update.
- (expand_function_start): Initialize stack_alignment_needed,
- preferred_stack_boundary and max_jumptable_ents.
- (expand_function_end): Update.
- (free_after_compilation): Do not NULLify epilogue_delay_list.
- * function.h (struct rtl_data): Add stack_protect_guard,
- stack_alignment_needed,
- preferred_stack_boundary, epilogue_delay_list.
- (struct function): Remove value_histograms, stack_alignment_needed,
- preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
- last_label_uid,
- unexpanded_var_list, stack_protect_guard.
- (current_function_epilogue_delay_list): Remove.
- * ipa-type-escape.c (analyze_function): Update.
- * gimplify.c (pop_gimplify_context): Update comment.
- * calls.c (expand_call): Update.
- (emit_library_call_value_1): Update.
- * except.c (set_nothrow_function_flags): Update.
- * cfgexpand.c (get_decl_align_unit): Update.
- (create_stack_guard): Update.
- (estimated_stack_frame_size): Update.
- (expand_used_vars): Update.
- (tree_expand_cfg): Free histogram earliers, init expansion variables.
- * explow.c (allocate_dynamic_stack_space): Update.
- * tree-ssa-live.c (remove_unused_locals): Update.
- * varasm.c (mark_constant_pool): Update.
- * tree-inline.c (remap_decls): Update.
- (initialize_cfun): Update.
- (declare_return_variable): Update.
- (inline_forbidden_p): Update.
- (expand_call_inline): Update.
- (declare_inline_vars): Update.
- (tree_function_versioning): Update.
- * tree-flow.h (value_histograms): New.
- (VALUE_HISTOGRAMS): New macro.
- * basic-block.h (control_flow_graph): Add max_jumptable_ents,
- last_label_uid.
- * tree-cfg.c (set_bb_for_stmt): Update.
- (replace_by_duplicate_decl): Update.
- (move_block_to_fn): Update.
- (new_label_mapper): Update.
- (dump_function_to_file): Update.
- * ipa-struct-reorg.c (build_data_structure): Update.
- * cfgrtl.c (print_rtl_with_bb): Update.
- * reload1.c (reload): Update.
- (reload): Update.
- * config/i386/i386.c (setup_incoming_varargs_64,
- ix86_compute_frame_layout): Update.
- * config/arc/arc.c (arc_output_function_epilogue): Update.
-
-2008-04-18 Marius Strobl <marius@FreeBSD.org>
-
- * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
- for FreeBSD as well.
- * gthr-posix95.h: Likewise.
-
-2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/35838
- * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
- out the byte offset of the first subreg.
-
-2008-04-17 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
- to split_ti instead of three separate calls with single member arrays.
- (subti3 splitter): Ditto.
- (adddi3 splitter): Ditto with split_di.
- (subdi3 splitter): Ditto.
- (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
- two separate calls with single member arrays. Swap match_dup
- operands 1 and 2 to better fit into the array.
- (negdi2 splitter): Ditto with split_di.
- (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
- two separate calls with single member arrays. Swap match_dup operands
- 6 and 7 to better fit into the array.
-
-2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (sse_builtin_type): New.
- (bdesc_sse_args): Likewise.
- (bdesc_sse_3arg): Removed.
- (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
- (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
- IX86_BUILTIN_ROUNDPS.
- (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
- bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
- IX86_BUILTIN_ROUNDPS.
- (ix86_expand_sse_4_operands_builtin): Removed.
- (ix86_expand_sse_operands_builtin): New.
- (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
- and CODE_FOR_sse4_1_roundps.
- (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
- Handle bdesc_sse_args. Remove bdesc_sse_3arg.
-
-2008-04-17 Alan Modra <amodra@bigpond.net.au>
-
- PR target/35907
- * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
- regs before frame pop when needed. If use_backchain_to_restore_sp
- then load backchain into a temp reg to restore vr and vrsave. Add
- code to restore vr after frame pop if possible.
-
-2008-04-17 Richard Guenther <rguenther@suse.de>
-
- * tree-vn.c (expressions_equal_p): Do not check type
- equality or compatibility before calling operand_equal_p.
- * fold-const.c (operand_equal_p): Check equivalence of
- integer constants before bailing out due to signedness or
- precision differences.
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
- spurious differences in type qualification. Ignore types
- for COMPONENT_REFs at all.
-
-2008-04-17 Christian Bruel <christian.bruel@st.com>
-
- * config/sh/sh.c (expand_cbranchdi4): Use original operands for
- msw_skip comparison.
-
-2008-04-16 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35739
- * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
- reg type.
-
- PR tree-optimization/35899
- * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
- rather than TREE_OPERAND.
-
-2008-04-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35944
- * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
- temporary registers. Change operand predicate to general_operand.
- (remainderxf3): Ditto.
-
-2008-04-16 Richard Guenther <rguenther@suse.de>
-
- * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
- * tree-affine.c (aff_combination_expand): Look through some
- conversions.
-
-2008-04-15 Doug Kwan <dougkwan@google.com>
-
- * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
- for hex printing.
- * tree-pretty-print.c (dump_generic_node): Ditto.
- * final.c (output_addr_const): Ditto.
- * dwarf2out.c (output_cfi): Ditto.
- * c-pretty-print.c (pp_c_integer_constant): Ditto.
- * print-rtl.c (print_rtx): Ditto.
- * print-tree.c (print_node_brief, print_node): Ditto.
- * c-common.c (match_case_to_enum_1): Ditto.
- * sched-vis.c (print_value): Ditto.
- * config/i386/i386.c (print_operand): Cast to long unsigned int
- for hex printing.
-
-2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
- * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
- MS Windows VirtualProtect function.
-
-2008-04-15 Jan Hubicka <jh@suse.cz>
-
- * gengtype.c (write_root): Param_is argument is OK.
- * expr.c (expand_expr_real_1): Update call of get_exception_*.
- * function.h: Include varray.h
- (rtl_eh): New stucture based on except.c one.
- (call_site_record): New forward declaration and vector type.
- * calls.c (emit_call_1): Do not call
- note_current_region_may_contain_throw.
- * except.c (eh_status): Remove cur_region, try_region since they are
- unused.
- Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
- exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
- sjlj_fc, sjlj_exit_after to rth_eh in function.h.
- Remove call_site_data_used, call_site_data_size.
- Turn call_site_record into vector in function.h.
- (note_current_region_may_contain_throw): Remove.
- (get_exception_pointer, get_exception_filter): Do not take struct
- function argument; update.
- (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
- add_ttypes_entry, add_ehspec_entry, assign_filter_values,
- build_post_landing_pads, dw2_build_landing_pads,
- sjlj_assign_call_site_values, sjlj_mark_call_sites,
- sjlj_emit_function_enter, sjlj_emit_function_enter,
- sjlj_emit_function_exit, sjlj_emit_dispatch_table,
- sjlj_build_landing_pads, finish_eh_generation,
- remove_exception_handler_label, remove_eh_handler,
- maybe_remove_eh_handler, add_reachable_handler,
- reachable_handlers, expand_builtin_eh_return, expand_eh_return,
- add_action_record, collect_one_action_chain, add_call_site,
- convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
- sjlj_output_call_site_table, output_function_exception_table,
- * except.h (note_current_region_may_contain_throw): Remove
- (get_exception_pointer, get_exception_filter): Do not take struct
- function argument.
- * Makefile.in (GTFILES): Put varargs before struct function.
-
-2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
- punt for STRING_CST.
- (get_constraint_for): Deal with STRING_CST here instead.
-
-2008-04-15 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-propagate.c (substitute_and_fold): Substitute
- statements in a basic-block with a backward walk. Do not
- substitute into dead statements but instead remove those.
-
-2008-04-15 Richard Guenther <rguenther@suse.de>
-
- * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
- to zero, thus disable creation of SFTs.
-
-2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-predcom.c (suitable_reference_p): Return false if the
- reference can throw.
-
-2008-04-15 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35751
- * c-decl.c (finish_decl): If extern or static var has variable
- size, set TREE_TYPE (decl) to error_mark_node.
-
-2008-04-15 Rafael Espíndola <espindola@google.com>
-
- * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
- variable arg1.
-
-2008-04-15 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
- * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
- (visit_reference_op_load): Do walk vuse-vdef chains on
- vn_reference_lookup.
- (visit_reference_op_store): But do not here.
- * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
- vn_reference_lookup.
- (vn_lookup_with_vuses): But do so here.
-
-2008-04-14 Ian Lance Taylor <iant@google.com>
-
- * fold-const.c (fold_overflow_warning): Remove assertion.
-
-2008-04-15 Ben Elliston <bje@au.ibm.com>
-
- * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
- temp1 local variables.
-
-2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
-
- PR target/35661
- * config/i386/winnt.c (i386_pe_section_type_flags): Mark
- ".text.unlikely" section as executable.
-
-2008-04-14 James E. Wilson <wilson@tuliptree.org>
-
- * config/ia64/ia64.c (rtx_needs_barrier): Handle
- UNSPEC_FR_SQRT_RECIP_APPROX_RES.
- * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
- (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
- divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
- divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
- divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
-
-2008-04-14 Ian Lance Taylor <iant@google.com>
-
- * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
- * fold-const.c (fold_comparison): If appropriate, test
- POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
- (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
- reassociating a pointer type.
- * doc/invoke.texi (Optimize Options): Document that
- -fstrict-overflow applies to pointer wraparound.
-
-2008-04-13 Jan Hubicka <jh@suse.cz>
-
- * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
-
-2008-04-12 Andrew Pinski <pinskia@gmail.com>
-
- * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
- we are going to "save the world".
-
-2008-04-13 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
- ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
- operand 0 constraint, not "=".
-
-2008-04-11 James E. Wilson <wilson@tuliptree.org>
-
- * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
-
-2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
- of size of positions_needed * CHAR_BIT.
-
-2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/35897
- * dse.c (store_info): Change positions_needed to unsigned
- HOST_WIDE_INT.
- (lowpart_bitmask): New.
- (record_store): Cast to unsigned HOST_WIDE_INT for
- positions_needed. Assert width <= size of positions_needed *
- CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
- (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
- lowpart_bitmask to set mask.
-
-2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/constraints.md: New file.
- * config/bfin/bfin.md: Include it.
- (adddi3): Use satisfies_constraint functions instead of the old macros.
- * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
- CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
- CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
- CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
- CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
- CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
- EXTRA_CONSTRAINT): Delete.
- * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
- reg_or_neg7bit_operand): Use satisfies_constraint functions instead
- of the old macros.
- * config/bfin/bfin.c: Include "tm-constrs.h".
- (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
- Use satisfies_constraint functions instead of the old macros.
- * doc/md.texi (Blackfin Constraints): Update file name reference.
-
-2008-04-11 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35869
- * tree-vrp.c (execute_vrp): Move switch statement update after
- jump threading. Schedule another cfg cleanup run.
-
-2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35744
- * attribs.c (decl_attributes): Return early on errorneous node.
-
-2008-04-10 Oleg Ryjkov <olegr@google.com>
-
- * tree.h (struct tree_base): Added a new flag default_def_flag.
- (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
-
-2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
-
-2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR target/35768
- * pa.md: Define mode iterator P. Define mode attribute dwc.
- (dcacheflush): Update pattern to use iterator P and attribute dwc.
- (icacheflush): Likewise.
- * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
- !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
-
-2008-04-11 Ben Elliston <bje@au.ibm.com>
-
- * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
-
-2008-04-10 Rafael Espíndola <espindola@google.com>
-
- * tree-vrp.c (extract_range_from_binary_expr): Don't handle
- TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
- (extract_range_from_expr): The same.
-
-2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.md (GPR2): New mode iterator.
- (seq): Add comment.
- (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
- *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
- *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
- Rewrite these to take two modes, the mode of comparison and the
- mode of the destination.
- * config/mips/mips.c (mips_expand_scc): Instead of having
- paradoxical subreg as destination, expand "narrowing" scc if mode
- of comparison is SI and target is requested in DI mode.
- (mips_emit_int_order_test): Update comment. Make mode of
- comparison match CMP0 rather than TARGET. When creating inverse
- target use mode of TARGET.
-
-2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcov-dump.c (tag_summary): Only print summaries for the first
- GCOV_COUNTERS_SUMMABLE counters.
-
-2008-04-10 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (absneg): New code iterator.
- (absnegprefix): New code attribute.
- (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
- patterns using absneg code iterator.
- (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
- using absneg code iterator.
- (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
- *neg<mode>2 patterns using absneg code iterator.
- (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
- *negextendsfdf2 patterns using absneg code iterator.
- (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
- *negextendsfxf2 patterns using absneg code iterator.
- (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
- *negextendsfdf2 patterns using absneg code iterator.
- * config/i386/sse.md (<code><mode>2): Macroize expander from
- abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
-
-2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.h: Remove the remains of the recent search
- & replace action of current_function_outgoing_args_size.
-
-2008-04-10 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35821
- * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
- NEW_STMT_LIST is not NULL.
-
-2008-04-09 David Edelsohn <edelsohn@gnu.org>
-
- PR libstdc++/35597
- * toplev.c (process_options): Remove -ffunction-sections debugging
- warning.
-
-2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
-
- PR middle-end/PR28690
- * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
- than gen_rtx_fmt_ee to perform more canonicalizations.
-
-2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR driver/35665
- * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
-
-2008-04-09 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_stmt): Print complete bogus stmt.
- (dump_function_to_file): Dump function arguments with types.
-
-2008-04-08 Richard Guenther <rguenther@suse.de>
-
- * fold-const.c (fold_widened_comparison): Do not allow
- sign-changes that change the result.
-
-2008-04-08 Janis Johnson <janis187@us.ibm.com>
-
- PR target/35839
- * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
- kinds of indirect references.
-
-2008-04-08 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
- GNU Fortran language string.
-
-2008-04-08 Rafael Espíndola <espindola@google.com>
-
- * fold-canst.c (tree_call_nonnegative_warnv_p): New.
- (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
- * tree.h (tree_call_nonnegative_warnv_p): New.
-
-2008-04-08 Jan Hubicka <jh@suse.cz>
-
- * function.c (free_after_compilation): Clear out regno_reg_rtx
- pointer.
-
-2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
-
- Revert
- 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
-
- PR middle-end/PR28690
- * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
- same precedence as REG_POINTER and MEM_POINTER operands.
-
-2008-04-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35834
- * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
- for adding index to base.
-
-2008-04-08 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
- (MINGW_ENABLE_EXECUTE_STACK): New.
- (IN_LIBGCC2): For libgcc include windows.h file for
- function declarations.
-
-2008-04-08 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
- and tem2 if tem1 is not a REG or MULT.
-
-2008-04-08 Jan Hubicka <jh@suse.cz>
-
- * function.h (incomming_args): Break out of struct function.
- (function_subsections): Break out of struct function.
- (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
- return_rtx and hard_reg_initial_vals from struct function.
- Kill inl_max_label_num.
- (current_function_pops_args, current_function_args_info,
- current_function_args_size, current_function_args_size,
- current_function_pretend_args_size,
- current_function_outgoing_args_size,
- current_function_internal_arg_pointer, current_function_return_rtx):
- Kill compatibility accestor macros.
- * builtins.c (expand_builtin_apply_args_1): Update.
- (expand_builtin_next_arg): Update.
- * df-scan.c (df_get_call_refs): Update.
- * dbxout.c (dbxout_function_end): Update.
- * dwarf2out.c (dwarf2out_switch_text_section): Update.
- (output_line_info): Update.
- (secname_for_decl): Update.
- (dwarf2out_var_location): Update.
- * function.c (free_after_compilation): Update.
- (assign_parm_find_stack_rtl): Update.
- (assign_parms): Update.
- (expand_dummy_function_end): Update.
- (expand_function_end): Update.
- * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
- (expand_call): Update.
- (emit_library_call_value_1): Update.
- (store_one_arg): Update.
- * varasm.c (initialize_cold_section_name): Update.
- (unlikely_text_section): Update.
- (unlikely_text_section_p): Update.
- (assemble_start_function): Update.
- (assemble_end_function): Update.
- (default_section_type_flags): Update.
- (switch_to_section): Update.
- * integrate.c (set_decl_abstract_flags): Update.
- (get_hard_reg_initial_val): Update.
- (has_hard_reg_initial_val): Update.
- (allocate_initial_values): Update.
- * resource.c (init_resource_info): Update.
- * config/alpha/alpha.c (NUM_ARGS): Update.
- (direct_return): Update.
- (alpha_va_start): Update.
- (alpha_sa_size): Update.
- (alpha_initial_elimination_offset): Update.
- (alpha_expand_prologue): Update.
- (alpha_start_function): Update.
- (alpha_expand_epilogue): Update.
- (unicosmk_initial_elimination_offset):
- * config/alpha/alpha.md (call expander): Update.
- * config/s390/s390.c (s390_register_info): Update.
- (s390_register_info): Update.
- (s390_frame_info): Update.
- (s390_initial_elimination_offset): Update.
- (s390_build_builtin_va_list): Update.
- (s390_va_start): Update.
- * config/spu/spu.c (direct_return): Update.
- (spu_expand_prologue): Update.
- (spu_initial_elimination_offset): Update.
- (spu_build_builtin_va_list): Update.
- (spu_va_start): Update.
- * config/sparc/sparc.c (sparc_init_modes): Update.
- (sparc_compute_frame_size): Update.
- (function_value): Update.
- * config/m32r/m32r.c (m32r_compute_frame_size): Update.
- * config/i386/i386.md (return expander): Update.
- * config/i386/i386.c (ix86_va_start): Update.
- (ix86_can_use_return_insn_p): Update.
- (ix86_compute_frame_layout): Update.
- (ix86_expand_epilogue): Update.
- * config/sh/sh.c (output_stack_adjust): Update.
- (calc_live_regs): Update.
- (sh_expand_prologue): Update.
- (sh_builtin_saveregs): Update.
- (sh_va_start): Update.
- (initial_elimination_offset): Update.
- (sh_allocate_initial_value): Update.
- (sh_function_ok_for_sibcall): Update.
- (sh_get_pr_initial_val): Update.
- * config/sh/sh.md (return expander): Update.
- * config/avr/avr.c (frame_pointer_required_p): UPdate.
- * config/crx/crx.c (crx_compute_frame): UPdate.
- (crx_initial_elimination_offset): UPdate.
- * config/xtensa/xtensa.c (compute_frame_size): Update
- (xtensa_builtin_saveregs): Update.
- (xtensa_va_start): Update.
- (order_regs_for_local_alloc): Update.
- * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
- (xstormy16_expand_builtin_va_start): Update.
- * config/fr30/fr30.c (fr30_compute_frame_size): Update.
- * config/m68hc11/m68hc11.md (return expanders): Update.
- * config/m68hc11/m68hc11.c (expand_prologue): Update.
- (expand_epilogue): Update.
- * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
- (cris_simple_epilogue): Update.
- (cris_expand_prologue): Update.
- (cris_expand_epilogue): Update.
- * config/iq2000/iq2000.c (iq2000_va_start): Update.
- (compute_frame_size): Update.
- * config/mt/mt.c (mt_compute_frame_size): Update.
- * config/mn10300/mn10300.c (expand_prologue): Update.
- (expand_epilogue): Update.
- (initial_offset): Update.
- (mn10300_builtin_saveregs):
- * config/mn10300/mn10300.md (return expander): Update.
- * config/ia64/ia64.c (ia64_compute_frame_size): Update.
- (ia64_initial_elimination_offset): Update.
- (ia64_initial_elimination_offset): Update.
- (ia64_expand_prologue): Update.
- * config/m68k/m68k.md (return expander): Update.
- * config/rs6000/rs6000.c (rs6000_va_start): Update.
- (rs6000_stack_info): Update.
- * config/mcore/mcore.c (layout_mcore_frame): Update.
- (mcore_expand_prolog): Update.
- * config/arc/arc.c (arc_compute_frame_size): Update.
- * config/score/score3.c (score3_compute_frame_size): Update.
- * config/score/score7.c (score7_compute_frame_size): Update.
- * config/arm/arm.c (use_return_insn): Update.
- (thumb_find_work_register): Update.
- (arm_compute_save_reg_mask): Update.
- (arm_output_function_prologue): Update.
- (arm_output_epilogue): Update.
- (arm_size_return_regs): Update.
- (arm_get_frame_offsets): Update.
- (arm_expand_prologue): Update.
- (thumb_exit): Update.
- (thumb_unexpanded_epilogue): Update.
- (thumb1_output_function_prologue): Update.
- * config/pa/pa.md (return expander): Update.
- * config/pa/pa.c (compute_frame_size): Update.
- (hppa_builtin_saveregs): Update.
- * config/mips/mips.c (mips_va_start): Update.
- (mips16_build_function_stub): Update.
- (mips_compute_frame_info): Update.
- (mips_restore_gp): Update.
- (mips_output_function_prologue): Update.
- (mips_expand_prologue): Update.
- * config/v850/v850.c (compute_frame_size): Update.
- (expand_prologue): * config/mmix/mmix.c (along): update.
- (mmix_initial_elimination_offset): update.
- (mmix_reorg): update.
- (mmix_use_simple_return): update.
- (mmix_expand_prologue): update.
- (mmix_expand_epilogue): Update.
- * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
- (emit_link_insn): Update.
-
-2008-04-08 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
- __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
- instructions.
- * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
- atmega103 device.
-
-2008-04-07 Jan Hubicka <jh@suse.cz>
-
- * function.h (rtl): Rename to x_rtl.
- (crtl): New define.
- (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
- frame_offset, stack_check_probe_note, arg_pointer_save_area,
- used_temp_slots avail_temp_slots, temp_slot_level,
- nonlocal_goto_handler_labels): Update accesstors.
- (rtl): New global variable.
- (struct function): Move some fileds to rtl_data.
- (get_arg_pointer_save_area): Update prototype.
- * builtins.c (expand_builtin_setjmp_receiver): Update call of
- get_arg_pointer_save_area.
- * expr.c (init_expr): Update
- * function.c (get_frame_size): Update
- (assign_stack_local): Update
- (expand_function_end): Update.
- (get_art_pointer_save_area): Update
- * function.h
- * emit-rtl.c (rtl): Declare.
- (regno_reg_rtx): Declare.
- (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
- Update.
- (gen_reg_rtx): Update.
- * varasm.c (n_deferred_constatns): Update accestor.
- (init_varasm_status): Do not allocate varasm_status.
- (force_const_mem, get_pool_size, output_constant_pool): Update.
- * stmt.c (force_label_rtx): Do not use x_ prefixes.
- (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
- * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
- * sparc/sparc.h (INIT_EXPANDERS): Update.
- * ia64/ia64.h (INIT_EXPANDERS): Update.
-
-2008-04-07 James E. Wilson <wilson@tuliptree.org>
-
- * reload.c (push_secondary_reload): Add missing break to for loop.
-
-2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
-
- PR middle-end/PR28690
- * rtlanal.c: Update copyright years.
- (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
- as REG_POINTER and MEM_POINTER operands.
- * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
- (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
- * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
- * gcse.c: Update copyright years.
- (pre_delete): Call gen_reg_rtx_and_attrs.
- (hoist_code): Likewise.
- (build_store_vectors): Likewise.
- (delete_store): Likewise.
- * loop-invariant.c (move_invariant_reg): Likewise.
- Update copyright years.
-
-2008-04-07 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
- control string instead of quoted.
-
-2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/rtl.texi: Rewrite of subreg section.
-
-2008-04-07 Kai Tietz <kai.tietz@onevision.com>
-
- PR/35842
- * config/i386/i386.c (legitimize_pic_address): Add treating
- of dllimport SYM_REF's.
- (legitimize_dllimport_symbol): Add prototype.
-
-2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
- reference in constructor with non self-referential type.
-
-2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
-
- Removal of Return with Depressed Stack Pointer support
- * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
- (ECF_SP_DEPRESSED): Likewise.
- (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
- * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
- (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
- (expand_call): Do not test ECF_SP_DEPRESSED.
- * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
- * function.c (keep_stack_depressed): Delete.
- (handle_epilogue_set): Likewise.
- (update_epilogue_consts): Likewise.
- (emit_equiv_load): Likewise.
- (thread_prologue_and_epilogue_insns): Remove support for Return with
- Depressed Stack Pointer.
- * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
-
-2008-04-06 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35400
- * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
- information from SSA_NAMEs.
-
-2008-04-06 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (avr_mega_p): Remove declaration.
- (AVR_MEGA): Remove macro.
- * config/avr/avr.c (avr_mega_p): Remove variable.
- (avr_override_options): Remove inicializion of avr_mega_p.
- Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
- (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
- (avr_jump_mode): (Ditto.).
- (avr_output_progmem_section_asm_op): (Ditto.).
- (avr_asm_init_sections): (Ditto.).
- (avr_asm_init_sections): (Ditto.).
- (avr_rtx_costs): (Ditto.).
- * config/avr/avr.md: (Ditto.).
- * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
- '__AVR_MEGA__'.
-
-2008-04-06 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35842
- * tree-ssa-address.c (fixed_address_object_p): Adjust to match
- is_gimple_invariant_address.
-
-2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gcc.c (default_compilers): Sync Fortran extensions list with
- that in fortran/lang-specs.h.
- * doc/invoke.texi: Likewise.
- * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
- * dwarf2out.c (gen_compile_unit_die): Likewise.
-
-2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
-
- * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
-
-2008-04-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/12329
- * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
- attribute is used for nested functions.
-
-2008-04-05 Jan Hubicka <jh@suse.cz>
-
- * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
-
- * tree-dump.c (dump_enable_all): Remove prototype; do not accept
- letter argument.
- (dump_files): Update.
- (enable_rtl_dump_file): Do not accept letter argument.
- * tree-pass.h (dump_file_info): Remove letter argument.
- * toplev.c (decode_d_option): Update -da handling.
- * toplev.h (enable_rtl_dump_file): Update prototype.
- * passes.c (register_one_dump_file): Do not accept IPA argument; work
- it out based on pass type.
- (register_dump_files_1): Likewise.
- (init_optimization_passes): Update register_one_dump_file calls.
- (execute_one_pass): Sanity check that IPA passes are called at IPA
- level and RTL passes at RTL level.
- (execute_pass_list): IPA pass can not be after or subpass of
- GIMPLE/RTL pass.
- (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
- disallov RTL subpasses of IPA subpasses.
-
-2008-04-05 Ben Elliston <bje@au.ibm.com>
-
- * tree-cfg.c (need_fake_edge_p): Return false for calls to
- builtins that return exactly once and do not throw. Cache call to
- call_expr_flags.
-
-2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR rtl-optimization/34916
- PR middle-end/35519
- * combine.c (create_log_links): Do not create duplicate LOG_LINKS
- between instruction pairs.
-
-2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * doc/invoke.texi: Document -mbitops for SH.
- * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
- * config/sh/predicates.md (bitwise_memory_operand): New predicate.
- * config/sh/sh.c (print_operand): Add %t operand code.
- * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
- * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
- (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
- (extendqihi2): Likewise.
- (movqi_i): Likewise.
- (insv): Use bset, bclr and bst instructions for SH2A if possible.
- (extv): Use bld instruction for SH2A if possible.
- (extzv): Likewise.
- (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
- bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
- bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
- (bset.b, bclr.b): Define peepholes.
- * config/sh/sh.opt (mbitops): New option.
-
-2008-04-04 Janis Johnson <janis187@us.ibm.com>
-
- PR target/35620
- * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
- and view convert expression.
-
-2008-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35364
- * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
-
-2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
-
- * config/i386/cpuid.h (bit_AES): New.
- (bit_PCLMUL): Likewise.
-
- * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
- (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
- SSE2 if AES or PCLMUL is enabled.
- (ix86_builtins): Add IX86_BUILTIN_AESENC128,
- IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
- IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
- IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
- (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
- (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
- IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
- IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
- (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
- (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
- __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
- __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
- __builtin_ia32_aeskeygenassist128 and
- __builtin_ia32_pclmulqdq128.
- * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
- (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
- IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
-
- * config/i386/i386.h (TARGET_AES): New.
- (TARGET_PCLMUL): Likewise.
- (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
-
- * config/i386/i386.md (UNSPEC_AESENC): New.
- (UNSPEC_AESENCLAST): Likewise.
- (UNSPEC_AESDEC): Likewise.
- (UNSPEC_AESDECLAST): Likewise.
- (UNSPEC_AESIMC): Likewise.
- (UNSPEC_AESKEYGENASSIST): Likewise.
- (UNSPEC_PCLMUL): Likewise.
-
- * config/i386/i386.opt (maes): New.
- (mpclmul): Likewise.
-
- * config/i386/sse.md (aesenc): New pattern.
- (aesenclast): Likewise.
- (aesdec): Likewise.
- (aesdeclast): Likewise.
- (aesimc): Likewise.
- (aeskeygenassist): Likewise.
- (pclmulqdq): Likewise.
-
- * config/i386/wmmintrin.h: New.
-
- * doc/extend.texi: Document AES and PCLMUL built-in function.
-
- * doc/invoke.texi: Document -maes and -mpclmul.
-
-2008-04-04 Paolo Bonzini <bonzini@gnu.org>
-
- * function.c (free_after_parsing): Replace with
- cxx_push_function_context from C++ front-end.
- (allocate_struct_function): Don't call langhook.
- * langhooks.h (struct lang_hooks_for_functions): Delete.
- (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
- member "function".
- * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
- (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
- LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
- LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
- (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
- remove LANG_HOOKS_FUNCTION_INITIALIZER.
- * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
-
- * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
- Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
-
-2008-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35440
- * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
- for all types.
-
-2008-04-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35823
- * fold-const.c (optimize_minmax_comparison): Use the correct
- type for the constant in the simplified comparison.
-
-2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
-
- * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
- Pass L2 size as "--param l2-cache-size" to the compiler.
- (decode_l2_cache): New function to decode L2 cache parameters using
- 0x8000006 extended cpuid function.
- (detect_caches_amd): Determine parameters of L2 cache using
- decode_l2_caches function.
- (decode_caches_intel): Decode L2 cache parameters.
- (detect_caches_intel): Determine L2 cache parameters using
- decode_caches_intel and decode_l2_caches functions.
-
-2008-04-03 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
- secondary input reload for subword loads from the constant pool.
-
-2008-04-03 Janis Johnson <janis187@us.ibm.com>
-
- PR target/35713
- * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
- constants of the appropriate size for runtime calculations.
-
- PR c/35712
- * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
- decimal-float literal constant zero.
-
-2008-04-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35738
- * c-parser.c (c_parser_omp_atomic): Call
- default_function_array_conversion on the RHS.
-
- PR middle-end/35818
- * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
- call is_variable_sized if decl has incomplete type.
-
-2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386-protos.h (ix86_aligned_p): Removed.
-
-2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
-
- * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
- iterators.
- (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
- (sgt<u>): Merge sgt and sgtu into new expander.
- (sgt, sgtu): Remove expanders.
- (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
- (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
- (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
- *sgtu_<mode>_mips16 into new pattern.
- (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
- (sge<u>): Merge sge and sgeu into new expander.
- (sge, sgeu): Remove expanders.
- (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
- new pattern.
- (*sge_<mode>, second *sge_<mode>): Remove patterns.
- (slt<u>): Merge slt and sltu into new expander.
- (slt, sltu): Remove expanders.
- (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
- (*slt_<mode>, *sltu_<mode>): Remove patterns.
- (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
- *sltu_<mode>_mips16 into new pattern.
- (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
- (sle<u>): Merge sle and sleu into new expander.
- (sle, sleu): Remove expanders.
- (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
- (*sle_<mode>, *sleu_<mode>): Remove patterns.
- (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
- *sleu_<mode>_mips16 into new pattern.
- (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
-
-2008-04-03 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/35795
- * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
- * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
- * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
- * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
- * score/score3.c (score3_output_mi_thunk): Likewise.
- * score/score7.c (score7_output_mi_thunk): Likewise.
- * mips/mips.c (mips_output_mi_thunk): Likewise.
-
-2008-04-03 Richard Guenther <rguenther@suse.de>
-
- * tree-vrp.c (extract_range_from_unary_expr): Handle all
- conversions. Simplify code.
-
-2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
-
-2008-04-03 Tom Tromey <tromey@redhat.com>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
- * config/bfin/t-bfin-linux (generated_files): Add
- linux-sysroot-suffix.h.
- * doc/install.texi (Prerequisites): Require make 3.80.
- * doc/sourcebuild.texi (Front End Directory): Document new
- variable.
- * Makefile.in (generated_files): New variable.
- (ALL_HOST_OBJS): New variable.
- ($(ALL_HOST_OBJS)): New target.
-
-2008-04-03 Paolo Bonzini <bonzini@gnu.org>
-
- * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
- (remap_block): Call id->transform_lang_insert_block instead
- of langhook.
- (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
- Set id.transform_lang_insert_block to NULL.
- (clone_body): Move to cp/optimize.c
- * tree-inline.h (struct copy_body_data): Change
- transform_lang_insert_block to function pointer.
- (copy_generic_body, copy_decl_no_change): Export.
- * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
- * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
- (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
-
- * c-tree.h (insert_block): Kill.
- * c-decl.c (insert_block): Kill.
-
-2008-04-03 Paolo Bonzini <bonzini@gnu.org>
-
- * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
- LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
- * c-tree.h (c_push_function_context, c_pop_function_context): Remove
- argument.
- * c-decl.c (c_push_function_context, c_pop_function_context): Remove
- argument, call {push,pop}_function_context from here.
- * c-parser.c: Use c_{push,pop}_function_context.
-
- * function.c (push_function_context_to): Move meat ...
- (push_function_context): ... here. Simplify.
- * function.c (pop_function_context_from): Move meat ...
- (pop_function_context): ... here. Simplify.
- * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
- leave_nested).
- * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
- LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
- (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
- * tree.h (push_function_context_to, pop_function_context_from): Remove.
-
-2008-04-03 Ben Elliston <bje@au.ibm.com>
-
- * expmed.c (extract_force_align_mem_bit_field): Remove.
-
-2008-04-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35800
- * expr.h (try_casesi): Adjust prototype.
- * expr.c (try_casesi): Take fallback label as extra parameter.
- Use that for gen_casesi if default_label is NULL.
- * stmt.c (expand_case): Pass fallback label to try_casesi,
- make sure to fill gaps with a fallback label if default_label
- is not present.
-
-2008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
-
- PR target/35801
- * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
-
-2008-04-03 Ben Elliston <bje@au.ibm.com>
-
- * expmed.c (extract_split_bit_field): Remove if (0) code.
- * tree-ssa-structalias.c (do_sd_constraint): Likewise.
- (do_ds_constraint): Likewise.
-
-2008-04-02 Joseph Myers <joseph@codesourcery.com>
-
- * doc/cppopts.texi (-dU): Document.
- * c-common.h (flag_dump_macros): Update comment.
- * c-opts.c (handle_OPT_d): Handle -dU.
- * c-ppoutput.c (macro_queue, define_queue, undef_queue,
- dump_queued_macros, cb_used_define, cb_used_undef): New.
- (init_pp_output): Handle -dU.
- (cb_line_change): Call dump_queued_macros.
- * toplev.c (decode_d_option): Accept -dU as preprocessor option.
-
-2008-04-02 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/predicates.md (io_address_operand): New predicate.
- * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
- * config/avr/avr.c (avr_io_address_p): Remove function.
- (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
- 'avr_io_address_p' function.
- (out_movhi_r_mr): (Ditto.).
- (out_movqi_mr_r): (Ditto.).
- (out_movhi_mr_r): (Ditto.).
- (avr_address_cost): (Ditto.).
-
-2008-04-02 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
- Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
- in 32bit mode when XMM registers are available to avoid store
- forwarding stalls.
- (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
- corresponding post-reload splitters.
-
-2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
- and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
- __builtin_ia32_roundss.
- (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
- __builtin_ia32_shufpd, __builtin_ia32_roundsd and
- __builtin_ia32_roundss.
- (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
- IX86_BUILTIN_SHUFPD here.
-
-2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md (plogic): New.
- (plogicprefix): Likewise.
-
- * config/i386/mmx.md (mmx_<code><mode>3): New.
- (mmx_and<mode>3): Removed.
- (mmx_ior<mode>3): Likewise.
- (mmx_xor<mode>3): Likewise.
-
- * config/i386/sse.md (<code><mode>3): New.
- (*<code><mode>3): Likewise.
- (*<code><mode>3): Likewise.
- (<code><mode>3): Likewise.
- (*sse_<code><mode>3): Likewise.
- (*sse2_<code><mode>3): Likewise.
- (<code>tf3): Likewise.
- (*<code>tf3): Likewise.
- (and<mode>3): Likewise.
- (*and<mode>3): Likewise.
- (ior<mode>3): Removed.
- (*ior<mode>3): Likewise.
- (xor<mode>3): Likewise.
- (*xor<mode>3): Likewise.
- (*and<mode>3): Likewise.
- (*ior<mode>3): Likewise.
- (*xor<mode>3): Likewise.
- (and<mode>3): Likewise.
- (*sse_and<mode>3): Likewise.
- (*sse2_and<mode>3): Likewise.
- (andtf3): Likewise.
- (*andtf3): Likewise.
- (ior<mode>3): Likewise.
- (*sse_ior<mode>3): Likewise.
- (*sse2_ior<mode>3): Likewise.
- (iortf3): Likewise.
- (*iortf3): Likewise.
- (xor<mode>3): Likewise.
- (*sse_xor<mode>3): Likewise.
- (*sse2_xor<mode>3): Likewise.
- (xortf3): Likewise.
- (*xortf3): Likewise.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14495
- PR tree-optimization/34793
- * tree-vrp.c (struct switch_update): New structure.
- (to_remove_edges, to_update_switch_stmts): New VECs.
- (simplify_switch_using_ranges): New function. Remove not taken
- case labels and edges.
- (simplify_stmt_using_ranges): Call it.
- (identify_jump_threads): Mark edges we have queued for removal
- so we don't thread them.
- (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
- case label vector.
- * tree-cfg.c (group_case_labels): Deal with missing default label.
- (tree_verify_flow_info): Allow missing default label.
- * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
- (emit_case_nodes): Likewise.
- (expand_case): Do not rely on the default label to be present.
- * expr.c (try_casesi): Deal with NULL default_label.
- (do_tablejump): Likewise.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14495
- * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
- SWITCH_EXPR here ...
- (vrp_visit_switch_stmt): ... but here (new function).
- (find_case_label_index): New helper function.
- (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
-
-2008-04-02 Paolo Bonzini <bonzini@gnu.org>
-
- * fwprop.c: Fix ISO-C99ism.
-
-2008-04-02 Paolo Bonzini <bonzini@gnu.org>
-
- PR bootstrap/35752
- * Makefile.in (objdir): Set it here.
- * configure.ac: Not here. Find dynamic linker characteristics.
- * exec-tool.in: Use them.
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2008-04-02 Paolo Bonzini <bonzini@gnu.org>
-
- * expr.c (expand_var): Delete it.
- * expr.h (expand_var): Delete prototype.
- * function.c (expand_function_start): Use expand_decl instead.
- * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
- langhook.
-
-2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
-
- PR rtl-optimization/35542
- * fwprop.c (forward_propagate_and_simplify): Replace
- loc_reg_mentioned_in_p with reg_mentioned_p.
-
-2008-04-02 Paolo Bonzini <bonzini@gnu.org>
-
- PR rtl-optimization/35281
- * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
- (propagate_rtx_1): Handle PR_HANDLE_MEM.
- (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
- (varying_mem_p): Move above propagate_rtx.
- (all_uses_available_at): Do not check MEMs.
-
-2008-04-02 Rafael Espíndola <espindola@google.com>
-
- * tree-vrp.c (extract_code_and_val_from_cond): Remove.
- (register_edge_assert_for_2): Split the cond argument.
- (register_edge_assert_for_1): Adjust for the change in
- register_edge_assert_for_2.
- (register_edge_assert_for): Split the cond argument.
- (find_switch_asserts): Adjust for the change in
- register_edge_assert_for.
-
-2008-04-02 Kai Tietz <kai.tietz@onevision.com>
-
- * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
- * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
- offsets for 64-bit mingw.
- * config/i386/i386.c (ix86_pass_by_reference): Correct calling
- abi for x86_64-pc-mingw.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- * tree-vrp.c (extract_range_from_assert): Make sure to not
- produce range min/max with TREE_OVERFOW set.
- If merging a anti-range and a range keep the anti-range if
- the range covers all values of the type.
- (register_edge_assert_for_2): Only allow sign-changing
- conversions in detecting canonical range checks. Also
- register an assert for the unsigned name if useful.
-
- PR tree-optimization/35787
- * tree-vrp.c (vrp_val_max): New function.
- (vrp_val_min): Likewise.
- (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
- (vrp_val_is_min): Likewise.
- (supports_overflow_infinity): Use vrp_val_{min,max}.
- (negative_overflow_infinity): Likewise.
- (positive_overflow_infinity): Likewise.
- (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
- (is_positive_overflow_infinity): Likewise.
- (is_overflow_infinity): Likewise.
- (avoid_overflow_infinity): Use vrp_val_{min,max} and
- vrp_val_is_{min,max}.
- (set_and_canonicalize_value_range): Canonicalize anti-ranges
- to ranges if possible. Avoid empty ranges.
-
-2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR middle-end/35705
- * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
- the expression is a function address.
-
-2008-04-01 George Helffrich <george@gcc.gnu.org>
-
- PR fortran/35154, fortran/23057
- * dbxout.c: Emit .stabs debug info for Fortran COMMON block
- variables as base symbol name + offset using N_BCOMM/N_ECOMM.
- (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
- (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
- in common.
- (dbxout_syms): Check for COMMON-based symbol and wrap in
- N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
- in bracket for efficiency.
-
- * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
- using DW_TAG_common_block + member offset.
- (add_pubname_string): New function.
- (dw_expand_expr): New function to find block name and offset for
- COMMON var.
- (common_check): New function to check whether symbol in Fortran COMMON.
- (gen_variable_die): If COMMON, use DW_TAG_common_block.
-
-2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35436
- * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
-
-2008-04-02 Ben Elliston <bje@au.ibm.com>
-
- * config/v850/v850.md (casesi): Remove if (0) code.
- * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
- * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
-
-2008-04-01 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (rex64suffix): New mode attribute.
- (floathi<mode>2): Disable expander for SSE math.
- (*floathi<mode>2_1): New insn insn_and_split pattern.
- (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
- corresponding post-reload splitters.
- (*floathi<mode>2_i387): New macroized insn pattern.
- (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
- (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
- insn_and_split pattern.
- (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
- New macroized instruction patterns and corresponding post-reload
- splitters.
- (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
- and corresponding post-reload splitters.
- (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
- New macroized instruction patterns.
- (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
- macroized instruction patterns and corresponding post-reload splitters.
- (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
- corresponding post-reload splitters.
- (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
- New macroized instruction patterns.
- (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
- corresponding post-reload splitters.
- (*floatsi<mode>2_i387): New macroized instruction patterns.
-
-2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.md (smaxmin): New.
- (umaxmin): Likewise.
- (maxminiprefix): Likewise.
- (maxminfprefix): Likewise.
- (<code><mode>3): Likewise.
- (smin<mode>3): Removed.
- (smax<mode>3): Likewise.
-
- * config/i386/mmx.md (mmx_<code>v2sf3): New.
- (mmx_<code>v4hi3): Likewise.
- (mmx_<code>v8qi3): Likewise.
- (mmx_smaxv2sf3): Removed.
- (mmx_sminv2sf3): Likewise.
- (mmx_umaxv8qi3): Likewise.
- (mmx_smaxv4hi3): Likewise.
- (mmx_uminv8qi3): Likewise.
- (mmx_sminv4hi3): Likewise.
-
- * config/i386/sse.md (<addsub><mode>3): New.
- (*<addsub><mode>3): Likewise.
- (<sse>_vm<addsub><mode>3): Likewise.
- (<maxmin><mode>3): Likewise.
- (*<maxmin><mode>3_finite): Likewise.
- (*<maxmin><mode>3): Likewise.
- (<sse>_vm<maxmin><mode>3): Likewise.
- (sse3_h<addsub>v4sf3): Likewise.
- (sse3_h<addsub>v2df3): Likewise.
- (<maxmin>v16qi3): Likewise.
- (*<maxmin>v16qi3): Likewise.
- (<maxmin>v8hi3): Likewise.
- (*<maxmin>v8hi3): Likewise.
- (*sse4_1_<maxmin><mode>3): Likewise.
- (*sse4_1_<maxmin><mode>3): Likewise.
- (add<mode>3): Removed.
- (*add<mode>3): Likewise.
- (<sse>_vmadd<mode>3): Likewise.
- (sub<mode>3): Likewise.
- (*sub<mode>3): Likewise.
- (<sse>_vmsub<mode>3): Likewise.
- (smin<mode>3): Likewise.
- (*smin<mode>3_finite): Likewise.
- (*smin<mode>3): Likewise.
- (<sse>_vmsmin<mode>3): Likewise.
- (smax<mode>3): Likewise.
- (*smax<mode>3_finite): Likewise.
- (*smax<mode>3): Likewise.
- (<sse>_vmsmax<mode>3): Likewise.
- (sse3_haddv4sf3): Likewise.
- (sse3_haddv2df3): Likewise.
- (sse3_hsubv4sf3): Likewise.
- (sse3_hsubv2df3): Likewise.
- (umaxv16qi3): Likewise.
- (*umaxv16qi3): Likewise.
- (smaxv8hi3): Likewise.
- (*smaxv8hi3): Likewise.
- (*sse4_1_smax<mode>3): Likewise.
- (*sse4_1_umax<mode>3): Likewise.
- (uminv16qi3): Likewise.
- (*uminv16qi3): Likewise.
- (sminv8hi3): Likewise.
- (*sminv8hi3): Likewise.
- (*sse4_1_smin<mode>3): Likewise.
- (*sse4_1_umin<mode>3): Likewise.
-
-2008-04-01 Rafael Espíndola <espindola@google.com>
-
- * tree-cfg.c (verify_expr): remove in_phi.
- (verify_stmt): Don't call walk_tree with verify_expr. Use
- is_gimple_min_invariant instead of is_gimple_val.
-
-2008-04-01 Joseph Myers <joseph@codesourcery.com>
-
- * doc/include/gpl_v3.texi: Update for manpage generation.
- * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
- gpl.texi.
- * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
- * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
- gpl_v3.texi instead of gpl.texi.
- (gpl.pod): New.
-
-2008-04-01 Jakub Jelinek <jakub@redhat.com>
-
- PR pch/13675
- * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
-
-2008-04-01 Rafael Espíndola <espindola@google.com>
-
- * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
- (extract_code_and_val_from_cond): Use
- extract_code_and_val_from_cond_with_ops.
-
-2008-04-01 Jan Hubicka <jh@suse.cz>
-
- * function.c (free_after_compilation): Free epilogue_delay_list.
- (prepare_function_start): Assert that previous compilation was freed.
-
-2008-04-01 Jan Hubicka <jh@suse.cz>
- Jim Wilson <wilson@tuliptree.org>
- Andreas Tobler <andreast@gcc.gnu.org>
-
- PR middle-end/35781
- * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
- rtl.emit instead cfun->emit.
- * sparc/sparc.h (INIT_EXPANDERS): Likewise.
- * ia64/ia64.h (INIT_EXPANDERS): Likewise.
-
-2008-04-01 Ben Elliston <bje@au.ibm.com>
-
- * doc/c-tree.texi (Function Basics): Fix grammatical error.
-
-2008-03-31 Seongbae Park <seongbae.park@gmail.com>
-
- * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
- New options
- (fprofile-use): Add var flag_profile_use
- * coverage.c (coverage_begin_output): Do not open a gcno file for
- output only if -ftest-coverage is set.
- Do not add getpwd() to gcda file path.
- (build_gcov_info): Check the new flag
- flag_profile_datafile_relative_path.
- (coverage_init): Use profile_data_prefix.
- Read profile counter only if flag_profile_use is set.
- * opts.c (common_handle_option): New option fprofile-use=,
- fprofile-dir=, fprofile-generate=.
- * toplev.c (profile_data_prefix): New variable definition.
- * toplev.h (profile_data_prefix): New declaration.
- * doc/invoke.tex (Option Summary, Optimization Options):
- Add new options.
-
-2008-03-31 James E. Wilson <wilson@tuliptree.org>
-
- * varasm.c (output_constant_pool_1): In LABEL_REF check,
- use tmp consistently.
-
- PR target/35695
- * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
- * config/ia64/ia64.c (rtx_needs_barrier): Handle
- UNSPEC_FR_RECIP_APPROX_RES.
- * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
-
-2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35750
- * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
-
-2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/30186
- * fold-const.c (fold_indirect_ref_1): Support accessing non first
- element of the vector via a pointer.
-
-2008-03-31 Ian Lance Taylor <iant@google.com>
-
- * tlink.c (scan_linker_output): Look for symbol name in single quotes.
-
-2008-03-31 Jan Hubicka <jh@suse.cz>
-
- * builtins.c (expand_builtin_setjmp_receiver): Update call of
- get_arg_pointer_save_area.
- * expr.c (init_expr): Just clear out rtl.expr.
- * function.c (free_after_compilation): Clear out whole RTL structure.
- (get_func_frame_size): Merge into ...
- (get_frame_size): ... this one.
- (assign_stack_local_1): Merge into ...
- (assign_stack_local): ... this one.
- (expand_function_end): Update call of get_arg_pointer_save_area.
- (get_art_pointer_save_area): Remove cfun argument.
- * function.h (emit_status): regno_pointer_align does not need length
- attribute. Move x_regno_reg_rtx to ...
- (regno_reg_rtx): ... new global array.
- (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
- (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
- apply_args_value, forced_labels, stack_pointer_delta):
- Update accestors.
- (struct varasm_status): Move here from varasm.c
- (struct rtl_data): New. Move here some fields from struct function.
- (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
- frame_offset, stack_check_probe_note, arg_pointer_save_area,
- used_temp_slots avail_temp_slots, temp_slot_level,
- nonlocal_goto_handler_labels): Update accesstors.
- (rtl): New global variable.
- (struct function): Move some fileds to rtl_data.
- (get_arg_pointer_save_area): Update prototype.
- * emit-rtl.c (rtl): Declare.
- (regno_reg_rtx): Declare.
- (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
- Update.
- (gen_reg_rtx): Update.
- (init_virtual_regs): Do not tate emit_status argument.
- (init_emit): Do not allocate emit.
- * varasm.c (varasm_statuc): Move to function.h.
- (n_deferred_constatns): Update accestor.
- (init_varasm_status): Do not allocate varasm_status.
- (force_const_mem, get_pool_size, output_constant_pool): Update.
- * stmt.c (force_label_rtx): Do not use x_ prefixes.
- (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
-
-2008-03-31 Zdenek Dvorak <ook@ucw.cz>
-
- PR rtl-optimization/35729
- * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
- references.
-
-2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/32000
- * config/i386/i386.md (*movti_internal): Emit unaligned SSE
- load/store if memory is unaligned.
- (*movti_rex64): Likewise.
-
- * config/i386/predicates.md (misaligned_operand): New.
-
-2008-03-31 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-opt/35431
- * tree-ssa-phiopt.c (conditional_replacement): Return early for
- complex types.
-
-2008-03-31 Jan Beulich <jbeulich@novell.com>
-
- * config/ia64/constraints.md: Add 'j' constraint.
- * config/ia64/ia64.md (movsi_internal): Add addp4 case.
- (movdi_internal): Likewise.
-
-2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35748
- * c-typeck.c (build_c_cast): Skip invalid fields in unions.
-
-2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35757
- * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
- proper error message for the third argument on blendpd and
- blendps.
-
- * config/i386/sse.md (blendbits): New.
- (sse4_1_blendp<ssemodesuffixf2c>): Use it.
-
-2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
-
-2008-03-30 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/31023
- * fold-const.c (fold_sign_changed_comparison): Do leave
- conversions to base-types alone.
-
-2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
- the link register if one altivec register is be saved.
-
-2008-03-30 Ben Elliston <bje@au.ibm.com>
-
- * final.c (final_scan_insn): Remove if (0) code.
-
-2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
-
- * c-parser.c (c_parser_next_token_is_keyword): Simplify.
-
-2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
- of V4SFmode to ix86_binary_operator_ok.
-
-2008-03-28 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (override_options): Initialize
- ix86_veclib_handler to ix86_veclibabi_svml when
- -mveclibabi=svml is used.
- (ix86_veclibabi_svml): New function for SVML ABI style
- vectorization support.
- * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
-
-2008-03-28 Rafael Espíndola <espindola@google.com>
-
- * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
- (tree_binary_nonnegative_warnv_p): Make it public.
- (tree_single_nonnegative_warnv_p): Make it public.
- (tree_invalid_nonnegative_warnv_p): Make it public.
- (tree_unary_nonzero_warnv_p): Make it public.
- (tree_binary_nonzero_warnv_p): Make it public
- (tree_single_nonzero_warnv_p): Make it public.
- * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
- (extract_range_from_binary_expr): Split the expr argument.
- (extract_range_from_unary_expr): Split the expr argument.
- (extract_range_from_comparison): Split the expr argument.
- (extract_range_from_expr): Use the new aux functions.
- (vrp_evaluate_conditional_warnv): Use
- vrp_evaluate_conditional_warnv_with_ops.
- * tree.h (tree_unary_nonzero_warnv_p): Declare.
- (tree_binary_nonzero_warnv_p): Declare.
- (tree_single_nonzero_warnv_p): Declare.
- (tree_expr_nonzero_warnv_p): Declare.
- (tree_unary_nonnegative_warnv_p): Declare.
- (tree_binary_nonnegative_warnv_p): Declare.
- (tree_single_nonnegative_warnv_p): Declare.
- (tree_invalid_nonnegative_warnv_p): Declare.
-
-2008-03-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/30317
- PR tree-optimization/30911
- PR tree-optimization/34793
- * tree-vrp.c (set_and_canonicalize_value_range): New function.
- (struct assert_locus_d): New member EXPR.
- (register_new_assert_for): Add EXPR parameter to support
- ASSERT_EXPR <name, expr OP limit>.
- (register_edge_assert_for_1): Adjust callers.
- (find_assert_locations): Likewise.
- (process_assert_insertions_for): Build condition from expression.
- (extract_range_from_assert): Handle ASSERT_EXPRs
- of the form ASSERT_EXPR <name, expr OP limit>.
- (register_edge_assert_for_2): New helper registering
- asserts for comparisons. Recognize range tests of the form
- (unsigned)i - CST1 OP CST2.
- (register_edge_assert_for_1): Use it.
- (register_edge_assert_for): Likewise.
- (needs_overflow_infinity): Integer sub-types
- do not need overflow infinities.
- (vrp_val_is_max): The extreme values of integer sub-types
- are those of the base type.
- (vrp_val_is_min): Likewise.
- * tree.def (ASSERT_EXPR): Document extra allowed conditional
- expressions.
-
-2008-03-28 Nick Clifton <nickc@redhat.com>
-
- PR target/31110
- * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
- Return GENERAL_REGS for stack adjustment reloads.
-
-2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31334
- * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
- const_vector when all the vectors are constant.
-
-2008-03-27 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
- comparisons.
- * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
- (any_scc_sf): Add uneq, unlt, unle and unordered operators.
- (scc_sf): New.
- (s<code>_sf): Use new scc_sf attribute for opcode names.
-
-2008-03-27 Tom Tromey <tromey@redhat.com>
-
- * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
- configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
- config/spu/t-spu-elf, config/i386/t-interix,
- config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
- config/i386/x-darwin, config/i386/x-mingw32,
- config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
- config/sh/t-sh, config/sh/t-symbian, config/x-linux,
- config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
- config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
- config/rs6000/x-rs6000, config/rs6000/x-darwin64,
- config/rs6000/x-darwin, config/rs6000/t-rs6000,
- config/score/t-score-elf, config/arm/t-strongarm-pe,
- config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
- config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
- Revert automatic dependency patch.
-
-2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35657
- * config/i386/i386.c (ix86_function_arg_boundary): Align
- decimal floating point to its natural boundary.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35716
- * fold-const.c (fold_comparison): Restrict distinct decl
- comparison folding to VAR_DECLs and PARM_DECLs. Do not
- solely rely on operand_equal_p.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- PR c/32511
- * c-common.c (handle_weak_attribute): Reject combination of
- weak and inline.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/32810
- * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
- conversions from DECL_INITIAL.
- (fold_const_aggregate_ref): Likewise from constructor elements.
-
-2008-03-27 Zdenek Dvorak <ook@ucw.cz>
-
- * tree-affine.h (aff_combination_expand): Declare.
- (get_inner_reference_aff): Likewise.
- * tree-affine.c (aff_combination_expand): Split out from
- tree_to_aff_combination_expand.
- (get_inner_reference_aff): New function.
- * tree-parloops.c (loop_parallel_p): Free vectorizer info.
- * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
- (struct lim_aux_data): sm_done field removed.
- (mem_ref_loc_p, mem_ref_locs_p): New types.
- (struct mem_ref): Added id, stored, accesses_in_loop,
- indep_loop, dep_loop, indep_ref, dep_ref fields.
- Removed is_stored, locs and next fields.
- (memory_accesses): New variable.
- (movement_possibility): Do not allow moving statements
- that store to memory.
- (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
- New functions.
- (determine_max_movement): For statements with memory references,
- find the outermost loop in that the reference is independent.
- (move_computations_stmt): Mark the virtual operands for renaming.
- (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
- gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
- vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
- add_vop_ref_mapping, create_vop_ref_mapping_loop,
- create_vop_ref_mapping, analyze_memory_references,
- cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
- get_all_locs_in_loop, ref_always_accessed_p,
- refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
- ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
- store_motion_loop, store_motion): New functions.
- (struct vop_to_refs_elt): New type.
- (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
- memref_hash, memref_eq, hoist_memory_references): Rewritten.
- (schedule_sm): Replaced by...
- (execute_sm): ... this.
- (determine_lsm_ref, hoist_memory_references,
- loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
- find_more_ref_vops, free_mem_ref, free_mem_refs,
- determine_lsm_loop, determine_lsm): Removed.
- (tree_ssa_lim_finalize): Free data structures used by store motion.
- (tree_ssa_lim): Call analyze_memory_references. Use
- store_motion instead of determine_lsm.
-
-2008-03-27 Paolo Bonzini <bonzini@gnu.org>
-
- * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
- rename tmake_file to m68hc11/t-m68hc11.
- (mcore): Set inhibit_libc to true.
- * config.host (alpha*-dec-*vms*): Set extra_programs.
- (interix3*): Don't use host_xmake_file.
- * configure.ac: Let config.gcc override inhibit_libc.
- * configure: Regenerate.
-
- * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
- * config/t-openbsd-thread: Remove commented out lines.
-
- * config/x-interix: Remove.
-
- * config/m68hc11/t-m68hc11-gas: Rename to...
- * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
-
- * config/mcore/t-mcore: Remove T_CFLAGS.
- * config/mcore/t-mcore-pe: Likewise.
-
-2008-03-27 Paolo Bonzini <bonzini@gnu.org>
-
- * configure.ac: Replace custom __GNU_SOURCE test with
- AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
- * config.in: Regenerate.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- * fold-const.c (target.h): Include.
- (fold_comparison): Fold comparison of addresses of decls
- that bind locally or of constants. Consolidate address folding code.
- * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
- results from fold_binary_to_constant.
- (compare_values_warnv): Likewise.
-
-2008-03-27 Andrew Pinski <pinskia@gmail.com>
-
- PR middle-end/35429
- * fold-const.c (fold_truthop): Check for integeral types when folding
- a == 0 && b == 0 and a != 0 || b != 0 .
-
-2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
-
-2008-03-26 Andreas Schwab <schwab@suse.de>
-
- * doc/invoke.texi: Fix use of @item vs. @itemx.
-
-2008-03-26 Tom Tromey <tromey@redhat.com>
-
- * Makefile.in (build/gensupport.o, build/print-rtl.o,
- build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
- build/genattrtab.o, build/genautomata.o, build/gencheck.o,
- build/gencodes.o, build/genconditions.o, build/genconfig.o,
- build/genconstants.o, build/genemit.o, build/genextract.o,
- build/genflags.o, build/genmddeps.o, build/genopinit.o,
- build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
- options.h.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
-
- Revert
- 2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * fold-const.c (target.h): Include.
- (fold_comparison): Fold comparison of addresses of two decls
- that bind locally. Consolidate address folding code.
-
-2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * builtins.c (expand_builtin_pow, fold_builtin_cabs,
- fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
- fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
- dconstsqrt2, dconstthird, dconste and/or dconst10.
- * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
- * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
- dconstsqrt2, dconste): Delete.
- (init_emit_once): Likewise. Simplify initializing dconstm1.
- Constify variable.
- * real.c (get_real_const): New.
- * real.h (dconst3, dconst10, dconstm2, dconstthird,
- dconstsqrt2, dconste): Delete.
- (real_value_const, get_real_const): New.
-
-2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
-
- * config/i386/i386.c (ix86_function_arg_boundary): Check
- BIGGEST_ALIGNMENT instead of 128.
- (setup_incoming_varargs_64): Likewise.
-
-2008-03-26 Tom Tromey <tromey@redhat.com>
-
- * Makefile.in (DEPFILES): Add missing '/'.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * fold-const.c (target.h): Include.
- (fold_comparison): Fold comparison of addresses of two decls
- that bind locally. Consolidate address folding code.
-
-2008-03-26 Nick Clifton <nickc@redhat.com>
-
- PR target/31232
- * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
- not allow INT+INT as a legitimate addressing mode.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (widen_bitfield): Remove declaration.
- * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
- (widen_bitfield): Remove function.
- * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
- code.
-
-2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31558
- * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
- error_mark_node's.
-
-2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/35232
- * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
- (forget_old_reloads_1, forget_marked_reloads): Don't clear
- reg_reloaded_call_part_clobbered here.
- (reload_regs_reach_end_p): New function.
- (reload_reg_rtx_for_input): New variable.
- (reload_reg_rtx_for_output): Likewise.
- (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
- when reassigning a pseudo register. Load reloadreg from
- reload_reg_rtx_for_input, moving the mode and register
- calculation to...
- (do_input_reload): ...here. Use the mode-adjusted reg_rtx
- instead of the original when deciding whether an input reload
- would be a no-op or whether an output reload can be deleted.
- (emit_output_reload_insns): Use the mode-adjusted reg_rtx
- when setting up new_spill_reg_store. Load it from
- reload_reg_rtx_for_output, moving the mode and register
- calculation to...
- (do_output_reload): ...here. Use the mode-adjusted reg_rtx
- instead of the original when deciding whether an output reload
- would be a no-op. Do the same when modifying insn notes.
- Use rtx_equal_p instead of == to compare the registers.
- (inherit_piecemeal_p): Take a mode and two register numbers
- as argument.
- (emit_reload_insns): Clear new_spill_reg_store for every hard
- register in the reload register. Remove spill registers
- from reg_reloaded_valid before considering whether to record
- inheritance information for them. Use reload_reg_rtx_for_output
- instead of reg_rtx when recording output reloads. Use
- reload_reg_rtx_for_input instead of reg_rtx when recording
- input reloads. Set or clear reg_reloaded_call_part_clobbered
- at the same time as setting reg_reloaded_valid.
- (delete_output_reload): Add a new_reload_reg parameter and use it
- instead of rld[j].reg_rtx.
- (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
- calls accordingly.
-
-2008-03-25 Tom Tromey <tromey@redhat.com>
-
- * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
- (build/genattr.o): Likewise.
- (build/genattrtab.o): Likewise.
- (build/gencodes.o): Likewise.
- (build/genconfig.o): Likewise.
- (build/genconstants.o): Likewise.
- (build/genemit.o): Likewise.
- (build/genextract.o): Likewise.
- (build/genflags.o): Likewise.
-
-2008-03-25 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
- instead of size_int for integer types.
- (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
- to match type of MINUS_EXPR.
-
-2008-03-25 Tom Tromey <tromey@redhat.com>
-
- * configure: Rebuilt.
- * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
- Makefile.
-
-2008-03-25 Tom Tromey <tromey@redhat.com>
-
- * config/x-solaris (host-solaris.o): Update.
- * config/x-linux (host-linux.o): Update.
- * config/x-hpux (host-hpux.o): Update.
- * config/x-darwin (host-darwin.o): Update.
- * config/v850/t-v850e (v850-c.o): Update.
- * config/v850/t-v850 (v850-c.o): Update.
- * config/t-vxworks (vxworks.o): Update.
- * config/t-sol2 (sol2-c.o, sol2.o): Update.
- * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
- * config/spu/t-spu-elf (spu-c.o): Update.
- (spu.o): Remove.
- * config/sh/t-symbian (sh-c.o): Update.
- (symbian.o): Update.
- * config/sh/t-sh (sh-c.o): Update.
- * config/score/t-score-elf (score7.o, score3.o): Update.
- * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
- * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
- * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
- * config/rs6000/t-rs6000 (rs6000-c.o): Update.
- (rs6000.o): Remove.
- * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
- * config/m32c/t-m32c (m32c-pragma.o): Update.
- * config/ia64/t-ia64 (ia64-c.o): Update.
- * config/i386/x-mingw32 (host-mingw32.o): Update.
- * config/i386/x-i386 (driver-i386.o): Update.
- * config/i386/x-darwin (host-i386-darwin.o): Update.
- * config/i386/x-cygwin (host-cygwin.o): Update.
- * config/i386/t-nwld (nwld.o): Update.
- * config/i386/t-netware (netware.o): Update.
- * config/i386/t-interix (winnt.o): Update.
- * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
- * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
- msformat-c.o): Update.
- * config/bfin/t-bfin-linux (generated_files): Add
- linux-sysroot-suffix.h.
- * config/arm/t-wince-pe (pe.o): Update.
- * config/arm/t-strongarm-pe (pe.o): Update.
- * config/arm/t-pe (pe.o): Update.
- * config/arm/t-arm (arm-c.o): Update.
- * doc/install.texi (Prerequisites): Require make 3.80.
- * Makefile.in: Remove .o targets.
- (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
- (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
- (simple_generated_h, simple_generated_c): Move earlier.
- (generated_files): New variable.
- (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
- TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
- BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
- ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
- REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
- CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
- CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
- INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
- PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
- TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
- DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
- VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
- (.c.o): Remove.
- (COMPILE.base, COMPILE): New variables.
- (%.o): New pattern rule.
- (ALL_HOST_OBJS): New variable.
- (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
- (dummy-checksum.o, cc1-checksum.o): Remove.
- (DRIVER_SHLIB): New variable.
- (DRIVER_DEFINES): Use it.
- (gencondmd.c): Move out of build/.
- (s-conditions): Update.
- (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
- (ALL_BUILD_OBJS): Likewise.
- (build/%.o): Use BUILDCOMPILE.
- (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
- build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
- build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
- build/gencheck.o, build/gencodes.o, build/genconditions.o,
- build/genconfig.o, build/genconstants.o, build/genemit.o,
- build/genextract.o, build/genflags.o, build/genmddeps.o,
- build/genopinit.o, build/genoutput.o, build/genpeep.o,
- build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
- build/gen-protos.o, build/scan.o, build/fix-header.o,
- build/scan-decls.o): Simplify.
- (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
- cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
- prefix.o, toplev.o): Reduce to variable setting.
- (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
- ($(out_object_file), gcc-options.o): New targets.
- ($(ALL_HOST_OBJS)): New target. Include dependency files.
- * configure: Rebuilt.
- * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
- * doc/sourcebuild.texi (Front End Directory): Document new variable.
-
-2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
-
- * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
- complain when we hit an error, return ERROR_MARK_NODE.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * config/sh/constraints.md (Pso, Psz): New constraints.
- * config/sh/sh.c (print_operand): Add %V and %W operand codes.
- * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
- * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * config/sh/sh.md (prefetch): Add condition for SH2A target.
- (prefetch_sh2a): New.
-
-2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
- Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * config/sh/constraints.md (I28): New constraint.
- * config/sh/sh.c (broken_move): Add support for movi20s.
- * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
-
-2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
- Jayant Sonar <Jayant.sonar@kpitcummins.com>
- Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * config/sh/sh.c (SH_ATTRIBUTES): Define.
- (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
- (print_operand): Handle resbank in %@ operand code.
- (sh_encode_section_info): New.
- (push_regs): Add conditions for resbank.
- (sh_expand_epilogue): Likewise.
- (sh_insert_attributes): Likewise.
- (sh_attribute_table): Likewise.
- (sh_handle_resbank_handler_attribute): New.
- (sh2a_handle_function_vector_handler_attribute): New.
- (sh2a_is_function_vector_call): New.
- (sh2a_get_function_vector_number): New.
- (sh2a_function_vector_p): New.
- (sh_cfun_resbank_handler_p): New.
- * config/sh/sh.md (calli): Emit jsr/n if possible.
- (calli_tbr_rel): New.
- (calli_pcrel): Emit jsr/n if possible.
- (return_i): Emit rts/n if possible.
- (call_valuei_tbr_rel): New.
- (call_valuei_pcrel): Add condition for SH2A target.
- (call_value): Likewise.
- * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
- (sh2a_get_function_vector_number): Likewise.
- (sh2a_is_function_vector_call): Likewise.
- * doc/extend.texi: Document TBR relative addressing of SH2A.
- (resbank): Add description for SH2A.
-
-2008-03-24 Richard Guenther <rguenther@suse.de>
-
- PR c/22371
- * gimplify.c (gimplify_modify_expr): For frontend type-correct
- pointer assignments change conversions according to middle-end rules.
- (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
- * configure.ac: Include type checking in yes.
- * configure: Regenerate.
-
-2008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * diagnostic.c (diagnostic_count_diagnostic): Delete.
- (diagnostic_report_diagnostic): Update. Handle ICEs here.
-
-2008-03-24 Nathan Sidwell <nathan@codesourcery.com>
-
- * gthr-vxworks.h (UNUSED): Define.
-
-2008-03-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
-
-2008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
-
- * doc/extend.texi (Function Attributes): Add missing comma in the
- example of the "alloc_size" attribute.
-
-2008-03-23 Uros Bizjak <ubizjak@gmail.com>
-
- Revert:
- 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386-modes.def: Use 4 byte alignment on DI for
- 32bit host.
-
- 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35496
- * stor-layout.c (update_alignment_for_field): Set minimum alignment
- of the underlying type of a MS bitfield layout to the natural
- alignment of the type.
-
- 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (assign_386_stack_local): Align DImode slots
- to their natural alignment to avoid store forwarding stalls.
-
-2008-03-22 Richard Guenther <rguenther@suse.de>
-
- * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
- For PHI nodes verify the address is invariant.
- * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
- (get_symbol_constant_value): Use is_gimple_min_invariant.
- (maybe_fold_stmt_indirect): Likewise.
-
-2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/33927
- * Makefile.in (dse.o): Depend on $(TM_P_H).
- * expr.h (extract_low_bits): Declare.
- * expmed.c (extract_low_bits): New function.
- * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
- * dse.c: Include tm_p.h.
- (find_shift_sequence): Remove the read_reg argument and return the
- read value. Emit the instructions instead of returning them.
- Iterate on new_mode rather than calculating it each time.
- Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
- source to NEW_MODE and extract_low_bits to convert the shifted
- value to READ_MODE.
- (replace_read): Allow the load and store to have different mode
- classes. Use extract_low_bits when SHIFT == 0. Create the shift
- or extraction instructions before trying the replacement. Update
- dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
-
-2008-03-22 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (assign_386_stack_local): Align DImode slots
- to their natural alignment to avoid store forwarding stalls.
-
-2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/27946
- * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
- encouraging but not allowing gprs for input;
- change the input constraint to !f#r.
- (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
- gprs for output;
- change the output constraint to !f#r.
-
-2008-03-21 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/13958
- * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
- corresponding post-reload splitters.
- ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
- when x87 FP math is selected.
- * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
- New function prototype.
- * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
- unreachable function to ease macroization of insn patterns.
-
-2008-03-21 Martin Jambor <mjambor@suse.cz>
-
- * tree-data-ref.c (dump_data_dependence_relation): Avoid data
- reference dumps if ddr is NULL or dependence is unknown.
-
-2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
- unsigned extension into account.
- (ATOMIC_COMPARE_AND_SWAP): Likewise.
- (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
- Do computations on a scratch register.
-
-2008-03-21 Richard Guenther <rguenther@suse.de>
-
- * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
- Use is_gimple_min_invariant instead of TREE_INVARIANT.
- * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
- * tree-ssa-dom.c (record_equality): Likewise.
- * tree-inline.c (copy_body_r): Likewise.
- * tree-ssa-pre.c (make_values_for_stmt): Remove test for
- TREE_INVARIANT.
-
-2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (split_branches): Pass zero to redirect_jump
- as 'delete_unused' argument.
-
-2008-03-20 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
- special casing of constant qualifiers.
- * tree-ssa.c (useless_type_conversion_p_1): Instead do not
- care about them in general.
- * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
- regardless of their type.
- (fold_stmt_r): Forcefully fold *& if we end up with that.
-
-2008-03-20 Paul Brook <paul@codesourcery.com>
-
- * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
- * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
- linker flags.
- * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
- definition.
- (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
- * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
-
-2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
-
- * common.opt (Wmudflap): New option.
- * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
- (mx_register_decls): Likewise.
- (mudflap_finish_file): Likewise.
- * doc/invoke.texi: Document -Wno-mudflap.
-
-2008-03-20 Kai Tietz <kai.tietz@onevision.com>
-
- * c-format.c (replace_format_name_to_system_name): New.
- (cmp_attribs): New.
- (convert_format_name_to_system_name): New.
- (decode_format_attr): Add use of convert_format_name_to_system_name.
- (format_types_orig): Add gnu_ prefix to names.
- (check_format_info_main): Special treating of \0 escaped names for
- supporting multi-character format specifiers as I32, I64.
- (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
- (gnu_target_overrides_format_attributes): New.
- * c-format.h: Add structure target_ovr_attr to hold
- system specific formatter names.
- * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
- msformat-c.o file to c_target_objs and cxx_target_objs.
- * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
- (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
- (TARGET_N_FORMAT_TYPES): New.
- * config/i386/msformat-c.c: New.
- * config/i386/t-cygming: Add build rule for msformat-c.o.
- * doc/extend.texi: Add new format names gnu_* and ms_* and
- further details.
- * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
-
-2008-03-20 Ira Rosen <irar@il.ibm.com>
-
- * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
- optimizations turned on under -O3.
- (ftree-vectorize): Add that the flag is turned on with -O3.
-
-2008-03-20 Ben Elliston <bje@au.ibm.com>
-
- * regmove.c (try_auto_increment): Fix spelling error in comment.
- * final.c (final_scan_insn): Likewise.
-
-2008-03-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/14552
- * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
- allocator preferences for "y" and "r" class registers.
- ("*mov<mode>_internal"): Ditto.
- ("*movv2sf_internal_rex64"): Ditto.
- ("*movv2sf_internal"): Ditto.
-
-2008-03-19 Michael Matz <matz@suse.de>
-
- PR middle-end/35616
- * calls.c (expand_call): Check overlap of arguments with call
- address for sibcalls.
-
-2008-03-19 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35496
- * stor-layout.c (update_alignment_for_field): Set minimum alignment
- of the underlying type of a MS bitfield layout to the natural
- alignment of the type.
-
-2008-03-19 Jan Hubicka <jh@suse.cz>
-
- PR other/35094
- * toplev.c (decode_d_option): Handle all CPP flags.
- * tree-vrp.c: Update tree_pass descriptors.
- * regrename.c: Update tree_pass descriptors.
- * fwprop.c: Update tree_pass descriptors.
- * doc/invoke.texi: Remove documentation of dropped -d? flags.
- * tree-into-ssa.c: Update tree_pass descriptors.
- * tree-dump.c: Update tree_pass descriptors.
- * tree-complex.c: Update tree_pass descriptors.
- * tree-dump.h: Update tree_pass descriptors.
- * see.c: Update tree_pass descriptors.
- * cgraphbuild.c: Update tree_pass descriptors.
- * tracer.c: Update tree_pass descriptors.
- * tree-loop-distribution.c: Update tree_pass descriptors.
- * cgraph.c: Update tree_pass descriptors.
- * postreload-gcse.c: Update tree_pass descriptors.
- * postreload.c: Update tree_pass descriptors.
- * tree-ssa-loop-ch.c: Update tree_pass descriptors.
- * tree-tailcall.c: Update tree_pass descriptors.
- * tree-pass.h (tree_opt_pass): Rename to ...
- (opt_pass) ... this one; add "type" field and remove letter field.
- (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
- (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
- all_lowering_passes): Update declaration.
- * ipa-cp.c: Update tree_pass descriptors.
- * final.c: Update tree_pass descriptors.
- * omp-low.c: Update tree_pass descriptors.
- * tree-ssa-dse.c: Update tree_pass descriptors.
- * ipa-reference.c: Update tree_pass descriptors.
- * tree-ssa-uncprop.c: Update tree_pass descriptors.
- * auto-inc-dec.c: Update tree_pass descriptors.
- * reorg.c: Update tree_pass descriptors.
- * cgraphunit.c: Update tree_pass descriptors.
- * tree-ssa-copyrename.c: Update tree_pass descriptors.
- * tree-ssa-ccp.c: Update tree_pass descriptors.
- * df-core.c: Update tree_pass descriptors.
- * mode-switching.c: Update tree_pass descriptors.
- * tree-nomudflap.c: Update tree_pass descriptors.
- * modulo-sched.c: Update tree_pass descriptors.
- * ipa-pure-const.c: Update tree_pass descriptors.
- * cse.c: Update tree_pass descriptors.
- * web.c: Update tree_pass descriptors.
- * tree-stdarg.c: Update tree_pass descriptors.
- * tree-ssa-math-opts.c: Update tree_pass descriptors.
- * tree-ssa-dom.c: Update tree_pass descriptors.
- * tree-nrv.c: Update tree_pass descriptors.
- * tree-ssa-alias.c: Update tree_pass descriptors.
- * loop-init.c: Update tree_pass descriptors.
- * gimple-low.c: Update tree_pass descriptors.
- * ipa-inline.c: Update tree_pass descriptors.
- * tree-ssa-sink.c: Update tree_pass descriptors.
- * global.c: Update tree_pass descriptors.
- * ifcvt.c: Update tree_pass descriptors.
- * jump.c: Update tree_pass descriptors.
- * predict.c: Update tree_pass descriptors.
- * tree-ssa-loop.c: Update tree_pass descriptors.
- * recog.c: Update tree_pass descriptors.
- * dse.c: Update tree_pass descriptors.
- * tree-ssa-ifcombine.c: Update tree_pass descriptors.
- * tree-eh.c: Update tree_pass descriptors.
- * regmove.c: Update tree_pass descriptors.
- * local-alloc.c
- * function.c: Update tree_pass descriptors.
- * tree-vectorizer.c: Update tree_pass descriptors.
- * gcse.c: Update tree_pass descriptors.
- * ipa-type-escape.c: Update tree_pass descriptors.
- * tree-if-conv.c: Update tree_pass descriptors.
- * init-regs.c: Update tree_pass descriptors.
- * ipa.c: Update tree_pass descriptors.
- * tree-ssa-phiopt.c: Update tree_pass descriptors.
- * rtl-factoring.c: Update tree_pass descriptors.
- * lower-subreg.c: Update tree_pass descriptors.
- * bt-load.c: Update tree_pass descriptors.
- * tree-dfa.c: Update tree_pass descriptors.
- * except.c: Update tree_pass descriptors.
- * emit-rtl.c: Update tree_pass descriptors.
- * cfgexpand.c: Update tree_pass descriptors.
- * tree-cfgcleanup.c: Update tree_pass descriptors.
- * cfgcleanup.c: Update tree_pass descriptors.
- * tree-ssa-pre.c: Update tree_pass descriptors.
- * tree-sra.c: Update tree_pass descriptors.
- * tree-mudflap.c: Update tree_pass descriptors.
- * tree-ssa-copy.c: Update tree_pass descriptors.
- * cfglayout.c: Update tree_pass descriptors.
- * tree-ssa-forwprop.c: Update tree_pass descriptors.
- * tree-ssa-dce.c: Update tree_pass descriptors.
- * tree-ssa.c: Update tree_pass descriptors.
- * regclass.c: Update tree_pass descriptors.
- * integrate.c: Update tree_pass descriptors.
- * tree-optimize.c: Update tree_pass descriptors.
- * tree-ssa-phiprop.c: Update tree_pass descriptors.
- * tree-object-size.c: Update tree_pass descriptors.
- * combine.c: Update tree_pass descriptors.
- * tree-outof-ssa.c: Update tree_pass descriptors.
- * bb-reorder.c: Update tree_pass descriptors.
- * stack-ptr-mod.c: Update tree_pass descriptors.
- * var-tracking.c: Update tree_pass descriptors.
- * tree-profile.c: Update tree_pass descriptors.
- * tree-vect-generic.c: Update tree_pass descriptors.
- * reg-stack.c: Update tree_pass descriptors.
- * sched-rgn.c: Update tree_pass descriptors.
- * tree-ssa-structalias.c: Update tree_pass descriptors.
- * tree-cfg.c: Update tree_pass descriptors.
- * passes.c (current_pass): Update declaration.
- (finish_optimization_passes): Update.
- (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
- (register_one_dump_file, register_dump_files_1, next_pass_1):
- Update arguments.
- (init_optimization_passes): Update handling of new types.
- (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
- * ipa-struct-reorg.c: Update tree_pass descriptors.
- * tree-ssa-reassoc.c: Update tree_pass descriptors.
- * combine-stack-adj.c: Update tree_pass descriptors.
- * cfgrtl.c: Update tree_pass descriptors.
- * dce.c: Update tree_pass descriptors.
- * tree-ssanames.c: Update tree_pass descriptors.
-
-2008-03-19 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35609
- * tree-ssa.c (walk_data): New structure.
- (warn_uninitialized_var): If not always_executed warn with "maybe"
- instead of "is".
- (execute_early_warn_uninitialized): Compute post-dominators.
- Initialize always_executed before processing each basic block.
-
-2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
-
- PR target/35504
- * config/i386/i386.c (x86_this_parameter): Calculate correct location
- of "this" pointer when "regparm = N" or "fastcall" is in effect.
-
-2008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/include/texinfo.tex: Update to version 2008-03-17.10.
-
-2008-03-18 Paolo Bonzini <bonzini@gnu.org>
-
- * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
- is true.
- (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
- (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
- is true. Add "&& !ignore" condition to reduce_bit_field. Modify
- target after ignore has been set, and move there also the commputation
- of subtarget and original_target.
- * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
- (LANG_HOOKS_INITIALIZER): Remove it.
- * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
-
-2008-03-18 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
- found an expression with constants, note that in the VN for the lhs.
- * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
- fold them to constants if possible. Run cleanup_cfg if done so.
- (execute_pre): Return todo.
- (do_pre): Likewise.
- (execute_fre): Likewise.
- * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
- of constants.
- (get_prop_source_stmt): Look through pointer conversions.
-
-2008-03-18 Jan Hubicka <jh@suse.cz>
-
- * tree-pretty-print.c: Include predict.h.
- (dump_generic_node): Dump predictor.
- * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
- * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
- * gimple-low.c (lower_stmt): Likewise.
- * expr.c (expand_expr_real): Likewise.
- * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
- them.
- (build_predict_expr, build_predict_expr): New.
- * predict.h (predictor_name, build_predict_expr): Update.
- * c-typeck.c (c_finish_bc_stmt): Add prediction.
- * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
- * predict.def (PRED_CONTINUE): Update hitrate.
- * tree.def (PREDICT_EXPR): Define.
- * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
- do not handle BIND_EXPR.
- * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
- * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
- * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
- operands.
-
-2008-03-18 Michael Matz <matz@suse.de>
-
- * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
-
-2008-03-18 Richard Guenther <rguenther@suse.de>
-
- * tree-gimple.h (is_gimple_invariant_address): Declare.
- (is_gimple_constant): Likewise.
- * tree-gimple.c (is_gimple_constant): New function.
- (is_gimple_invariant_address): Likewise.
- (is_gimple_min_invariant): Implement in terms of is_gimple_constant
- and is_gimple_invariant_address.
- * tree-ssa-loop-niter.c (expand_simple_operations): Revert
- previous change.
- * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
- an addressable base.
-
-2008-03-18 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35611
- * gimplify.c (gimplify_expr): Gimplify second operand of
- OMP_ATOMIC_LOAD.
-
-2008-03-17 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/19637
- * fold-const.c (fold_unary): Remove restrictions of removing
- intermediate pointer-conversions (P2)(P1)P0.
- * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
- conversion to void pointer.
- (get_maxval_strlen): Handle addresses of the form &(*p)[0].
-
-2008-03-16 James E. Wilson <wilson@tuliptree.org>
-
- PR debug/31510
- * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
- emulated thread local variables.
-
-2008-03-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35607
- * tree-ssa-loop-niter.c (expand_simple_operations): Do not
- expand TREE_INVARIANT operations that are not gimple invariant.
-
-2008-03-16 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/extend.texi (Alignment): Say that the ABI controls
- the __alignof__ for non-strict-alignment targets rather
- than being a recommendation.
-
-2008-03-15 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
- annotations.
- (arm_output_fn_unwind): Mark functions that can not be unwound.
-
-2008-03-15 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
- extension instructions.
-
-2008-03-15 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-ccp.c (ccp_fold): Also read from constant values
- and fold constant aggregate refs.
- (fold_const_aggregate_ref): Handle string constants
- and constructors in ARRAY_REFs. Handle INDIRECT_REF.
- (evaluate_stmt): Simplify now that ccp_fold folds constant
- aggregate refs.
-
-2008-03-15 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
- (extzv): Use gen_extzv_t2.
- (insv_t2, insv_zero, extv, extzv_t2): New patterns.
-
-2008-03-15 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-ccp.c (get_symbol_constant_value): Export.
- (fold_const_aggregate_ref): Likewise.
- (get_value): Return NULL if we don't have any values.
- (ccp_finalize): Set const_val to NULL after freeing it.
- * tree-flow.h (get_symbol_constant_value): Declare.
- (fold_const_aggregate_ref): Likewise.
- * tree-ssa-sccvn.c (try_to_simplify): Use them.
-
-2008-03-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35593
- * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
- to not produce negative array indices if not allowed. Add
- parameter to indicate that.
- (maybe_fold_offset_to_component_ref): Allow negative array
- indices only for the first member of a structure.
- (maybe_fold_offset_to_reference): Allow negative array indices.
- (maybe_fold_stmt_addition): Likewise.
-
-2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
- Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_arch_types): Add avr6 entry.
- (avr_arch): Add ARCH_AVR6.
- (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
- (initial_elimination_offset): Initialize and use 'avr_pc_size'
- instead of fixed value 2.
- (print_operand_address): Use gs() asm specifier instead of pm().
- (avr_assemble_integer): (Ditto.).
- (avr_output_addr_vec_elt): (Ditto.).
- (print_operand): Handle "!" code.
- * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
- __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
- (AVR_HAVE_EIJMP_EICALL): Define.
- (AVR_3_BYTE_PC): Redefine.
- (AVR_2_BYTE_PC): (Ditto.).
- (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
- (LINK_SPEC): Add atmega2560 and atmega2561.
- (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
- (crtm2561.o).
- * config/avr/avr.md (call_insn): Use eicall instead of icall
- for 3 byte PC devices.
- (call_value_insn): (Ditto.).
- (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
- (indirect_jump): Use only for for 2 byte PC devices.
- (*tablejump): (Ditto.).
- (*indirect_jump_avr6): Add insn.
- (*tablejump_rjmp): Don't use for 3 byte PC devices.
- * config/avr/libgcc.S (__prologue_saves__): Use eijmp
- instead of ijmp for 3 byte PC devices.
- (__tablejump2__): (Ditto.).
- * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
- (MULITLIB_DIRNAMES): (Ditto.).
- (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
-
-2008-03-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
- "sse2_umulsidi3". Use V1DI mode for operand 0.
- ("mmx_psadbw"): Use V1DI mode for operand 0.
- * config/i386/i386-modes.def (V1SI): New vector mode.
- * config/i386/i386.c (struct builtin_description)
- [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
- (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
- (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
- (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
- v1di_ftype_v8qi_v8qi type.
- [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
-
- * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
- __builtin_ia32_pmuludq]: Fix the mode of return value.
-
-2008-03-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35595
- * tree-ssa-pre.c (bitmap_find_leader): Handle expression
- being a PHI_NODE.
-
-2008-03-14 Bob Wilson <bob.wilson@acm.org>
-
- * doc/invoke.texi (Option Summary, Xtensa Options): Document
- -mserialize-volatile and -mno-serialize-volatile Xtensa options.
- * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
- unless TARGET_SERIALIZE_VOLATILE is enabled.
- * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
- * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
- * config/xtensa/xtensa.opt (mserialize_volatile): New option.
-
-2008-03-14 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34172
- * tree-flow.h (refs_may_alias_p): Declare.
- (get_single_def_stmt): Likewise.
- (get_single_def_stmt_from_phi): Likewise.
- (get_single_def_stmt_with_phi): Likewise.
- * tree-dfa.c (refs_may_alias_p): New function.
- (get_single_def_stmt): Likewise.
- (get_single_def_stmt_from_phi): Likewise.
- (get_single_def_stmt_with_phi): Likewise.
- * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
- (vn_reference_lookup_1): New helper function.
- (vn_reference_lookup): Walk the virtual use-def chain to
- continue searching for a match if the def does not alias the
- reference we are looking for.
-
-2008-03-14 David Edelsohn <edelsohn@gnu.org>
-
- * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
- archive and Perzl. Update The Written Word listing.
-
-2008-03-14 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34043
- PR tree-optimization/33989
- * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
- when doing FRE.
- (bitmap_find_leader): Use extra argument to verify dominance
- relationship inside a basic-block.
- (can_PRE_operation): Add VIEW_CONVERT_EXPR.
- (find_leader_in_sets): Adjust.
- (create_component_ref_by_pieces): Take extra argument for
- dominance check, handle lookup failures.
- (find_or_generate_expression): Likewise.
- (create_expression_by_pieces): Likewise.
- (insert_into_preds_of_block): Adjust.
- (create_value_expr_from): If asked for, verify all operands
- are in the blocks AVAIL_OUT set.
- (make_values_for_stmt): Check for SSA_NAMEs that are life
- over an abnormal edge.
- (compute_avail): Remove such check.
- (do_SCCVN_insertion): New function.
- (eliminate): If we do not find a leader suitable for replacement
- insert a replacement expression from SCCVN if available.
- * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
- (struct vn_ssa_aux): Add needs_insertion flag.
- * tree-ssa-sccvn.c (may_insert): New global flag.
- (copy_reference_ops_from_ref): Value-number union member access
- based on its size, not type and member if insertion is allowed.
- (visit_reference_op_load): For a weak match from union type
- punning lookup a view-converted value and insert a SSA_NAME
- for that value if that is not found.
- (visit_use): Make dumps shorter. Do not disallow value numbering
- SSA_NAMEs that are life over an abnormal edge to constants.
- (free_scc_vn): Release inserted SSA_NAMEs.
- (run_scc_vn): New flag to specify whether insertion is allowed.
- Process SSA_NAMEs in forward order.
- * tree-ssa-loop-im.c (for_each_index): Handle invariant
- ADDR_EXPRs inside VIEW_CONVERT_EXPR.
- * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
- pointer type to/from integral types that do not change the
- precision to regular conversions.
-
-2008-03-13 Uros Bizjak <ubizjak@gmail.com>
-
- * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
- __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
- __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
- __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
- input arguments and the mode of return value. Built-in functions
- that operate on whole 64-bit MMX register now use V1DI mode.
-
-2008-03-13 Alon Dayan <alond@il.ibm.com>
- Olga Golovanevsky <olga@il.ibm.com>
-
- PR tree-optimization/35041
- * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
- to locate the right position in a statement.
-
-2008-03-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34000
- PR target/35553
- * config/i386/xmmintrin.h: Change all static inline functions to
- extern inline and add __gnu_inline__ attribute.
- * config/i386/bmintrin.h: Ditto.
- * config/i386/smmintrin.h: Ditto.
- * config/i386/tmmintrin.h: Ditto.
- * config/i386/mmintrin-common.h: Ditto.
- * config/i386/ammintrin.h: Ditto.
- * config/i386/emmintrin.h: Ditto.
- * config/i386/pmmintrin.h: Ditto.
- * config/i386/mmintrin.h: Ditto.
- * config/i386/mm3dnow.h: Ditto.
-
-2008-03-13 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35185
- * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
- (lower_omp_2): New function.
- (lower_omp_1, lower_omp): Rewritten.
-
-2008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR 35054
- * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
- with the phrase "Microsoft Windows compilers".
- (Push/Pop Macro Pragmas): New subsection. Document
- #pragma push_macro and pragma pop_macro.
-
-2008-03-12 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
-
-2008-03-12 Paul Brook <paul@codesourcery.com>
-
- * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
- (thumb2_alusi3_short): Exclude PLUS and MINUS.
- (thumb2_addsi_shortim): Rename ...
- (thumb2_addsi_short): ... to this. Allow register operands.
- (thumb2_subsi_short): New pattern.
- (thumb2_one_cmplsi2_short,
- thumb2_negsi2_short): New patterns and peepholes.
-
-2008-03-12 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
-
-2008-03-12 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (int_cond): New code iterator.
- (fp_cond): Ditto.
- ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
- sge, sgeu, sle and sleu expanders usign int_cond code iterator.
- ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
- sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
- ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
- bge, bgeu, ble and bleu expanders usign int_cond code iterator.
- ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
- bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
-
-2008-03-12 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
- instead of {arm,thumb}_compute_save_reg_mask.
- (output_return_instruction): Ditto.
- (thumb_unexpanded_epilogue): Ditto.
- (thumb1_expand_prologue): Ditto.
- (thumb1_output_function_prologue): Ditto.
- (arm_set_return_address): Ditto.
- (thumb_set_return_address): Ditto.
- (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
- regs to achieve stack alignment.
- (thumb1_compute_save_reg_mask): Fix compiler warning.
- (arm_output_epilogue): Use offsets->saved_regs_mask.
- Adjust stack pointer by poping call clobered registers.
- (arm_expand_prologue): Use offsets->saved_regs_mask.
- Adjust stack pointer by pushing extra registers.
- * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
-
-2008-03-12 Paolo Bonzini <bonzini@gnu.org>
-
- PR tree-opt/35422
- * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
- conversion to the operands of a multiplication.
-
-2008-03-12 Richard Guenther <rguenther@suse.de>
-
- * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
- (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
- * timevar.def (TV_TREE_PHIPROP): Add.
- * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
- pass description. Use TV_TREE_PHIPROP.
- * tree-ssa-forwprop.c: Remove phiprop code.
-
-2008-03-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35549
- * omp-low.c (maybe_lookup_decl): Constify first argument.
- (use_pointer_for_field): Change last argument from bool to
- omp_context *. Disallow shared copy-in/out in nested
- parallel if decl is shared in outer parallel too.
- (build_outer_var_ref, scan_sharing_clauses,
- lower_rec_input_clauses, lower_copyprivate_clauses,
- lower_send_clauses, lower_send_shared_vars): Adjust callers.
-
-2008-03-12 Victor Kaplansky <victork@il.ibm.com>
- Ira Rosen <irar@il.ibm.com>
-
- * tree-vectorizer.c (free_stmt_vec_info): New function.
- (destroy_loop_vec_info): Move code to free_stmt_vec_info().
- Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
- * tree-vectorizer.h (free_stmt_vec_info): Declare.
- * tree-vect-transform.c (vectorizable_conversion): Free
- vec_oprnds0 if it was allocated.
- (vect_permute_store_chain): Remove unused VECs.
- (vectorizable_store): Free VECs that are allocated in the..
- function.
- (vect_transform_strided_load, vectorizable_load): Likewise.
- (vect_remove_stores): Simplify the code.
- (vect_transform_loop): Move code to vect_remove_stores().
- Call vect_remove_stores() and free_stmt_vec_info().
-
-2008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
- TARGET_HPUX. Revise comment.
- (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
- * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
- Use sr4 variant of `be' instruction when not generating PIC code.
- (attr_length_call): Adjust for above change.
-
-2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * ipa-reference.c (static_execute): Remove module_statics_const and
- associated setting code.
-
-2008-03-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35540
- * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
- predicate for operand 1.
- (paritysi2_cmp): Use register_operand predicate for operand 2.
- Use earlyclobber modifier for operand 1. Remove support for
- memory operands.
- (paritydi2_cmp): Use register_operand predicate for operand 3.
- Use earlyclobber modifier for operand 1. Remove support for
- memory operands.
-
-2008-03-11 Paul Brook <paul@codesourcery.com>
- Vladimir Prus <vladimir@codesourcery.com>
-
- * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
- (arm_compute_save_reg0_reg12_mask): Always
- check if register 11 must be saved. Always safe hard frame pointer
- when frame_pointer_needeed.
- (arm_compute_save_reg_mask): Save IP and PC
- only with apcs frames.
- (arm_output_epilogue): Adjust Thumb2 codepath to
- be also invoked and work for ARM non-apcs frames.
- (arm_expand_prologue): Don't bother saving IP
- for non-apcs frame, since it's not clobbered by
- prologue code. Implement non-apcs frame
- layout.
-
-2008-03-11 Paolo Bonzini <bonzini@gnu.org>
-
- PR rtl-optimization/35281
- * expr.c (convert_move): Use a new pseudo for the intermediate
- from_mode->word_mode result.
-
-2008-03-11 Paolo Bonzini <bonzini@gnu.org>
-
- * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
- * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
- * toplev.c (compile_file): Don't call it.
-
-2008-03-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/35526
- * expr.c (store_expr): Call emit_block_move if the mode
- of "temp" RTX is BLKmode.
-
-2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/31358
- * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
- the step with a NULL_TREE.
- * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
- to sizetype if type is a pointer type.
- (add_candidate_1): Don't convert the base and step to
- the generic type if the orginal type is a pointer type.
- (add_iv_value_candidates): Use sizetype for the step
- if type is a pointer type.
- (cand_value_at): Likewise.
- * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
- for pointer types.
- * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
- Don't convert the tem affine to the type.
- (add_elt_to_tree): Use sizetype for the step if a pointer.
- Use POINTER_PLUS_EXPR for pointers.
- (aff_combination_to_tree): Use sizetype for the step if a
- pointer.
-
-2008-03-10 Vladimir Makarov <vmakarov@redhat.com>
-
- * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
- Remove commutativity hint.
-
-2008-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35438
- PR c/35439
- * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
- errorneous type. Check that v is a VAR_DECL.
-
- PR middle-end/35099
- * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
-
-2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR tree-optimization/35494
- * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
- may be overriden at link and run time.
-
-2008-03-10 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34677
- * tree-ssa-pre.c (modify_expr_node_pool): Remove.
- (poolify_tree): Likewise.
- (modify_expr_template): Likewise.
- (poolify_modify_stmt): Likewise.
- (insert_fake_stores): Handle all component-ref style stores
- in addition to INDIRECT_REF. Also handle complex types.
- Do not poolify the inserted load.
- (realify_fake_stores): Do not rebuild the tree but only
- make it a SSA_NAME copy.
- (init_pre): Remove initialzation of modify_expr_template.
- Do not allocate modify_expr_node_pool.
- (fini_pre): Do not free modify_expr_node_pool.
-
-2008-03-10 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
- to avoid conflicts.
-
-2008-03-10 Paul Brook <paul@codesourcery.com>
- Mark Shinwell <shinwell@codesourcery.com>
-
- * config/arm/cortex-r4.md: New.
- * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
- insn attributes.
- * config/arm/arm.md: Include cortex-r4.md.
- (insn): Add smmls, sdiv and udiv values.
- (generic_sched): Don't use generic scheduling for Cortex-R4.
- (arm_issue_rate): New function.
- (TARGET_SCHED_ISSUE_RATE): Define.
-
-2008-03-10 Sebastian Pop <sebastian.pop@amd.com>
-
- * doc/invoke.texi (-ftree-loop-distribution): Add an example.
-
-2008-03-10 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (get_sccvn_value): Simplify.
- (compute_avail): Do not add stmt uses to AVAIL_OUT.
-
-2008-03-10 Paolo Bonzini <bonzini@gnu.org>
-
- * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
- Set default to true.
-
-2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * c.opt (Wsynth): Deprecate.
- * doc/invoke.texi (Option Summary, Warning Options): Document
- -Wno-format-contains-nul.
-
-2008-03-09 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35496
- * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
- ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
-
-2008-03-09 Ira Rosen <irar@il.ibm.com>
-
- * config/rs6000/rs6000.c (builtin_description): Rename vector
- left shift operations.
- * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
- (altivec_vsl<VI_char>): Rename to ...
- (ashl<mode>3): ... new name.
- (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
- gen_ashlv4si3.
- (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
-
-2008-03-08 Richard Guenther <rguenther@suse.de>
-
- * coverage.h (tree_coverage_counter_addr): Declare.
- * coverage.c (tree_coverage_counter_addr): New function.
- * tree-profile.c (tree_gen_edge_profiler): Unshare counter
- before using again.
- (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
- (tree_gen_one_value_profiler): Likewise.
- (tree_gen_ic_profiler): Likewise.
- (tree_gen_average_profiler): Likewise.
- (tree_gen_ior_profiler): Likewise.
-
-2008-03-08 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
- (vn_binary_op_insert): Likewise.
- (vn_unary_op_lookup): Likewise.
- (vn_unary_op_insert): Likewise.
- (vn_nary_op_lookup): Declare.
- (vn_nary_op_insert): Likewise.
- * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
- and binary hashes, use a single obstack for unary_op_pool
- and binary_op_pool.
- (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
- a single struct vn_nary_op_s. Store tree code length and
- a variable number of operands.
- (struct vn_reference_op_struct): Remove unused op2.
- (vn_reference_op_eq): Do not compare op2.
- (vn_reference_op_compute_hash): Do not compute hash of op2.
- (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
- (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
- with vn_nary_op_compute_hash.
- (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
- (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
- vn_nary_op_lookup.
- (vn_unary_op_insert, vn_binary_op_insert): Replace with
- vn_nary_op_insert.
- (visit_unary_op): Call nary functions.
- (visit_binary_op): Likewise.
- (process_scc): Adjust for struct vn_tables_s changes.
- (allocate_vn_table): Likewise.
- (free_vn_table): Likewise.
- * tree-vn.c (vn_add): Call nary functions.
- (vn_lookup): Likewise.
-
-2008-03-08 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35498
- * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
- wdst back after sync_compare_and_swapqhi_internal.
-
-2008-03-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/22152
- * config/i386/i386-modes.def (V1DI): New vector mode.
- * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
- * config/i386/mmx.md (MMXMODEI8): New mode iterator.
- (MMXMODE248): Ditto.
- (MMXMODE): Add V1DI mode.
- (mmxvecsize): Change DI mode to V1DI mode.
- ("mov<mode>): Use MMXMODEI8 mode iterator.
- ("*mov<mode>_internal_rex64"): Ditto.
- ("*mov<mode>_internal"): Ditto.
- ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
- ("mmx_sub<mode>3"): Ditto.
- ("mmx_adddi3"): Remove insn pattern.
- ("mmx_subdi3"): Ditto.
- ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
- ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
- ("mmx_ashl<mode>3"): Ditto.
- ("mmx_lshrdi3"): Remove insn pattern.
- ("mmx_ashldi3"): Ditto.
- * config/i386/i386.c (classify_argument): Handle V1DImode.
- (function_arg_advance_32): Ditto.
- (function_arg_32): Ditto.
- (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
- mmx_addv1di3 insn pattern.
- [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
- [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
- IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
- IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
- Remove definitions of built-in functions.
- (V1DI_type_node): New node.
- (v1di_ftype_v1di_int): Ditto.
- (v1di_ftype_v1di_v1di): Ditto.
- (v2si_ftype_v2si_si): Ditto.
- (v4hi_ftype_v4hi_di): Remove node.
- (v2si_ftype_v2si_di): Ditto.
- (ix86_init_mmx_sse_builtins): Handle V1DImode.
- (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
- Redefine builtins using def_builtin_const with *_ftype_*_int node.
- (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
- Add new builtins using def_builtin_const.
- (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
- IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
- IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
- * config/i386/mmintrin.h (__v1di): New typedef.
- (_mm_add_si64): Cast arguments to __v1di type.
- (_mm_sub_si64): Ditto.
- (_mm_sll_pi16): Cast __count to __v4hi type.
- (_mm_sll_pi32): Cast __count to __v2si type.
- (_mm_sll_si64): Cast arguments to __v1di type.
- (_mm_srl_pi16): Cast __count to __v4hi type.
- (_mm_srl_pi32): Cast __count to __v2si type.
- (_mm_srl_si64): Cast arguments to __v1di type.
- (_mm_sra_pi16): Cast __count to __v4hi type.
- (_mm_sra_pi32): Cast __count to __v2si type.
- (_mm_slli_pi16): Use __builtin_ia32_psllwi.
- (_mm_slli_pi32): Use __builtin_ia32_pslldi.
- (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
- (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
- (_mm_srli_pi32): Use __builtin_ia32_psrldi.
- (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
- (_mm_srai_pi16): Use __builtin_ia32_psrawi.
- (_mm_srai_pi32): Use __builtin_ia32_psradi.
- * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
- * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
- __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
- __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
-
-2008-03-07 Joseph Myers <joseph@codesourcery.com>
-
- * doc/include/texinfo.tex: Update to version 2008-03-07.10.
-
-2008-03-07 Peter Bergner <bergner@vnet.ibm.com>
-
- PR target/35373
- * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
- reg+const addressing for Altivec modes. Don't generate reg+reg
- addressing for TFmode or TDmode quantities.
-
-2008-03-07 Paolo Bonzini <bonzini@gnu.org>
-
- * c-common.c (vector_types_convertible_p): Call langhook
- instead of comptypes.
-
-2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/35402
- * tree-ssa-ccp.c (get_symbol_constant_value): Handle
- integral and scalar float variables which have a
- NULL DECL_INITIAL.
-
-2008-03-06 Nathan Froyd <froydnj@codesourcery.com>
-
- * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
- dwarf_register_span hook when emitting unwind information for
- register-to-memory saves.
- * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
- (rs6000_frame_related): Remove call to spe_synthesize_frame.
-
-2008-03-06 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
- for the same VAR_DECL.
-
-2008-03-06 Tom Tromey <tromey@redhat.com>
-
- * treelang: Delete.
- * doc/standards.texi (Standards): Don't mention treelang.
- * doc/invoke.texi (Overall Options): Don't mention treelang.
- * doc/install.texi (Prerequisites): Don't mention bison or
- treelang.
- (Configuration): Don't mention treelang.
- (Building): Likewise.
- * doc/frontends.texi (G++ and GCC): Don't mention treelang.
-
-2008-03-06 Paolo Bonzini <bonzini@gnu.org>
-
- * simplify-rtx.c (simplify_subreg): Remove useless shifts from
- word-extractions out of a multi-word object.
-
-2008-03-06 Richard Guenther <rguenther@suse.de>
-
- * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
- * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
- result type and precision.
- * expr.c (get_inner_reference): Set unsignedp based on the result
- type of BIT_FIELD_REF.
- * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
- * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
- (try_instantiate_multiple_fields): Likewise. Use the correct type
- for BIT_FIELD_REF.
- (sra_build_assignment): Likewise.
- (sra_build_elt_assignment): Likewise.
- (sra_explode_bitfield_assignment): Likewise.
- * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
- set BIT_FIELD_REF_UNSIGNED.
- (vectorizable_load): Likewise.
-
-2008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * cse.c (cse_extended_basic_block): Invalidate artificial defs
- at bb start.
-
-2008-03-06 Richard Guenther <rguenther@suse.de>
-
- * alias.c (struct alias_set_entry): Move has_zero_child field
- to pack with alias_set.
-
-2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386-modes.def: Use 4 byte alignment on DI for
- 32bit host.
-
-2008-03-05 Ian Lance Taylor <iant@google.com>
-
- * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
-
-2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * fwprop.c (update_df): Support width and offset parameters of
- df_ref_create.
- * ra-conflict.c (mark_reg_store, clear_reg_in_live,
- global_conflicts): Change DF_REF_EXTRACT to either
- DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
- DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
- * df-scan.c (df_ref_record, df_defs_record,
- df_ref_create_structure, df_def_record_1, df_uses_record,
- df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
- df_bb_refs_collect, df_entry_block_defs_collect,
- df_exit_block_uses_collect): Support new width and offset fields.
- (ref_extract_pool): New storage pool.
- (df_free_ref): New function.
- (df_reg_chain_unlink, df_free_collection_rec,
- df_sort_and_compress_refs): Call df_free_ref.
- (df_ref_equal_p, df_ref_compare): Compare offset and width fields
- of df_ref_extract.
- (df_ref_create_structure): Allocate df_ref_extract if offset and
- width fields are used.
- (df_def_record_1): Get offset and width from ZERO_EXTRACT.
- (df_uses_record): Get offset and width from ZERO_EXTRACT
- and SIGN_EXTRACT.
- * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
- DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
- DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
- * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
- DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
- DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
- (df_ref_extract): New structure.
- (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
- (df_ref_create): Add width and offset parameters.
-
-2008-03-05 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-structalias.c (get_constraint_for_component_ref):
- Use ranges_overlap_p.
- (offset_overlaps_with_access): Rename
- to ranges_overlap_p and move ...
- * tree-flow-inline.h (ranges_overlap_p): ... here.
-
- * tree.h (get_inner_reference, handled_component_p): Update
- comments.
-
- * tree.h (record_component_aliases, get_alias_set,
- alias_sets_conflict_p, alias_sets_must_conflict_p,
- objects_must_conflict_p): Move declarations ...
- * alias.h (record_component_aliases, get_alias_set,
- alias_sets_conflict_p, alias_sets_must_conflict_p,
- objects_must_conflict_p): ... here.
- Include coretypes.h.
- * Makefile.in (ALIAS_H): Add coretypes.h dependency.
-
-2008-03-05 Aldy Hernandez <aldyh@redhat.com>
-
- * cfg.c: Include tree-flow.h.
- (remove_edge_raw): Call redirect_edge_var_map_clear.
- (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
- * tree-flow-inline.h (redirect_edge_var_map_def): New.
- (redirect_edge_var_map_result): New.
- * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
- PENDING_STMT use with redirect_edge_var_map_*.
- * tree-ssa.c (edge_var_maps): New definition.
- (redirect_edge_var_map_add): New.
- (redirect_edge_var_map_clear): New.
- (redirect_edge_var_map_dup): New.
- (redirect_edge_var_map_vector): New.
- (redirect_edge_var_map_destroy): New.
- (ssa_redirect_edge): Replace PENDING_STMT use with
- redirect_edge_var_map_*.
- (flush_pending_stmts): Same.
- (delete_tree_ssa): Destroy edge var map.
- * tree-flow.h (struct _edge_var_map): New.
- Define edge_var_map vector type.
- Declare redirect_edge_var_map_* prototypes.
- * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
- * tree-cfg.c (reinstall_phi_args): Replace
- PENDING_STMT use with redirect_edge_var_map_*.
-
-2008-03-05 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35472
- * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
- whose single use_stmt has a overlapping set of loaded and
- stored symbols as that use_stmt might be a noop assignment then.
-
-2008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
-
- * gthr-rtems.h: Implement __gthread_mutex_destroy.
-
-2008-03-05 Richard Guenther <rguenther@suse.de>
-
- PR c++/35336
- * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
- should be constants.
- * tree-cfg.c (verify_expr): Verify it.
- * fold-const.c (fold_truthop): Remove code generating
- BIT_FIELD_REFs of structure bases.
- (fold_binary): Likewise.
- (fold_ternary): Position and size of BIT_FIELD_REFs are
- always host integers.
- (make_bit_field_ref): Remove.
- (optimize_bit_field_compare): Remove.
- (all_ones_mask_p): Remove.
-
-2008-03-05 Gabor Loki <loki@gcc.gnu.org>
-
- PR gcc/33009
- * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
- (split_block_and_df_analyze): New. Split basic block and rebuild
- dataflow.
- (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
- SPLIT_BLOCK.
- (split_pattern_seq): Likewise.
- (erase_matching_seqs): Likewise.
- (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
-
-2008-03-04 Geoff Keating <geoffk@apple.com>
-
- * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
- declaration and code.
- (tree_invalid_nonnegative_warnv_p): Likewise.
-
-2008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
-
- * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
- examples. Truncate option-names then causing overfull hbox.
-
-2008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR target/35222
- * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
- on hpux10.
- * configure: Rebuilt.
-
-2008-03-04 Rafael Espíndola <espindola@google.com>
-
- * fold-const.c (tree_simple_nonnegative_warnv_p): New.
- (tree_unary_nonnegative_warnv_p): New.
- (tree_binary_nonnegative_warnv_p): New.
- (tree_single_nonnegative_warnv_p): New.
- (tree_invalid_nonnegative_warnv_p): New.
- (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
-
-2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28322
- * opts.c (handle_option): Postpone 'unknown option' errors only for
- warning options.
-
-2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35453
- * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
- (_SIDD_XXX): This.
-
-2008-03-04 Rafael Espíndola <espindola@google.com>
-
- * fold-const.c (tree_unary_nonzero_warnv_p): New.
- (tree_binary_nonzero_warnv_p): New.
- (tree_single_nonzero_warnv_p): New.
- (tree_expr_nonzero_warnv_p): Redefine using the new functions.
-
-2008-03-04 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/35456
- * fold-const.c (fold_cond_expr_with_comparison): Prevent
- transformations for modes that have signed zeros.
- * ifcvt.c (noce_try_abs): Ditto.
-
-2008-03-04 Joseph Myers <joseph@codesourcery.com>
-
- * config/i386/i386.c (override_options): Force
- -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
-
-2008-03-04 Jan Hubicka <jh@suse.cz>
-
- PR c++/35262
- * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
- in last commit.
-
-2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
-
- * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
- label to probe the stack.
-
-2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
-
- * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
- (__gthr_win32_mutex_destroy): Declare.
- [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
- __gthr_win32_mutex_destroy.
- * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
-
-2008-03-03 Jan Hubicka <jh@suse.cz>
-
- PR c++/35262
- * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
- aggressive on inlining cold calls.
-
-2008-03-03 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
- struct copies into the expression table.
- (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
- (try_to_simplify): Likewise.
- * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
- integral and pointer arguments which do not change the
- precision to NOP_EXPRs.
- * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
- VIEW_CONVERT_EXPR case.
-
-2008-03-02 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
- defined in a loop at depth 0 is invariant.
- * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
- * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
- be called at loop depth 0.
-
-2008-03-02 Jakub Jelinek <jakub@redhat.com>
-
- PR driver/35420
- * gcc.c (process_command): Update copyright notice dates.
- * gcov.c (print_version): Likewise.
- * gcov-dump.c (print_version): Likewise.
- * mips-tfile.c (main): Likewise.
- * mips-tdump.c (main): Likewise.
-
-2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 24924
- * c-common.c (flag_permissive): Delete.
- (constant_expression_warnings): Check flags first.
- (constant_expression_error): New.
- * c-common.h (flag_permissive): Delete.
- (constant_expression_error): Declare.
- * flags.h (flag_permissive): Declare. Update description.
- * diagnostic.c (pedwarn): Update.
- (permerror): New.
- * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
- (permissive_error_kind): New.
- * toplev.c (flag_permissive): Define. Update description.
- * toplev.h (permissive_error_kind): Declare.
- * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
- (pedwarn_c90): Use pedantic_warning_kind.
- * c-opts.c (c_common_post_options): flag_permissive does not affect
- flag_pedantic_errors.
-
-2008-03-02 Joseph Myers <joseph@codesourcery.com>
-
- * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
- __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
- __absvsi2, __absvDI2): Use unsigned arithmetic.
-
-2008-03-02 Andi Kleen <ak@suse.de>
- Richard Guenther <rguenther@suse.de>
-
- * struct-equiv.c: Remove file.
- * cfg_cleanup.c (condjump_equiv_p): Remove.
- * Makefile.in (OBJS-common): Remove struct-equiv.o.
- (struct-equiv.o): Remove rule.
- * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
- insns_match_p, struct_equiv_block_eq, struct_equiv_init,
- rtx_equiv_p, condjump_equiv_p): Remove prototypes.
-
-2008-03-01 Alexandre Oliva <aoliva@redhat.com>
-
- * ifcvt.c (noce_process_if_block): Try to handle only the then
- block if the else block exists but isn't suitable.
-
-2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR gcc/35063
- * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
- * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
- regression from previous patch.
-
-2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR gcc/35063
- * gthr.h: Add __gthread_mutex_destroy as a function that must be
- implemented.
- * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
- * gthr-single.h (__gthread_mutex_destroy): Likewise.
- * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
- * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
- * gthr-nks.h (__gthread_mutex_destroy): Likewise.
- * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
- * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
- (__gthread_mutex_destroy_function): Rename to
- __gthread_mutex_destroy.
- * gthr-dce.h (__gthread_mutex_destroy): Call
- pthread_mutex_destroy.
- * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
- * gthr-posix.h (__gthread_mutex_destroy): Likewise.
- * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
-
-2008-03-01 Alexandre Oliva <aoliva@redhat.com>
-
- * df-scan.c (df_ref_chain_change_bb): Simplify.
- (df_insn_change_bb): Add new_bb argument. Simplify. Call
- set_block_for_insn if there's any change.
- * df.h ((df_insn_change_bb): Fix prototype.
- * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
- df_insn_change_bb, don't call set_block_for_insn.
- * emit-rtl.c (reorder_insns): Likewise.
- * haifa-sched.c (move_insn): Likewise.
-
-2008-03-01 Alexandre Oliva <aoliva@redhat.com>
-
- * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
-
-2008-03-01 Alexandre Oliva <aoliva@redhat.com>
-
- * tree-flow-inline.h (next_readonly_imm_use): Return
- NULL_USE_OPERAND_P after the end.
-
-2008-03-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35411
- * tree-sra.c (sra_build_assignment): Split conversion to
- final type to a separate statement if we are not assigning
- to a register.
-
-2008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- * fold-const.c (fold_convertible_p): Correct the logic to follow
- that in fold_convert().
-
-2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/35315
- * tree-inline.c (build_duplicate_type): When we make a
- duplicate type, make it unique in the canonical types system.
-
-2008-02-29 Tom Tromey <tromey@redhat.com>
-
- * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
- input_file_stack_history, input_file_stack_restored): Remove.
- (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
- * input.h (struct file_stack): Remove.
- (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
- (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
- Likewise.
- * diagnostic.h (struct diagnostic_context) <last_module>: Change
- type.
- (diagnostic_last_module_changed): Add 'map' argument.
- (diagnostic_set_last_function): Likewise.
- * diagnostic.c (undiagnostic_report_current_module): Iterate using
- line map, not input_file_stack.
- * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
-
-2008-02-29 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
-
-2008-02-29 Paul Brook <paul@codesourcery.com>
-
- * config/arm/ieee754-df.S (muldf3): Use RET macros.
-
-2008-02-29 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
- vn_lookup_or_add.
- * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
- value for comparing for a store match.
- (simplify_unary_expression): Do nothing for SSA_NAMEs.
- (try_to_simplify): Do not do a full-blown reference lookup.
-
-2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
- (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
-
- * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
-
-2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-loop-linear.c (try_interchange_loops): Compare memory access
- strides against cache sizes.
-
-2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/sh.c (sh_secondary_reload): Handle loading a float
- constant to fpul.
-
-2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
- of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
- is smaller than the original promoted value.
- (simplify_subreg): If OP is a SUBREG, try to preserve its
- SUBREG_PROMOTED_VAR_P information.
-
-2008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
- (VN_INFO_GET): Allocate new objects on the obstack.
- (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
- for rpo_numbers_temp, for consistency.
- (free_scc_vn): Free the obstack.
-
-2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
-
- * doc/invoke.texi: Document -ftree-loop-distribution.
- * tree-loop-distribution.c: New.
- * tree-pass.h (pass_loop_distribution): New.
- * graphds.h (struct graph): Add htab_t indices.
- * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
- * tree-vectorizer.c (rename_variables_in_loop): Extern.
- (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
- * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
- * tree-data-ref.c (debug_data_dependence_relations): New.
- (dump_data_dependence_relation): Also print data references.
- (free_data_ref): Extern.
- (same_access_functions): Moved...
- (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
- (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
- debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
- struct rdg_vertex_info, rdg_vertex_for_stmt): New.
- (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
- (stmts_from_loop): Skip LABEL_EXPR.
- (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
- New.
- (build_rdg): Initialize rdg->indices htab.
- (free_rdg, stores_from_loop, ref_base_address,
- rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
- have_similar_memory_accesses_1, ref_base_address_1,
- remove_similar_memory_refs): New.
- * tree-data-ref.h: Depend on tree-chrec.h.
- (debug_data_dependence_relations, free_data_ref): Declared.
- (same_access_functions): ... here.
- (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
- New.
- (struct rdg_vertex): Add has_mem_write and has_mem_reads.
- (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
- RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
- (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
- debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
- rdg_vertex_for_stmt): Declared.
- (struct rdg_edge): Add level.
- (RDGE_LEVEL): New.
- (free_rdg, stores_from_loop, remove_similar_memory_refs,
- rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
- Declared.
- (rdg_has_similar_memory_accesses): New.
- * tree-vect-analyze.c: Remove unused static decls.
- * lambda.h (dependence_level): New.
- * common.opt (ftree-loop-distribution): New.
- * tree-flow.h (mark_virtual_ops_in_bb,
- slpeel_tree_duplicate_loop_to_edge_cfg,
- rename_variables_in_loop): Declared.
- * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
- (OBJS-common): Add tree-loop-distribution.o.
- (tree-loop-distribution.o): New rule.
- * tree-cfg.c (mark_virtual_ops_in_bb): New.
- (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
- * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
-
-2008-02-28 Joseph Myers <joseph@codesourcery.com>
-
- PR target/33963
- * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
- other than structures and unions.
-
-2008-02-28 Richard Guenther <rguenther@suse.de>
-
- Revert:
- 2008-02-26 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
- * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
- (lookup_decl_from_uid): Declare.
- (remove_decl_from_map): Likewise.
- * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
- * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
- (decl_for_uid_map): New global hashtable mapping DECL_UID
- to the decl tree.
- (init_ttree): Allocate it.
- (insert_decl_to_uid_decl_map): New helper function.
- (make_node_stat): Insert new decls into the map.
- (copy_node_stat): Likewise.
- (lookup_decl_from_uid): New function.
- (remove_decl_from_map): Likewise.
- (print_decl_for_uid_map_statistics): New helper.
- (dump_tree_statistics): Call it.
-
- * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
- (referenced_var_iterator): Adjust.
- (FOR_EACH_REFERENCED_VAR): Adjust.
- (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
- (num_referenced_vars): Adjust.
- * tree-flow-inline.h (gimple_referenced_vars): Adjust.
- (first_referenced_var): Remove.
- (end_referenced_vars_p): Likewise.
- (next_referenced_var): Likewise.
- (referenced_var_iterator_set): New helper function.
- * tree-dfa.c (referenced_var_lookup): Adjust.
- (referenced_var_check_and_insert): Likewise.
- (remove_referenced_var): Likewise.
- * tree-ssa.c (verify_flow_insensitive_alias_info): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (verify_call_clobbering): Likewise.
- (verify_memory_partitions): Likewise.
- (init_tree_ssa): Allocate bitmap instead of hashtable for
- referenced_vars.
- (delete_tree_ssa): Adjust.
- * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (compute_tag_properties): Likewise.
- (set_initial_properties): Likewise.
- (find_partition_for): Likewise.
- (update_reference_counts): Likewise.
- (dump_may_aliases_for): Likewise.
- * tree-ssa-operands.c (add_virtual_operand): Likewise.
- (add_call_clobber_ops): Likewise.
- (add_call_read_ops): Likewise.
- (get_asm_expr_operands): Likewise.
- * tree-into-ssa.c (dump_decl_set): Likewise.
- (update_ssa): Likewise.
- * tree-sra.c (scan_function): Likewise.
- (decide_instantiations): Likewise.
- (scalarize_parms): Likewise.
- * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
- (dsa_named_for): Likewise.
- * tree-ssa-structalias.c (update_alias_info): Likewise.
- (merge_smts_into): Likewise.
-
-2008-02-27 David Daney <ddaney@avtrex.com>
-
- PR target/34409
- * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
- * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
- * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
- * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
- * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
-
-2008-02-27 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/25477
- * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
- (BUILT_IN_NEXTTOWARD): Remove.
- (BUILT_IN_NEXTTOWARDF): Ditto.
- * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
- alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
-
-2008-02-27 Tom Tromey <tromey@redhat.com>
-
- * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
- DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
-
-2008-02-27 Jan Beulich <jbeulich@novell.com>
-
- * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
- update the respective field on newdecl.
-
-2008-02-27 Revital Eres <eres@il.ibm.com>
-
- PR rtl-optimization/34999
- * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
- crossing edges that ends with a call insn.
- (fix_up_fall_thru_edges): Handle crossing edges that ends with a
- call insn and clear the EDGE_CROSSING flag of the crossing edge
- when fixing fallthru edges.
-
-2008-02-27 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35390
- * fold-const.c (fold_unary): Return the correct argument,
- converted to the result type.
-
-2008-02-27 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34971
- * expr.c (expand_expr_real_1): Assert on rotates that operate
- on partial modes.
- * fold-const.c (fold_binary): Use the types precision, not the
- bitsize of the mode if folding rotate expressions. Build rotates
- only for full modes.
-
-2008-02-27 Jakub Jelinek <jakub@redhat.com>
-
- * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
- and CPP_PRAGMA_EOL.
- * c-pragma.c (pragma_ns_name): New typedef.
- (registered_pp_pragmas): New variable.
- (c_pp_lookup_pragma): New function.
- (c_register_pragma_1): If flag_preprocess_only, do nothing
- for non-expanded pragmas, for expanded ones push pragma's
- namespace and name into registered_pp_pragmas vector.
- (c_invoke_pragma_handler): Register OpenMP pragmas even when
- flag_preprocess_only, don't register GCC pch_preprocess
- pragma if flag_preprocess_only.
- * c-opts.c (c_common_init): Call init_pragma even if
- flag_preprocess_only.
- * c-pragma.c (c_pp_lookup_pragma): New prototype.
- * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
- cpp_register_pragma if flag_preprocess_only.
-
-2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR c/28800
- * c-parser.c (c_parser_translation_unit): Warn for empty
- translation unit, not empty source file.
-
-2008-02-26 Paul Brook <paul@codesourcery.com>
-
- * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
- operand for Thumb-2.
- * config/arm/arm.h (reg_class): Add CORE_REGS.
- (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
- (BASE_REG_CLASS): Use CORE_REGS.
- (PREFERRED_RELOAD_CLASS): Add STACK_REG.
- (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
- (REGNO_OK_FOR_INDEX_P): Exclude SP.
- (ARM_REG_OK_FOR_INDEX_P): Always define. Use
- ARM_REGNO_OK_FOR_INDEX_P.
- (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
- * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
- arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
- (ldm/stm peepholes): Ditto.
- * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
- * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
- * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
- * config/arm/constraints.md: Enable "k" constraint on ARM.
-
-2008-02-27 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000.c: Annotate cache line size field in all
- instances of struct processor_costs.
-
-2008-02-26 David Edelsohn <edelsohn@gnu.org>
-
- * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
- dse2, gcse, if_conversion, if_after_combine, if_after_reload,
- jump_bypass): New counters.
- * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
- * dce.c (gate_ud_dce): Same.
- (gate_fast_dce): Same.
- * dse.c (gate_dse1): New function.
- (gate_dse2): New function.
- (gate_dse): Merge results of new gate functions.
- * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
- (gate_handle_jump_bypass): Add dbg_cnt.
- (gate_handle_gcse): Add dbg_cnt.
- * ifcvt.c (gate_handle_if_conversion): Same.
- (gate_handle_if_after_combine): Same.
- (gate_handle_if_after_reload): Same.
- * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
-
-2008-02-26 Edmar Wienskoski <edmar@freescale.com>
-
- * config/rs6000/rs6000.c (processor_costs): Update e300 cache
- line sizes.
- * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
-
-2008-02-26 Jason Merrill <jason@redhat.com>
-
- PR c++/35315
- * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
- alone if it's the naming decl for the type's main variant.
-
-2008-02-26 Tom Tromey <tromey@redhat.com>
-
- * system.h (USE_MAPPED_LOCATION): Poison.
- * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
- * tree-cfg.c (make_cond_expr_edges): Remove old location code.
- (make_goto_expr_edges): Likewise.
- (remove_bb): Likewise.
- (execute_warn_function_return): Likewise.
- * basic-block.h (struct edge_def) <goto_locus>: Change type to
- location_t.
- * c-common.c (fname_decl): Remove old location code.
- * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
- location code.
- * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
- variant.
- (ASM_INPUT_SOURCE_LOCATION): Likewise.
- (gen_rtx_ASM_INPUT): Likewise.
- (gen_rtx_ASM_INPUT_loc): Likewise.
- (get_rtx_asm_OPERANDS): Remove.
- * cfglayout.c (insn_locators_alloc): Remove old location code.
- (set_curr_insn_source_location): Likewise.
- (curr_insn_locator): Likewise.
- * print-tree.c (print_node): Remove old location code.
- * tree-mudflap.c (mf_varname_tree): Remove old location code.
- (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
- * cfgexpand.c (expand_gimple_cond_expr): Don't use
- location_from_locus.
- (construct_exit_block): Remove old location code.
- * emit-rtl.c (force_next_line_note): Remove old location code.
- * profile.c (branch_prob): Remove old location code.
- * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
- LOC_LINE): Remove old-location variants.
- * langhooks.c (lhd_print_error_function): Remove old location
- code.
- * configure, config.in: Rebuilt.
- * configure.ac (--enable-mapped-location): Remove.
- * c-decl.c (c_init_decl_processing): Remove old location code.
- (finish_function): Likewise.
- * recog.c (decode_asm_operands): Remove old location code.
- * c-pch.c (c_common_read_pch): Remove old location code.
- * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
- variants.
- * gimple-low.c (lower_function_body): Remove old location code.
- * toplev.c (unknown_location): Remove.
- (push_srcloc): Remove old-location variant.
- (process_options): Remove old location code.
- (lang_dependent_init): Likewise.
- * input.h (UNKNOWN_LOCATION): Move definition.
- (location_t): Undeprecate.
- (source_locus): Remove.
- (location_from_locus): Remove.
- (struct location_s): Remove.
- Remove all old-location code.
- (input_line, input_filename): Remove.
- * final.c (final_scan_insn): Remove old location code.
- * diagnostic.c (diagnostic_build_prefix): Remove
- USE_MAPPED_LOCATION test.
- * tree.h (gimple_stmt) <locus>: Now a location_t.
- (tree_exp) <locus>: Likewise.
- (DECL_IS_BUILTIN): Remove old-location variant.
- (annotate_with_file_line, annotate_with_locus): Likewise.
- (expr_locus, set_expr_locus): Update.
- * tree.c (build1_stat): Remove old location code.
- (last_annotated_node): Remove.
- (annotate_with_file_line): Remove old-location variant.
- (annotate_with_locus): Likewise.
- (expr_location): Remove old location code.
- (set_expr_location): Likewise.
- (expr_has_location): Likewise.
- (expr_locus): Likewise.
- (set_expr_locus): Likewise.
- (expr_filename): Don't use location_from_locus.
- (expr_lineno): Likewise.
- * rtl-error.c (location_for_asm): Remove old location code.
- * c-lex.c (cb_line_change): Remove old location code.
- (fe_file_change): Likewise.
- (cb_def_pragma): Likewise.
- (c_lex_with_flags): Likewise.
- * gengtype.c (do_typedef): Don't special-case location types.
- (define_location_structures): Remove.
- (main): Don't call define_location_structures.
- * tree-pretty-print.c (dump_implicit_edges): Remove old location
- code.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 26264
- * builtins.def (BUILT_IN_STDARG_START): Remove.
- * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
- * tree-stdarg.c (execute_optimize_stdarg): Likewise.
- * tree-inline.c (inline_forbidden_p_1): Likewise.
-
-2008-02-26 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
- * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
- (lookup_decl_from_uid): Declare.
- (remove_decl_from_map): Likewise.
- * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
- * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
- (decl_for_uid_map): New global hashtable mapping DECL_UID
- to the decl tree.
- (init_ttree): Allocate it.
- (insert_decl_to_uid_decl_map): New helper function.
- (make_node_stat): Insert new decls into the map.
- (copy_node_stat): Likewise.
- (lookup_decl_from_uid): New function.
- (remove_decl_from_map): Likewise.
- (print_decl_for_uid_map_statistics): New helper.
- (dump_tree_statistics): Call it.
-
- * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
- (referenced_var_iterator): Adjust.
- (FOR_EACH_REFERENCED_VAR): Adjust.
- (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
- (num_referenced_vars): Adjust.
- * tree-flow-inline.h (gimple_referenced_vars): Adjust.
- (first_referenced_var): Remove.
- (end_referenced_vars_p): Likewise.
- (next_referenced_var): Likewise.
- (referenced_var_iterator_set): New helper function.
- * tree-dfa.c (referenced_var_lookup): Adjust.
- (referenced_var_check_and_insert): Likewise.
- (remove_referenced_var): Likewise.
- * tree-ssa.c (verify_flow_insensitive_alias_info): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (verify_call_clobbering): Likewise.
- (verify_memory_partitions): Likewise.
- (init_tree_ssa): Allocate bitmap instead of hashtable for
- referenced_vars.
- (delete_tree_ssa): Adjust.
- * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (compute_tag_properties): Likewise.
- (set_initial_properties): Likewise.
- (find_partition_for): Likewise.
- (update_reference_counts): Likewise.
- (dump_may_aliases_for): Likewise.
- * tree-ssa-operands.c (add_virtual_operand): Likewise.
- (add_call_clobber_ops): Likewise.
- (add_call_read_ops): Likewise.
- (get_asm_expr_operands): Likewise.
- * tree-into-ssa.c (dump_decl_set): Likewise.
- (update_ssa): Likewise.
- * tree-sra.c (scan_function): Likewise.
- (decide_instantiations): Likewise.
- (scalarize_parms): Likewise.
- * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
- (dsa_named_for): Likewise.
- * tree-ssa-structalias.c (update_alias_info): Likewise.
- (merge_smts_into): Likewise.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 34351
- * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
- * c-opts.c (c_common_handle_option): Wall enables
- Wvolatile-register-var.
- * common.opt: Move Wvolatile-register-var to...
- * c.opt: ...here.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * common.opt (Wlarger-than=): New.
- * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
- -Wlarger-than=.
- * opts.c (common_handle_option): Handle -Wlarger-than=.
- * optc-gen.awk: Likewise.
- * opth-gen.awk: Likewise.
- * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
- * tree-optimize.c (tree_rest_of_compilation): Likewise.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * c-common.c (match_case_to_enum_1): Add appropriate
- OPT_W* parameter to warning.
- (c_do_switch_warnings): Likewise.
- * c-typeck.c (warning_init): Add one more parameter following
- 'warning' function.
- (push_init_level): Update call to warning_init.
- (pop_init_level): Likewise.
- (add_pending_init): Likewise.
- (output_init_element: Likewise.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28322
- * toplev.c (toplev_main): If there are warnings or error, print
- errors for ignored options.
- * opts.c (ignored_options): New static variable.
- (postpone_unknown_option_error): New.
- (print_ignored_options): New.
- (handle_option): Postpone errors for unknown -Wno-* options.
- * opts.h (print_ignored_options): Declare.
-
-2008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * config/mips/mips.md (loadgp_blockage, blockage): Change type
- to "ghost".
-
-2008-02-25 Richard Guenther <rguenther@suse.de>
-
- Revert:
- 2008-02-25 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
- * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
- (lookup_decl_from_uid): Declare.
- * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
- * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
- (decl_for_uid_map): New global hashtable mapping DECL_UID
- to the decl tree.
- (init_ttree): Allocate it.
- (insert_decl_to_uid_decl_map): New helper function.
- (make_node_stat): Insert new decls into the map.
- (copy_node_stat): Likewise.
- (lookup_decl_from_uid): New function.
- (print_decl_for_uid_map_statistics): New helper.
- (dump_tree_statistics): Call it.
-
- * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
- (referenced_var_iterator): Adjust.
- (FOR_EACH_REFERENCED_VAR): Adjust.
- (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
- (num_referenced_vars): Adjust.
- * tree-flow-inline.h (gimple_referenced_vars): Adjust.
- (first_referenced_var): Remove.
- (end_referenced_vars_p): Likewise.
- (next_referenced_var): Likewise.
- (referenced_var_iterator_set): New helper function.
- * tree-dfa.c (referenced_var_lookup): Adjust.
- (referenced_var_check_and_insert): Likewise.
- (remove_referenced_var): Likewise.
- * tree-ssa.c (verify_flow_insensitive_alias_info): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (verify_call_clobbering): Likewise.
- (verify_memory_partitions): Likewise.
- (init_tree_ssa): Allocate bitmap instead of hashtable for
- referenced_vars.
- (delete_tree_ssa): Adjust.
- * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (compute_tag_properties): Likewise.
- (set_initial_properties): Likewise.
- (find_partition_for): Likewise.
- (update_reference_counts): Likewise.
- (dump_may_aliases_for): Likewise.
- * tree-ssa-operands.c (add_virtual_operand): Likewise.
- (add_call_clobber_ops): Likewise.
- (add_call_read_ops): Likewise.
- (get_asm_expr_operands): Likewise.
- * tree-into-ssa.c (dump_decl_set): Likewise.
- (update_ssa): Likewise.
- * tree-sra.c (scan_function): Likewise.
- (decide_instantiations): Likewise.
- (scalarize_parms): Likewise.
- * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
- (dsa_named_for): Likewise.
- * tree-ssa-structalias.c (update_alias_info): Likewise.
- (merge_smts_into): Likewise.
-
-2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR fortran/29549
- * doc/invoke.texi (-fcx-limited-range): Document new option.
- * toplev.c (process_options): Handle -fcx-fortran-rules.
- * common.opt: Add documentation for -fcx-fortran-rules.
-
-2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR c/35162
- * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
- actual behaviour and C99.
-
-2008-02-26 Ben Elliston <bje@au.ibm.com>
-
- * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
- (ASM_CPU_POWER6_SPEC): Likewise.
- (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
- Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
- (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
-
-2008-02-25 Richard Guenther <rguenther@suse.de>
-
- * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
- * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
- (lookup_decl_from_uid): Declare.
- * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
- * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
- (decl_for_uid_map): New global hashtable mapping DECL_UID
- to the decl tree.
- (init_ttree): Allocate it.
- (insert_decl_to_uid_decl_map): New helper function.
- (make_node_stat): Insert new decls into the map.
- (copy_node_stat): Likewise.
- (lookup_decl_from_uid): New function.
- (print_decl_for_uid_map_statistics): New helper.
- (dump_tree_statistics): Call it.
-
- * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
- (referenced_var_iterator): Adjust.
- (FOR_EACH_REFERENCED_VAR): Adjust.
- (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
- (num_referenced_vars): Adjust.
- * tree-flow-inline.h (gimple_referenced_vars): Adjust.
- (first_referenced_var): Remove.
- (end_referenced_vars_p): Likewise.
- (next_referenced_var): Likewise.
- (referenced_var_iterator_set): New helper function.
- * tree-dfa.c (referenced_var_lookup): Adjust.
- (referenced_var_check_and_insert): Likewise.
- (remove_referenced_var): Likewise.
- * tree-ssa.c (verify_flow_insensitive_alias_info): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (verify_call_clobbering): Likewise.
- (verify_memory_partitions): Likewise.
- (init_tree_ssa): Allocate bitmap instead of hashtable for
- referenced_vars.
- (delete_tree_ssa): Adjust.
- * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
- FOR_EACH_REFERENCED_VAR_IN_BITMAP.
- (compute_tag_properties): Likewise.
- (set_initial_properties): Likewise.
- (find_partition_for): Likewise.
- (update_reference_counts): Likewise.
- (dump_may_aliases_for): Likewise.
- * tree-ssa-operands.c (add_virtual_operand): Likewise.
- (add_call_clobber_ops): Likewise.
- (add_call_read_ops): Likewise.
- (get_asm_expr_operands): Likewise.
- * tree-into-ssa.c (dump_decl_set): Likewise.
- (update_ssa): Likewise.
- * tree-sra.c (scan_function): Likewise.
- (decide_instantiations): Likewise.
- (scalarize_parms): Likewise.
- * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
- (dsa_named_for): Likewise.
- * tree-ssa-structalias.c (update_alias_info): Likewise.
- (merge_smts_into): Likewise.
-
-2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/35258
- * cse.c (cse_insn): Avoid creation of overlapping MEMs.
- * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
- * alias.h (nonoverlapping_memrefs_p): Likewise.
-
-2008-02-25 Jan Beulich <jbeulich@novell.com>
-
- * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
- * config/i386/netware-libgcc.exp: Add __bswap?i2,
- __emultls_get_address, __emultls_register_common,
- __floatundi?f, and _Unwind_GetIPInfo.
- * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
- Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
- (gen_regparm_prefix): Likewise.
- (i386_nlm_encode_section_info): Sync with
- config/i386/winnt.c:i386_pe_encode_section_info().
- (i386_nlm_maybe_mangle_decl_assembler_name): New.
- i386_nlm_mangle_decl_assembler_name): New.
- (netware_override_options): New.
- * config/i386/netware.h (netware_override_options): Declare.
- (OVERRIDE_OPTIONS): Re-define to netware_override_options.
- (i386_nlm_mangle_decl_assembler_name): Declare.
- (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
-
-2008-02-25 Ben Elliston <bje@au.ibm.com>
-
- PR other/32948
- * c-decl.c (grokdeclarator): Remove unused local variables
- `typedef_type' and `type_as_written'.
- * bb-reorder.c
- (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
- unused local variable `has_hot_blocks'.
- (fix_crossing_conditional_branches): Remove unused local variable
- `prev_bb'.
-
-2008-02-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/19984
- * builtins.def (BUILT_IN_NAN): Define as c99 builtin
- using DEF_C99_BUILTIN.
- (BUILT_IN_NANF): Ditto.
- (BUILT_IN_NANL): Ditto.
-
-2008-02-25 Ayal Zaks <zaks@il.ibm.com>
- Revital Eres <eres@il.ibm.com>
-
- * modulo-sched.c (calculate_must_precede_follow): Address TODO
- regarding the order of two dependent insns in the same row.
-
-2008-02-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * stor-layout.c (layout_decl): Do not bump the alignment of a
- bit-field to more than byte alignment if it is packed.
-
-2008-02-24 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (processor_costs): Add cache costs for
- e300c2 and e300c3.
-
-2008-02-24 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
-
- PR 33738
- * tree-vrp.c (vrp_evaluate_conditional): With
- -Wtype-limits, emit a warning when comparing against a
- constant outside the natural range of OP0's type.
- * c.opt (Wtype-limits): Move ...
- * common.opt (Wtype-limits): ... here.
-
-2008-02-24 Edmar Wienskoski <edmar@freescale.com>
-
- * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
- * config/rs6000/e300c2c3.md: New file.
- * config/rs6000/rs6000.c (processor_costs): Add new costs for
- e300c2 and e300c3.
- (rs6000_override_options): Add e300c2 and e300c3 cases to
- processor_target_table. Do not allow usage of Altivec or Spe
- with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
- (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
- * config/rs6000/rs6000.h (processor_type): Add
- PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
- (ASM_CPU_SPEC): Add e300c2 and e300c3.
- * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
- and ppce300c3. Include e300c2c3.md.
-
-2008-02-23 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
- instead of TARGET_STRICT_ALIGN.
-
-2008-02-23 Joseph Myers <joseph@codesourcery.com>
-
- * explow.c (memory_address): Assert that the generated address is
- valid.
-
-2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- PR target/25477
- * config/darwin-protos.h: Add darwin_patch_builtins prototype.
- * config/darwin-ppc-ldouble-patch.def: New file.
- * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
- * config/rs6000/rs6000.c (rs6000_init_builtins): Call
- SUBTARGET_INIT_BUILTINS if defined.
- * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
- New functions.
-
-2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-opt/33512
- * simplify-rtx.c (simplify_binary_operation_1): Add simplification
- of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
-
-2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR pch/35027
- * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
- file" warning condtional on -Winvalid-PCH.
-
-2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
-
- * expmed.c (extract_bit_field): Always use adjust_address for MEM.
-
-2008-02-23 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/22076
- PR target/34256
- * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
- prevent reload from using MMX registers.
- (*mov<mode>_internal): Ditto.
- (*movv2sf_internal_rex64): Ditto.
- (*movv2sf_internal): Ditto.
-
-2008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR documentation/31569
- * doc/install.texi2html: Use makeinfo --no-number-sections.
-
-2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
- ensure that we can address an entire entity > 8 bytes. Don't
- generate reg+reg addressing for such data.
-
-2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
- strings when optimizing for size, unless the target cares about
- alignment.
-
-2008-02-22 Tom Tromey <tromey@redhat.com>
-
- * regclass.c (current_pass): Remove declaration.
-
-2008-02-22 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/libgcc.S (__RAMPZ__): Define.
- (__do_copy_data): Add for devices with 128KB code memory.
-
-2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
- Use spe_abi.
- * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
-
-2008-02-22 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
- GENNONACR_REGS.
-
-2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR c/19999
- * c-typeck.c (build_binary_op): Warn about floating point
- comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
-
-2008-02-21 Janis Johnson <janis187@us.ibm.com>
-
- PR target/34526
- * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
- (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
- add vrsave.
- (rs6000_override_options): Set altivec_abi as default, not override,
- for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
- TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
- is used; use new member spe_abi.
- (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
- spe_abi and altivec_abi.
-
-2008-02-22 Tomas Bily <tbily@suse.cz>
-
- * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
-
-2008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR bootstrap/35273
- * config.build (build_file_translate): Set to `CMD //c' only if
- it works.
- * Makefile.in (build_file_translate): Improve comment.
-
-2008-02-21 Jan Hubicka <jh@suse.cz>
-
- * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
- PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
- PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
-
-2008-02-21 Michael Matz <matz@suse.de>
-
- PR target/35264
- * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
-
-2008-02-21 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
- movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
- as insn constraint.
- * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
- from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
- SSE_VEC_FLOAT_MODE_P as insn constraint.
- (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
- (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
- sse4a_movntdf using MODEF mode iterator.
- (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
- sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
- (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
- (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
- (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
- (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
- (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
-
-2008-02-21 Richard Guenther <rguenther@suse.de>
-
- * tree.def (PAREN_EXPR): New tree code.
- * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
- and PAREN_EXPR.
- * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
- * expr.c (expand_expr_real_1): Likewise.
- * tree-inline.c (estimate_num_insns_1): Likewise.
- * tree-complex.c (expand_complex_move): Likewise.
- * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
- as plain x.
-
-2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/35225
- * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
-
-2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR target/35190
- * config/sh/sh.md (jump_compact): Disable for crossing jumps.
-
- * config/sh/sh.c (find_barrier): Don't go past
- NOTE_INSN_SWITCH_TEXT_SECTIONS note.
-
-2008-02-20 DJ Delorie <dj@redhat.com>
-
- * config/h8300/h8300.md (insv): Force source operand to be a register.
-
- * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
- as a jump, not as a plain insn.
-
-2008-02-20 Seongbae Park <seongbae.park@gmail.com>
-
- * doc/invoke.texi (Warning Options): Add new option
- -Wframe-larger-than=.
- (-Wframe-larger-than): Document.
-
- * flags.h (warn_frame_larger_than, frame_larger_than_size):
- Add declarations for new option variables.
-
- * final.c (final_start_function): Check the frame size
- before emission and issue a Wframe-larger-than warning.
-
- * opts.c (warn_frame_larger_than, frame_larger_than_size):
- Add definitions for new option variables.
- (common_handle_option): Handle new option OPT_Wframe_larger_than_.
-
- * common.opt (Wframe-larger-than=): New option.
-
-2008-02-20 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
- (<sse>_div<mode>3): Ditto.
- (<sse>_vmdiv<mode>3): Ditto.
- (<sse>_vmsqrt<mode>2): Ditto.
- (*smax<mode>3): Ditto.
- (sse5_frcz<mode>2): Ditto.
- (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
- as insn constraint.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35265
- * builtins.c (validate_arg): If we want an INTEGER_TYPE,
- be happy with INTEGRAL_TYPE_P.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- * fold-const.c (split_tree): Associate floatig-point expressions
- if flag_associative_math is set.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- * tree.h (fold_real_zero_addition_p): Declare.
- * fold-const.c (fold_real_zero_addition_p): Export.
- * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
- floating-point operations with zero and one.
-
-2008-02-20 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/install.texi: Correct references to CFLAGS, replacing them
- with BOOT_CFLAGS. Document flags used during bootstrap for
- target libraries.
-
-2008-02-20 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
- * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
- and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
- insn constraint.
- (smin<mode>3): Ditto from similar patterns.
- (smax<mode>3): Ditto.
- (*ieee_smin<mode>3): Ditto.
- (*ieee_smax<mode>3): Ditto.
- * config/i386/sse.md (sse): New mode attribute.
- (mov<mode>): Macroize expander from movv4sf and movv2df using
- SSEMODEF2P mode iterator.
- (<sse>_movnt<mode>): Ditto from similar patterns. Use
- SSE_VEC_FLOAT_MODE_P as insn constraint.
- (storent<mode>): Ditto.
- (storent<mode>): Macroize expander from storentsf and storentdf using
- MODEF mode iterator.
- (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
- mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
- (abs<mode>2): Ditto from similar patterns.
- (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
- (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
- (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
- (<sse>_vmsqrt<mode>2): Ditto.
- (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
- (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
- (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
- (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
- (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
- sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
- mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
- insn constraint.
- (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
- iterator and SSE_FLOAT_MODE_P as insn constraint.
- (<sse>_ucomi): Ditto from similar patterns.
- (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
- sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
- SSE_VEC_FLOAT_MODE_P as insn constraint.
- (vcond<mode>): Ditto from similar patterns.
- (and<mode>3, *and<mode>3): Ditto.
- (<sse>_nand<mode>3): Ditto.
- (ior<mode>3, *ior<mode>3): Ditto.
- (xor<mode>3, *xor<mode>3): Ditto.
- (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
- iterator and SSE_FLOAT_MODE_P as insn constraint.
- (*nand<mode>3): Ditto from similar patterns.
- (*ior<mode>3): Ditto.
- (*xor<mode>3): Ditto.
-
-2008-02-20 Ira Rosen <irar@il.ibm.com>
-
- * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
- vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
- vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
-
-2008-02-19 Jan Hubicka <jh@suse.cz>
-
- * predict.c (tree_bb_level_predictions): Remove variable next
- mistakely introduced by previous commit.
-
-2008-02-19 Jan Hubicka <jh@suse.cz>
-
- * predict.c (predict_paths_leading_to): Rewrite.
- (predict_paths_for_bb): New.
- (tree_bb_level_predictions): Update call of predict_paths_leading_to.
-
-2008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR bootstrap/35218
- * Makefile.in (build_file_translate): New.
- (gcc-vers.texi): Use it for translating $(abs_srcdir).
- * config.build (build_file_translate): Set to `CMD //c' on MinGW.
- * configure.ac (build_file_translate): Substitute it.
- * configure: Regenerate.
-
-2008-02-19 Jan Hubicka <jh@suse.cz>
-
- PR rtl-optimization/34408
- * see.c (see_def_extension_not_merged): Copy subreg so we don't have
- invalid sharing.
-
-2008-02-19 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/28779
- * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
- call_expr.
-
-2008-02-19 H.J. Lu <hongjiu.lu@intel.com>
-
- PR Ada/35186
- * config/i386/i386-modes.def: Revert the last DI alignment
- change until Ada people can look into it.
-
-2008-02-19 Nick Clifton <nickc@redhat.com>
-
- * opts.c (print_specific_help): Fix typo in --help text.
-
-2008-02-19 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35239
- * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
- 32-bit inline asm without asm alternatives for host GCC < 3.0.
-
-2008-02-19 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34989
- * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
- Allow propagation to INDIRECT_REF if we can simplify only.
-
-2008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * c-common.c (warn_for_collisions_1): Use appropriate option when
- warning.
-
-2008-02-19 Nick Clifton <nickc@redhat.com>
-
- PR other/31349
- * opts.c (undocumented_msg): Leave blank unless checking is enabled.
- (handle_options): Fix indentation.
- (print_filtered_help): If no language-specific options were
- displayed tell the user how to list all the options supported by
- the language's front-end.
- (print_specific_help): Fix indentation and remove duplicate line.
- (common_handle_option): Handle the -v option.
- For --help enable the display of undocumented options if the -v
- switch has been included on the command line.
- For --help= check for overlaps in the arguments between the option
- classes and the language names and issue a warning when they
- cannot be disambiguated.
- * c.opt (v): Pass on to the common option handler.
-
-2008-02-19 Revital Eres <eres@il.ibm.com>
-
- * modulo-sched.c (sms_schedule): Change dump message when
- create_ddg function fails.
- (try_scheduling_node_in_cycle): Rename row to cycle.
- (print_partial_schedule): Rename CYCLE to ROW.
-
-2008-02-19 Christian Bruel <christian.bruel@st.com>
- Zdenek Dvorak <ook@ucw.cz>
-
- * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
-
-2008-02-19 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/33555
- * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
- (*x86_movdicc_0_m1_se): Ditto.
-
-2008-02-19 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
- (CMPtype): Define as __gcc_CMPtype.
- * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
- (CMPtype): Define as __gcc_CMPtype.
-
-2008-02-19 Hans-Peter Nilsson <hp@axis.com>
-
- Support valgrind 3.3 for --enable-checking=valgrind.
- * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
- here.
- [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
- [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
- [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
- * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
- Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
- VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
- VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
- respectively.
- * ggc-zone.c: Similar.
- * ggc-page.c: Similar.
-
-2008-02-19 Paul Brook <paul@codesourcery.com>
-
- PR target/35071
- * config/arm/ieee754-df.S: Fix do_it typo.
- * config/arm/ieee754-sf.S: Fix do_it typo.
-
-2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35189
- * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
- (OPTION_MASK_ISA_3DNOW_SET): Likewise.
- (OPTION_MASK_ISA_SSE_SET): Likewise.
- (OPTION_MASK_ISA_SSE2_SET): Likewise.
- (OPTION_MASK_ISA_SSE3_SET): Likewise.
- (OPTION_MASK_ISA_SSSE3_SET): Likewise.
- (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
- (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
- (OPTION_MASK_ISA_SSE4_SET): Likewise.
- (OPTION_MASK_ISA_SSE4A_SET): Likewise.
- (OPTION_MASK_ISA_SSE5_SET): Likewise.
- (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
- (OPTION_MASK_ISA_MMX_UNSET): Updated.
- (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
- (OPTION_MASK_ISA_SSE_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
- (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
- (OPTION_MASK_ISA_SSE4): Removed.
- (ix86_handle_option): Turn on bits in ix86_isa_flags and
- ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
- (override_options): Don't turn on implied SSE/MMX bits in
- ix86_isa_flags.
-
-2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386-modes.def: Use 4 byte alignment on DI for
- 32bit host.
-
-2008-02-18 Joey Ye <joey.ye@intel.com>
-
- PR middle-end/34921
- * tree-nested.c (insert_field_into_struct): Set type alignment
- to field alignment if the former is less than the latter.
-
-2008-02-18 Jakub Jelinek <jakub@redhat.com>
-
- * BASE-VER: Set to 4.4.0.
-
-2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
- * doc/cfg.texi: Likewise.
- * doc/extend.texi: Likewise.
- * doc/gty.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * doc/loop.texi: Likewise.
- * doc/md.texi: Likewise.
- * doc/passes.texi: Likewise.
- * doc/rtl.texi: Likewise.
- * doc/sourcebuild.texi: Likewise.
- * doc/tm.texi: Likewise.
- * doc/tree-ssa.texi: Likewise.
-
-2008-02-17 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35227
- * tree-complex.c (init_parameter_lattice_values): Handle parameters
- without default definition.
-
-2008-02-17 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35231
- * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
- if A | B != 1.
-
-2008-02-17 Uros Bizjak <ubizjak@gmail.com>
-
- Revert:
- 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/sfp-machine.h (CMPtype): Define as typedef using
- libgcc_cmp_return mode.
-
-2008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/28368
- * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
-
-2008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
-
- * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
- multilibs.
-
-2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/c-tree.texi: Use `@.' where appropriate.
- * doc/extend.texi: Likewise.
- * doc/install.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * doc/loop.texi: Likewise.
- * doc/makefile.texi: Likewise.
- * doc/md.texi: Likewise.
- * doc/passes.texi: Likewise.
- * doc/standards.texi: Likewise.
- * doc/tm.texi: Likewise.
-
-2008-02-15 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35196
- * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
- in entry_bb.
- (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
- rather than in entry_bb.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/sfp-machine.h (CMPtype): Define as typedef using
- libgcc_cmp_return mode.
-
-2008-02-15 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/35130
- * tree-nested.c (convert_call_expr): Put FRAME.* vars into
- OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
-
-2008-02-15 Richard Guenther <rguenther@suse.de>
- Zdenek Dvorak <ook@ucw.cz>
-
- PR tree-optimization/35164
- * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
- * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
- * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
- Only propagate addresses which do not have abnormal SSA_NAMEs
- in their operands.
-
-2008-02-15 Joseph Myers <joseph@codesourcery.com>
-
- PR target/35088
- * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
-
-2008-02-15 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/35149
- * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/34621
- * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
- when calculating alignment_pad.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
- (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
- * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
- and STACK_BOUNDARY define.
-
-2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR preprocessor/35061
- * c-pragma.c (handle_pragma_pop_macro): Check that
- pushed_macro_table has been allocated.
-
-2008-02-14 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/35136
- * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
- (force_gimple_operand): Likewise.
- * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
- for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
- Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
- (find_interesting_uses_address): Check addressability and alignment
- of the base expression only after substituting bases of IVs into it.
-
-2008-02-14 Michael Matz <matz@suse.de>
-
- PR target/34930
- * function.c (instantiate_virtual_regs_in_insn): Reload address
- before falling back to reloading the whole operand.
-
-2008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.c (s390_mainpool_start): Emit the pool
- before the first section switch note.
-
-2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/bugreport.texi: Update copyright years.
- * doc/c-tree.texi: Likewise.
- * doc/cfg.texi: Likewise.
- * doc/cpp.texi: Likewise.
- * doc/cppinternals.texi: Likewise.
- * doc/fragments.texi: Likewise.
- * doc/frontends.texi: Likewise.
- * doc/gcc.texi: Likewise.
- * doc/gty.texi: Likewise.
- * doc/hostconfig.texi: Likewise.
- * doc/implement-c.texi: Likewise.
- * doc/libgcc.texi: Likewise.
- * doc/loop.texi: Likewise.
- * doc/makefile.texi: Likewise.
- * doc/options.texi: Likewise.
- * doc/passes.texi: Likewise.
- * doc/rtl.texi: Likewise.
- * doc/sourcebuild.texi: Likewise.
- * doc/standards.texi: Likewise.
- * doc/tree-ssa.texi: Likewise.
- * doc/trouble.texi: Likewise.
-
- * doc/extend.texi: Use @: or add comma where appropriate.
- * doc/invoke.texi: Likewise.
- * doc/tm.texi: Likewise.
-
-2008-02-14 Alan Modra <amodra@bigpond.net.au>
-
- PR target/34393
- * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
- to a reg.
-
-2008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
-
- * doc/md.texi (clz, ctz): Add reference.
- * doc/rtl.texi (clz, ctz): Likewise.
-
-2008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR other/35148
- * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
- srcdir.
-
-2008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.c (struct constant_pool): New field
- emit_pool_after added.
- (s390_mainpool_start): Set the emit_pool_after flag according
- to the section switch notes.
- (s390_mainpool_finish): Consider emit_pool_after when emitting
- the literal pool at the end of the function.
- (s390_chunkify_start): Force literal pool splits at section
- switch notes.
-
-2008-02-13 Michael Matz <matz@suse.de>
-
- PR debug/35065
- * var-tracking.c (clobber_variable_part): Correctly traverse the
- list.
-
-2008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 29673
- * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
- Add -fdump-ipa-inline.
- * tree-dump.c (dump_files): Remove tree-inlined dump.
- * tree-pass.h (tree_dump_index): Remove TDI_inlined.
-
-2008-02-12 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35171
- * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
- default defs.
-
-2008-02-12 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35163
- * fold-const.c (fold_widened_comparison): Use get_unwidened in
- value-preserving mode. Disallow final truncation.
-
-2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/35136
- * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
- code from here to...
- (force_gimple_operand): ...here.
-
-2008-02-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35144
- * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
- non-compatible pointers.
- (generate_element_copy): If SRC and DST are RECORD_TYPEs with
- different FIELD_DECLs, try harder by comparing field offsets, sizes
- and types.
-
- PR inline-asm/35160
- * function.c (match_asm_constraints_1): Don't replace the same input
- multiple times.
-
-2008-02-12 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
- * config/avr/avr.c (expand_prologue): Save RAMPZ register.
- (expand_epilogue): Restore RAMPZ register.
- * config/avr/avr.md (RAMPZ_ADDR): New constant.
-
-2008-02-11 Kai Tietz <kai.tietz@onevision.com>
-
- * config/i386/cygwin.asm: (__alloca): Correct calling
- convention and alignment.
- (__chkstk): Force 8 byte stack alignment.
-
-2008-02-11 Uros Bizjak <ubizjak@gmail.com>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/33992
- * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
- the zero we compare against.
-
-2008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR libfortran/35063
- * gthr-win32.h (__gthread_mutex_destroy_function): New function
- to CloseHandle after unlocking to prevent accumulation of handle
- count.
-
-2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR middle_end/34150
- * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
- pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
- and update LABEL_NUSES during and after reload.
-
-2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
-
- PR middle-end/34627
- * combine.c (simplify_if_then_else): Make sure the comparison is
- against const0_rtx when simplifying to (abs x) or (neg (abs X)).
-
-2008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR bootstrap/35051
- * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
- (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
- * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
- (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
- * tree.h (get_type_static_bounds): Likewise.
-
-2008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/invoke.texi (Option Summary, C++ Dialect Options)
- (Objective-C and Objective-C++ Dialect Options, Warning Options):
- Make -Wfoo language annotations match what the compiler outputs.
-
-2008-02-08 Sa Liu <saliu@de.ibm.com>
-
- * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
- intrinsics spu_convts, spu_convtu, spu_convtf.
-
-2008-02-08 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/extend.texi (Function Attributes) <noinline>: Mention
- asm ("") as method to keep calls.
-
-2008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR other/32754
- * doc/options.texi (Options): Replace references to opts.sh with
- optc-gen.awk.
- * opts-common.c: Likewise.
- * optc-gen.awk: Likewise.
-
-2008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
-
-2008-02-07 Richard Henderson <rth@redhat.com>
-
- PR rtl-opt/33410
- * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
- EXPR_LIST for the REG_EQUAL instead of a comparison with a
- funny mode.
-
-2008-02-07 Uros Bizjak <ubizjak@gmail.com>
-
- PR tree-optimization/35085
- * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
- for operand entry oe2 in addition to operand entry oe3 in order to
- expose more opportunities for vectorizer sum reduction.
-
-2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- PR other/35107
- * Makefile.in (LIBS): Remove $(GMPLIBS).
- (cc1-dummy, cc1): Add $(GMPLIBS).
-
-2008-02-06 Jan Hubicka <jh@suse.cz>
-
- PR target/23322
- * i386.md (moddf_integer): Do not produce partial memory stalls for
- targets where it hurts.
-
-2008-02-06 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35083
- * optabs.c (expand_float): Do not check for decimal modes when
- expanding unsigned integer through signed conversion.
-
-2008-02-06 Nick Clifton <nickc@redhat.com>
-
- * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
- inside the clobber with a match_operand and duplicated operand
- number in the constraint.
- (ineqbranchsi): Delete redundant comment.
-
-2008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
-
- * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
- builtin_define ("__USE_INIT_FINI__").
- * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
- -msx multilibs.
- * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
-
-2008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR documentation/30330
- * doc/invoke.texi (C++ Dialect Options)
- (Objective-C and Objective-C++ Dialect Options, Warning Options):
- For each warning option -Wfoo that allows -Wno-foo, ensure both
- -Wfoo and -Wno-foo are listed in the option index. Fix index
- entry of -Wswitch-default, index -Wnormalized= including the
- `=', and -Wlarger-than-@var{len} including @var{len}.
-
-2008-02-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (floatunssisf2): Use
- ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
- (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
- Macroize expander using MODEF mode iterator.
-
-2008-02-05 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
-
- PR 33738
- * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
-
-2008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- PR other/35070
- * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
-
-2008-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35084
- * config/i386/i386.c (ix86_function_sseregparm): Add an arg
- to indicate if a message should be generated.
- (init_cumulative_args): Updated.
- (function_value_32): Likewise.
-
-2008-02-05 Joseph Myers <joseph@codesourcery.com>
-
- * doc/include/texinfo.tex: Update to version 2008-02-04.16.
-
-2008-02-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35083
- * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
- Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
-
-2008-02-04 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
-
- PR 33738
- * tree-vrp.c (vrp_evaluate_conditional): With
- -Wtype-limits, emit a warning when comparing against a
- constant outside the natural range of OP0's type.
-
-2008-02-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/33631
- * expr.c (count_type_elements): Give for unions instead of
- guessing.
-
-2008-02-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35043
- * gimplify.c (gimplify_init_ctor_eval): Convert array indices
- to TYPE_DOMAINs base type instead of using bitsizetype here.
-
-2008-02-03 Jason Merrill <jason@redhat.com>
-
- * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
-
-2008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR other/29972
- * doc/invoke.texi (C++ Dialect Options, Optimize Options)
- (HPPA Options, i386 and x86-64 Options, IA-64 Options)
- (RS/6000 and PowerPC Options): Fix typos and markup.
- * doc/passes.texi (Tree-SSA passes): Likewise.
-
-2008-02-02 Michael Matz <matz@suse.de>
-
- PR target/35045
- * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
- from record_last_reg_set_info.
- (record_last_reg_set_info): Take an RTX argument, iterate over all
- constituent hardregs.
- (record_last_set_info, record_opr_changes): Change calls to
- new signature or to record_last_reg_set_info_regno.
-
-2008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/extend.texi (X86 Built-in Functions): Fix grammar.
-
-2008-02-01 Hans-Peter Nilsson <hp@axis.com>
-
- PR rtl-optimization/34773
- * reg-notes.def (EQUAL): Mention significance of combination of
- REG_EQUAL and REG_RETVAL.
- * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
- insn that has a REG_RETVAL.
-
-2008-02-01 Roger Sayle <roger@eyesopen.com>
-
- PR bootstrap/33781
- * configure.ac (--enable-fixed-point): Disable unless explicitly
- requested on IRIX.
- * configure: Regenerate.
-
-2008-02-01 Richard Guenther <rguenther@suse.de>
-
- PR other/35042
- * invoke.texi (-finline-limit): Remove no longer true parts
- of the documentation. Note that there is no default value.
-
-2008-02-01 Andrew Pinski <pinskia@gmail.com>
- Mark Mitchell <mark@codesourcery.com>
- Ben Elliston <bje@au.ibm.com>
-
- PR c/29326
- * doc/extend.texi (Other Builtins): Document.
-
-2008-01-31 Tom Browder <tom.browder@gmail.com>
-
- * doc/c-tree.texi (Types): Fix grammar.
- (Expression trees): Ditto.
- * doc/passes.texi (Tree-SSA passes): Ditto.
-
- * doc/configterms.texi (Configure Terms): Fix typo.
- * doc/cpp.texi (Common Predefined Macros): Ditto.
- * doc/md.texi (Machine Constraints): Ditto.
-
- * doc/makefile.texi (Makefile): Add comma.
-
-2008-01-31 Tom Browder <tom.browder@gmail.com>
- Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/sourcebuild.texi (Front End): Remove references to CVS
- and CVSROOT/modules.
- (Texinfo Manuals): Replace reference to CVS by one to SVN.
- (Back End): Remove reference to CVS.
-
-2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR target/34900
- * config/mips/mips.c (gen_load_const_gp): New function, taking a
- comment from...
- (mips16_gp_pseudo_reg): ...here.
- * config/mips/mips.md (load_const_gp): Replace with...
- (load_const_gp_<mode>): ...this :P-based insn.
-
-2008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
- options. Minor fixes.
- (-std): Move reference to standards closer to where language
- standards are first mentioned.
-
-2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/34995
- * reload.c (alternative_allows_const_pool_ref): Take an rtx
- parameter and return a bool. If the rtx parameter is nonnull,
- check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
- (find_reloads): Update call accordingly. Pass the new operand
- if it needed no address reloads, otherwise pass null.
-
-2008-01-30 Richard Henderson <rth@redhat.com>
-
- PR c/34993
- * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
- for unbounded arrays.
-
-2008-01-30 Silvius Rus <rus@google.com>
-
- * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
-
-2008-01-30 Jan Hubicka <jh@suse.cz>
-
- PR target/34982
- * i386.c (init_cumulative_args): Use real function declaration when
- calling locally.
-
-2008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/34998
- * global.c (build_insn_chain): Treat non-subreg_lowpart
- SUBREGs of pseudos as clobbering all the words covered by the
- SUBREG, not just all the bytes.
- * ra-conflict.c (clear_reg_in_live): Likewise. Take the
- original df_ref rather than an extract parameter.
- (global_conflicts): Update call accordingly.
-
-2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
- the overflow check to make it easier to read.
- (__fixtfdi): Change the type of the ll member in union
- long_double to UDItype_x.
-
-2008-01-30 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34969
- * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
- * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
- * tree-inline.c (fold_marked_statements): Call
- cgraph_update_edges_for_call_stmt if folding a call statement.
- * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
- debug_generic_stmt calls, reset it back afterwards.
-
- PR c/35017
- * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
- static decls.
- * c-typeck.c (build_external_ref): Don't pedwarn about
- static vars in current function's scope.
-
-2008-01-29 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
-
-2008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
-
- PR c/35002
- * ipa-struct-reorg.c: Fix spelling.
- * params.def: Ditto.
-
-2008-01-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35006
- * tree-inline.h (struct copy_body_data): Add remapping_type_depth
- field.
- * tree-inline.c (remap_type): Increment remapping_type_depth
- around remapping types.
- (copy_body_r): Only add referenced variables if they are referenced
- from code, not types.
-
-2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34055
- PR c++/34103
- PR c++/34219
- PR c++/34606
- PR c++/34753
- PR c++/34754
- PR c++/34755
- PR c++/34919
- PR c++/34961
- * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
- qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
-
-2008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
-
- PR target/34412
- * config/avr/avr.c (expand_prologue): Use correct QI mode frame
- pointer for tiny stack.
-
-2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
-
-2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * config/vx-common.h: Fix typo in comment.
-
-2008-01-28 Ian Lance Taylor <iant@google.com>
-
- PR c++/34862
- PR c++/33407
- * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
- coalesce pointers if they have different DECL_NO_TBAA_P values.
- * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
- between variables with different DECL_NO_TBAA_P values.
-
-2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
-
- PR 31535
- * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
- are not legitimate small data references on SPE targets.
-
-2008-01-28 David Daney <ddaney@avtrex.com>
-
- * doc/install.texi (mips-*-*): Recommend binutils 2.18.
-
-2008-01-28 David Daney <ddaney@avtrex.com>
-
- * doc/install.texi (--disable-libgcj-bc): Reword documentation.
-
-2008-01-27 Joseph Myers <joseph@codesourcery.com>
-
- * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
- m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
- *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
- *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
- hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
- i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
- i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
- vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
-
-2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * basic-block.h (condjump_equiv_p): Fix comment.
-
-2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
- print_generic_stmt_indented): Fix comment.
-
-2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * configure.ac (__stack_chk_fail): Add detecion for availability
- of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
- * configure: Regenerate.
-
-2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- PR middle-end/34688
- * final.c (output_addr_const): Handle TRUNCATE.
-
-2008-01-26 Zdenek Dvorak <ook@ucw.cz>
-
- PR target/34711
- * tree-ssa-loop-ivopts.c (comp_cost): New type.
- (zero_cost, infinite_cost): New constants.
- (struct cost_pair): Change type of cost to comp_cost.
- (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
- (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
- New functions.
- (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
- split_address_cost, ptr_difference_cost, difference_cost,
- get_computation_cost_at, get_computation_cost,
- determine_use_iv_cost_generic, determine_use_iv_cost_address,
- determine_use_iv_cost_condition, determine_use_iv_costs,
- cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
- iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
- iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
- Change type of cost to comp_cost.
- (determine_iv_cost): Increase cost of non-original ivs, instead
- of decreasing the cost of original ones.
- (get_address_cost): Indicate the complexity of the addressing mode
- in comp_cost.
- (try_add_cand_for): Prefer using ivs not specific to some object.
- * tree-flow.h (force_expr_to_var_cost): Declaration removed.
-
-2008-01-26 Peter Bergner <bergner@vnet.ibm.com>
- Janis Johnson <janis187@us.ibm.com>
-
- PR target/34814
- * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
- (TARGET_INSTANTIATE_DECLS): Likewise.
- * target.h (expand_to_rtl_hook): New target hook.
- (instantiate_decls): Likewise.
- * function.c (instantiate_decl): Make non-static. Rename to...
- (instantiate_decl_rtl): ... this.
- (instantiate_expr): Use instantiate_decl_rtl.
- (instantiate_decls_1): Likewise.
- (instantiate_decls): Likewise.
- (instantiate_virtual_regs: Call new instantiate_decls taget hook.
- * function.h (instantiate_decl_rtl): Add prototype.
- * cfgexpand.c (target.h): New include.
- (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
- * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
- (TARGET_INSTANTIATE_DECLS): Likewise.
- (TARGET_INITIALIZER): New target hooks added.
- * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
- New prototype.
- * config/rs6000/rs6000.c (tree-flow.h): New include.
- (machine_function): Add sdmode_stack_slot field.
- (rs6000_alloc_sdmode_stack_slot): New function.
- (rs6000_instantiate_decls): Likewise.
- (rs6000_secondary_memory_needed_rtx): Likewise.
- (rs6000_check_sdmode): Likewise.
- (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
- (TARGET_INSTANTIATE_DECLS): Likewise.
- (rs6000_hard_regno_mode_ok): Allow SDmode.
- (num_insns_constant): Likewise. Handle _Decimal32 constants.
- (rs6000_emit_move): Handle SDmode.
- (function_arg_advance): Likewise.
- (function_arg): Likewise.
- (rs6000_gimplify_va_arg): Likewise. Add special handling of
- SDmode var args for 32-bit compiles.
- (rs6000_secondary_reload_class): Handle SDmode.
- (rs6000_output_function_epilogue): Likewise.
- (rs6000_function_value): Simplify if statement.
- (rs6000_libcall_value): Likewise.
- * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
- (SECONDARY_MEMORY_NEEDED_RTX): Add define.
- * config/rs6000/dfp.md (movsd): New define_expand and splitter.
- (movsd_hardfloat): New define_insn.
- (movsd_softfloat): Likewise.
- (movsd_store): Likewise.
- (movsd_load): Likewise.
- (extendsddd2): Likewise.
- (extendsdtd2): Likewise.
- (truncddsd2): Likewise.
- (movdd_hardfloat64): Fixup comment.
- (UNSPEC_MOVSD_LOAD): New constant.
- (UNSPEC_MOVSD_STORE): Likewise.
-
-2008-01-26 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34965
- * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
- TRUTH_XOR_EXPR.
- (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
- (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
- (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
- and TRUTH_XOR_EXPR.
-
-2008-01-26 David Edelsohn <edelsohn@gnu.org>
-
- PR target/34794
- * config.gcc: Separate AIX 5.3 from AIX 6.1.
- * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
- __LONGDOUBLE128 too.
- * config/rs6000/aix61.h: New file.
-
-2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/34959
- * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
- popcount and parity rtxes the same mode as their operand.
- Truncate or extend the result to the return value's mode
- if necessary.
-
-2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR target/34981
- * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
- * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
- to GOT_VERSION_REGNUM.
- (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
- (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
- * config/mips/mips.c (mips_emit_call_insn): New function.
- (mips_call_tls_get_addr): Call mips_expand_call directly.
- (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
- emit_call_insn.
- (mips16_build_call_stub): Likewise. Return the call insn or null.
- (mips_expand_call): Update the call to mips16_build_call_stub
- accordingly and a remove redundant condition. Assert that MIPS16
- stubs do not use lazy binding. Use mips_emit_call_insn and return
- the call insn.
- (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
- TARGET_USE_GOT.
- (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
- (mips_avoid_hazard): Remove hazard_set handling.
- * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
- (UNSPEC_RESTORE_GP): ...this.
- (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
- (FAKE_CALL_REGNO): Rename to...
- (GOT_VERSION_REGNUM): ...this.
- (type): Add "ghost" value. Add an associated insn reservation.
- (hazard_set): Remove.
- (exception_receiver): Rename to...
- (restore_gp): ...this and update the unspec identifier accordingly.
- (exception_receiver, nonlocal_got_receiver): New expanders.
- (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
- FAKE_CALL_REGNO. Remove hazard_set attribute.
- (set_got_version, update_got_version): New patterns.
-
-2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR target/34970
- * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
-
-2008-01-25 Joseph Myers <joseph@codesourcery.com>
-
- PR other/31955
- * doc/install.texi2html: Generate gcc-vers.texi.
-
-2008-01-25 DJ Delorie <dj@redhat.com>
-
- * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
-
-2008-01-25 Joseph Myers <joseph@codesourcery.com>
-
- * config/c4x: Remove directory.
- * config.gcc (crx-*, mt-*): Mark obsolete.
- (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
- h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
- sh-*-rtemscoff*): Remove cases.
- * defaults.h (C4X_FLOAT_FORMAT): Remove.
- * real.c (encode_c4x_single, decode_c4x_single,
- encode_c4x_extended, decode_c4x_extended, c4x_single_format,
- c4x_extended_format): Remove.
- * real.h (c4x_single_format, c4x_extended_format): Remove.
- * doc/extend.texi (interrupt, naked): Remove mention of attributes
- on C4x.
- (Pragmas): Remove comment about c4x pragmas.
- * doc/install.texi (c4x): Remove target-specific instructions.
- * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
- * doc/md.texi (Machine Constraints): Remove C4x documentation.
- * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
- refer to C4x source files as examples.
- (C4X_FLOAT_FORMAT): Remove documentation.
-
-2008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.c (override_options): Reorder tests so that
- flag_pic gets enabled for -msep-data.
-
-2008-01-25 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/32244
- * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
- to its bitfield precision if required.
-
-2008-01-25 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/33880
- * tree-nested.c (walk_omp_for): New function.
- (convert_nonlocal_reference, convert_local_reference): Call
- walk_omp_for on OMP_FOR.
- (convert_call_expr): Call walk_body on OMP_FOR's
- OMP_FOR_PRE_INIT_BODY.
-
-2008-01-25 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34966
- * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
- default defs and PHI_NODEs we have to insert after the
- defining statement.
-
-2008-01-24 Nick Clifton <nickc@redhat.com>
-
- * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
- Provide a default definition.
- (LIBGCC2_UNITS_PER_WORD): Likewise.
-
- * config/stormy16/stormy16.c: Include df.h for the prototype
- for df_regs_ever_live_p.
- (xstormy16_expand_builtin_va_start): Convert the stack offset
- into a component_ref and then use POINTER_PLUS_EXPR to add it
- to the incoming_virtual_args_rtx.
- (xstormy16_gimplify_va_arg_expr): Rename to
- xstormy16_gimplify_va_arg_expr.
- Use POINTER_PLUS_EXPR when performing pointer arithmetic.
- (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
- xstormy16_gimplify_va_arg_expr.
- Fix up some formatting issues.
-
- * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
- Move to predicates.md.
- (xs_hi_general_operand): Likewise.
- (xs_hi_nonmemory_operand): Likewise.
- * config/stormy16/predicates.md:
- (xstormy16_carry_plus_operand): New predicate.
- (xs_hi_general_operand): New predicate.
- (xs_hi_nonmemory_operand): New predicate.
- * config/stormy16/stormy16-protos.h:
- (xstormy16_carry_plus_operand): Delete prototype.
- (xs_hi_general_operand): Likewise.
- (xs_hi_nonmemory_operand): Likewise.
-
- * config/storm16/stormy16.md (addhi3): Remove earlyclobber
- modifiers as they are no longer needed and they can trigger
- reload spill failures.
-
- * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
- with a match_operand in order to help reload.
-
- * config/storm16/stormy16.md (movhi_internal): Replace 'r'
- constraint with 'e' for the 8th alternative as this version of
- the mov.w instruction only accepts the lower 8 registers.
-
-2008-01-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34856
- * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
- Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
- vector elements.
-
-2008-01-25 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/33333
- * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
-
-2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
-
- * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
- New functions.
- (remove_structure): Update allocations list before removing structure.
-
-2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
-
- * ipa-struct-reorg.c (is_safe_cond_expr,
- create_new_stmts_for_cond_expr): Use integer_zerop function,
- that recognize not only zero-pointer, but zero-integer too.
-
-2008-01-25 Ben Elliston <bje@au.ibm.com>
-
- PR other/22232
- * fixproto: Escape "." in sed expression that strips leading "./".
-
-2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
-
- PR driver/34904
- * gcc.c (SWITCH_OK): Removed.
- (SWITCH_LIVE): Changed to bit.
- (SWITCH_FALSE): Likewise.
- (SWITCH_IGNORE): Likewise.
- (switchstr): Change live_cond to unsigned int.
- (process_command): Replace SWITCH_OK with 0.
- (do_self_spec): Likewise.
- (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
- (give_switch): Likewise.
- (used_arg): Likewise.
- (do_spec_1): Set the SWITCH_IGNORE bit.
- (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
- bits. Set the SWITCH_LIVE bit.
-
-2008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.h (MOVE_RATIO): Define new target macro.
-
-2008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR tree-optimization/34472
- * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
- parameter to a "bool *" and set *DATA to false if there is
- an unsafe access. Do not delete the structure here.
- (check_cond_exprs): Delete it here instead.
- (check_cond_exprs, exclude_cold_structs): Do not increase
- I when removing a structure.
-
-2008-01-24 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34856
- * config/i386/i386.c (ix86_expand_vector_init): Consider only
- CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
-
-2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34934
- * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
- a fixed vector for stack.
-
-2008-01-24 Ben Elliston <bje@au.ibm.com>
-
- PR c++/25701
- * doc/gcc.texi (Software development): Add a direntry for g++.
-
-2008-01-23 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
- stale and straggling -fforce-addr comments above.
-
- * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
- define.
- * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
- * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
-
-2008-01-23 Michael Matz <matz@suse.de>
-
- PR debug/34895
- * dwarf2out.c (force_type_die): Use modified_type_die instead of
- gen_type_die.
-
-2008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
- malloc result type.
-
-2008-01-23 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (avr_current_arch): New variable.
- (avr_arch_types): Add 'avr31' and 'avr51' entries.
- (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
- (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
- (avr_override_options): Init 'avr_current_arch'.
- (base_arch_s): Move from here...
- * config/avr/avr.h (base_arch_s): ... here. Add new members
- 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
- 'mega' to 'have_jmp_call'.
- (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
- "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
- macros.
- (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
- architectures.
- * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
- MULTILIB_MATCHES): Ditto.
-
-2008-01-23 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/31529
- * cgraphunit.c (cgraph_reset_node): Always mark the node
- not reachable if it is not queued already.
-
-2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
- * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
- (cputype_selected): New static variable.
- (bfin_handle_option): Set it if -mcpu is used.
- (override_option): Select default set of workarounds if no cpu type
- selected on the command line.
- (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
-
- From Michael Frysinger <michael.frysinger@analog.com>
- * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
- BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
-
- * config/bfin/elf.h (LIB_SPEC): Use proper linker script
- for bf547, bf523, bf524, and bf526.
- * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
- bf526.
- * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
- __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
- __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
- __ADSPBF547__ and __ADSPBF54x__ for bf547.
- * doc/invoke.texi (Blackfin Options): Document that
- -mcpu now accept bf547, bf523, bf524, and bf526.
-
-2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
-
- PR rtl-optimization/34628
- * combine.c (try_combine): Stop and undo after the first combination
- if an autoincrement side-effect on the first insn has effectively
- been lost.
-
-2008-01-22 David Edelsohn <edelsohn@gnu.org>
-
- PR target/34529
- * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
- Offset addresses are not valid for Altivec or paired float modes.
-
-2008-01-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34607
- * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
- if DECL_INITIAL (decl) is error_mark_node.
-
- PR c++/34914
- * c-common.c (handle_vector_size_attribute): Only allow
- integral, scalar float and fixed point types. Handle OFFSET_TYPE
- the same way as pointer, array etc. types.
- * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
-
- PR c++/34917
- * tree.c (build_type_attribute_qual_variant): Call
- build_qualified_type if attributes are equal, but quals are not.
-
-2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 32102
- * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
- * flags.h (warn_strict_aliasing): Remove.
- (warn_strict_overflow): Remove.
- * opts.c (warn_strict_aliasing): Remove.
- (warn_strict_overflow): Remove.
- * c-opts.c (c_common_handle_option): -Wall only sets
- -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
- (c_common_post_options): Give default values to -Wstrict-aliasing
- and -Wstrict-overflow if they are uninitialized.
- * common.opt (Wstrict-aliasing): Specify Var and Init.
- (Wstrict-overflow): Likewise.
-
-2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/26854
- PR rtl-optimization/34400
- PR rtl-optimization/34884
- * ddg.c (create_ddg_dep_from_intra_loop_link): Use
- DF_RD->gen.
- * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
- (df_rd_bb_info.expanded_lr_out): Deleted
- * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
- * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
- (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
- df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
- Removed code to allocate, initialize or free expanded_lr_out.
- (df_rd_bb_local_compute_process_def): Restructured to make more
- understandable.
- (df_rd_confluence_n): Removed code to no apply invalidate_by_call
- sets if the sets are being trimmed.
-
-2008-01-22 H.J. Lu <hongjiu.lu@intel.com>
-
- PR bootstrap/32287
- * configure.ac (ld_vers): Support GNU linker version xx.xx.*
- (as_vers): Likewise.
- * configure: Regenerated.
-
-2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/33092
- * tree-pass.h (pass_build_alias): New pass.
- * tree-ssa-alias.c (gate_build_alias): New.
- (pass_build_alias): New.
- * passes.c (init_optimization_passes): Add pass_build_alias after
- pass_create_structure_vars.
-
-2008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
-
- * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
- Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
- (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
- S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
- (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
- S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
- (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
- S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
- (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
- (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
- (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
- (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
- * config/s390/s390.md (FP_ALL): New mode iterator.
- (_d): New mode attribute.
- ("*signbit<mode>2>"): Changed mode of first operand.
- ("isinf<mode>2"): Changed mode of first operand.
- ("*TDC_insn"): Adaptation for DFP modes.
-
-2008-01-22 Ben Elliston <bje@au.ibm.com>
-
- * tree.c (check_qualified_type): Improve function description.
-
-2008-01-21 Jason Merrill <jason@redhat.com>
-
- PR c++/34196
- * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
- * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
- if it is set.
-
-2008-01-21 DJ Delorie <dj@redhat.com>
-
- * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
- return zero.
-
-2008-01-21 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34856
- * tree-cfg.c (verify_expr): Allow all invariant expressions
- instead of just constant class ones as reference argument.
- * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
- like any other constant.
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
-
-2008-01-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * regmove.c (fixup_match_1): Update call crossed frequencies.
-
-2008-01-21 Richard Guenther <rguenther@suse.de>
-
- PR c/34885
- * tree-inline.c (setup_one_parameter): Deal with mismatched
- types using a VIEW_CONVERT_EXPR.
-
-2008-01-21 Alon Dayan <alond@il.ibm.com>
- Olga Golovanevsky <olga@il.ibm.com>
-
- PR tree-optimization/34701
- * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
- when the structure size is not a power of 2.
-
-2008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * doc/install.texi: Add doc for --enable-checking=df.
-
-2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR rtl-optimization/34808
- * emit-rtl.c (try_split): Handle REG_RETVAL notes.
-
-2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
- input.
-
-2008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/26854
- PR rtl-optimization/34400
- * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
- DF_RD->gen.
- * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
- (df_rd_bb_info.expanded_lr_out): New.
- * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
- * loop_iv.c (iv_analysis_loop_init): Ditto.
- * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
- df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
- Added code to allocate, initialize or free expanded_lr_out.
- (df_rd_bb_local_compute_process_def): Restructured to make
- more understandable.
- (df_rd_confluence_n): Add code to do nothing with fake edges and
- code to no apply invalidate_by_call sets if the sets are being trimmed.
- (df_lr_local_finalize): Renamed to df_lr_finalize.
- (df_live_local_finalize): Renamed to df_live_finalize.
-
-2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR target/34831
- * config/mips/mips.md (div<mode>3): Use <recip_condition> when
- deciding whether to use reciprocal instructions.
-
-2008-01-19 Uros Bizjak <ubizjak@gmail.com>
-
- * dwarf2out.c (dwarf2out_switch_text_section): Do not call
- dwarf2out_note_section_used if cold_text_section is NULL.
-
-2008-01-19 Jakub Jelinek <jakub@redhat.com>
-
- PR gcov-profile/34610
- * tree-cfg.c (make_edges): Mark both outgoing edges from
- OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
- * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
- from OMP_FOR and OMP_CONTINUE outgoing edges.
-
- * tree-profile.c (tree_profiling): Return early if
- cfun->after_tree_profile != 0. Set cfun->after_tree_profile
- at the end.
- * omp-low.c (expand_omp_parallel): Copy after_tree_profile
- from cfun to child_cfun.
- * function.h (struct function): Add after_tree_profile bit.
-
-2008-01-19 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.S (_exit): Disable interrupt.
-
-2008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
- Steven Bosscher <stevenb.gcc@gmail.com>
-
- PR rtl-optimization/26854
- PR rtl-optimization/34400
- * df-problems.c (df_live_scratch): New scratch bitmap.
- (df_live_alloc): Allocate df_live_scratch when doing df_live.
- (df_live_reset): Clear the proper bitmaps.
- (df_live_bb_local_compute): Only process the artificial defs once
- since the order is not important.
- (df_live_init): Init the df_live sets only with the variables
- found live by df_lr.
- (df_live_transfer_function): Use the df_lr sets to prune the
- df_live sets as they are being computed.
- (df_live_free): Free df_live_scratch.
-
-2008-01-18 Ian Lance Taylor <iant@google.com>
-
- * common.opt: Add fmerge-debug-strings.
- * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
- flag_merge_debug_strings rather than flag_merge_constants.
- * doc/invoke.texi (Option Summary): Mention
- -fmerge-debug-strings.
- (Debugging Options): Document -fmerge-debug-strings.
-
-2008-01-18 Ian Lance Taylor <iant@google.com>
-
- PR c++/33407
- * tree.h (DECL_IS_OPERATOR_NEW): Define.
- (struct tree_function_decl): Add new field operator_new_flag.
- * tree-inline.c (expand_call_inline): When inlining a call to
- operator new, force the return value to go into a variable, and
- set DECL_NO_TBAA_P on that variable.
- * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
-
-2008-01-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR debug/34484
- * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
- DWARF2_DEBUGGING_INFO.
- (dwarf2out_note_section_used): Ditto. Add prototype.
- (have_multiple_function_sections, text_section_used,
- cold_text_section_used, *cold_text_sections): Move declarations
- before their uses.
-
-2008-01-17 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
- field and add signal_ra.
- * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
- assignments to frame state pc. Move end of stack check after
- MD_FALLBACK_FRAME_STATE_FOR.
- (uw_update_context_1): Use frame state signal_regs if set, instead
- of checking signal_frame flag.
- (uw_update_context): Use frame state signal_ra if set.
- * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
- * config/xtensa/linux-unwind.h: New file.
-
-2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * modulo-sched.c (get_sched_window): Fix comment typo.
-
-2008-01-17 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/34648
- * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
-
-2008-01-17 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
- * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
-
-2008-01-17 Seongbae Park <seongbae.park@gmail.com>
-
- PR rtl-optimization/34400
- * df-core.c (df_worklist_dataflow_overeager,
- df_worklist_dataflow_doublequeue): New functions.
- (df_worklist_dataflow): Two different worklist solvers.
- * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
- New param.
-
-2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
-
- PR testsuite/34821
- * doc/invoke.texi: Document the dependence on pthread for fopenmp
- and ftree-parallelize-loops.
-
-2008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
-
- PR rtl-optimization/34826
- * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
-
-2008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * global.c (find_reg): Mark the eh regs as used if necessary.
- * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
- * ra.h (struct allocno): no_eh_reg field added. Changed
- no_stack_reg type to bitfield.
-
-2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.c (substitute_in_expr): Add missing 'break'.
-
-2008-01-17 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34825
- * tree-ssa-math-opts.c (is_division_by): Do not recognize
- x / x as division to handle.
-
-2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
- "-pthread" is specified.
- * pa-hpux11.h (LIB_SPEC): Likewise.
-
-2008-01-16 Janis Johnson <janis187@us.ibm.com>
- Peter Bergner <bergner@vnet.ibm.com>
-
- PR rtl-optimization/33796
- * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
-
-2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR libgfortran/34699
- * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
- static links.
- * pa-hpux10.h (LINK_SPEC): Likewise.
- * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/32628
- * fold-const.c (fold_convert_const_int_from_int): Do not
- set overflow if that occured only because of a sign extension
- change when converting from/to a sizetype with the same
- precision and signedness.
-
-2008-01-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR debug/34249
- * dwarf2out.c (output_call_frame_info): Move output of FDE initial
- location address to the correct place. Update copyright year.
-
-2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
-
- * lambda-code.c (lambda_transform_legal_p): Handle the case of
- no dependences in the dependence_relations vector.
-
-2008-01-16 Jan Hubicka <jh@suse.cz>
-
- PR rtl-optimization/31396
- * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
- * cfg.c (dump_reg_info): Print it.
- * regs.h (struct reg_info_t): add freq_calls_crossed.
- (REG_FREQ_CALLS_CROSSED): New macro.
- * global.c (global_alloc): Compute freq_calls_crossed for allocno.
- (find_reg): Update call of CALLER_SAVE_PROFITABLE.
- * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
- regmove_optimize): Update call crossed frequencies.
- * local-alloc.c (struct qty): Add freq_calls_crossed.
- (alloc_qty): Copute freq_calls_crossed.
- (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
- (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
- * ra.h (struct allocno): Add freq_calls_crossed.
-
-2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
-
- * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
- libgomp when compiling with ftree-parallelize-loops.
- (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34769
- * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
- * tree.c (int_cst_value): Instead make this function more
- permissive in what it accepts as valid input. Document this
- function always sign-extends the value.
-
-2008-01-16 Jakub Jelinek <jakub@redhat.com>
- Richard Guenther <rguenther@suse.de>
-
- PR c/34668
- * gimplify.c (fold_indirect_ref_rhs): Rename to ...
- (gimple_fold_indirect_ref_rhs): ... this.
- (gimple_fold_indirect_ref): New function with foldings
- that preserve lvalueness.
- (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
- * tree-flow.h (gimple_fold_indirect_ref): Declare.
- * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
- to fold an INDIRECT_REF, fall back to the old use of
- fold_indirect_ref_1.
-
-2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-data-ref.c (subscript_dependence_tester_1): Call
- free_conflict_function.
- (compute_self_dependence): Same.
-
-2008-01-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR debug/34249
- * debug.h (dwarf2out_switch_text_section): Move declaration from ...
- * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
- function global.
- * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
- Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
- for DWARF2_UNWIND_INFO targets.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR c/34768
- * c-typeck.c (common_pointer_type): Do not merge inconsistent
- type qualifiers for function types.
-
-2008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
- loop_iterator li from previous commit.
-
-2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
-
-2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
- (parallelize_loops): Don't parallelize irreducible components.
-
-2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/24924
- * c-opts (c_common_post_options): Do not enable CPP
- flag_pedantic_errors by default.
-
-2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
-
- PR rtl-optimization/31944
- * cse.c (remove_pseudo_from_table): New function.
- (merge_equiv_classes): Use above function to remove pseudo-registers.
- (invalidate): Likewise.
-
-2008-01-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34601
- * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
- instead of TYPE_MODE to deal with calls from expand_one_error_var.
-
-2008-01-13 Uros Bizjak <ubizjak@gmail.com>
-
- * gcse.c (cprop_jump): Call validate_unshare_change instead of
- validate_change to unshare the source of the PC set.
-
-2008-01-12 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/32135
- * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
- references above array bounds. This might trigger bounds checks for
- pointers to arrays.
-
-2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
-
- * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
- new_replaceable_dependencies.
-
-2008-01-12 Doug Kwan <dougkwan@google.com>
-
- * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
- instead of OPT_Wreturn_type in warning due to ignored return type
- qualifiers.
- * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
- options included in -Wextra.
- * c.opt: New option -Wignored_qualifiers.
- * doc/invoke.texi (Warning Options, -Wextra): Add new option
- -Wignore_qualifiers.
- (-Wignored-qualifiers): Document.
- (-Wreturn-type): Remove description of functionality now handled
- by -Wignored-qualifiers.
-
-2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
-
- PR ada/33788
- * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
- NOP_EXPR if it is between integral types with the same precision.
-
-2008-01-12 Jan Hubicka <jh@suse.cz>
-
- PR other/28023
- * invoke.texi (max-inline-recursive-depth): Fix default value.
-
-2008-01-12 Zdenek Dvorak <ook@ucw.cz>
-
- * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
- correct type.
-
-2008-01-11 Bob Wilson <bob.wilson@acm.org>
-
- * config/xtensa/xtensa.c (override_options): Set flag_shlib.
-
-2008-01-11 James E. Wilson <wilson@specifix.com>
-
- PR target/26015
- * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
-
-2008-01-11 Anatoly Sokolov <aesok@post.ru>
-
- * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
- save/restore frame pointer register and don't use 'call-prologues'
- optimization in function with "OS_task" attribute.
-
-2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/31309
- * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
- when copying to memory.
-
-2008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
-
- PR rtl-optimization/30905
- * cfgcleanup.c: Include dce.h
- (crossjumps_occured): New global variable.
- (try_crossjump_bb): Exit loop after finding a fallthru edge.
- If something changed, set crossjumps_occured to true.
- (try_optimize_cfg): Clear crossjumps_occured at the beginning.
- Don't add/remove fake edges to exit here...
- (cleanup_cfg): ...but do it here, when crossjumping.
- Run a fast DCE when successful crossjumps occured in the latest
- iteration of try_optimize_cfg.
-
-2008-01-11 Richard Guenther <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
- (struct vn_unary_op_s): Likewise.
- (vn_reference_insert): Free old reference on hash collision.
-
-2008-01-10 Raksit Ashok <raksit@google.com>
-
- PR rtl-optimization/27971
- * combine.c (find_split_point): Split PLUS expressions which are
- inside a MEM rtx, and whose first operand is complex.
-
-2008-01-10 DJ Delorie <dj@redhat.com>
-
- * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
- (m32c_hard_regno_nregs): ...this, which is now a wrapper.
- (m32c_hard_regno_ok): Call the underlying function.
-
-2008-01-10 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34683
- * tree-cfg.c (tree_merge_blocks): Do not go through the
- full-blown folding and stmt updating path if we just deal
- with virtual operands.
- * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
- test for abnormal SSA_NAMEs.
-
-2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR middle-end/34641
- * reload.c (push_reload): Add assertions. All constants from
- reg_equiv_constant should have been used for replacing the respective
- pseudo earlier.
- (find_reloads_address): Invoke find_reloads_address_part for
- constant taken from the reg_equiv_constant array.
-
-2008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
-
- * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
- field (valnum) the first in the struct. Replace bools with
- unit bit fields.
-
-2008-01-10 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34651
- * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
- types and ordering for masking and converting.
-
-2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/34017
- * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
- also for PHI_NODE expressions.
-
-2008-01-09 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/34708
- * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
- based on number of case labels.
- (init_inline_once): Remove switch_cost.
- * tree-inline.h (eni_weights_d): Remove switch_cost.
-
-2008-01-09 Richard Guenther <rguenther@suse.de>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/30132
- * gimplify.c (gimplify_cond_expr): Do not create an addressable
- temporary if an rvalue is ok or an lvalue is not required.
-
-2008-01-09 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34458
- * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
- adjust return type.
-
-2008-01-09 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34679
- * tree.c (host_integerp): Check for sizetype only if the
- type is an integer type.
-
-2008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
-
- PR debug/26364
- * opts.c (decode_options): Disable inlining of functions called
- once if not in unit-at-a-time mode.
-
-2008-01-09 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
-
-2008-01-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/31863
- * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
- out early if the result will be unused.
-
-2008-01-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34709
- Revert:
-
- 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
- for TARGET_RECIP.
-
-2008-01-08 Jan Sjodin <jan.sjodin@amd.com>
-
- * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
- for vectorization tuned.
-
-2008-01-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34683
- * tree-ssa-operands.c (operand_build_cmp): Export.
- * tree-ssa-operands.h (operand_build_cmp): Declare.
- * tree-vn.c (vuses_compare): Remove.
- (sort_vuses): Use operand_build_cmp.
- (sort_vuses_heap): Likewise.
- * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
- to re-use old VEC if available. Do not sort already sorted VUSEs.
- (vdefs_to_vec): Do not sort already sorted VDEFs.
-
-2008-01-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34694
- * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
-
-2008-01-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34702
- * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
- limitations of reciprocal sequences on x86 targets.
-
-2008-01-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34683
- * tree-flow-inline.h (var_ann): Remove overzealous asserts.
-
-2008-01-07 Jakub Jelinek <jakub@redhat.com>
-
- PR target/34622
- * config/darwin.c (darwin_mergeable_string_section): Don't use
- .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
-
-2008-01-07 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34682
- * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
- negxf2. Macroize expander using X87MODEF mode iterator. Change
- predicates of op0 and op1 to register_operand.
- (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
- expander using X87MODEF mode iterator. Change predicates of
- op0 and op1 to register_operand.
- ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
- corresponding patterns and macroize using MODEF macro. Change
- predicates of op0 and op1 to register_operand and remove
- "m" constraint. Disparage "r" alternative with "!".
- ("*absneg<mode>2_i387"): Rename from corresponding patterns and
- macroize using X87MODEF macro. Change predicates of op0 and op1
- to register_operand and remove "m" constraint. Disparage "r"
- alternative with "!".
- (absneg splitter with memory operands): Remove.
- ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
- patterns and macroize using X87MODEF mode iterator.
- * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
- Change predicate of op1 to register_operand.
- * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
- for memory operands.
-
-2008-01-07 Nathan Froyd <froydnj@codesourcery.com>
-
- * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
-
-2008-01-07 Richard Guenther <rguenther@suse.de>
-
- * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
- fields.
-
-2008-01-07 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34683
- * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
- VOPs of the needed size to save memory. Use VEC_quick_push
- to save compile-time.
- (vdefs_to_vec): Likewise.
-
-2008-01-07 Sa Liu <saliu@de.ibm.com>
-
- * config/spu/spu.md (divdf3): Genetate inline code for double
- division. The implementation doesn't handle INF or NAN, therefore it
- only applies when -ffinite-math-only is given.
-
-2008-01-06 Paolo Carlini <pcarlini@suse.de>
-
- PR libstdc++/34680
- * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
- * doc/cpp.texi ([Common Predefined Macros]): Document.
-
-2008-01-06 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
- order to use commutative addition instead of subtraction.
-
-2008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Mircea Namolaru <namolaru@il.ibm.com>
- Vladimir Yanovsky <yanov@il.ibm.com>
- Revital Eres <eres@il.ibm.com>
-
- PR tree-optimization/34263
- * tree-outof-ssa.c (process_single_block_loop_latch,
- contains_tree_r): New functions.
- (analyze_edges_for_bb): Call process_single_block_loop_latch
- function to empty single-basic-block latch block if possible.
-
-2008-01-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
- for TARGET_RECIP.
- (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
-
-2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
-
-2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
-
-2008-01-05 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/34618
- * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
- flag from T.
-
-2008-01-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34673
- * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
- in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
- Update copyright year.
-
- * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
- Update copyright year.
- * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
- using NR fixup.
-
-2008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
-
- * tree-vrp.c (find_conditional_asserts): Remove redundant check that
- edge does not point to current bb before changing need_assert.
-
-2008-01-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34029
- * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
- for verifying purposes if they are is_gimple_min_invariant.
-
-2008-01-04 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/34448
- PR tree-optimization/34465
- * gimplify.c (gimplify_init_constructor): Add new parameter
- notify_temp_creation. Use it.
- (gimplify_modify_expr_rhs): Take volatiles into account when
- optimizing constructors.
- Do not optimize constructors if gimplify_init_constructor will dump to
- memory.
- * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
- * gcc.c-torture/compile/pr34448.c: New.
-
-2008-01-04 Jakub Jelinek <jakub@redhat.com>
-
- PR gcov-profile/34609
- * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
- return_slot if result is TREE_ADDRESSABLE.
-
-2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * config/mips/mips.md (sqrt_condition): Tweak comment.
- (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
-
-2008-01-03 Tom Tromey <tromey@redhat.com>
-
- PR c/34457
- * c-common.c (c_type_hash): Handle VLAs.
-
-2008-01-03 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/31081
- * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
- 0 when inlining and not inlining to first basic block.
- (remap_decl): When var is initialized to 0, don't set default_def.
- (expand_call_inline): Set entry_bb.
- * tree-inline.h (copy_body_data): Add entry_bb.
-
-2008-01-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34619
- * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
- before returning.
-
- PR tree-optimization/29484
- * tree-inline.c (inline_forbidden_p_2): New function.
- (inline_forbidden_p): Disallow inlining if some static var
- has an address of a local LABEL_DECL in its initializer.
- * doc/extend.texi (Labels as Values): Document &&foo behaviour
- vs. inlining.
-
-2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/34635
- * tree-data-ref.c (add_other_self_distances): Make sure that the
- evolution step is constant.
-
-2008-01-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34608
- * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
-
-2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
+ (ix86_expand_args_builtin): Likewise.
- * tree-sra.c (scalarize_init): Insert the generate_element_init
- statements after the generate_element_zero statements.
+2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-2008-01-02 Richard Guenther <rguenther@suse.de>
+ * pa.c (output_call): Relocate non-jump insns in the delay slot of
+ long absolute calls when generating PA 2.0 code.
- PR middle-end/34093
- PR middle-end/31976
- * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
- for very large number of operands instead of ICEing.
+2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
-2008-01-02 Arthur Norman <acn1@cam.ac.uk>
+ PR rtl-optimization/38583
+ * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
- PR target/34013
- * config/i386/i386.c (ix86_expand_prologue): Save red-zone
- while stack probing.
+ * params.def (ira-max-conflict-table-size): New.
-2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
+ * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
+
+ * ira.h (ira_conflicts_p): New external definition.
+
+ * ira-conflicts.c (build_conflict_bit_table): Do not build too big
+ table. Report this. Return result of building.
+ (ira_build_conflicts): Use ira_conflicts_p. Check result of
+ building conflict table.
- * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
- in C++0x mode.
+ * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
+ (ira_color): Use ira_conflicts_p.
+
+ * global.c: Include ira.h.
+ (pseudo_for_reload_consideration_p, build_insn_chain): Use
+ ira_conflicts_p.
-2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
+ * Makefile.in (global.o): Add ira.h.
+
+ * ira-build.c (mark_all_loops_for_removal,
+ propagate_some_info_from_allocno): New.
+ (remove_unnecessary_allocnos): Call
+ propagate_some_info_from_allocno.
+ (remove_low_level_allocnos): New.
+ (remove_unnecessary_regions): Add parameter. Call
+ mark_all_loops_for_removal and remove_low_level_allocnos. Pass
+ parameter to remove_unnecessary_regions.
+ (ira_build): Remove all regions but root if the conflict table was
+ not built. Update conflict hard regs for allocnos crossing calls.
+
+ * ira.c (ira_conflicts_p): New global.
+ (ira): Define and use ira_conflicts_p.
+
+ * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
+ count_spilled_pseudo, find_reg, alter_reg, finish_spills,
+ emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
+
+2009-01-06 Ben Elliston <bje@au.ibm.com>
- PR libmudflap/26442
- * tree-mudflap.c (mx_register_decls): Guard warning by
- !DECL_ARTIFICIAL check.
+ * gengtype-lex.l (YY_NO_INPUT): Define.
+
+2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/34911
+ * c-common.c (handle_vector_size_attribute): Also reject
+ BOOLEAN_TYPE types.
+
+2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/38492
+ * graphite.c (rename_map_elt, debug_rename_elt,
+ debug_rename_map_1, debug_rename_map, new_rename_map_elt,
+ rename_map_elt_info, eq_rename_map_elts,
+ get_new_name_from_old_name, bb_in_sese_p): Moved around.
+ (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
+ (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
+ (sese_build_livein_liveouts): New.
+ (new_sese, free_sese): New.
+ (new_scop): Call new_sese.
+ (free_scop): Call free_sese.
+ (rename_variables_from_edge, rename_phis_end_scop): Removed.
+ (register_old_new_names): Renamed register_old_and_new_names.
+ (register_scop_liveout_renames, add_loop_exit_phis,
+ insert_loop_close_phis, struct igp,
+ default_liveout_before_guard, add_guard_exit_phis,
+ insert_guard_phis, copy_renames): New.
+ (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
+ (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
+ (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
+ (scop_adjust_phis_for_liveouts): New.
+ (gloog): Call scop_adjust_phis_for_liveouts.
+
+ * graphite.h (struct sese): Documented. Added fields liveout,
+ num_ver and livein.
+ (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
+ (new_sese, free_sese, sese_build_livein_liveouts): Declared.
+ (struct scop): Added field liveout_renames.
+ (SCOP_LIVEOUT_RENAMES): New.
+
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/38510
+ * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
+ (translate_clast): Call recompute_all_dominators before
+ graphite_verify.
+ (gloog): Call recompute_all_dominators before graphite_verify.
+
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/38500
+ * graphite.c (create_sese_edges): Call fix_loop_structure after
+ splitting blocks.
+
+2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * config.gcc: Add m32r*-*-rtems*.
+ * config/m32r/rtems.h: New file.
+
+2009-01-05 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
+ (.po.pox): Likewise.
+ (po/gcc.pot): Likewise.
+
+2009-01-04 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
+ (STARTING_FRAME_OFFSET): Always set to zero.
+
+2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
+ * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
+ fixed-point types, and vectors of the same.
+
+2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/sync.md (*mb_barrier): Rename to...
+ (*memory_barrier): ...this.
+
+2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/extend.texi (Function Attributes): Move @cindex after @item
+ for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
+ and put in alphabetical order. Fix 'target' name and put in order.
+ * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
+ typos.
+
+2009-01-04 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
+ (memory_barrier): Expand as unspec instead of unspec_volatile.
+ Remove mem:BLK from insn operands. Use Pmode scratch register.
+ (*memory_barrier): Define as unspec instead of unspec_volatile.
+ Use (match_dup 0) as input operand.
+
+ * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
+ * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
+ unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
+ scratch register. Remove operand 1.
+ (*stbar): Define as unspec instead of unspec_volatile.
+ Use (match_dup 0) as input operand, remove (const_int 8).
+ (*membar): Define as unspec instead of unspec_volatile.
+ Use (match_dup 0) as input operand, remove input operand 2.
+
+ * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
+ (memory_barrier): Expand as unspec instead of unspec_volatile.
+ Remove mem:BLK from insn operands. Use Pmode scratch register.
+ (*memory_barrier): Define as unspec instead of unspec_volatile.
+ Use (match_dup 0) as input operand.
+
+ * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
+ Remove mem:BLK from insn operands. Use Pmode scratch register.
+ Set volatile flag on operand 0.
+ (*memory_barrier): New insn pattern.
+
+ * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
+ insn operands.
+ (*memory_barrier): Use (match_dup 0) as input operand.
+
+ * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
+ Remove mem:BLK from insn operands. Use Pmode scratch register.
+ Set volatile flag on operand 0.
+ (*mb_internal): New insn pattern.
+
+ * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
+
+2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/38586
+ * function.c (struct temp_slot): Move to the section of the file
+ that deals with temp slots. Remove field 'address'.
+ (temp_slot_address_table): New hash table of address -> temp slot.
+ (struct temp_slot_address_entry): New struct, items for the table.
+ (temp_slot_address_compute_hash, temp_slot_address_hash,
+ temp_slot_address_eq, insert_temp_slot_address): Support functions
+ for the new table.
+ (find_temp_slot_from_address): Rewrite to use the new hash table.
+ (remove_unused_temp_slot_addresses): Remove addresses of temp
+ slots that have been made available.
+ (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
+ worker function for remove_unused_temp_slot_addresses.
+ (assign_stack_temp_for_type): Don't clear the temp slot address list.
+ Add the temp slot address to the address -> temp slot map.
+ (update_temp_slot_address): Update via insert_temp_slot_address.
+ (free_temp_slots): Call remove_unused_temp_slot_addresses.
+ (pop_temp_slots): Likewise.
+ (init_temp_slots): Allocate the address -> temp slot map, or empty
+ the map if it is already allocated.
+ (prepare_function_start): Initialize temp slot processing.
-2008-01-01 Jakub Jelinek <jakub@redhat.com>
+2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
- * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
- sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
- sse5_perm<mode>): Fix constraints.
+ PR middle-end/38584
+ * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
+ Calculate the size of all stack vars assuming no packing of stack
+ vars will happen, replacing a quadratic algorithm with a linear one.
+
+2009-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/38707
+ * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
+ can't be used.
+
+2009-01-03 Diego Novillo <dnovillo@google.com>
+
+ * doc/contrib.texi: Update contributions.
+
+2009-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38705
+ * builtins.c (fold_builtin_memory_op): Give up if either operand
+ is volatile. Set srctype or desttype to non-qualified version
+ of the other type.
+
+ PR c/38700
+ * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
+ and FUNCTION_DECLs.
+
+2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/35805
+ * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
+ problem if fast dce is able to remove any instructions.
+ * dce.c (dce_process_block): Fix dump message.
+
+2009-01-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR 33649
+ * tree-ssa-pre.c (compute_antic): Correct loop bounds.
+
+2009-01-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38690
+ * tree-flow.h (op_code_prio, op_prio): New prototypes.
+ * tree-pretty-print.c (op_code_prio): New function.
+ (op_prio): No longer static. Use op_code_prio.
+ * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
+ Use op_prio and op_code_prio to determine if () should be
+ printed around operand(s) or not.
+
+ * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
+ dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
+ dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
+ dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
+ pp_character instead of pp_string for single letter printing.
+
+2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/extend.texi: Fix '#pragma GCC option' typo.
+
+2009-01-02 Richard Guenther <rguenther@suse.de>
+
+ * doc/install.texi (--enable-checking): Mention different
+ default for stage1.
+ (--enable-stage1-checking): Document.
+
+2009-01-01 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/30142
+ * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
+ case to be an error.
+
+2009-01-02 Ben Elliston <bje@au.ibm.com>
+
+ * config/fp-bit.h (pack_d): Constify argument.
+ * config/fp-bit.c (makenan): Constify return type. Remove casts.
+ (isnan): Constify argument.
+ (isinf): Likewise.
+ (iszero): Likewise.
+ (pack_d): Likewise.
+ (_fpadd_parts): Constify return type.
+ (_fpmul_parts): Likewise.
+ (_fpdiv_parts): Likewise.
+
+2009-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/36489
+ * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
+ warn about overwriting initializer with side-effects or
+ -Woverride-init if !IMPLICIT.
+ (output_init_element): Likewise. Pass IMPLICIT down to
+ add_pending_init.
+ (process_init_element): Add IMPLICIT argument. Pass it down
+ to output_init_element.
+ (push_init_element, pop_init_level, set_designator): Adjust
+ process_init_element callers.
+ (set_nonincremental_init, set_nonincremental_init_from_string):
+ Adjust add_pending_init callers.
+ (output_pending_init_elements): Adjust output_init_element callers.
+ * c-tree.h (process_init_element): Adjust prototype.
+ * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
+ process_init_element callers.
diff --git a/gcc/ChangeLog-2006 b/gcc/ChangeLog-2006
index 00d47c29139..d57f42548e3 100644
--- a/gcc/ChangeLog-2006
+++ b/gcc/ChangeLog-2006
@@ -22671,7 +22671,7 @@
* basic-block.h: Remove the prototype for
partition_hot_cold_basic_blocks.
-2006-01-16 Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
+2006-01-16 Rafael Ãvila de Espíndola <rafael.espindola@gmail.com>
* cppspec.c (lang_specific_spec_functions): Remove.
* gcc.c (lookup_spec_function): Use static_spec_functions directly.
diff --git a/gcc/ChangeLog-2008 b/gcc/ChangeLog-2008
new file mode 100644
index 00000000000..bbf1a83cd29
--- /dev/null
+++ b/gcc/ChangeLog-2008
@@ -0,0 +1,28961 @@
+2008-12-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending
+ memory loads and stores.
+
+2008-12-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38505
+ * tree-ssa-ccp.c (may_propagate_address_into_dereference): Return
+ false if ADDR's operand has incomplete type.
+
+ Revert:
+ 2008-12-15 Jakub Jelinek <jakub@redhat.com>
+ PR middle-end/38505
+ * tree-ssa.c (useless_type_conversion_p_1): Return
+ false if inner_type is incomplete and outer_type is complete.
+
+2008-12-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38676
+ * gimplify.c (gimple_regimplify_operands): For GIMPLE_SWITCH
+ only regimplify switch index.
+
+2008-12-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38645
+ * tree-ssa-ccp.c (fold_gimple_assign): Use the correct pointer
+ type.
+ * tree-ssa-dom.c (cprop_operand): Simplify. Do not propagate
+ volatileness changing operands.
+
+2008-12-30 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree-cfg.c (verify_eh_throw_stmt_node): Return nonzero,
+ to visit all EH statement and fix EH checking.
+
+2008-12-31 Seongbae Park <seongbae.park@gmail.com>
+
+ Revert:
+ 2008-12-29 Seongbae Park <seongbae.park@gmail.com>
+ * tree-profile.c (tree_init_ic_make_global_vars): Make static
+ variables TLS.
+
+2008-12-30 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/38661
+ * tree-switch-conversion.c (build_constructors): Test for wrapping of
+ pos case.
+
+2008-12-30 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/38584
+ * ipa-inline.c (compute_inline_parameters): When not optimizing,
+ don't compute the inline parameters, just set them to 0 instead.
+
+2008-12-30 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-optimization/38572
+ * tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges
+ and change them to VARYING.
+
+2008-12-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/38564
+ * fold-const.c (fold_comparison): Use the correct result type.
+
+2008-12-30 Dorit Nuzman <dorit@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/38529
+ * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
+ whose DEF is used in the loop-nest that is being vectorized, but
+ outside the immediately enclosing loop.
+
+2008-12-29 Seongbae Park <seongbae.park@gmail.com>
+
+ * tree-profile.c (tree_init_ic_make_global_vars): Make static
+ variables TLS.
+
+2008-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36191
+ * tree-complex.c (expand_complex_libcall): Call
+ maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
+ instead of passing true as 3rd argument to gsi_replace.
+
+2008-12-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/38652
+ * dse.c: Include target.h.
+ * Makefile.in (dse.o): Depend on $(TARGET_H).
+
+2008-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR driver/38381
+ * gcc.c (process_command): Accept also -b with configuration name
+ in the next argument.
+ * doc/invoke.texi (-b): Document that no hyphen is required if
+ configuration name is in the next argument after -b.
+
+2008-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38641
+ * gimple-pretty-print.c (dump_binary_rhs): Print
+ VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR,
+ VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR,
+ VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR
+ VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly
+ to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR.
+
+ PR middle-end/38633
+ * tree-cfg.c (replace_block_vars_by_duplicates): Only call
+ replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs.
+
+2008-12-24 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in (GTFILES): Add $(srcdir)/expr.h.
+ * expr.h: Fix the declaration of block_clear_fn.
+
+2008-12-23 Andrew Pinski <pinski@gmail.com>
+
+ PR middle-end/38590
+ * fold-const.c (fold_binary): Call fold_convert on arguments to
+ fold_build2 for negative divide optimization.
+
+2008-12-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/31150
+ * dse.c (struct store_info): Add const_rhs field.
+ (clear_rhs_from_active_local_stores): Clear also const_rhs.
+ (record_store): Try also cselib_expand_value_rtx to get a constant.
+ (find_shift_sequence, get_stored_val): Use const_rhs instead of
+ rhs if worthwhile.
+ * cselib.c (cselib_record_sets): If !cselib_record_memory and
+ there is just one set from read-only MEM, look at REG_EQUAL or
+ REG_EQUIV note.
+
+ * dse.c (struct store_info): Add redundant_reason field.
+ (record_store): When storing the same constant as has been stored by
+ an earlier store, set redundant_reason field to the earlier store's
+ insn_info_t. Don't delete cannot_delete insns.
+ (find_shift_sequence): Remove read_info argument, add read_mode
+ and require_cst arguments. Return early if require_cst and
+ constant wouldn't be returned.
+ (get_stored_val): New function.
+ (replace_read): Use it.
+ (scan_insn): Put even cannot_delete insns with exactly 1 store
+ into active_local_stores.
+ (dse_step1): Don't delete cannot_delete insns. Remove redundant
+ constant stores if contains_cselib_groups and earlier store storing
+ the same value hasn't been eliminated.
+ (dse_step6): Renamed to dse_step7. New function.
+ (dse_step7): Renamed from dse_step6.
+ (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
+ * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
+ into CONST unless really necessary. Handle SUBREG, unary,
+ ternary, bitfield and compares specially, to be able to simplify
+ operations on constants.
+ (expand_loc): Try to optimize LO_SUM.
+
+ * dse.c (get_call_args): New function.
+ (scan_insn): Don't handle BUILT_IN_BZERO. For memset, attempt
+ to get call arguments and if successful and both len and val are
+ constants, handle the call as (mem:BLK) (const_int) store.
+
+ * dse.c (struct store_info): Add is_large bool field, change
+ positions_needed into a union of a bitmask and bitmap + count.
+ (free_store_info): Free bitmap if is_large.
+ (set_usage_bits): Don't look at stores where
+ offset + width >= MAX_OFFSET.
+ (set_position_unneeded, set_all_positions_unneeded,
+ any_positions_needed_p, all_positions_needed_p): New static inline
+ functions.
+ (record_store): Handle BLKmode stores of CONST_INT, if
+ MEM_SIZE is set on the MEM. Use the new positions_needed
+ accessor inlines.
+ (replace_read): Handle reads from BLKmode CONST_INT stores.
+ (check_mem_read_rtx): Use all_positions_needed_p function.
+ (dse_step1): Free large positions_needed bitmaps and clear is_large.
+
+ * dse.c (struct store_info): Change begin and end types to
+ HOST_WIDE_INT.
+
+ * dse.c (record_store): Fix check for unused store.
+
+ * expr.c (block_clear_fn): No longer static.
+ * expr.h (block_clear_fn): Declare.
+ * dse.c (scan_insn): Memset and bzero can just read their arguments.
+
+ * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
+ argument. If ORIG_VALUE is const0_rtx and COUNT is constant,
+ set MEM_SIZE on DESTMEM.
+ (ix86_expand_setmem): Adjust callers.
+
+ PR target/38488
+ * expr.h (get_mem_align_offset): New prototype.
+ * emit-rtl.c (get_mem_align_offset): New function.
+ * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
+ correctly.
+ (expand_constant_movmem_prologue, expand_constant_setmem_prologue):
+ New functions.
+ (ix86_expand_movmem): Optimize if COUNT_EXP
+ is constant, desired_align > align and dst & (desired_align - 1)
+ is computable at compile time.
+ (ix86_expand_setmem): Likewise.
+
+ * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
+ resolved SAVE_EXPR or POINTER_PLUS_EXPR.
+
+2008-12-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.
+
+ PR target/34571
+ * config/alpha/predicates.md (symbolic_operand): Return 1 for a
+ label_ref with an offset.
+
+2008-12-21 Andrew Pinski <pinskia@gmail.com>
+
+ PR target/38300
+ * configure: Regenerate.
+
+2008-12-21 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
+ changing operand 1 to a pmode_register_operand.
+ (mips_lhx, mips_lwx): Likewise.
+ (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns.
+ * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
+ the value from the argument expression.
+
+2008-12-21 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
+ (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
+ call_value_1_rex64_ms_sysv): New patterns.
+ * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
+ (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.
+
+2008-12-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_pad_noreturn): New static function.
+ (alpha_reorg): Call alpha_pad_noreturn.
+
+2008-12-21 Denis Chertykov <denisc@overta.ru>
+
+ * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
+
+2008-12-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/37610
+ * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
+ if readelf is nowhere to be found.
+ * configure: Regenerate.
+
+2008-12-19 Andrew Haley <aph@redhat.com>
+
+ * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
+ Fix comments.
+
+2008-12-19 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/38548
+ * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
+ * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
+
+2008-12-19 Richard Earnshaw <rearnsha@arm.com>
+
+ PR bootstrap/38578
+ * arm.c (load_multiple_sequence): Initialize ORDER array.
+ (store_multiple_sequence): Likewise.
+ (output_move_double): Make reg0 unsigned.
+ (arm_output_epilogue): Make amount unsigned.
+ (arm_expand_prologue): Move declaration of dwarf before block
+ statements.
+
+2008-12-19 Steve Ellcey <sje@cup.hp.com>
+
+ * df-scan.c (df_hard_reg_init): Move declaration of i.
+
+2008-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/37739
+ * config.host: For powerpc*-*-linux* host with 32-bit GCC,
+ use rs6000/x-linux-relax snippet if ld is new enough,
+ otherwise use rs6000/x-linux-O1.
+ * config/rs6000/x-linux-relax: New file.
+ * config/x-cflags-O1: New file.
+
+2008-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
+ choice of e500 comparison instructions on flag_finite_math_only &&
+ !flag_trapping_math, not flag_unsafe_math_optimizations.
+ * config/rs6000/rs6000.md (abstf2): Condition choice of e500
+ instructions on flag_finite_math_only && !flag_trapping_math, not
+ flag_unsafe_math_optimizations.
+ (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
+ * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
+ tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
+ cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
+ tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
+ Condition choice of comparison instructions on
+ flag_finite_math_only && !flag_trapping_math, not
+ flag_unsafe_math_optimizations.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-18 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
+ (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
+ df_invalidated_by_call to invalidated_by_call_regset.
+ * df.h (df_invalidated_by_call): Remove.
+ * regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
+ New variables.
+ (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
+ (globalize_reg): Likewise.
+ * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
+ df_byte_lr_alloc): Rename df_invalidated_by_call to
+ invalidated_by_call_regset.
+ * basic-block.h (regs_invalidated_by_call_regset): Declare.
+
+2008-12-18 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
+
+2008-12-18 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
+ function ABI.
+ * i386.c (ix86_call_abi_override): Do not trigger target re-init and
+ do not try to modify call used regs.
+ (ix86_maybe_switch_abi): New function.
+ (TARGET_EXPAND_TO_RTL_HOOK): New macro.
+
+2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/37922
+ * dse.c (bb_info): Added regs_live field.
+ (look_for_hardregs): New function.
+ (replace_read): Added regs_live parameter and code to check that
+ shift sequence does not clobber live hardregs.
+ (check_mem_read_rtx): Added parameter to replace_read.
+ (dse_step1): Added regs_live bitmap and initialize it.
+ (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
+ df_analyze.
+ * df-problems.c Renamed to df_simulate_initialize_backwards.
+ (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
+ (df_simulate_artificial_refs_at_top): Renamed to
+ df_simulate_finalize_backwards.
+ (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
+ df_simulate_finalize_backwards): New functions.
+ * df.h (df_simulate_artificial_refs_at_end): Renamed to
+ df_simulate_initialize_backwards.
+ (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
+ (df_simulate_artificial_refs_at_top): Renamed to
+ df_simulate_finalize_backwards.
+ (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
+ df_simulate_finalize_backwards): New functions.
+ * ra-conflict.c (global_conflicts): Renamed
+ df_simulate_artificial_refs_at_end to
+ df_simulate_initialize_backwards.
+ * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
+ df_simulate_one_insn_backwards.
+ * ifcvt.c (dead_or_predicable): Renamed
+ df_simulate_artificial_refs_at_end to
+ df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
+ df_simulate_one_insn_backwards.
+ * recog.c (peephole2_optimize): Ditto.
+ * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
+
+2008-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38533
+ * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
+ (rewrite_expr_tree): Add moved argument, move stmts together if
+ needed. Call remove_visited_stmt_chain.
+ (linearize_expr_tree): Don't move stmts here.
+ (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
+ Adjust rewrite_expr_tree caller.
+
+ PR middle-end/38505
+ * tree-ssa.c (useless_type_conversion_p_1): Return
+ false if inner_type is incomplete and outer_type is complete.
+
+2008-12-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
+ dependences and the configure options.
+ (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
+ --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
+
+2008-12-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/38556
+ * calls.c (expand_call): Check outgoing_reg_parm_stack_space
+ only if REG_PARM_STACK_SPACE is defined.
+
+2008-12-17 Jan Hubicka <jh@suse.cz>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * calls.c (expand_call): Do not sibcall if
+ outgoing_reg_parm_stack_space does not match.
+
+2008-12-16 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
+ atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
+ devices.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+ * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2008-12-16 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ PR target/38842
+ * config/picochip/picochip.opt (mae): Squeezed the comments onto one
+ line.
+
+2008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
+ supports hidden.
+ * configure: Regenerate.
+
+2008-12-16 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/37436
+ * arm.c (arm_legitimate_index): Only accept addresses that are in
+ canonical form.
+ * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
+ * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
+ for operand1.
+ (extendqisi2): Likewise.
+ (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
+ predicate for operand1.
+
+2008-12-15 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.c (mips_output_conditional_branch): Assert that
+ openrands[1] is a CODE_LABEL.
+
+2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
+ the result of mips_prepare_builtin_target.
+
+2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
+ if TARGET_ABICALLS is true.
+
+2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.md (move_doubleword_fpr<mode>): Use
+ TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
+
+2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.c (picochip_override_options): Disable CFI
+ asm and change the signature of brev and byteSwap functions to use
+ unsigned values.
+ * config/picochip/picochip.md (commsTestPort): This is a complex
+ instruction and should not be vliwed. Don't set insn type.
+
+2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com>
+ * config/s390/s390.c (s390_swap_cmp): New function.
+ (s390_non_addr_reg_read_p): New function.
+ (s390_z10_optimize_cmp): New function.
+ (s390_reorg): Added call to s390_optimize_cmp.
+ * config/s390/s390.md (nop1): New insn.
+
+2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com>
+
+ PR bootstrap/38383
+ * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
+ for the milli.a library.
+
+2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
+ Peter Bergner <bergner@vnet.ibm.com>
+
+ PR target/24779
+ * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
+ TOC into the call pattern.
+ (call_indirect_aix64): Likewise.
+ (call_value_indirect_aix32): Likewise.
+ (call_value_indirect_aix64): Likewise.
+ (call_indirect_nonlocal_aix32_internal): New insn and split patterns
+ to split off the load of the TOC.
+ (call_indirect_nonlocal_aix32): Enable only after reload.
+ (call_indirect_nonlocal_aix64_internal): New insn and split patterns
+ to split off the load of the TOC.
+ (call_indirect_nonlocal_aix64): Enable only after reload.
+ (call_value_indirect_nonlocal_aix32_internal): New insn and split
+ patterns to split off the load of the TOC.
+ (call_value_indirect_nonlocal_aix32): Enable only after reload.
+ (call_value_indirect_nonlocal_aix64_internal): New insn and split
+ patterns to split off the load of the TOC.
+ (call_value_indirect_nonlocal_aix64): Enable only after reload.
+
+2008-12-12 Andreas Schwab <schwab@suse.de>
+
+ Revert:
+ 2008-12-12 Andreas Schwab <schwab@suse.de>
+ * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
+ a BARRIER insn.
+
+2008-12-12 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/32044
+ * tree-scalar-evolution.h (expression_expensive_p): Declare.
+ * tree-scalar-evolution.c (expression_expensive_p): New function.
+ (scev_const_prop): Avoid introducing expensive expressions.
+ * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
+
+2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/38409
+ * graphite.c (nb_reductions_in_loop): Use simple_iv.
+
+2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * config/i386/x86intrin.h: New header file to support all x86
+ intrinsics
+ * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
+
+2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/38402
+ * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
+ constraints for x86.
+
+2008-12-12 Andreas Schwab <schwab@suse.de>
+
+ * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
+ a BARRIER insn.
+
+2008-12-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
+ Use Pmode for scratch reg.
+ (*mb_internal): Use (match_dup 0) for unspec operand.
+
+2008-12-12 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
+ floor_log2 of zero. Negate widened zero.
+
+2008-12-12 Ben Elliston <bje@au.ibm.com>
+
+ * config/fp-bit.c (nan): Rename from this ...
+ (makenan): ... to this.
+
+2008-12-11 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (*branch_bit<bbv><mode>,
+ *branch_bit<bbv><mode>_inverted): Renumber operands so that the
+ label becomes operands[1].
+
+2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/38446
+ * graphite.c (register_bb_in_sese): New.
+ (bb_in_sese_p): Check if bb belongs to sese region by explicitly
+ looking at the bbs in the region.
+ * graphite.h (sese): Add region_basic_blocks pointer set to
+ structure and initialize at the time of defining new scop.
+
+2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
+ (find_params_in_bb): Do not free data refs.
+ (free_graphite_bb): Add FIXME on disabled free_data_refs.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite.c (struct ivtype_map_elt): New.
+ (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
+ new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
+ gcc_type_for_cloog_iv): New.
+ (loop_iv_stack_patch_for_consts): Use the type of the induction
+ variable from the original loop, except for the automatically
+ generated loops, i.e., in the case of a strip-mined loop, in
+ which case there is no original loop: in that case just use
+ integer_type_node.
+ (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
+ (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
+ (clast_name_to_gcc): Accept params to be NULL.
+ (clast_to_gcc_expression): Take an extra parameter for the type.
+ Convert to that type all the expressions built by this function.
+ (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
+ (graphite_translate_clast_equation): Compute the type of the
+ clast_equation before translating its LHS and RHS.
+ (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
+ (graphite_create_new_loop): Compute the type of the induction
+ variable before translating the lower and upper bounds and before
+ creating the induction variable.
+ (rename_variables_from_edge, rename_phis_end_scop): New.
+ (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
+ (sese_add_exit_phis_edge): Do not use integer_zero_node.
+ (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
+ compute_cloog_iv_types): New.
+ (gloog): Call compute_cloog_iv_types before starting the
+ translation of the clast.
+
+ * graphite.h (struct graphite_bb): New field cloog_iv_types.
+ (GBB_CLOOG_IV_TYPES): New.
+ (debug_ivtype_map): Declared.
+ (oldiv_for_loop): New.
+
+2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/38459
+ * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
+ (param_index): Assert if parameter is not know after parameter
+ detection.
+ (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
+ (find_scop_parameters): Mark, that we have finished parameter
+ detection.
+ (graphite_transform_loops): Move condition detection before parameter
+ detection.
+ * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
+
+2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR testsuite/35677
+ * emutls.c (__emutls_get_address): Make sure offset is really zero
+ before initializing the object's offset.
+
+2008-12-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38253
+ * gimplify.c (gimplify_init_constructor): Don't force constructor
+ into memory if there is just one nonzero element.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ Fix testsuite/gfortran.dg/graphite/id-4.f90.
+ * graphite.c (scan_tree_for_params): Do not compute the multiplicand
+ when not needed.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite.c (build_scops_1): Initialize open_scop.exit
+ and sinfo.last.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR middle-end/37852
+ PR middle-end/37883
+ PR middle-end/37928
+ PR middle-end/37980
+ PR middle-end/38038
+ PR middle-end/38039
+ PR middle-end/38073
+ PR middle-end/38083
+ PR middle-end/38125
+
+ * tree-phinodes.c (remove_phi_nodes): New, extracted from...
+ * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
+ ... here.
+ * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
+ * Makefile.in (graphite.o): Depend on value-prof.h.
+ (graphite.o-warn): Removed -Wno-error.
+ * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
+ to be a NULL pointer. Call update_stmt. Return the newly created
+ cannonical induction variable.
+
+ * graphite.h (debug_rename_map): Declared. Fix some comments.
+
+ * graphite.c: Reimplement the code generation from graphite to gimple.
+ Include value-prof.h.
+ (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
+ (get_old_iv_from_ssa_name): Removed.
+ (graphite_stmt_p): New.
+ (new_graphite_bb): Test for useful statements before building a
+ graphite statement for the basic block.
+ (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
+ in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
+ (recompute_all_dominators, graphite_verify,
+ nb_reductions_in_loop, graphite_loop_normal_form): New.
+ (scop_record_loop): Call graphite_loop_normal_form.
+ (build_scop_loop_nests): Iterate over all the blocks of the
+ function instead of relying on the incomplete information from
+ SCOP_BBS. Return the success of the operation.
+ (find_params_in_bb): Use the data from GBB_DATA_REFS.
+ (add_bb_domains): Removed.
+ (build_loop_iteration_domains): Don't call add_bb_domains.
+ Add the iteration domain only to the basic blocks that have been
+ translated to graphite.
+ (build_scop_conditions_1): Add constraints only if the basic
+ block have been translated to graphite.
+ (build_scop_data_accesses): Completely disabled until data
+ dependence is correctly implemented.
+ (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
+ (remove_all_edges_1, remove_all_edges): Removed.
+ (get_new_name_from_old_name): New.
+ (graphite_rename_variables_in_stmt): Renamed.
+ rename_variables_in_stmt. Call get_new_name_from_old_name.
+ Use replace_exp and update_stmt.
+ (is_old_iv): Renamed is_iv.
+ (expand_scalar_variables_stmt): Extra parameter for renaming map.
+ Use replace_exp and update_stmt.
+ (expand_scalar_variables_expr): Same. Use the map to get the
+ new names for the renaming of induction variables and for the
+ renaming of variables after a basic block has been copied.
+ (expand_scalar_variables): Same.
+ (graphite_rename_variables): Renamed rename_variables.
+ (move_phi_nodes): Removed.
+ (get_false_edge_from_guard_bb): New.
+ (build_iv_mapping): Do not insert the induction variable of a
+ loop in the renaming iv map if the basic block does not belong
+ to that loop.
+ (register_old_new_names, graphite_copy_stmts_from_block,
+ copy_bb_and_scalar_dependences): New.
+ (translate_clast): Heavily reimplemented: copy basic blocks,
+ do not move them. Finally, in call cleanup_tree_cfg in gloog.
+ At each translation step call graphite_verify ensuring the
+ consistency of the SSA, loops and dominators information.
+ (collect_virtual_phis, find_vdef_for_var_in_bb,
+ find_vdef_for_var_1, find_vdef_for_var,
+ patch_phis_for_virtual_defs): Removed huge hack.
+ (mark_old_loops, remove_dead_loops, skip_phi_defs,
+ collect_scop_exit_phi_args, patch_scop_exit_phi_args,
+ gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
+ (remove_sese_region, ifsese, if_region_entry, if_region_exit,
+ if_region_get_condition_block, if_region_set_false_region,
+ create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
+ sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
+ sese_add_exit_phis_edge, sese_add_exit_phis_var,
+ rewrite_into_sese_closed_ssa): New.
+ (gloog): Remove dead code. Early return if code cannot be
+ generated. Call cleanup_tree_cfg once the scop has been code
+ generated.
+ (graphite_trans_scop_block, graphite_trans_loop_block): Do not
+ block loops with less than two loops.
+ (graphite_apply_transformations): Remove the call to
+ scop_remove_ignoreable_gbbs.
+ (limit_scops): When build_scop_loop_nests fails, continue on next
+ scop. Fix open_scop.entry.
+ (graphite_transform_loops): Call recompute_all_dominators: force the
+ recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
+ Call initialize_original_copy_tables and free_original_copy_tables
+ to be able to copy basic blocks during code generation.
+ When build_scop_loop_nests fails, continue on next scop.
+ (value_clast): New union.
+ (clast_to_gcc_expression): Fix type cast warning.
+
+2008-12-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36792
+ * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
+ tcc_binary.
+
+2008-12-10 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/36792
+ * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/37033
+ * dwarf2out.c (saved_do_cfi_asm): New.
+ (dwarf2out_do_frame): Take it into account.
+ (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/38271
+ * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
+ variables initialized from SRAed bit fields.
+
+2008-12-10 Martin Guy <martinwguy@yahoo.it>
+
+ PR target/37668
+ * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
+ result will be in an FPU register.
+
+2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/37170
+ PR target/38448
+ * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
+ on the associated SYMBOL_REF_DECL node, if any.
+
+2008-12-09 David Daney <ddaney@caviumnetworks.com>
+
+ * config/mips/sync.md (sync_<optab>_12): Replace
+ MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
+ (sync_old_<optab>_12): Remove third paramater to
+ MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
+ with MIPS_SYNC_OLD_OP_12_AND.
+ (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
+ with MIPS_SYNC_NEW_OP_12_AND.
+ (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
+ MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
+ (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
+ macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
+ MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
+ (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
+ MIPS_SYNC_NEW_OP_12_XOR.
+ * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
+ MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
+ MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
+ MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
+ MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
+ to implement new __sync_nand semantics.
+ (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
+ remove third parameter.
+ (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
+ MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
+ (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
+ (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
+ (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
+ (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
+ (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
+ (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
+
+2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite.c (graphite_transform_loops): Always call find_transform ()
+ in ENABLE_CHECKING. So we test these code paths, even if we do not
+ generate code.
+
+2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
+
+2008-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38454
+ * function.h (struct function): Add always_inline_functions_inlined.
+ * ipa-inline.c (cgraph_early_inlining): Set it to true.
+ * tree-optimize.c (execute_fixup_cfg): Likewise.
+ * builtins.c (avoid_folding_inline_builtin): New function.
+ (fold_call_expr): Don't optimize always_inline builtins before
+ inlining.
+ (fold_call_stmt): Likewise.
+ (fold_builtin_call_array): Likewise. Don't call
+ fold_builtin_varargs for BUILT_IN_MD builtins.
+
+ PR tree-optimization/37416
+ * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
+
+2008-12-09 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Test Directives): Fix formatting.
+
+2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
+
+ * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
+
+ * doc/invoke.texi (-fira-region): Describe new option.
+ (-fira-algorithm): Change the values.
+
+ * ira-conflicts.c (build_conflict_bit_table,
+ build_allocno_conflicts): Use ira_reg_classes_intersect_p.
+ (ira_build_conflicts): Use flag flag_ira_region instead of
+ flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
+ base registers for allocnos crossing calls.
+
+ * flags.h (enum ira_algorithm): Redefine.
+ (enum ira_region): New.
+ (flag_ira_region): New.
+
+ * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
+ instead of flag_ira_algorithm.
+
+ * toplev.c (flag_ira_algorithm): Change the initial value.
+ (flag_ira_region): New.
+
+ * ira-int.h (ira_reg_classes_intersect_p,
+ ira_reg_class_super_classes): New.
+
+ * ira-color.c (update_copy_costs): Use
+ ira_reg_classes_intersect_p. Use right class to find hard reg index.
+ (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
+ (assign_hard_reg): Ditto. Pass additional argument to
+ update_conflict_hard_regno_costs. Do not uncoalesce for priority
+ coloring.
+ (allocno_priorities, setup_allocno_priorities,
+ allocno_priority_compare_func): Move before color_allocnos.
+ (color_allocnos): Add priority coloring. Use flag flag_ira_region
+ instead of flag_ira_algorithm.
+ (move_spill_restore): Check classes of the same reg allocno from
+ different regions.
+ (update_curr_costs): Use ira_reg_classes_intersect_p.
+ (ira_reassign_conflict_allocnos): Ditto.
+
+ * opts.c (decode_options): Always set up flag_ira. Set up
+ flag_ira_algorithm. Warn CB can not be used for architecture.
+ (common_handle_option): Modify code for -fira-algorithm. Add code
+ to process -fira-region.
+
+ * ira-lives.c (update_allocno_pressure_excess_length): Process
+ superclasses too.
+ (set_allocno_live, clear_allocno_live, mark_reg_live,
+ mark_reg_dead, process_bb_node_lives): Ditto.
+
+ * ira-emit.c (ira_emit): Fix insn codes.
+
+ * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
+ instead of flag_ira_algorithm.
+ (allocno_range_compare_func): Ignore classes for priority coloring.
+ (setup_min_max_conflict_allocno_ids): Ditto.
+ (ira_flattening): Use ira_reg_classes_intersect_p.
+
+ * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
+
+ * common.opt (fira-algorithm): Modify.
+ (fira-region): New.
+
+ * ira.c (setup_class_hard_regs): Initialize.
+ (setup_cover_and_important_classes): Modify code setting class
+ related info for priority coloring.
+ (setup_class_translate): Ditto.
+ (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
+ (setup_reg_class_intersect_union): Rename to
+ setup_reg_class_relations. Add code for setting up new variables.
+ (find_reg_class_closure): Do not check targetm.ira_cover_classes.
+ (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
+
+ * ira-costs.c (common_classes): New.
+ (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
+ (find_allocno_class_costs): Ditto. Use common_classes. Translate
+ alt_class.
+ (ira_costs): Allocate/deallocate common_classes.
+
+ * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
+ (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
+ R02A_REGS.
+
+ * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
+ smallest_mode_for_size.
+
+2008-12-10 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/linux-unwind.h (get_regs): Constify casts.
+
+2008-12-09 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (estimate_bb_frequencies): Fix test if profile is present.
+
+2008-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/35468
+ * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
+ string on LHS.
+
+2008-12-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38445
+ * tree-ssa-structalias.c (emit_pointer_definition): Only visit
+ names once.
+ (emit_alias_warning): Adjust.
+
+2008-12-09 Andrew Haley <aph@redhat.com>
+
+ * fixed-value.c (do_fixed_add): Add comment.
+ * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
+ * builtins.c (fold_builtin_sqrt): Likewise.
+
+2008-12-09 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/38366
+ * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
+ case.
+ * calls.c (nitialize_argument_information): Add fntype argument
+ and use it for calls.promote_function_args.
+ (expand_call): Pass fntype to aggregate_value_p if no fndecl
+ available and pass additional fntype to
+ initialize_argument_information.
+ * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
+ to get function abi type.
+ (init_cumulative_args): Use for abi kind detection fntype, when no
+ fndecl is available.
+
+2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md (movti, movdi_64, movdi_31,
+ *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
+ *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
+ Q->Q alternative.
+ (Integer->BLKmode splitter): Removed.
+
+2008-12-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_set_memflags): Process memory
+ references in full insn sequence.
+
+2008-12-09 Jason Merrill <jason@redhat.com>
+
+ * gimplify.c (gimplify_init_constructor): Revert to using < rather
+ than <= for sparseness test.
+
+ PR c++/38410
+ * gimplify.c (gimplify_init_constructor): Don't write out a static
+ copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
+ initializers.
+
+2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/38084
+ Fix testsuite/gfortran.dg/graphite/id-3.f90.
+ * graphite.c (scopdet_basic_block_info): Fix bug that found some
+ regions more than once.
+
+2008-12-09 Ben Elliston <bje@au.ibm.com>
+
+ * emutls.c (__emutls_get_address): Prototype.
+ (__emutls_register_common): Likewise.
+
+ * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
+
+2008-12-09 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
+
+2008-12-08 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
+ (nonlocal_goto_receiver): New instruction.
+
+2008-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35443
+ * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
+
+ PR c/35442
+ * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
+ VIEW_CONVERT_EXPR the same as CASE_CONVERT.
+
+2008-12-08 Richard Henderson <rth@redhat.com>
+
+ PR 38240
+ * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
+ (SET_TYPE_MODE): New.
+ * c-decl.c (parser_xref_tag): Use it.
+ (finish_enum): Likewise.
+ * tree.c (build_pointer_type_for_mode): Likewise.
+ (build_reference_type_for_mode, build_index_type): Likewise.
+ (build_range_type, make_vector_type): Likewise.
+ (build_common_tree_nodes_2): Likewise.
+ * stor-layout.c (compute_record_mode): Likewise.
+ (finalize_type_size, layout_type, make_fract_type): Likewise.
+ (make_accum_type, initialize_sizetypes): Likewise.
+ (vector_type_mode): New.
+ * function.c (allocate_struct_function): Call
+ invoke_set_current_function_hook before querying anything else.
+
+ * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
+
+2008-12-08 Luis Machado <luisgpm@br.ibm.com>
+
+ * alias.c (find_base_term): Synch LO_SUM handling with what
+ find_base_value does.
+
+2008-12-08 Andrew Haley <aph@redhat.com>
+ Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
+
+ * gimple.h (gimple_build_try): Fix declaration.
+
+ * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
+ * fixed-value.c (do_fixed_add): Likewise.
+ * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
+
+2008-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36802
+ * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
+ on parallel and task contexts.
+
+2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
+
+2008-12-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38405
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
+ not sign-extend truth values.
+
+2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (scalarize_use): Create another temporary with the proper
+ type for signed types in the use_all && !is_output bitfield case.
+
+2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR rtl-optimization/36365
+ * df-core.c (df_worklist_dataflow_overeager): Remove.
+ (df_worklist_dataflow): Don't call it, use double-queue only.
+ * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
+
+2008-12-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38428
+ * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
+ gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
+
+2008-12-07 Ben Elliston <bje@au.ibm.com>
+
+ * gthr-single.h (__gthread_once): Adjust prototype to match all
+ other gthreads models.
+
+2008-12-06 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (override_options): Use CPU_AMDFAM10
+ instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
+
+ PR middle-end/38422
+ * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
+ operands to mult_type if it isn't narrower than op0's type.
+
+2008-12-06 Jan Hubicka <jh@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38074
+ * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
+ entry frequency.
+ * predict.c (combine_predictions_for_bb): Ignore predictor predicting
+ in both dirrection for first match heuristics.
+ (tree_bb_level_predictions): Disable noreturn heuristic when there
+ is no returning path.
+
+2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ PR rtl-optimization/38272
+ * reload1.c (choose_reload_regs): Keep reload_spill_index correct
+ in all cases.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35336
+ * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
+ (pp_c_expression): Likewise.
+
+2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR c/38416
+ * c-parser.c (struct c_token): Make pragma_kind 8 bits.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37248
+ * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
+ arguments to HOST_WIDE_INT. If type has different signedness
+ than unsignedp or different precision from bitsize, create
+ the right type for BIT_FIELD_REF and cast to type.
+ (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
+
+ Revert:
+ 2008-03-05 Richard Guenther <rguenther@suse.de>
+ PR c++/35336
+ * fold-const.c (fold_truthop): Remove code generating
+ BIT_FIELD_REFs of structure bases.
+ (fold_binary): Likewise.
+ (make_bit_field_ref): Remove.
+ (optimize_bit_field_compare): Remove.
+ (all_ones_mask_p): Remove.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-sra.c (sra_explode_bitfield_assignment): Always
+ call unsigned_type_for, if the precision is higher than
+ needed, call build_nonstandard_integer_type.
+
+ PR debug/38367
+ * function.c (assign_parm_find_stack_rtl): If promoted_mode
+ is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
+ big endian.
+
+ PR middle-end/38338
+ * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
+ only if internal_arg_pointer is a non-virtual pseudo.
+
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
+ TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
+ * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37716
+ * gimplify.c (gimplify_expr): Allow COND_EXPR if
+ gimplify_ctxp->allow_rhs_cond_expr.
+
+2008-12-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
+ VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
+
+ (alpha_emit_conditional_branch): Do not generate direct branch
+ for UNORDERED comparisons.
+
+2008-12-05 Andreas Schwab <schwab@suse.de>
+
+ * config/rs6000/linux-unwind.h (frob_update_context): Check for
+ NULL lr.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/38408
+ * fold-const.c (fold_checksum_tree): Change buf type to union
+ tree_node.
+
+2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR bootstrap/38262
+ * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
+ (BACKENDLIBS): New.
+ (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
+
+2008-12-05 Ben Elliston <bje@au.ibm.com>
+
+ * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
+ comma_loc.
+ (c_parser_initelt): Initialise des_loc and ellipsis_loc.
+
+2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
+ Gary Funck <gary@intrepid.com>
+
+ * cse.c (lookup_as_function): Delete mode frobbing code.
+ (equiv_constant): Re-implement it there for SUBREGs.
+
+2008-12-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36509
+ * Makefile.in (tree-ssa-alias-warnings.o): Remove.
+ (tree-ssa-structalias.o): Remove errors.h dependency.
+ (tree-ssa-reassoc.o): Likewise.
+ * tree-ssa-reassoc.c: Do not include errors.h.
+ * tree-ssa-alias-warnings.c: Remove.
+ * tree-ssa-alias.c (compute_may_aliases): Remove call to
+ strict_aliasing_warning_backend.
+ * tree-ssa-structalias.c (emit_pointer_definition): New function.
+ (emit_alias_warning): Likewise.
+ (set_uids_in_ptset): Warn for clear cases of type-punning.
+ * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
+ on INDIRECT_REFs.
+
+2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cse.c (equiv_constant): Fix pasto.
+
+2008-12-04 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
+ * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
+ formatting of quotes.
+
+2008-12-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38371
+ * fold-const.c (fold_checksum_tree): Allow modification of
+ TYPE_NEXT_VARIANT.
+
+2008-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38360
+ * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
+ have the right number of arguments.
+
+2008-12-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36326
+ * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
+ non-BLKmode types.
+
+2008-12-03 Tomas Bily <tbily@suse.cz>
+
+ PR middle-end/38250
+ * tree-loop-distribution.c (build_size_arg): New function.
+ (generate_memset_zero): Checks if dr_analyze_innermost succeed.
+ Reorganized generating of stmts.
+ * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
+ * tree-data-ref.c (dr_analyze_innermost): Returns bool.
+ Indicate if analysis succeed.
+ * tree-data-ref.h (dr_analyze_innermost): Returns bool.
+ * tree-predcom.c (valid_initializer_p, find_looparound_phi):
+ Uses new definition of dr_analyze_innermost.
+
+2008-12-03 Ben Elliston <bje@au.ibm.com>
+
+ * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
+
+2008-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37716
+ * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
+ all the needed operations as trees and gimplify_assign it to dst.
+
+ PR target/37610
+ * configure.ac (gcc_cv_readelf): Look for readelf.
+ (gcc_cv_as_cfi_advance_working): Check for working
+ cfi advances with code alignment factor > 1.
+ (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
+ don't work properly.
+ * configure: Regenerated.
+
+2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
+ Jakub Jelinek <jakub@redhat.com>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-optimization/38281
+ * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
+ set it to NULL_RTX afterwards.
+
+ * emit-rtl.c (set_insn_deleted): Fix formatting.
+
+2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
+ error return value.
+ * config/mips/mips.md (IMOVE32): New mode iterator.
+ (movsi): Generalize with IMOVE32.
+ (*movsi_internal): Likewise.
+ (*mov<mode>_mips16): Likewise.
+ (*lwxs): Likewise.
+
+2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
+ PC-relative addressing when compiling for uclinux PIC.
+ (__cmpdf_internal, __cmpsf_internal): Hide.
+ (__cmpdf, __cmpsf): Use PIC call sequence.
+
+2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
+ Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * config/i386/t-darwin64: Add m32 multilib support.
+
+2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
+
+2008-12-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38343
+ * builtins.c (fold_builtin_memory_op): Convert len to sizetype
+ before using it in POINTER_PLUS_EXPR.
+
+2008-12-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38359
+ * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
+ non-negative x.
+
+2008-12-02 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/37861
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
+ for INDIRECT_REFs.
+ (forward_propagate_addr_into_variable_array_index): Check that the
+ offset is not computed from a MULT_EXPR, use is_gimple_assign rather
+ than the gimple code directly.
+
+2008-12-02 Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/float_disf.c (__floatdisf): Prototype.
+ * config/spu/float_unsdisf.c (__float_undisf): Likewise.
+ * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
+ * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
+
+2008-12-02 DJ Delorie <dj@redhat.com>
+
+ * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
+ (DWARF_CIE_DATA_ALIGNMENT): Define.
+
+ * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
+ Invert add/sub for INCOMING_FRAME_SP_OFFSET.
+ (xstormy16_expand_prologue): Likewise.
+ (xstormy16_expand_builtin_va_start): Likewise.
+ (xstormy16_gimplify_va_arg_expr): Likewise.
+
+2008-12-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38343
+ * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
+ potentially returned from folding memcpy.
+ (expand_builtin_stpcpy_args): Similarly for folding strcpy.
+ (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
+
+2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR target/38054
+ * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
+ decoration of function RTL names here on Ada language.
+
+2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/38280
+ * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
+ ira_rebuild_regno_allocno_list): New functions.
+ (regno_allocnos): New static variable.
+ (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
+ Call ira_rebuild_regno_allocno_list.
+
+2008-12-01 David Daney <ddaney@caviumnetworks.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
+ LINUX_DRIVER_SELF_SPECS.
+
+2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/37514
+ * reload1.c (reload_as_needed): Invalidate reg_last_reload
+ from previous insns.
+
+2008-12-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38348
+ * c-omp.c (c_finish_omp_for): Only transform pointer
+ ++ or -- into MODIFY_EXPR if second argument is non-NULL.
+
+ PR rtl-optimization/38245
+ * tree-vrp.c (abs_extent_range): New function.
+ (extract_range_from_binary_expr): Compute range
+ for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
+ or includes zero or if vr1 is VR_RANGE and op0 has some
+ other range.
+
+2008-12-01 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37908
+ * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
+ case by calculating ~(new_reg & val) instead of (~new_reg & val).
+ * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
+ to (not:I48MODE (and:I48MODE (...))).
+ (sync_old_nand<mode>): Ditto.
+ (sync_new_nand<mode>): Ditto.
+
+2008-12-01 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16.md (CARRY_REG): New constant.
+ Replace uses of the "y" register class with direct references to
+ the CARRY_REG register.
+ * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
+ register with clobbers of the carry register.
+ (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
+ (xstormy16_split_cbranch): Remove redundant carry parameter.
+ (xstormy16_expand_arith): Likewise.
+ * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
+ (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
+ REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
+ (CARRY_REGNUM): Define.
+ * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
+ Update prototype.
+ (xstormy16_expand_arith): Likewise.
+
+2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
+
+ * config/score/score.h (IRA_COVER_CLASSES): Define.
+
+2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/38287
+ * config/sparc/sparc.md (divsi3 expander): Remove constraints.
+ (divsi3_sp32): Add new alternative with 'K' for operand #2.
+ (cmp_sdiv_cc_set): Factor common string.
+ (udivsi3_sp32): Add new alternative with 'K' for operand #2.
+ Add TARGET_V9 case.
+ (cmp_udiv_cc_set): Factor common string.
+
+2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/38283
+ * varasm.c (emutls_finish): Fix common registration.
+
+2008-11-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/29987
+ * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
+
+2008-11-29 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
+ operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
+ (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
+ * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
+ Call rs6000_emit_sync with CODE=NOT and unmodified operands.
+ Ignore sub-word case for now.
+ (sync_nand<mode>_internal): Represent NAND in RTL.
+ (sync_old_nand<mode): Same.
+ (sync_old_name<mode>_internal): Same.
+ (sync_new_nand<mode>): Same.
+ (sync_new_nand<mode>_internal): Same.
+ (sync_boolcshort_internal): Expect NAND.
+
+2008-11-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37955
+ PR tree-optimization/37742
+ * tree-vect-transform.c (vectorizable_store): Remove assert for
+ compatible aliases.
+ (vectorizable_load): Likewise.
+
+2008-11-27 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (intra_create_variable_infos): Make
+ a constraint for the static chain parameter.
+
+2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.opt (micplb): New option.
+ * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
+ * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
+ ENABLE_WA_INDIRECT_CALLS): New macros.
+ * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
+ all 54x CPUs.
+ (indirect_call_p): New function.
+ (workaround_speculation): Handle anomaly 05-00-0426 when
+ ENABLE_WA_INDIRECT_CALLS is true.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
+ __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
+ * doc/invoke.texi (Blackfin Options): Document -micplb.
+
+2008-11-26 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/mov.md ("extendhipsi2"): New.
+
+ * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
+
+ * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
+ * config/m32c/mov.md (zero_extendqihi2): Likewise.
+
+2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (clear_hazard): Rename to
+ clear_hazard_<mode>. Use mode-specific addition.
+ (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
+ or gen_clear_hazard_di depending on the size of Pmode.
+
+2008-11-26 DJ Delorie <dj@redhat.com>
+
+ * configure.ac: Test m32c-elf-gas for .loc.
+ * configure: Likewise.
+
+2008-11-26 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/28870
+ * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
+ dg-timeout-factor.
+
+2008-11-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sync.md (memory_barrier_nosse): Disable also for
+ TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
+ (memory_barrier): Do not generate memory_barrier_nosse instruction
+ for TARGET_64BIT.
+ * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
+
+2008-11-26 Fredrik Unger <fred@tree.se>
+
+ * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
+ function name from __floatundisf.
+ * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
+ DFtype.
+
+2008-11-25 Daniel Berlin <dberlin@dberlin.org>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37869
+ * tree-ssa-structalias.c (struct constraint_graph): Remove
+ pt_used and number_incoming members.
+ (build_pred_graph): Do not allocate them.
+ (condense_visit): Do not use them.
+ (label_visit): Likewise.
+ (free_var_substitution_info): Do not free them.
+
+2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
+
+ * doc/invoke.texi (ira-max-loops-num): Change semantics.
+
+ * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
+
+ * ira-color.c (allocno_spill_priority): New function.
+ (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
+ Print more info about the spilled allocno.
+ (push_allocnos_to_stack): Use allocno_spill_priority. Add more
+ checks on bad spill.
+
+ * ira-build.c (loop_node_to_be_removed_p): Remove.
+ (loop_compare_func, mark_loops_for_removal): New functions.
+ (remove_uneccesary_loop_nodes_from_loop_t): Use member
+ to_remove_p.
+ (remove_unnecessary_allocnos): Call mark_loops_for_removal.
+
+ * ira.c (ira): Don't change flag_ira_algorithm.
+
+ * params.def (ira-max-loops-num): Change the value.
+
+2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
+ Disable unsupported alternative for ColdFire,
+ add new alternative that ColdFire can handle.
+
+2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * regrename.c (merge_overlapping_regs): Add registers artificially
+ defined at the top of the basic block to the set of live ones just
+ before the first insn.
+
+2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
+ Joey Ye <joey.ye@intel.com>
+
+ PR middle-end/37843
+ * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
+ false if we need to align the outgoing stack.
+ (ix86_update_stack_boundary): Check parm_stack_boundary.
+
+2008-11-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/38151
+ PR middle-end/38236
+ * tree-ssa-alias.c (struct alias_info): Remove written_vars.
+ Remove dereferenced_ptrs_store and dereferenced_ptrs_load
+ in favor of dereferenced_ptrs.
+ (init_alias_info): Adjust.
+ (delete_alias_info): Likewise.
+ (compute_flow_insensitive_aliasing): Properly
+ include all aliased variables.
+ (update_alias_info_1): Use dereferenced_ptrs.
+ (setup_pointers_and_addressables): Likewise.
+ (get_smt_for): Honor ref-all pointers and pointers with known alias
+ set properly.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
+
+2008-11-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38254
+ * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
+ (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
+
+2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
+
+2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
+
+2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ PR target/35018
+ * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
+ (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
+
+2008-11-24 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
+ UNSPECV_CMPXCHG_[12].
+ * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
+ UNSPECV_CMPXCHG_[12].
+
+ PR target/36793
+ * config/i386/sync.md (memory_barrier): New expander.
+
+2008-11-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37135
+ * dse.c (find_shift_sequence): Optimize extraction from a constant.
+
+2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (function_arg): Revert 2008-10-26 change.
+
+2008-11-23 Helge Deller <deller@gmx.de>
+
+ * pa/linux-atomic.c (EBUSY): Define if not _LP64.
+ (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
+ succeeded and lws_ret is not equal to oldval.
+
+2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
+
+2008-11-22 Andreas Schwab <schwab@suse.de>
+
+ * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
+ -dA and -dP.
+
+2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
+ Use constant 1 as the operand.
+ * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
+ Rename gen_rdhwr to gen_rdhwr_synci_step_si or
+ gen_rdhwr_synci_step_di depending on the size of Pmode.
+
+2008-11-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38222
+ * config/i386/i386.md (SWI248): New mode iterator.
+ (SWI32): Remove mode iterator.
+ (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
+ popcounthi2 insn patterns. Macroize pattern using SWI248 mode
+ iterator. Generate popcnt mnemonic without mode extensions
+ for Darwin x86 targets.
+ (*popcount<mode>2_cmp): Ditto.
+ (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
+ extensions for Darwin x86 targets.
+
+2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
+ only if HAVE_AS_SPARC_UA_PCREL is defined.
+
+2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-costs.c (find_allocno_class_costs): Work out the maximum
+ allocno_costs value of the classees with the lowest total_costs
+ value. Use this to set ALLOCNO_COVER_CLASS_COST here...
+ (setup_allocno_cover_class_and_costs): ...rather than here.
+ Use the ALLOCNO_COVER_CLASS_COST for all registers in the
+ preferred class.
+
+2008-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37323
+ * builtins.c (expand_builtin_apply_args): Emit sequence before
+ parm_birth_insn instead of after entry_of_function's first insn.
+
+ PR middle-end/37316
+ * function.c (assign_parm_remove_parallels): Pass
+ data->passed_type as third argument to emit_group_store.
+
+ PR target/37170
+ * final.c (mark_symbol_refs_as_used): New function.
+ * output.h (mark_symbol_refs_as_used): New prototype.
+ * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
+ (s390_output_pool_entry): Use mark_symbol_refs_as_used.
+ * config/arm/arm.md (consttable_4): Likewise.
+
+ PR target/37880
+ * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
+
+2008-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38200
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
+ propagate x = &a into *x = b if conversion from b to a's type is
+ useless.
+
+2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * caller-save.c (insert_one_insn): Take into account REG_INC notes
+ for the liveness computation of the new insn.
+
+2008-11-21 DJ Delorie <dj@redhat.com>
+
+ * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
+ Moves to/from below100 space (W) can only use r0-r7.
+
+2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR other/38214
+ * doc/invoke.texi (Optimization Options): Fix typo.
+
+2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
+ Xuepeng Guo <xuepeng.guo@intel.com>
+
+ * config.gcc (extra_headers): For x86 and x86-64, remove
+ gmmintrin.h, add immintrin.h and avxintrin.h.
+
+ * config/i386/gmmintrin.h: Renamed to ...
+ * config/i386/avxintrin.h: This. Issue an error if
+ _IMMINTRIN_H_INCLUDED is undedined.
+
+ * config/i386/immintrin.h: New.
+
+2008-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/38208
+ * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
+ mode of PLUS, not mode of the eliminated register.
+
+2008-11-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
+ * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
+ (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
+ (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
+ (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
+ (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
+ (*nand<mode>3): Rename to *andnot<mode>3.
+ (*nandtf3): rename to *andnottf3.
+ * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
+ Use CODE_FOR_mmx_andnotv2si3.
+ [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
+ [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
+ [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
+ [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
+ [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
+
+2008-11-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37908
+ * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
+ case by calculating ~(new_reg & val) instead of (~new_reg & val).
+ * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
+ to (not:IMODE (and:IMODE (...))).
+ (sync_old_nand<mode>): Ditto.
+ (sync_new_nand<mode>): Ditto.
+
+2008-11-20 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/thumb2.md (thumb2_casesi_internal,
+ thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
+
+2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
+ nand to the changed 4.4 semantic.
+
+2008-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/29215
+ * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
+ (fold_builtin_memory_op): Handle even the case where just one
+ of src and dest is an address of a var decl component, using
+ TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
+ and readonly_data_expr src check.
+ * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
+ up warnings.
+
+ PR rtl-optimization/36998
+ * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
+ arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
+ (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
+ stack_adjust_offset callers.
+ (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
+ branches properly.
+ (compute_barrier_args_size): Handle insns in annulled branches
+ properly.
+
+2008-11-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38151
+ * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
+ Handle cases when integer argument crosses argument register boundary.
+
+2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR bootstrap/33100
+ * config.gcc (i[34567]86-*-solaris2*): Don't include
+ i386/t-crtstuff here.
+ Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
+ * config/i386/t-sol2: Move to libgcc/config/i386.
+
+2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ PR driver/21706
+ * tlink.c: Include "libiberty.h".
+ (initial_cwd): Change type into char *.
+ (tlink_init): Call getpwd instead of getcwd.
+
+2008-11-19 Zdenek Dvorak <ook@ucw.cz>
+
+ PR rtl-optimization/32283
+ * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
+ of the induction variable to decide whether it may wrap.
+ * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
+ initialization of the bound before the loop.
+ * simplify-rtx.c (simplify_binary_operation_1): Add two
+ simplifications regarding AND.
+ (simplify_plus_minus): Only fail if no simplification is possible.
+ * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
+
+2008-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36631
+ * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
+ checking until GIMPLE lowering.
+ * gimple-low.c (check_call_args): New function.
+ (lower_stmt) <case GIMPLE_CALL>: Call it.
+
+2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
+ with the same type as the first operand of the AND expression.
+
+2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR bootstrap/37859
+ * ira-int.h (struct ira_loop_tree_node): New member
+ entered_from_non_parent_p.
+
+ * ira-color.c (print_loop_title): Print loop bbs.
+
+ * ira-emit.c (entered_from_non_parent_p,
+ setup_entered_from_non_parent_p): New functions.
+ (not_modified_p): Rename to store_can_be_removed_p. Check there
+ is no side entries.
+ (generate_edge_moves): Use store_can_be_removed_p instead of
+ not_modified_p.
+ (ira_emit): Call setup_entered_from_non_parent_p.
+
+ * ira-build.c (copy_info_to_removed_store_destinations):
+ Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
+ ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
+ (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
+ update all accumulated attributes.
+
+2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR bootstrap/37790
+ * ira-int.h (ira_copy_allocno_live_range_list,
+ ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
+ ira_finish_allocno_live_range_list): New prototypes.
+ (ira_allocno_live_ranges_intersect_p,
+ ira_pseudo_live_ranges_intersect_p): Remove.
+
+ * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
+ ira_pseudo_live_ranges_intersect_p): Rename to
+ allocnos_have_intersected_live_ranges_p and
+ pseudos_have_intersected_live_ranges_p. Move them from here to ...
+
+ * ira-color.c: ... here
+ (coalesced_allocno_conflict_p): Use
+ allocnos_have_intersected_live_ranges_p.
+ (coalesced_allocnos_living_at_program_points,
+ coalesced_allocnos_live_at_points_p,
+ set_coalesced_allocnos_live_points): Remove.
+ (slot_coalesced_allocnos_live_ranges,
+ slot_coalesced_allocno_live_ranges_intersect_p,
+ setup_slot_coalesced_allocno_live_ranges): New.
+ (coalesce_spill_slots): Use ranges of coalesced allocnos.
+ (ira_sort_regnos_for_alter_reg): Use
+ allocnos_have_intersected_live_ranges_p.
+ (ira_reuse_stack_slot): Use
+ pseudos_have_intersected_live_ranges_p.
+
+ * global.c (pseudo_for_reload_consideration_p): Check
+ flag_ira_share_spill_slots too.
+
+ * ira-build.c (copy_allocno_live_range_list): Rename to
+ ira_copy_allocno_live_range_list. Make it external.
+ (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
+ external.
+ (ira_allocno_live_ranges_intersect_p): New.
+ (ira_finish_allocno_live_range_list): New.
+ (finish_allocno): Use it.
+ (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
+ (copy_info_to_removed_store_destinations): Ditto. Use
+ ira_copy_allocno_live_range_list.
+ (ira_flattening): Use ira_merge_allocno_live_ranges.
+
+ * ira.c (too_high_register_pressure_p): New function.
+ (ira): Switch off sharing spill slots if the pressure is too high.
+
+2008-11-19 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
+ non-sizetype offsets if their precision matches that of the pointer.
+ * expr.c (expand_expr_real_1): Always sign-extend the offset
+ operand of a POINTER_PLUS_EXPR.
+
+2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config.gcc: Unobsolete mips-sgi-irix[56]*.
+ (mips-sgi-irix[56]*): No need to use fixproto.
+
+2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
+ Paul Brook <paul@codesourcery.com>
+
+ * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
+ executable stack.
+
+2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
+
+2008-11-19 Razya Ladelsky <razya@il.ibm.com>
+
+ PR target/38156
+ * tree-parloops.c (loop_parallel_p): NULL vect_dump.
+ (separate_decls_in_region): Create shared struct even when there
+ are only reductions.
+
+2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.c (headers): Remove an unnecessary
+ header file.
+
+2008-11-19 Andrew Stubbs <ams@codesourcery.com>
+
+ PR target/36133
+ * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
+ * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
+ shift instructions.
+ * config/m68k/m68k.md: Adjust all conditional branches that use the
+ carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
+
+2008-11-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37362
+ * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
+ is a register or zero operand in the correct mode before generating
+ mtch1 insn or a register operand in the correct mode before generating
+ mfch1 insn.
+ (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
+
+2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
+ (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
+ mipsisa*-*-elf*. Handle mipsisa64r2*.
+ * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
+ * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
+ mips64r2.
+ (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
+ * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
+ mips64r2.
+ (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
+ Fix mips16 if mips64 or mips64r2 are multilib defaults.
+ * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
+ mips64r2.
+
+2008-11-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/38130
+ * config/i386/i386.md (allocate_stack_worker_32,
+ allocate_stack_worker_64): Don't use match_dup between input and
+ output operand.
+ (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
+ * config/i386/i386.c (ix86_expand_prologue): Likewise.
+
+2008-11-18 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
+ is forced when trying to do a symbol link for it.
+
+2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
+
+ * expmed.c (extract_bit_field_1): Also use a temporary and
+ convert_extracted_bit_field when the conversion from ext_mode to
+ the target mode requires explicit truncation.
+
+2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
+ Tweak formatting.
+ * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
+ registers when not optimizing.
+
+2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.md (*mul_acc_si): Remove middle alternative
+ and its associated define_split. Expose the all-d alternative
+ to the register allocator, but mark it with "?". Mark the first
+ alternative with "*?*?".
+ (*mul_sub_si): Likewise.
+ (*mul_acc_si_r3900): New pattern.
+
+2008-11-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38140
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
+ propagating x = &a into *x = b, add a cast if not useless
+ type conversion or don't optimize if another stmt would be
+ needed.
+
+2008-11-17 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37908
+ * optabs.c (expand_sync_operation): Properly handle NAND case
+ by calculating ~(t1 & val) instead of (~t1 & val).
+ * builtins.c (expand_builtin_sync_operation): Warn for changed
+ semantics in NAND builtins.
+ * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
+
+ * doc/invoke.texi (Warning options): Add Wsync-nand.
+ * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
+ __sync_fetch_and_nand builtin operation in the example. Add a note
+ about changed semantics in GCC 4.4.
+ [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
+ operation in the example. Add a note about changed semantics in
+ GCC 4.4.
+
+2008-11-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_function_body_availability): Fix test of externally
+ visible.
+
+2008-11-16 Joshua Kinard <kumba@gentoo.org>
+
+ * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
+ to -mips4.
+
+2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/38052
+ * config/mips/mips.c (mips_cfun_call_saved_reg_p)
+ (mips_cfun_might_clobber_call_saved_reg_p): New functions,
+ split out from...
+ (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
+ rather than call_really_used_regs when handling $gp.
+
+2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/38052
+ * config/mips/mips.c (machine_function): Update the comment
+ above global_pointer.
+ (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
+ that a function doesn't need a global pointer.
+ (mips_current_loadgp_style): Update accordingly.
+ (mips_restore_gp): Likewise.
+ (mips_output_cplocal): Likewise.
+ (mips_expand_prologue): Likewise.
+
+2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
+ parameter. Use DImode for computing the number of registers.
+ (function_arg): Adjust for above change.
+ (function_value): Likewise.
+
+2008-11-15 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/37950
+ * tree-flow-inline.h (memory_partition): Return NULL when aliases were
+ not computed for the current function.
+
+2008-11-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/38123
+ * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
+ gpr and other COMPONENT_REFs.
+
+2008-11-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38051
+ * tree-ssa-alias.c (update_alias_info_1): Manually find
+ written variables.
+
+2008-11-15 Joshua Kinard <kumba@gentoo.org>
+
+ * doc/invoke.texi (-mfix-r10000): Document.
+ * config/mips/mips.opt (mfix-r10000): New option.
+ * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
+ (MIPS_COMPARE_AND_SWAP_12): Likewise.
+ (MIPS_SYNC_OP): Likewise.
+ (MIPS_SYNC_OP_12): Likewise.
+ (MIPS_SYNC_OLD_OP_12): Likewise.
+ (MIPS_SYNC_NEW_OP_12): Likewise.
+ (MIPS_SYNC_OLD_OP): Likewise.
+ (MIPS_SYNC_NAND): Likewise.
+ (MIPS_SYNC_OLD_NAND): Likewise.
+ (MIPS_SYNC_EXCHANGE): Likewise.
+ (MIPS_SYNC_EXCHANGE_12): Likewise.
+ (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
+ delay slots.
+ (MIPS_SYNC_NEW_NAND): Likewise.
+ * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
+ (mips_init_print_operand_punct): Treat '~' as a punctuation character.
+ (mips_output_sync_loop): New function.
+ (mips_override_options): Make -march=r10000 imply -mfix-r10000.
+ Make -mfix-r10000 require branch-likely instructions.
+ * config/mips/sync.md (sync_compare_and_swap<mode>): Use
+ mips_output_sync_loop.
+ (compare_and_swap_12): Likewise.
+ (sync_add<mode>): Likewise.
+ (sync_<optab>_12): Likewise.
+ (sync_old_<optab>_12): Likewise.
+ (sync_new_<optab>_12): Likewise.
+ (sync_nand_12): Likewise.
+ (sync_old_nand_12): Likewise.
+ (sync_new_nand_12): Likewise.
+ (sync_sub<mode>): Likewise.
+ (sync_old_add<mode>): Likewise.
+ (sync_old_sub<mode>): Likewise.
+ (sync_new_add<mode>): Likewise.
+ (sync_new_sub<mode>): Likewise.
+ (sync_<optab><mode>): Likewise.
+ (sync_old_<optab><mode>): Likewise.
+ (sync_new_<optab><mode>): Likewise.
+ (sync_nand<mode>): Likewise.
+ (sync_old_nand<mode>): Likewise.
+ (sync_new_nand<mode>): Likewise.
+ (sync_lock_test_and_set<mode>): Likewise.
+ (test_and_set_12): Likewise.
+
+2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c (cc1_options): Fix comment.
+
+2008-11-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37561
+ * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
+ argtype instead of result_type.
+
+2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
+
+ * ira-int.h (struct ira_loop_tree_node): Improve comments for
+ subloop_next/next and subloops/childen fields.
+
+2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
+ (STANDARD_INCLUDE_DIR): Redefine to "/include".
+ (LOCAL_INCLUDE_DIR): Undefine.
+ * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
+
+2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/37397
+ * ira-int.h (struct ira_allocno): New member bad_spill_p.
+ (ALLOCNO_BAD_SPILL_P): New macro.
+
+ * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
+
+ * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
+ (create_cap_allocno, propagate_allocno_info,
+ remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
+ (update_bad_spill_attribute): New function.
+ (ira_build): Call it.
+
+ * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
+
+2008-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38104
+ * gimplify.c (gimple_regimplify_operands): Add referenced vars
+ before calling mark_symbols_for_renaming, not after it.
+
+2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
+ (OVERRIDE_OPTIONS): Likewise.
+
+2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
+ Andrew Stubbs <ams@codesourcery.com>
+ Gunnar Von Boehn <gunnar@genesi-usa.com>
+
+ PR target/36134
+ * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
+ the shorter LEA insn over ADD.L where possible.
+
+2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
+
+ * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
+ systems, which are assumend to always provide SSP-support in glibc.
+ Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
+ case.
+ * configure: Regenerate.
+
+2008-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36125
+ * function.c (gimplify_parameters): For callee copies parameters,
+ move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
+
+2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
+
+ PR target/28102
+ * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
+ x86 parts into the `i[34567]86-*-linux*' and parts that are
+ independent of the processor architecture into the `*-*-linux*' cases.
+ (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
+ * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
+ (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
+ [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
+ * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
+ (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
+ (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
+
+2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
+
+ * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
+ * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
+ (ls2_idiv): Likewise idiv3.
+ (ls2_prefetch): New reservation.
+ * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
+ * config/mips/mips.md (type): Add imul3nc and idiv3.
+ (length): Handle idiv3.
+ (any_mod): New code_iterator.
+ (u): Handle MOD and UMOD.
+ (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
+ (prefetch): Handle TARGET_LOONGSON_2EF.
+
+2008-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/27017
+ * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
+ (prune_unused_types_walk): Call it for non-perennial local classes.
+ Set die_mark to 2 if recursing on children. If die_mark is 1 on
+ entry, just set it to 2 and recurse on children, don't walk attributes
+ again.
+
+2008-11-13 Martin Michlmayr <tbm@cyrius.com>
+
+ * c-common.c (warn_about_parentheses): Add missing whitespace
+ in warning.
+
+2008-11-13 Paul Brook <paul@codesourcery.com>
+
+ * doc/invoke.texi: Document --fix-cortex-m3.
+ * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
+ Cortex-M3 cpu is selected.
+ (output_move_double): Avoid overlapping base register and first
+ destination register when fix_cm3_ldrd.
+ * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
+
+2008-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/38100
+ * gimple.h (gimple_range_check_failed): Remove prototype.
+ * gimple.c (gimple_check_failed): Don't check GCC_VERSION
+ in guarding #if.
+ (gimple_range_check_failed): Removed.
+
+2008-11-13 Andrew Haley <aph@redhat.com>
+
+ PR bootstrap/38088
+ * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
+ __LONG_LONG_MAX__.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36478
+ Revert:
+ 2007-05-07 Mike Stump <mrs@apple.com>
+ * doc/invoke.texi (Warning Options): Document that -Wempty-body
+ also checks for and while statements in C++.
+
+2008-11-12 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/27574
+ * cgraph.h: New abstract_and_needed member to struct cgraph_node.
+ * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
+ - which clones are reachable - as "abstract and needed".
+ * cgraph.c (cgraph_release_function_body): If a node is
+ "abstract and needed", do not release its DECL_INITIAL() content
+ that will be needed to emit debug info.
+
+2008-11-12 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/27880
+ * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
+ to set HAVE_GETIPINFO.
+ * aclocal.m4: Include ../config/unwind_ipinfo.m4.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR bootstrap/38010
+ * gcc/config.gcc: Use darwin9.h on darwin10 as well.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ Revert:
+ 2008-10-21 Jakub Jelinek <jakub@redhat.com>
+ * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
+
+2008-11-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/38007
+ * c-common.c (c_common_signed_or_unsigned_type): Remove C++
+ special casing.
+
+2008-11-12 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
+ atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
+ atmega32u6 devices.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+ * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
+ packed-stack special handling.
+ (FRAME_ADDR_RTX): Add definition.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35366
+ * fold-const.c (native_encode_string): New function.
+ (native_encode_expr): Use it for STRING_CST.
+
+2008-11-12 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
+ insns if the intermediate value will be used later.
+
+2008-11-12 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.c (print_operand): Mask off extra extension
+ bits when writing out the representation of real values.
+
+2008-11-12 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/38079
+ * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
+ with vect_dump.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35334
+ * c-pretty-print.c (pp_c_complex_expr): New function.
+ (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
+
+ PR target/35366
+ * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
+ than INNER and INNER is a constant, forcibly align INNER as much
+ as needed.
+
+2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
+
+2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/37363
+ * simplify-rtx.c (simplify_plus_minus): Don't create
+ (const (minus ...)) expresisons.
+
+2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
+ handling.
+
+2008-11-10 Catherine Moore <clm@codesourcery.com>
+
+ * config.gcc (mips64vrel-*-elf*): Include the tm_file
+ prior to vr.h.
+ * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
+ (BASE_DRIVER_SELF_SPECS): Remove.
+ (DRIVER_SELF_SPECS): New definition.
+ * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
+ BASE_DRIVER_SELF_SPECS.
+ * config/mips/sde.h: Likewise.
+ * config/mips/iris6.h: Likewise.
+ * config/mips/vr.h: Likewise.
+ * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
+
+2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimizations/37948
+ * ira-int.h (struct ira_allocno_copy): New member constraint_p.
+ (ira_create_copy, ira_add_allocno_copy): New parameter.
+
+ * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
+ to ira_add_allocno_copy.
+ (process_reg_shuffles, add_insn_allocno_copies): Pass a new
+ parameter to process_regs_for_copy.
+ (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
+ Fix typo in passing second allocno to ira_add_allocno_copy.
+
+ * ira-color.c (update_conflict_hard_regno_costs): Use head of
+ coalesced allocnos list.
+ (assign_hard_reg): Ditto. Check that assigned allocnos are not in
+ the graph.
+ (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
+ (add_ira_allocno_to_ordered_bucket): Rename to
+ add_allocno_to_ordered_bucket.
+ (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
+ head of coalesced allocnos list.
+ (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
+ Check that it is aready calculated.
+ (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
+ (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
+ list.
+ (coalesce_allocnos): Do extended coalescing too.
+
+ * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
+ parameter to ira_add_allocno_copy.
+
+ * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
+ parameter.
+ (print_copy): Print copy origination too.
+
+ * ira-costs.c (scan_one_insn): Use alloc_pref for load from
+ equivalent memory.
+
+2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/37514
+ * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
+ flag_ira_share_spill_slots to 2 if it's already non-zero.
+ (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
+ flag_ira_share_spill_slots is 2.
+
+2008-11-10 Kevin Buettner <kevinb@redhat.com>
+
+ * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
+ (prologue_enter_32): Set FB to SP - 4.
+
+2008-11-10 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
+ constraint for single-bit-clear in lower byte of HI constant, vs
+ Imb which just ignores the upper byte.
+ * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
+ * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
+ (iorhi3_16): Check for single bit set, not single bit clear.
+
+2008-11-10 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
+
+ * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
+
+2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
+ values living in memory and use more precise alignment information.
+
+2008-11-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35314
+ * tree-mudflap.c (mf_build_check_statement_for): Split then_block
+ after __mf_check call if the call must end a bb.
+
+2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
+
+ PR middle-end/37807
+ PR middle-end/37809
+ * combine.c (force_to_mode): Do not process vector types.
+
+ * rtlanal.c (nonzero_bits1): Do not process vector types.
+ (num_sign_bit_copies1): Likewise.
+
+2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
+
+ * config/i386/gnu.h: Add copyright and licensing header.
+ * config/gnu.h: Likewise.
+
+2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * fwprop.c (fwprop_done): Call df_remove_problem.
+
+2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/37379
+ * tree-scalar-evolution.c (instantiate_scev_1): Return
+ chrec_dont_know for VL_EXP_CLASS_P.
+
+2008-11-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * reg-stack.c (reg_to_stack): Add missing braces in memset
+ size calculation.
+
+2008-11-06 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/bpabi.h (PROFILE_HOOK): New undef.
+ (NO_PROFILE_COUNTERS): New define.
+
+2008-11-06 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/26397
+ * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
+
+2008-11-06 Kazu Hirata <kazu@codesourcery.com>
+
+ PR target/35574
+ * config/sparc/constraints.md (D): New.
+ * config/sparc/predicates.md (const_double_or_vector_operand): New.
+ * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
+ 'D' constraint.
+ * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
+ Use the 'D' constraint in addition to 'F' in some alternatives.
+ (DF splitter): Generalize for V64mode.
+ * doc/md.texi (SPARC): Document the 'D' constraint.
+
+2008-11-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
+
+2008-11-06 Ben Elliston <bje@au.ibm.com>
+
+ * gcc.c: Remove ancient comment about a bug in Sun cc.
+
+2008-11-05 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
+
+2008-11-06 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
+
+2008-11-06 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
+ description.
+
+2008-11-05 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/38016
+ * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
+ just MEM_P.
+
+2008-11-05 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/37861
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
+ pointer arithmetics into array_ref if the array is accessed
+ through an indirect_ref.
+
+2008-11-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37742
+ * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
+ qualified pointer conversion before stripping qualifiers.
+ * gimplify.c (create_tmp_from_val): Use correctly qualified type.
+ * tree-flow.h (may_propagate_address_into_dereference): Declare.
+ * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
+ function.
+ (ccp_fold): Use it.
+ * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
+ properly canonicalize binary ops.
+ (forward_propagate_addr_expr_1): Use
+ may_propagate_address_into_dereference.
+
+2008-11-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37286
+ * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
+ Initialize uninitialized input registers with a NaN.
+
+2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/37833
+
+ * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
+
+2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/37943
+
+ * graphite.c (scopdet_basic_block_info): Fix loops with multiple
+ exits and conditions.
+ * testsuite/gcc.dg/graphite/pr37943.c: New.
+
+2008-11-04 Jakub Jelinek <jakub@redhat.com>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/35430
+ * c-common.c (warn_for_sign_compare): For complex result_type
+ use component's type.
+
+2008-11-04 Jakub Jelinek <jakuB@redhat.com>
+
+ * print-tree.c (print_node): Use code instead of TREE_CODE (node).
+
+ * print-tree.c (print_node): Don't print DECL_INITIAL
+ for PARM_DECL.
+
+ PR c/37106
+ * c-common.c (parse_optimize_options): Save and restore
+ flag_strict_aliasing around decode_options call.
+
+2008-11-04 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/driver-i386.c (enum vendor_signatures): New enum.
+ (host_detect_local_cpu): Use it instead of casted strings to
+ compare vendor signatures.
+
+2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR target/37989
+ * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
+ or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
+
+2008-11-03 Catherine Moore <clm@codesourcery.com>
+
+ * config/mips.c (mips_conditional_register_usage): Handle the
+ DSP control register.
+ * doc/extend.texi: Document the DSP control register.
+
+2008-11-03 Steve Ellcey <sje@cup.hp.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * omp-low.c (expand_omp_for_generic): If iter_type has different
+ precision than type and type is a pointer type, cast n1 and n2
+ first to an integer type with the same precision as pointers
+ and only afterwards to iter_type.
+
+2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
+ (UNSPEC_GOTSYM_OFF): New unspec.
+ (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
+ (pic_add_dot_plus_eight): Likewise.
+ (tls_load_dot_plus_eight): Likewise. Update peephole2.
+ * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
+ UNSPEC_PIC_BASE operands.
+ * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
+ (arm_output_addr_const_extra): Handle it.
+
+2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
+ integer class to full integer class if the offset is not word-aligned.
+
+2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/37782
+ * loop-doloop.c (doloop_modify): Add from_mode argument that says what
+ mode count is in.
+ (doloop_optimize): Update call to doloop_modify.
+
+2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (bitfield_overlaps_p): Fix oversight.
+
+2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR other/37463
+ * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
+ gcc_cv_as_cfi_directive.
+ (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
+ merging read-only and read-write sections or assembler emits
+ read-write .eh_frame sections.
+ * configure: Regenerate.
+
+2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
+
+ Revert:
+ 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
+ problem.
+ (rs6000_emit_prologue): Invert logic.
+ * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
+ (reg:P 11) instead of match_operand.
+ (*save_fpregs_<mode>): Likewise.
+ (*restore_gpregs_<mode>): Likewise.
+ (*return_and_restore_gpregs_<mode>): Likewise.
+ (*return_and_restore_fpregs_<mode>): Likewise.
+ * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
+ (reg:P 11) insted of match_operand.
+ (*restore_gpregs_spe): Likewise.
+ (*return_and_restore_gpregs_spe): Likewise.
+
+2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/37684
+ * gcc.dg/graphite/pr37684.c: New.
+ * graphite.c (exclude_component_ref): New.
+ (is_simple_operand): Call exclude_component_ref.
+
+2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36908
+ * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
+ * tree-loop-distribution.c (number_of_rw_in_rdg): New.
+ (number_of_rw_in_partition): New.
+ (partition_contains_all_rw): New.
+ (ldist_gen): Do not distribute when one of the partitions
+ contains all the memory operations.
+
+2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
+ EDGE_IRREDUCIBLE_LOOP.
+
+2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
+ where we have one entry point in the loop which isn't the head.
+
+2008-11-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37573
+ * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
+
+2008-11-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37858
+ * passes.c (execute_one_pass): Don't look at cfun->curr_properties
+ for ipa and simple ipa passes.
+
+2008-11-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37542
+ * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
+ * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
+ (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
+ (vn_nary_op_insert_stmt): Likewise.
+ (visit_use): Likewise.
+
+2008-11-02 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
+ (*swap): Remove.
+ (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
+ rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
+ (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
+ ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
+ lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
+ peephole2's): Replace unspec with rotate.
+ * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
+
+2008-11-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37991
+ * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
+ * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
+ (set_ssa_val_to): Print if the value changed.
+ (simplify_binary_expression): Strip useless conversions.
+
+2008-11-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/37939
+ * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
+ operand.
+
+2008-11-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37976
+ * builtins.c (fold_builtin_strspn): Return a size_t.
+ (fold_builtin_strcspn): Likewise.
+
+2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
+ attribute for struct return convention.
+
+2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/crtsavres.asm: Really, really delete.
+
+2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
+ problem.
+ (rs6000_emit_prologue): Invert logic.
+ * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
+ (reg:P 11) instead of match_operand.
+ (*save_fpregs_<mode>): Likewise.
+ (*restore_gpregs_<mode>): Likewise.
+ (*return_and_restore_gpregs_<mode>): Likewise.
+ (*return_and_restore_fpregs_<mode>): Likewise.
+ * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
+ (reg:P 11) insted of match_operand.
+ (*restore_gpregs_spe): Likewise.
+ (*return_and_restore_gpregs_spe): Likewise.
+
+2008-10-28 Luis Machado <luisgpm@br.ibm.com>
+
+ * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
+ list of word switches that take args.
+
+2008-10-30 Jakub Jelinek <jakub@redhat.com>
+
+ * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
+ (s390_output_pool_entry): Call it through for_each_rtx.
+
+ PR middle-end/37730
+ * expr.c (store_constructor): For vectors, if target is a MEM, use
+ target's MEM_ALIAS_SET instead of elttype alias set.
+
+2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/37909
+ * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
+ no address.
+
+2008-10-29 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/37878
+ * config/rs6000/predicates.md (word_offset_memref_operand):
+ Restructure code and look inside auto-inc/dec addresses.
+
+2008-10-29 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/32277
+ * libgcov.c (__gcov_indirect_call_profiler): Check
+ TARGET_VTABLE_USES_DESCRIPTORS.
+
+2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
+
+ * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
+ (INITIAL_FRAME_POINTER_OFFSET): Remove.
+ * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
+ offset if eliminating soft frame pointer.
+ * config/spu/spu.md (stack_protect_set, stack_protect_test)
+ (stack_protect_test_si): Add initial machine description
+ for Stack Smashing Protector
+
+2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 11492
+ * c-common.c (min_precision): Move to...
+ * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
+ * tree.h (tree_int_cst_min_precision): Declare.
+ * c-common.h (min_precision): Delete declaration.
+ * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
+ multiplication of non-negative integer constants.
+ * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
+ tree_int_cst_min_precision.
+ (finish_enum): Likewise.
+
+2008-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ PR middle-end/36578
+ * convert.c (convert_to_real): Do not optimize conversions of
+ binary arithmetic operations between binary and decimal
+ floating-point types. Consider mode of target type in determining
+ decimal type for arithmetic. Unless
+ flag_unsafe_math_optimizations, do not optimize binary conversions
+ where this may change rounding behavior.
+ * real.c (real_can_shorten_arithmetic): New.
+ * real.h (real_can_shorten_arithmetic): Declare.
+
+2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
+ ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
+ * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
+ appropriate.
+ (must_save_p): For some workarounds, interrupts need to clobber a
+ P register.
+ (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
+ and LC1 for WA_05000257.
+ (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
+ WA_05000283 and WA_05000315.
+ * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
+ (movbi): Add alternative to set CC to 1; improve code for setting
+ CC to 0.
+ (dummy_load): New pattern.
+
+2008-10-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37870
+ * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
+ BLKmode for non-memory, convert using a wider MODE_INT mode
+ or through memory.
+
+ PR middle-end/37913
+ * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
+ that haven't been removed yet.
+
+2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (struct machine_function): New member
+ has_loopreg_clobber.
+ (bfin_expand_movmem): Set it when generating memcpy insns.
+ (n_regs_saved_by_prologue, expand_prologue_reg_save,
+ expand_epilogue_reg_restore): If we have hardware loops,
+ memcpy insns (indicated by has_loopreg_clobber) or function
+ calls, we need to save the loop registers.
+
+2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (core2_cost): Fix typos in comments.
+
+2008-10-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37924
+ * combine.c (make_compound_operation): Don't call make_extraction with
+ non-positive length.
+ (simplify_shift_const_1): Canonicalize count even if complement_p.
+
+2008-10-28 Joseph Myers <joseph@codesourcery.com>
+
+ * convert.c (strip_float_extensions): Do not remove or introduce
+ conversions between binary and decimal floating-point types.
+
+2008-10-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37931
+ * fold-const.c (distribute_bit_expr): Convert common, left and
+ right arguments to type.
+
+2008-10-28 Nick Clifton <nickc@redhat.com>
+
+ * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
+ * config/mn10300/mn10300.c (fp_regs_to_save): Test the
+ call_really_used_regs array rather than the call_used_regs array.
+ (mn10300_get_live_callee_saved_regs, expand_prologue,
+ expand_epilogue, output_tst): Likewise.
+
+2008-10-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37378
+ * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
+ (df_get_entry_block_def_set): Neither here.
+ (df_get_regular_block_artificial_uses): Add EH_USES registers.
+
+ PR tree-optimization/37879
+ * predict.c (tree_estimate_probability): Check if last_stmt is
+ non-NULL before dereferencing it.
+
+2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
+ (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
+ (ira_fast_allocation): Remove the prototype.
+
+ * ira-color.c (update_copy_costs, allocno_cost_compare_func,
+ assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
+ (color_pass): Modify the updated costs.
+ (ira_color): Rename to color. Make it static.
+ (ira_fast_allocation): Rename to fast_allocation. Make it static.
+ (ira_color): New function.
+
+ * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
+ change.
+
+ * ira-lives.c (last_call_num, allocno_saved_at_call): New
+ variables.
+ (set_allocno_live, clear_allocno_live, mark_ref_live,
+ mark_ref_dead): Invalidate corresponding element of
+ allocno_saved_at_call.
+ (process_bb_node_lives): Increment last_call_num. Setup
+ allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
+ allocno was already saved.
+ (ira_create_allocno_live_ranges): Initiate last_call_num and
+ allocno_saved_at_call.
+
+ * ira-build.c (ira_create_allocno): Initiate
+ ALLOCNO_UPDATED_COVER_CLASS_COST.
+ (create_cap_allocno, propagate_allocno_info,
+ remove_unnecessary_allocnos): Remove setting updated costs.
+ (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
+
+ * ira.c (ira): Don't call ira_fast_allocation.
+
+ * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
+ updated costs.
+
+2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37813
+ * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
+
+ * ira-int.h (ira_hard_regno_cover_class): New.
+
+ * ira-lives.c (mark_reg_live, mark_reg_dead,
+ process_bb_node_lives): Use ira_hard_regno_cover_class.
+
+ * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
+ (setup_hard_regno_cover_class): New function.
+ (ira_init): Call setup_hard_regno_cover_class.
+
+ * ira-costs.c (cost_class_nums): Add comment.
+ (find_allocno_class_costs): Initiate cost_class_nums.
+ (setup_allocno_cover_class_and_costs): Check cost_class_nums.
+
+2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37884
+ * ira-build.c (copy_live_ranges_to_removed_store_destinations):
+ Rename to copy_info_to_removed_store_destinations. Propagate
+ conflict hard regs and register stack attribute.
+
+2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/37316
+ * pa.c (function_arg_padding): Pad complex and vector types
+ upward in 64-bit runtime.
+ (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
+
+2008-10-26 Matthias Klose <doko@ubuntu.com>
+
+ * doc/install.texi: Document requirements on antlr.
+
+2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
+ first.
+
+2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/37841
+ * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
+ is defined, use it to modify the constant offset.
+
+ * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
+
+ * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
+ and short arguments to the correct location as mandated by the ABI.
+
+2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/37769
+ * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
+
+2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
+ unwind-dw2-Os-4-200.o.
+
+2008-10-24 Joseph Myers <joseph@codesourcery.com>
+
+ * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
+ (convert_for_assignment): Remove ic_argpass_nonproto cases.
+
+2008-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36038
+ * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
+ add sizetype IV with initial value zero instead of pointer type.
+
+2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/7543
+ * value-prof.c (gimple_stringop_fixed_value): Use parentheses
+ around bit operation.
+ * profile.c (is_edge_inconsistent): Likewise.
+ * fold-const.c (truth_value_p): Move from here...
+ * tree.h (truth_value_p): ... to here.
+ * c-tree.h (c_expr): Update description of original_code.
+ * c-typeck.c (parser_build_unary_op): Set original_code.
+ (parser_build_binary_op): Update call to warn_about_parentheses.
+ * c-common.c (warn_about_parentheses): Take two additional
+ arguments of the operands. Use a switch. Quote operators
+ appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
+ Add warning about !x | y and !x & y.
+ * c-common.h (warn_about_parentheses): Update declaration.
+
+2008-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
+ check_p_tool, check_p_vars, check_p_subno, check_p_comma,
+ check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
+ New variables.
+ (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
+ (check-%): For test targets listed in lang_checks_parallelized
+ if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
+ run the testing in multiple make goals, possibly parallel, and
+ afterwards run dg-extract-results.sh to merge the sum and log files.
+
+2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_canonicalize_move_class): New function.
+ (mips_move_to_gpr_cost): Likewise.
+ (mips_move_from_gpr_cost): Likewise.
+ (mips_register_move_cost): Make more fine-grained.
+
+2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite.c (graphite_apply_transformations): Check for
+ -fgraphite-identity.
+ * toplev.c (process_options): Add graphite_identity.
+ * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
+
+2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
+ mulhisihl and mulhisihh builtins.
+
+ From Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.md (composev2hi): Put operands into vector
+ with correct order.
+
+2008-10-22 Chao-ying Fu <fu@mips.com>
+
+ * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
+
+2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ From Mike Frysinger <michael.frysinger@analog.com>
+ * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
+ BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
+ * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
+ and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
+ Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
+ Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
+ for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
+ for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
+ __ADSPBF51x__ for all of them.
+ * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
+ -mcpu bf512, bf514, bf516, and bf518.
+ * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
+ bf512-none, bf514-none, bf516-none, and bf518-none.
+ * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
+ * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
+ * doc/invoke.texi (Blackfin Options): Document that
+ -mcpu now accepts bf512, bf514, bf516, and bf518.
+
+2008-10-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37882
+ * fold-const.c (build_range_type): For 1 .. signed_max
+ range call build_nonstandard_inter_type if signed_type_for
+ returned a type with bigger precision.
+
+2008-10-22 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (COMPLEX_TYPE): Constrain element type.
+ * tree.c (build_complex_type): Assert that.
+ * tree-ssa-structalias.c (could_have_pointers): Complex types
+ cannot have pointers.
+
+2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/30949
+ * c-typeck.c (convert_for_assignment): Do not give declaration's
+ location for builtins. Spell out which type was expected and which
+ was given.
+
+2008-10-22 Nick Clifton <nickc@redhat.com>
+
+ * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
+ the fdpic register to be a target when running in fdpic mode.
+
+2008-10-22 Rafael Espindola <espindola@google.com>
+
+ * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
+ newly created statements.
+
+2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/37633
+ * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
+ * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
+ * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
+
+2008-10-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37880
+ * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
+ Adjust -mcmodel=medium description for 2005-07-31 changes.
+
+2008-10-22 Jan Hubicka <jh@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35853
+ * doc/invoke.texi: Remove references to obsoleted -d dumps.
+
+2008-10-21 Richard Henderson <rth@redhat.com>
+
+ PR 37815
+ * emit-rtl.c (get_spill_slot_decl): Export.
+ * emit-rtl.h (get_spill_slot_decl): Declare.
+ * var-tracking.c (vt_add_function_parameters): Relax assertion
+ on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
+
+2008-10-21 Bob Wilson <bob.wilson@acm.org>
+
+ * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
+ REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
+ of from insn.
+
+2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR middle-end/37669
+ * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
+ processed by get_maxval_strlen.
+
+2008-10-21 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/35485
+ * tree.c (get_file_function_name): Copy first_global_object_name.
+ Centralize call to clean_symbol_name.
+
+2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
+ * config/svr4.h (SVR4_ASM_SPEC): New.
+ (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
+ * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
+
+ * doc/invoke.texi (Option Summary): Add -T to linker options.
+ (Link Options): Document -T.
+
+2008-10-21 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-inline.c (tree_inlinable_function_p): Remove tuples
+ debugging hack.
+
+ * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
+
+ PR debug/37020
+ * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
+
+2008-10-20 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
+ part of expression.
+
+2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * doc/install.texi: Fix typos in previous patch.
+
+2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * doc/install.texi: Document in-tree building of gcc and mpfr.
+
+2008-10-19 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
+
+2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/30260
+ * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
+ (build_enumerator): Convert enumerators that fit in integer to
+ integer type.
+
+2008-10-18 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (unnamed peephole2): Do not force memory
+ operands of arith or logical instructions into registers for
+ non-TARGET_READ_MODIFY targets.
+
+ (ffs_cmove): Change operand 0 predicate to register_operand.
+ Change operand 1 predicate to nonimmediate_operand.
+ (ffsdi2): Ditto.
+ (*ffs_no_cmove): Change operand 0 predicate to register_operand.
+
+2008-10-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
+ VIEW_CONVERT_EXPR case against invalid gimple.
+
+2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * c-parser.c (c_parser_binary_expression): Silence the
+ uninitialized variable warning emitted for binary_loc.
+
+2008-10-16 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (phi_translate_set): Add constants to phi
+ translation cache.
+
+2008-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/33192
+ * c-typeck.c (build_unary_op): Use omit_one_operand for
+ IMAGPART_EXPR of real argument.
+
+2008-10-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37664
+ * fold-const.c (fold_binary): When optimizing comparison with
+ highest or lowest type's value, don't consider TREE_OVERFLOW.
+
+2008-10-16 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/35483
+ * Makefile.in (coverage.o): Depend on $(TM_P_H).
+ * coverage.c: Include tm_p.h.
+ * config/rs6000/x-aix (jc1): Override LDFLAGS.
+ * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
+ dollar signs from PREFIX.
+ * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
+ instead of manual strip_name_encoding.
+
+2008-10-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37418
+ * tree-ssa.c (useless_type_conversion_p_1): Do not treat
+ volatile qualified functions or methods as relevant.
+
+2008-10-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37525
+ * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
+ sizetype unsigned constants, both in the case of C and bounds.
+
+2008-10-15 Jan Hubicka <jh@suse.cz>
+
+ * ira-emit.c (change_regs): Return false when replacing reg by itself.
+
+2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR target/37633
+ * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
+ HARD_REGNO_CALL_PART_CLOBBERED.
+
+2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37535
+ * ira-lives.c (mark_early_clobbers): Remove.
+ (make_pseudo_conflict, check_and_make_def_use_conflicts,
+ check_and_make_def_conflicts,
+ make_early_clobber_and_input_conflicts,
+ mark_hard_reg_early_clobbers): New functions.
+ (process_bb_node_lives): Call
+ make_early_clobber_and_input_conflicts and
+ mark_hard_reg_early_clobbers. Make hard register inputs live again.
+
+ * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
+ early clobbers of pseudo-registers.
+
+2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37674
+ * ira-build.c (ira_flattening): Recalculate
+ ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
+ from the scratch instead of the propagation.
+
+2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/rtl.texi (const_double): Remove the "addr" operand.
+ Describe CONST_DOUBLE_* macros under const_double rather
+ than const_vector.
+ (const_fixed): Fix the operand description.
+ (const): Add an @findex directive.
+ (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
+ after the constant rtl table.
+ (fix): Combine floating-point and fixed-point descriptions.
+ Fix hyphenation.
+ * sched-deps.c (sched_analyze_2): Remove reference to
+ CONST_DOUBLE_CHAIN.
+
+2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
+ UNSPEC_GOTSYM_OFFs.
+ * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
+ for UNSPEC_GOTSYM_OFFs.
+ * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
+ (add_GOT_to_pic_reg): Use it.
+ * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
+
+2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/37485
+ * graphite.c (gmp_cst_to_tree): Moved.
+ (iv_stack_entry_is_constant): New.
+ (iv_stack_entry_is_iv): New.
+ (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
+ (loop_iv_stack_insert_constant): New.
+ (loop_iv_stack_pop): Use new datatpype.
+ (loop_iv_stack_get_iv): Same.
+ (loop_iv_stack_get_iv_from_name): Same.
+ (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
+ (loop_iv_stack_patch_for_consts): New.
+ (loop_iv_stack_remove_constants): New.
+ (graphite_create_new_loop): Use loop_iv_stack_push_iv.
+ (translate_clast): Call loop_iv_stack_patch_for_consts and
+ loop_iv_stack_remove_constants.
+ (gloog): Use new datatype. Redirect construction edge to end
+ block to avoid accidental deletion.
+ * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
+ iv stack entry.
+ (union iv_stack_entry_data): New. Data in iv stack entry.
+ (struct iv_stack_entry): New. Datatype for iv stack entries.
+
+2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
+ * graphite.c (free_scop): Same.
+ (build_scops): Same.
+ (free_scattering): New.
+ (build_cloog_prog): Call free_scattering.
+ (patch_phis_for_virtual_defs): Fix memleak.
+ (graphite_trans_bb_strip_mine): Same.
+ (limit_scops): Same.
+
+2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/37828
+ * graphite.c (graphite_trans_loop_block): Do not loop block
+ single nested loops.
+
+2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37686
+ * tree-loop-linear.c (linear_transform_loops): Build a
+ loop nest vector. Pass it to lambda_compute_access_matrices.
+ * tree-data-ref.h (struct access_matrix): Store the loop nest
+ relative to which it encodes the information.
+ (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
+ (am_vector_index_for_loop): Reimplemented: iterate over the
+ loop nest for finding the loop index in the access matrix.
+ (lambda_compute_access_matrices): Update declaration.
+ * lambda-code.c (build_access_matrix): Pass the loop nest and
+ record it.
+ (lambda_compute_access_matrices): Same.
+
+2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
+ * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
+ TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
+ already implies hard float. Also fix several insn condition
+ with TARGET_DFP which shall require TARGET_HARD_DFP instead.
+
+2008-10-15 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/35483
+ Based on patches by Laurent Vivier.
+ * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
+ * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
+ * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
+ dollar sign to underscore.
+ (ASM_OUTPUT_EXTERNAL): Same.
+ (ASM_OUTPUT_LABELREF): New.
+ * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
+
+ * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
+ * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
+ * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
+ * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
+
+2008-10-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36881
+ * tree-switch-conversion.c (check_final_bb): For flag_pic, check
+ that each value doesn't need runtime relocations, for !flag_pic
+ check that each value is just a valid initializer constant.
+
+2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
+ LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
+ COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
+ Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
+ GR_AND_ACC_REGS.
+ (REG_CLASS_NAMES): Update accordingly.
+ (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
+ rather than an unpredictable descriptive string.
+ * config/mips/mips.c (mips_register_move_cost): Remove comment.
+ (mips_register_move_cost): Check for specific COP*_REGS classes,
+ instead of ALL_COP_AND_GR_REGS.
+ (mips_ira_cover_classes): New function.
+ (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
+ (TARGET_IRA_COVER_CLASSES): Define.
+
+2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/37553
+ * tree.c (build_type_attribute_qual_variant): Hash on the
+ unqualified type, and don't overwrite an existing
+ (type_hash_eq): Make the TYPE_NAME of the types significant, to
+ allow distinguishing between wchar_t and its underlying type. This
+ also means that we'll retain a little more typedef information.
+
+2008-10-14 Andrey Belevantsev <abel@ispras.ru>
+ Dmitry Melnik <dm@ispras.ru>
+ Dmitry Zhurikhin <zhur@ispras.ru>
+ Alexander Monakov <amonakov@ispras.ru>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * target.h (struct gcc_target): Update prototypes of needs_block_p
+ and gen_spec_check.
+ * haifa-sched.c (create_check_block_twin): Update calls to the above.
+ * sel-sched.c (create_speculation_check): Likewise.
+ * doc/tm.texi: Provide documentation for new target hooks.
+
+ * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
+ (ia64_gen_spec_insn): Removed.
+ (get_spec_check_gen_function, insn_can_be_in_speculative_p,
+ ia64_gen_spec_check): New static functions.
+ (ia64_alloc_sched_context, ia64_init_sched_context,
+ ia64_set_sched_context, ia64_clear_sched_context,
+ ia64_free_sched_context, ia64_get_insn_spec_ds,
+ ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
+ (ia64_needs_block_p): Change prototype.
+ (ia64_gen_check): Rename to ia64_gen_spec_check.
+ (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
+ into declaration, add special memory dependencies handling.
+ (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
+ TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
+ TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
+ TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
+ Define new target hooks.
+ (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
+ (ia64_optimization_options): Turn on selective scheduling with -O3,
+ disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
+ default with selective scheduling.
+ (ia64_override_options): Initialize align_loops and align_functions
+ to 32 and 64, respectively. Set global selective scheduling flags
+ according to target-dependent flags.
+ (rtx_needs_barrier): Support UNSPEC_LDS_A.
+ (group_barrier_needed): Use new mstop-bit-before-check flag.
+ Add heuristic.
+ (dfa_state_size): Make global.
+ (spec_check_no, max_uid): Remove.
+ (mem_ops_in_group, current_cycle): New variables.
+ (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
+ Initialize new variables.
+ (is_load_p, record_memory_reference): New functions.
+ (ia64_dfa_sched_reorder): Lower priority of loads when limit is
+ reached.
+ (ia64_variable_issue): Change use of current_sched_info to
+ sched_deps_info. Update comment. Note if a load or a store is issued.
+ (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
+ advance if maximal number of loads or stores was issued on current
+ cycle.
+ (scheduled_good_insn): New static helper function.
+ (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
+ a group barrier is needed. Fix vertical spacing. Guard the code
+ doing state transition with last_scheduled_insn check.
+ Mark that a stop bit should be before current insn if there was a
+ cycle advance. Update current_cycle and mem_ops_in_group.
+ (ia64_h_i_d_extended): Change use of current_sched_info to
+ sched_deps_info. Reallocate stops_p by larger chunks.
+ (struct _ia64_sched_context): New structure.
+ (ia64_sched_context_t): New typedef.
+ (ia64_alloc_sched_context, ia64_init_sched_context,
+ ia64_set_sched_context, ia64_clear_sched_context,
+ ia64_free_sched_context): New static functions.
+ (gen_func_t): New typedef.
+ (get_spec_load_gen_function): New function.
+ (SPEC_GEN_EXTEND_OFFSET): Declare.
+ (ia64_set_sched_flags): Check common_sched_info instead of *flags.
+ (get_mode_no_for_insn): Change the condition that prevents use of
+ special hardware registers so it can now handle pseudos.
+ (get_spec_unspec_code): New function.
+ (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
+ ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
+ (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
+ during selective scheduling.
+ (ia64_speculate_insn): Use ds_get_speculation_types when
+ determining whether we need to change the pattern.
+ (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
+ (ia64_spec_check_src_p): Support new speculation/check codes.
+ (struct bundle_state): New field.
+ (issue_nops_and_insn): Initialize it.
+ (insert_bundle_state): Minimize mid-bundle stop bits.
+ (important_for_bundling_p): New function.
+ (get_next_important_insn): Use important_for_bundling_p.
+ (bundling): When shifting TImode from unimportant insns, ignore
+ also group barriers. Assert that best state is found before
+ the backward bundling pass. Print number of mid-bundle stop bits.
+ Minimize mid-bundle stop bits. Check correct calculation of
+ mid-bundle stop bits.
+ (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
+ (final_emit_insn_group_barriers): Emit stop bits before insns starting
+ a new cycle.
+ (sel2_run): New variable.
+ (ia64_reorg): When flag_selective_scheduling2 is set, run the
+ selective scheduling pass instead of schedule_ebbs.
+
+ * config/ia64/ia64.md (speculable1, speculable2): New attributes.
+ (UNSPEC_LDS_A): New UNSPEC.
+ (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
+ movti_internal, movsf_internal, movdf_internal,
+ movxf_internal): Make visible. Add speculable* attributes.
+ (output_c_nc): New mode attribute.
+ (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
+ mov<mode>_nc, zero_extend<mode>di2_nc,
+ advanced_load_check_nc_<mode>): New insns.
+ (zero_extend*): Add speculable* attributes.
+
+ * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
+ (msched-stop-bits-after-every-cycle): Likewise.
+ (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
+ Likewise.
+ (msched-spec-verbose): Remove.
+ (msched-prefer-non-data-spec-insns,
+ msched-prefer-non-control-spec-insns,
+ msched-count-spec-in-critical-path,
+ msel-sched-dont-check-control-spec): Use Target Report Var
+ instead of Common Report Var.
+
+ * config/ia64/itanium2.md: Remove incorrect bypass.
+
+ * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
+
+2008-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37805
+ * opts.c (common_handle_option): Don't ICE on -fhelp=joined
+ and -fhelp=separate.
+
+2008-10-14 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000.md (cell_micro): Fix formatting.
+
+2008-10-13 Joseph Myers <joseph@codesourcery.com>
+
+ * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
+ non-integer modes.
+
+2008-10-13 Matthias Klose <doko@ubuntu.com>
+
+ * config/pa/linux-atomic.c: Work around missing header file
+ for hppa64-linux-gnu targets.
+
+2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
+ Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+ Grace Cao <grace_cao@playstation.sony.com>
+
+ * doc/invoke.texi (-mgen-cell-microcode): Document.
+ (-mwarn-cell-microcode): Document.
+ * cfglayout.c (locator_location): Export.
+ * rtl.h (locator_location): Define prototype.
+ * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
+ New predicate.
+ * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
+ * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
+ (mwarn-cell-microcode): New option.
+ * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
+ (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
+ cell and not already set.
+ Turn off string instructions if not generating cell microcode.
+ (rs6000_final_prescan_insn): New function that warns about microcoded
+ instructions.
+ * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
+ * config/rs6000/rs6000.md
+ Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
+ the instruction would have been microcoded on the Cell. Set
+ cell_micro to always on unnamed patterns for the string instructions.
+ (cell_micro): Update definition, remove load/store conditional
+ microcoded.
+ (sign_extend:DI): Define new pattern for non microcoded version.
+ (sign_extend:SI): Likewise.
+ (compare (div:P)): Set cell_micro to not.
+ (andsi3): Define as an expand.
+ (andsi3_mc): New pattern.
+ (andsi3_nomc): New pattern.
+ (andsi3_internal0_nomc): New pattern.
+ (andsi3_internal2): Rename to ...
+ (andsi3_internal2_mc): this and enable iff generating microcode.
+ (andsi3_internal3): Rename to ...
+ (andsi3_internal3_mc): this and enable iff generating microcode.
+ (andsi3_internal4): Enable iif generating microcode.
+ (andsi3_internal5): Rename to ..
+ (andsi3_internal5_mc): this and enable iff generating microcode.
+ (andsi3_internal5_nomc): New pattern.
+ (extzvdi_internal1): Enable iff generating microcode.
+ (extzvdi_internal2): Likewise.
+ (rotlsi3_internal7): Set cell_micro to always if non immediate form.
+ (anddi3): Change to expand.
+ (anddi3_mc): Rename from anddi3.
+ (anddi3_no_mc): New pattern.
+ (anddi3_internal2): Rename to ..
+ (anddi3_internal2_mc): this and enable iff generating microcode.
+ (anddi3_internal2_nomc): New pattern.
+ (anddi3_internal3): Rename to ..
+ (anddi3_internal3_mc): this and enable iff generating microcode.
+ (anddi3_internal3_nomc): New pattern.
+ (movti_string): Set cell_micro to always if TARGET_STRING.
+ (stmsi8): Set cell_micro to always.
+ (stmsi7): Likewise.
+ (stmsi6): Likewise.
+ (stmsi5): Likewise.
+ (stmsi4): Likewise.
+ (stmsi3): Likewise.
+ (stmsi8_power): Likewise.
+ (stmsi7_power): Likewise.
+ (stmsi6_power): Likewise.
+ (stmsi5_power): Likewise.
+ (stmsi4_power): Likewise.
+ (stmsi3_power): Likewise.
+ (movsi_update2): Enable iff generating microcode.
+ (movhi_update3): Likewise.
+ (lmw): Set cell_micro to always.
+
+2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
+ * config/s390/s390.c (machine_function): Remove
+ decomposed_literal_pool_addresses_ok_p.
+ (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
+ the difference of two labels.
+ (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
+ (s390_pool_offset): New function.
+ (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
+ (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
+
+2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * doc/install.texi (powerpc-*-*): Require binutils 2.15.
+ (powerpc*-*-linux-gnu*): Describe.
+ * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
+ * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
+ config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
+ config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
+ config/rs6000/e500crtres32gpr.asm,
+ config/rs6000/e500crtres64gpr.asm,
+ config/rs6000/e500crtres64gprctr.asm,
+ config/rs6000/e500crtrest32gpr.asm,
+ config/rs6000/e500crtrest64gpr.asm,
+ config/rs6000/e500crtresx32gpr.asm,
+ config/rs6000/e500crtresx64gpr.asm,
+ config/rs6000/e500crtsav32gpr.asm,
+ config/rs6000/e500crtsav64gpr.asm,
+ config/rs6000/e500crtsav64gprctr.asm,
+ config/rs6000/e500crtsavg32gpr.asm,
+ config/rs6000/e500crtsavg64gpr.asm,
+ config/rs6000/e500crtsavg64gprctr.asm: Use it.
+ * config/rs6000/crtsavres.asm: Really remove.
+
+2008-10-13 Kai Tietz <kai.tietz@onevision.com>
+
+ Fix PR/25502
+ * c-format.c (convert_format_name_to_system_name): Use
+ TARGET_OVERRIDES_FORMAT_INIT.
+ * config.gcc (extra_options): Add for mingw targets mingw.opt.
+ * config/i386/mingw.opt: New.
+ * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
+ * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
+ (ms_printf_length_specs): Removed const specifier.
+ * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
+ * doc/invoke.texi (Wno-pedantic-ms-format): New.
+
+2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
+ * doc/install.texi: Bump recommended MPFR to 2.3.2.
+
+2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/37808
+ * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
+ sure that ref has valid bb.
+
+2008-10-12 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/37447
+ * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
+ * alias.c (value_addr_p, stack_addr_p): Remove.
+ (nonoverlapping_memrefs_p): Remove IRA special case.
+ * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
+ * emit-rtl.h (set_mem_attrs_for_spill): Declare.
+ * reload1.c (alter_reg): Use it.
+
+2008-10-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
+ of registers instead of eax, ebx, ecx and edx. Use for loop
+ and check register for non-zero value before the call
+ to decode_caches_intel.
+
+2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/37448
+ * df.h (df_ref_class): New enum.
+ (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
+ (struct df_ref): Replaced with union df_ref_d.
+ (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
+ New members of df_ref_d union.
+ (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
+ DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
+ DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
+ DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
+ DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
+ DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
+ (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
+ (df_scan_bb_info, df_bb_regno_first_def_find,
+ df_bb_regno_last_def_find, df_find_def, df_find_use,
+ df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
+ debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
+ df_ref_create, df_ref_remove, df_compute_accessed_bytes,
+ df_get_artificial_defs, df_get_artificial_uses, union_defs)
+ Replaced struct df_ref * with df_ref.
+ * df-scan.c (df_collection_rec, df_null_ref_rec,
+ df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
+ df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
+ df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
+ df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
+ df_reorganize_refs_by_reg_by_reg,
+ df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
+ df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
+ df_sort_and_compress_refs, df_install_ref, df_install_refs,
+ df_ref_record, df_get_conditional_uses, df_get_call_refs,
+ df_bb_refs_record, df_exit_block_uses_collect,
+ df_record_exit_block_uses, df_reg_chain_mark,
+ df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
+ df_ref * with df_ref.
+ (df_ref_record, df_uses_record, df_ref_create_structure): Added
+ df_ref_class parameter.
+ (df_scan_problem_data): Added new pools for different types of refs.
+ (df_scan_free_internal, df_scan_alloc, df_free_ref,
+ df_ref_create_structure): Processed new ref pools.
+ (df_scan_start_dump): Added counts of refs and insns.
+ (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
+ df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
+ df_entry_block_defs_collect, df_exit_block_uses_collect): Added
+ code to pass df_ref_class down to ref creation functions.
+ (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
+ df_reg_chain_mark): Use macros to hide references to df_refs.
+ (df_ref_chain_change_bb): Removed.
+ (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
+ (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
+ Enhanced to understand df_ref union structure.
+ * fwprop.c (local_ref_killed_between_p, use_killed_between,
+ all_uses_available_at, update_df, try_fwprop_subst,
+ forward_propagate_subreg, forward_propagate_and_simplify,
+ forward_propagate_into, fwprop, fwprop_addr): Replaced struct
+ df_ref * with df_ref.
+ (use_killed_between, all_uses_available_at): Use macros to hide
+ references to df_refs.
+ * regstat.c (regstat_bb_compute_ri,
+ regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
+ df_ref.
+ * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
+ see_handle_relevant_refs, see_analyze_one_def,
+ see_update_relevancy, see_propagate_extensions_to_uses): Replaced
+ struct df_ref * with df_ref.
+ * ra-conflict.c (record_one_conflict, clear_reg_in_live,
+ global_conflicts): Replaced struct df_ref * with df_ref.
+ * ddg.c (create_ddg_dep_from_intra_loop_link,
+ add_cross_iteration_register_deps, build_inter_loop_deps):
+ Replaced struct df_ref * with df_ref.
+ (create_ddg_dep_from_intra_loop_link,
+ add_cross_iteration_register_deps): Use macros to hide references
+ to df_refs.
+ * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
+ df_ref * with df_ref.
+ * df-core.c (df_bb_regno_first_def_find,
+ df_bb_regno_last_def_find, df_find_def, df_find_use,
+ df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
+ debug_df_ref): Replaced struct df_ref * with df_ref.
+ (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
+ * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
+ df_ref.
+ * web.c (union_defs, entry_register, replace_ref, web_main):
+ Replaced struct df_ref * with df_ref.
+ (union_defs, replace_ref): Use macros to hide references to df_refs.
+ * global.c (compute_regs_asm_clobbered, build_insn_chain):
+ Replaced struct df_ref * with df_ref.
+ * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
+ * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
+ Replaced struct df_ref * with df_ref.
+ * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
+ mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
+ with df_ref.
+ * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
+ * df-byte-scan.c (df_compute_accessed_bytes_extract,
+ df_compute_accessed_bytes_strict_low_part,
+ df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
+ Replaced struct df_ref * with df_ref.
+ (df_compute_accessed_bytes): Use macros to hide references to df_refs.
+ * init-regs.c (initialize_uninitialized_regs): Replaced struct
+ df_ref * with df_ref.
+ * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
+ check_dependency, check_dependencies, record_uses): Replaced
+ struct df_ref * with df_ref.
+ (invariant_for_use, check_dependency): Use macros to hide
+ references to df_refs.
+ * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
+ get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
+ iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
+ (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
+ references to df_refs.
+ * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
+ with df_ref.
+ * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
+ * df-problems.c (df_rd_bb_local_compute_process_def,
+ df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
+ df_chain_unlink_1, df_chain_unlink, df_chain_copy,
+ df_chain_remove_problem, df_chain_create_bb_process_use,
+ df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
+ df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
+ df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
+ df_byte_lr_simulate_artificial_refs_at_top,
+ df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
+ df_note_bb_compute, df_note_add_problem, df_simulate_defs,
+ df_simulate_uses, df_simulate_artificial_refs_at_end,
+ df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
+ df_ref.
+ (df_chain_dump): Use macros to hide references to df_refs.
+ * config/mips/mips.c (r10k_simplify_address): Replaced struct
+ df_ref * with df_ref.
+ * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
+ mark_artificial_uses, mark_reg_dependencies,
+ byte_dce_process_block): Replaced struct df_ref * with df_ref.
+
+2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
+ head comment.
+ (array_ref_element_size): Likewise.
+ (array_ref_low_bound): Likewise.
+ (array_ref_up_bound): Likewise.
+ * expr.c (contains_packed_reference): Likewise.
+ (array_ref_element_size): Likewise.
+ (array_ref_low_bound): Likewise.
+ (array_ref_up_bound): Likewise.
+ * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
+ with ARRAY_RANGE_REF.
+ (idx_find_step): Likewise.
+ (idx_record_use): Likewise.
+ (strip_offset_1): Likewise.
+ (idx_remove_ssa_names): Likewise.
+
+2008-10-11 Uros Bizjak <ubizjak@gmail.com>
+ Andi Kleen <ak@linux.intel.com>
+
+ * config/i386/cpuid.h (__cpuid_count): New defines.
+ * config/i386/driver-i386.c (struct cache_desc): New structure.
+ (describe_cache): Use struct cache_desc to pass cache descriptions.
+ (detect_l2_cache): Ditto. Rename from decode_l2_cache.
+ (detect_caches_amd): Use struct cache_desc to describe caches.
+ (decode_caches_intel): Use struct cache_desc to pass cache
+ descriptions. Update descriptions to match latest (rev -032,
+ December 2007) CPUID documentation. Do not check valid bit here.
+ Check for Xeon MP value 0x49 problems.
+ (detect_caches_cpuid2): New function, split from detect_caches_intel.
+ Check valid bit before calling decode_caches_intel. Detect number
+ of times to repeat CPUID instruction.
+ (detect_caches_cpuid4): New function.
+ (detect_caches_intel): Depending on max_level, call
+ detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
+ only when other methods fail to provide valid L2 cache description.
+
+2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/37608
+ * pa.md (call, call_value): Generate an rtx for register r4 and pass
+ it to PIC call patterns.
+ (call_symref_pic): Revise pattern to expose PIC register save. Remove
+ code generation and attributes from pattern. Change peephole2 to
+ split for noreturn case. Revise split pattern for non noreturn case.
+ (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
+ call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
+ * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
+ asserts.
+
+2008-10-11 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
+ (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
+ and fp_type.
+ (divdf3): Reformat long line.
+
+2008-10-11 Michael J. Eager <eager@eagercon.com>
+
+ * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
+ -mfpu options.
+ (rs6000_handle_option): Process -mfpu options.
+ * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
+ (enum fpu_type_t): New.
+ * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
+ (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
+ fp_type.
+ (floatsisf2): Remove TARGET_SINGLE_FPU condition.
+ (floatdidf2): Add TARGET_SINGLE_FPU condition.
+ * config/rs6000/rs6000.opt (-mfpu): New.
+ (-mxilinx-fpu): New.
+ * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
+ * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
+ * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
+ * gcc/config.gcc: powerpc-xilinx-eabi target: New.
+ * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
+
+2008-10-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35760
+ * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
+ LO_SUM on Darwin if mode has just one unit.
+
+2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR debug/37002
+ * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
+ has been optimized out.
+
+2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
+ instead of PIC_DIRECT_ADDR_P.
+ (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
+ (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
+ (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
+ (PIC_OFFSET_P): Rename to...
+ (PCREL_SYMOFF_P): ...this.
+ (PIC_DIRECT_ADDR_P): Delete.
+ (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
+ PIC_OFFSET_P.
+ (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
+ single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
+ UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
+ * config/sh/sh.c (print_operand): Remove CONST handling.
+ (unspec_caller_rtx_p): Rewrite to use split_const and check
+ the operands of UNSPEC bases.
+ (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
+ with (unspec [A B] UNSPEC_SYMOFF).
+ (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
+ UNSPEC_PCREL_SYMOFF.
+ (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
+ * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
+ (UNSPEC_EXTRACT_U16): Likewise.
+ (UNSPEC_SYMOFF): Likewise.
+ (UNSPEC_PCREL_SYMOFF): Likewise.
+ (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
+ of constants.
+ (movsi_const_16bit): Likewise.
+ (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
+ (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
+ with (unspec [A B] UNSPEC_PCREL_SYMOFF).
+ (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
+ with (unspec [A B] UNSPEC_SYMOFF).
+ (symPLT_label2reg): Replace (minus A (minus B pc)) with
+ (unspec [A B] PCREL_UNSPEC_SYMOFF).
+ * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
+ (Csu): Likewise UNSPEC_EXTRACT_U16.
+ (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
+ (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
+
+2008-10-10 Stepan Kasal <skasal@redhat.com>
+
+ * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
+ for loop strip mining and loop blocking.
+
+2008-10-10 Alexandre Oliva <aoliva@redhat.com>
+
+ * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
+ vary types depending on debug info.
+
+2008-10-10 Alexandre Oliva <aoliva@redhat.com>
+
+ * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
+ before ensuring it's already computed.
+
+2008-10-09 Jakub Jelinek <jakub@redhat.com>
+
+ * rtl.h (locator_eq): New decl.
+ * cfglayout.c (locator_scope): New function.
+ (insn_scope): Use it.
+ (locator_eq): New function.
+ (fixup_reorder_chain): Search for last insn in src bb
+ that has locator set or first insn in dest bb. Use
+ locator_eq instead of == to compare locators.
+ * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
+ * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
+ == to compare locators.
+
+ * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
+ as used.
+ * gimple-low.c (lower_function_body, lower_gimple_return,
+ lower_builtin_setjmp): Set gimple_block on the newly created stmts.
+ * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
+ goto_block on edges if goto_locus is known.
+
+ PR middle-end/37774
+ * tree.h (get_object_alignment): Declare.
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
+ get_object_alignment if needed.
+ * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
+ handling to ...
+ (get_object_alignment): ... here. New function. Try harder to
+ determine alignment from get_inner_reference returned offset.
+
+2008-10-08 Jakub Jelinek <jakub@redhat.com>
+
+ * graphite.c (gloog): Don't call find_unreachable_blocks
+ before delte_unreachable_blocks.
+
+ * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
+ goto_locus of true_edge into RTL locator.
+
+2008-10-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
+ (*jcc_btdi_mask_rex64): Ditto.
+ (*jcc_btsi): Ditto.
+ (*jcc_btsi_mask): Ditto.
+ (*jcc_btsi_1): Ditto.
+ (*jcc_btsi_mask_1): Ditto.
+
+2008-10-08 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
+ compatible profiler (__gnu_mcount_nc).
+ (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
+
+2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (initial_ix86_tune_features): Add
+ X86_TUNE_USE_VECTOR_FP_CONVERTS.
+ * config/i386/i386.h (ix86_tune_indices): Likewise.
+ (TARGET_USE_VECTOR_FP_CONVERTS): New.
+
+ * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
+ instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
+ for FP to FP splitters.
+
+2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
+ splitter.
+
+2008-10-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36635
+ PR target/37290
+ PR rtl-optimization/37341
+ * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
+ to ORIG_BB, pass through ORIG_BB recursively.
+ (cse_condition_code_reg): Adjust caller.
+
+2008-10-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * sdbout.c (sdbout_one_type): Treat the value type
+ CONST_DECL for enumerals.
+
+2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md: Remove trailing white spaces.
+
+2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/37448
+ * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
+ (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
+ Make unsigned long.
+ (struct output_info) [count]: Renamed total_created and made
+ unsigned long.
+ (struct output_info) [size]: Renamed total_allocated and made
+ unsigned long.
+ (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
+ Properly keep track of desc->size.
+ (print_statistics, dump_alloc_pool_statistics): Enhance the
+ printing of statistics to print the number of elements and to use
+ unsigned longs.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37576
+ * opts.h (CL_SAVE): Move up to flags range.
+ (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
+ CL_COMMON): Renumber.
+ (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
+ * opts.c (common_handle_option): Revert last change.
+
+2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-protos.h (ix86_schedule): New.
+
+ * config/i386/i386.c (ix86_schedule): New.
+ (override_options): Add schedule to processor_alias_table. Set
+ ix86_schedule from the schedule field in processor_alias_table.
+ (ix86_function_specific_save): Save ix86_schedule.
+ (ix86_function_specific_restore): Restore ix86_schedule.
+
+ * config/i386/i386.md (cpu): Map to ix86_schedule instead of
+ ix86_tune. Add none and remove i386, i486, pentium4, nocona
+ and generic32.
+
+ * config/i386/i386.opt: Add schedule.
+
+ * config/i386/ppro.md: Remove generic32.
+
+2008-10-07 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c/35437
+ * expr.c (count_type_elements): Handle ERROR_MARK.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/29609
+ PR debug/36690
+ PR debug/37616
+ * basic-block.h (struct edge_def): Add goto_block field.
+ * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
+ one insn with locus corresponding to edge's goto_locus if !optimize.
+ * profile.c (branch_prob): Copy edge's goto_block.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
+ emitted jumps.
+ (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
+ locator in between the merged basic blocks if !optimize and needed.
+ * cfgexpand.c (expand_gimple_cond): Convert goto_block and
+ goto_locus into RTL locator. For unconditional jump use that
+ locator for the jump insn.
+ (expand_gimple_cond): Convert goto_block and goto_locus into
+ RTL locator for all remaining edges. For unconditional jump
+ use that locator for the jump insn.
+ * cfgcleanup.c (try_forward_edges): Avoid the optimization if
+ there is more than one edge or insn locator along the forwarding
+ edges and !optimize. If there is just one, set e->goto_locus.
+ * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
+ edge's goto_block.
+ (move_block_to_fn): Adjust edge's goto_block.
+
+2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37731
+ * expmed.c (expand_mult): Properly check DImode constant in
+ CONST_DOUBLE.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37738
+ * dwarf2out.c (common_block_die_table): New variable.
+ (common_block_die_table_hash, common_block_die_table_eq): New
+ functions.
+ (gen_variable_die): Look up a DW_TAG_common_block die for a particular
+ COMMON block in the current scope rather than globally. Optimize
+ DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
+ DW_OP_addr SYMBOL_REF+off.
+
+2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
+ Return true for non-addressable GIMPLE operands.
+
+2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/24765
+ * config/i386/i386.c (initial_ix86_tune_features): Remove
+ X86_TUNE_USE_BIT_TEST.
+ * config/i386/i386.h (ix86_tune_indices): Likewise.
+ (TARGET_USE_BIT_TEST): Removed.
+
+2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
+
+ * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
+
+2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
+ (mul<mode>3_mul3): ... into this new template.
+
+2008-10-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimplify.c (gimplify_arg): Add location argument. Use it.
+ (gimplify_call_expr): Pass location to gimplify_arg.
+ (gimplify_modify_expr_to_memcpy): Same.
+ (gimplify_modify_expr_to_memset): Same.
+
+2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+ Update calls to build_unary_op and build_indirect_ref for location
+ changes.
+
+2008-10-06 Aldy Hernandez <aldyh@redhat.com>
+
+ build_modify_expr.
+ * c-decl.c (finish_decl): Pass input_location to build_unary_op.
+ * c-typeck.c (array_to_pointer_conversion): Pass location to
+ build_unary_op.
+ (function_to_pointer_conversion): Use error_at and warning_at.
+ (build_indirect_ref): Same.
+ (build_array_ref): Pass location to build_binary_op.
+ (parser_build_unary_op): Do not set location after calling
+ build_unary_op.
+ (build_unary_op): Add location argument. Use it throughout. Set
+ EXPR_LOCATION before returning new tree.
+ (build_modify_expr): Same.
+ (build_binary_op): Use location throughout. Set EXPR_LOCATION before
+ returning node.
+ * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
+ build_indirect_ref, build_modify_expr.
+ (c_finish_omp_for): Same. Use error_at instead of error.
+ * c-common.c (c_common_truthvalue_conversion): Pass location to
+ build_unary_op.
+ (warn_for_div_by_zero): Add location argument.
+ * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
+ build_unary_op, warn_for_div_by_zero.
+ * c-parser.c (c_parser_typeof_specifier): Use
+ protected_set_expr_location.
+ (c_parser_statement_after_labels): Same.
+ (c_parser_condition): Same.
+ (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
+ (c_parser_conditional_expression): Use protected_set_expr_location.
+ (c_parser_unary_expression): Pass location to build_indirect_ref.
+ (c_parser_postfix_expression_after_primary): Pass location to
+ build_indirect_ref, build_unary_op.
+ (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
+
+2008-10-06 Joshua Kinard <kumba@gentoo.org>
+
+ * doc/invoke.texi: List r1x000 family under the -march MIPS option.
+ * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
+ * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
+ r14000 and r16000.
+ (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
+ (mips_issue_rate): Handle PROCESSOR_R10000.
+ * config/mips/mips.md (cpu): Add r10000.
+ Include r10000.md.
+ * config/mips/10000.md: New file.
+
+2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
+ * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
+ * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
+
+2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/darwin-protos.h (machopic_function_base_name): Delete.
+ (machopic_function_base_sym): Likewise.
+ (machopic_gen_offset): Declare.
+ * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
+ (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
+ * config/darwin.c (machopic_function_base_name): Delete.
+ (machopic_function_base_sym): Likewise.
+ (gen_pic_offset): Rename to...
+ (machopic_gen_offset): ...this and remove the pic_base argument.
+ Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
+ is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
+ crtl->uses_pic_offset_table.
+ (machopic_indirect_data_reference): Use new machopic_gen_offset
+ interface.
+ (machopic_legitimize_pic_address): Likewise.
+ (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
+
+ * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
+ MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
+ * config/i386/i386.c (output_set_got): Likewise.
+ (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
+ instead of a MINUS.
+ (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
+ (legitimate_address_p): Likewise.
+ (output_pic_addr_const): Likewise.
+ (output_addr_const_extra): Likewise.
+ (ix86_delegitimize_address): Expect darwin_local_data_pic to
+ match an UNSPEC rather than a MINUS.
+ * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
+ (builtin_setjmp_receiver): Use machopic_gen_offset.
+ * config/i386/predicates.md (pic_symbolic_operand): Handle
+ UNSPEC_MACHOPIC_OFFSET.
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
+ Use machopic_gen_offset and machopic_operand_p.
+ (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
+ (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
+ * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
+ (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
+ Set crtl->uses_pic_offset_table.
+
+2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
+ Declare.
+ * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
+ * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
+ * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
+ (constant_pool_expr_p): Use split_const and check the base.
+ (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
+ instead of a MINUS.
+ (legitimate_constant_pool_address_p): Check toc_relative_p
+ instead of constant_pool_expr_p.
+ (print_operand_address): Always use output_addr_const for
+ constant pool addresses.
+ (rs6000_output_addr_const_extra): New function.
+ (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
+
+2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37535
+
+ * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
+ (mark_ref_live, mark_ref_dead): Use them.
+ (def_conflicts_with_inputs_p): Remove.
+ (mark_early_clobbers): New function.
+ (process_bb_node_lives): Call preprocess_constraints and
+ mark_early_clobbers.
+
+ * doc/rtx.texi (clobber): Change how RA deals with clobbers.
+
+2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
+ lib with -mthread switch.
+
+2008-10-05 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/37410
+ * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
+ function in two, making it call a new and reusable
+ dwarf2out_imported_module_or_decl() that takes the containing
+ BLOCK of the declaration in argument.
+ (dwarf2out_imported_module_or_decl_real): New function.
+ (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
+ IMPORTED_DECL in account.
+ * tree.def: Added IMPORTED_DECL node type.
+ * tree.h: Added accessors for IMPORTED_DECL nodes.
+ * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
+
+2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/gimple.texi: Fix some typos, wrap some long lines,
+ fix some broken wraps with continuations.
+ * tree-ssa-reassoc.c: Fix comment typos.
+
+2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/37603
+ * pa.c (legitimize_pic_address): Force function labels to memory in
+ word mode.
+
+2008-10-04 Anton Blanchard <anton@samba.org>
+
+ * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
+ (rs6000_split_atomic_op): Same.
+ (rs6000_split_compare_and_swap): Same.
+ (rs6000_split_compare_and_swapqhi): Same.
+
+2008-10-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
+ instead of pointer equality.
+ (vn_nary_op_eq): Likewise.
+
+2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
+ condition.
+ (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
+ TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
+
+2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
+ Revert previous change.
+
+2008-10-03 Tom Tromey <tromey@redhat.com>
+
+ * stringpool.c (ggc_alloc_string): Terminate string.
+
+2008-10-03 Jakub Jelinek <jakub@redhat.com>
+
+ * gimplify.c (gimplify_function_tree): For -finstrument-functions
+ use gimple_bind_{,set_}block instead of gimple_{,set_}block.
+ * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
+
+ PR debug/37726
+ * gimplify.c (declare_vars): Use gimple_bind_block instead of
+ gimple_block.
+
+2008-10-03 Pascal Obry <obry@adacore.com>
+
+ * gcov.c (create_file_names): Properly handle UNIX and DOS
+ directory separators.
+ (make_gcov_file_name): Likewise + convert the ':' DOS drive
+ separator to '~' to ensure clean filenames on Windows.
+
+2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
+ Add a null terminator to the stripped name.
+
+2008-10-02 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
+ TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
+ (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
+ (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
+ (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+
+2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
+
+2008-10-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37713
+ * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
+ and VECTOR_TYPE recurse with useless_type_conversion_p which
+ properly handles void pointer conversion.
+
+2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR target/37528
+ * config/i386/mingw32.h (LIBGCC_SPEC): Replace with ..
+ (REAL_LIBGCC_SPEC): New. Always include -lgcc.
+
+2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+ Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
+ ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
+ they translate to non builtins.
+ * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
+ opaque_ftype_opaque. Define builtins __builtin_vec_splats,
+ __builtin_vec_promote, __builtin_vec_extract, and
+ __builtin_vec_insert.
+ * config/rs6000/rs6000.h (enum rs6000_builtins): Add
+ ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
+ ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
+ * config/rs6000/altivec.h (vec_extract): Define
+ (vec_insert): Define.
+ (vec_splats): Define.
+ (vec_promote): Define.
+
+2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Yukishige Shibata <shibata@rd.scei.sony.co.jp>
+ Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+
+ * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
+ Altivec intrinsics.
+ * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
+ prototype. Add new parameter, blk.
+ Use BLKmode for the MEM if blk is true.
+ (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
+ ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
+ ALTIVEC_BUILTIN_STVRXL.
+ Update usage of altivec_expand_lv_builtin.
+ Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
+ ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
+ (altivec_init_builtins): If compiling for the Cell, also define the
+ cell VMX builtins.
+ * config/rs6000/rs6000.h (rs6000_builtins): Define
+ ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
+ ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
+ ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
+ ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
+ ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
+ ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
+ ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
+ * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
+ UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
+ UNSPEC_STVRX, and UNSPEC_STVRXL.
+ (altivec_lvlx): New pattern.
+ (altivec_lvlxl): New pattern.
+ (altivec_lvrx): New pattern.
+ (altivec_lvrxl): New pattern.
+ (altivec_stvlx): New pattern.
+ (altivec_stvlxl): New pattern.
+ (altivec_stvrx): New pattern.
+ (altivec_stvrxl): New pattern.
+ * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
+ (vec_lvlxl): Likewise.
+ (vec_lvrx): Define if PPU is defined.
+ (vec_lvrxl): Likewise.
+ (vec_stvlx): Define if PPU is defined.
+ (vec_stvlxl): Likewise.
+ (vec_stvrx): Define if PPU is defined.
+ (vec_stvrxl): Likewise.
+
+2008-10-01 Geert Bosch <bosch@adacore.com>
+
+ * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
+
+2008-10-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37617
+ * tree-ssa-pre.c (create_expression_by_pieces): During FRE
+ do not add to the NEW_SETS.
+
+2008-10-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37285
+ * tree-vrp.c (execute_vrp): If we optimized away the default
+ case make sure to promote the label that got in place of it
+ to a default case label.
+
+2008-10-01 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/35737
+ * tree-complex.c (set_component_ssa_name): Don't optimize
+ is_gimple_min_invariant values with ssa_names in abnormal phis.
+
+2008-09-30 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-optimization/37662
+ * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
+ commutative binary operation if they are in the wrong order and
+ fold_build2 produces non-GIMPLE.
+
+2008-09-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37662
+ PR tree-optimization/37663
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
+ get_value_range with non-SSA_NAME. Don't assert operands have been
+ folded, instead just bail out.
+
+2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
+
+2008-09-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37491
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
+ build restrict-qualified pointers.
+ (vectorizable_store): Move alias check later.
+ (vectorizable_load): Likewise.
+
+2008-09-30 Paolo Bonzini <bonzini@gnu.org>
+
+ * c-common.c (empty_if_body_warning): Remove.
+ * c-common.h (empty_if_body_warning): Remove.
+ * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
+ here the -Wempty-body warning for `if' and `else' statements.
+ * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
+
+2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.opt: Add msse2avx.
+
+ * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
+ * config/i386/linux64.h (ASM_SPEC): Likewise.
+
+ * doc/invoke.texi: Document -msse2avx.
+
+2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
+
+2008-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * ifcvt.c (noce_emit_store_flag): If using condition from original
+ jump, reverse it if if_info->cond was reversed.
+
+2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
+ non-constant memory if it cannot be forced to constant memory.
+ Overhaul surrounding code and factor out common condition.
+
+2008-09-29 Jeff Law <law@redhat.com>
+
+ * reload1.c (alter_reg): Add missing curly braces.
+
+2008-09-29 Michael J. Eager <eager@eagercon.com>
+
+ * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
+ are easy.
+ * config/rs6000/rs6000.c (rs6000_override_options): Move
+ rs6000_init_hard_regno_mode_ok after all options changed.
+ Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
+ (rs6000_handle_option): Process -msingle-float, -mdouble-float,
+ -msimple-fpu flags. Add warning messages if single FP not configured.
+ (rs6000_file_start): Output gnu_attribute for single-float.
+ (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_legitimize_address): Likewise.
+ (rs6000_legitimize_reload_address): Likewise.
+ (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (function_arg_advance): Likewise (partial conversion).
+ (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_emit_prologue): Likewise.
+ (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (rs6000_libcall_value): Likewise.
+ * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
+ (TARGET_DOUBLE_FLOAT): New default to 1
+ (TARGET_SIMPLE_FPU): New default to 0
+ (TARGET_SINGLE_FPU): New default to 0
+ (TARGET_SINGLE_FLOAT_MODE): New.
+ (TARGET_DOUBLE_FLOAT_MODE): New.
+ * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
+ TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
+ UNITS_PER_FP_WORD
+ * config/rs6000/rs6000.md (define_mode_iterator): Condition on
+ TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
+ (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
+ copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
+ nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
+ muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
+ movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
+ floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
+ *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
+ fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
+ rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
+ floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
+ movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
+ extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
+ abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
+ cmptf_internal1, *cmptf_internal2): Condition on
+ TARGET_DOUBLE_FLOAT.
+ (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
+ mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
+ *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
+ btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
+ floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
+ *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
+ TARGET_SINGLE_FLOAT.
+ (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
+ * config/rs6000/rs6000.opt (-msingle-float): New.
+ (-mdouble-float): New.
+ (-msimple-fpu): New.
+ * doc/invoke.texi (RS/6000 and PowerPC Options): Add
+ -msingle-float, -mdouble-float, -msimple-fpu options.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
+ _SOFT_DOUBLE for -msingle-float.
+ * config.gcc: New config for target=powerpc-xilinx-eabi.
+
+2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
+ have exit and entry.
+ (new_scop): Take entry and exit edge to define new SCoP.
+ (sd_region_p): New structure used during SCoP detection.
+ (move_scops): Delete.
+ (move_sd_regions): New.
+ (scopdet_info): Change the definition from edges back to basic_blocks.
+ (scopdet_edge_info): Work on basic_blocks and rename to
+ scopdet_basic_block_info.
+ (split_difficult_bb): At the moment removed. We should later
+ add it at another place.
+ (build_scops_1): Work on basic_blocks.
+ (bb_in_sd_region): New.
+ (find_single_entry_edge): New.
+ (find_single_exit_edge): New.
+ (create_single_entry_edge): New.
+ (sd_region_without_exit): New.
+ (create_single_exit_edge): New.
+ (unmark_exit_edges): New.
+ (mark_exit_edges): New.
+ (create_sese_edges): New.
+ (build_graphite_scops): New.
+ (build_scops): Make SCoPs SESE.
+ (limit_scops): Use the new functions.
+
+2008-09-29 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.h (IRA_COVER_CLASSES): Define.
+
+2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/37640
+ * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
+ address to a register before taking the lower part.
+
+2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
+ for SHmedia.
+
+2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
+
+ PR tree-opt/36891
+ * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
+ the newly created variable.
+ Create a VECTOR_CST of all 1s for vector types.
+
+2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/36575
+ * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
+
+2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
+ order to convert between modes.
+ (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
+
+2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
+ if needed.
+
+2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
+
+ Revert:
+ 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
+ * ira-lives.c:...
+ * doc/rtl.texi:...
+
+2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
+ ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
+ them to yield false with MIPS16.
+
+2008-09-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37275
+ * dwarf2out.c (tls_mem_loc_descriptor): New function.
+ (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
+ mem_loc_descriptor failed. Accept UNSPEC.
+ (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
+ fail if one of the loc_descriptor calls for pieces failed.
+ (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
+ as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
+ if loc_descriptor_from_tree_1 on offset failed.
+
+ PR middle-end/37576
+ * opts.c (common_handle_option): Don't call print_specific_help with
+ CL_SAVE as first argument.
+
+2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
+ Steve Ellcey <sje@cup.hp.com>
+
+ * configure: Regenerate for new libtool.
+ * aclocal.m4: Ditto.
+
+2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
+ alias set on MEM when saving stack pointer.
+ * config/rs6000/rs6000.md (allocate_stack): Likewise
+
+2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/37574
+ * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
+ * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
+ instead of vector_type for constants. Take computation out of loop.
+ (vect_get_vec_def_for_operand): Use only vectype for constant case,
+ and use only vector_type for invariant case.
+ (get_initial_def_for_reduction): Use vectype instead of vector_type.
+
+2008-09-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37645
+ * c-common.c (handle_weakref_attribute): Ignore the attribute unless
+ the decl is a VAR_DECL or FUNCTION_DECL.
+
+2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37535
+ * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
+ (mark_ref_live, mark_ref_dead): Use them.
+ (def_conflicts_with_inputs_p): Remove.
+ (mark_early_clobbers): New function.
+ (process_bb_node_lives): Call preprocess_constraints and
+ mark_early_clobbers.
+
+ * doc/rtl.texi (clobber): Change how RA deals with clobbers.
+
+2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37448
+ * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
+ (ira_compress_allocno_live_ranges): New prototype.
+
+ * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
+ (coalesced_allocnos_living_at_program_points): New.
+ (coalesced_allocnos_live_at_points_p,
+ set_coalesced_allocnos_live_points): New functions.
+ (coalesce_spill_slots): Rewrite.
+
+ * ira-lives.c (remove_some_program_points_and_update_live_ranges,
+ ira_compress_allocno_live_ranges): New functions.
+
+ * ira-build.c (ira_flattening): Call
+ ira_compress_allocno_live_ranges.
+ (ira_build): Ditto.
+
+2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
+ optimization.
+
+2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * combine.c (make_compound_operation): Handle the 'E' format.
+ (count_rtxs): Likewise.
+ (update_table_tick): Likewise.
+ (get_last_value_validate): Likewise.
+
+2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
+
+2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
+
+ * matrix-reorg.c (transform_allocation_sites): Initializers
+ added to avoid the warning.
+
+2008-09-25 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.c (free_nodes): New variable.
+ (NEXT_FREE_NODE): New macro.
+ (cgraph_create_node): Reuse nodes from the free list. Do not
+ update uid if doing so.
+ (cgraph_remove_node): Add the node to the free list.
+
+2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
+
+2008-09-24 Richard Henderson <rth@redhat.com>
+
+ * dwarf2.h (DW_OP_GNU_encoded_addr): New.
+ * unwind-dw2.c (execute_stack_op): Handle it.
+
+2008-09-24 David Edelsohn <edelsohn@gnu.org>
+
+ Revert:
+ 2008-09-24 Michael J. Eager <eager@eagercon.com>
+
+2008-09-24 Aldy Hernandez <aldyh@redhat.com>
+
+ * c-common.c (fname_decl): New location argument.
+ * c-common.h (fname_decl): Same.
+ * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
+ {warning,error}.
+ (c_parser_typeof_specifier): Same.
+ (c_parser_parms_list_declarator): Same.
+ (c_parser_asm_string_literal): Same.
+ (c_parser_compound_statement_nostart): Same.
+ (c_parser_label): Same.
+ (c_parser_do_statement): Same.
+ (c_parser_asm_statement): Same.
+ (c_parser_unary_expression): Same.
+ (c_parser_sizeof_expression): Same.
+ (c_parser_postfix_expression): Same.
+ (c_parser_pragma): Same.
+ (c_parser_omp_clause_collapse): Same.
+ (c_parser_omp_clause_num_threads): Same.
+ (c_parser_omp_clause_schedule): Same.
+ (c_parser_omp_all_clauses): Same.
+ (c_parser_omp_sections_scope): Same.
+ (c_parser_omp_for_loop): Same. Pass condition's location to
+ c_objc_common_truthvalue_conversion.
+ (c_parser_enum_specifier): Remove comment.
+
+2008-09-24 Michael J. Eager <eager@eagercon.com>
+
+ * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
+ are easy.
+ * config/rs6000/rs6000.c (rs6000_override_options): Move
+ rs6000_init_hard_regno_mode_ok after all options changed.
+ Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
+ (rs6000_handle_option): Process -msingle-float, -mdouble-float,
+ -msimple-fpu flags. Add warning messages if single FP not configured.
+ (rs6000_file_start): Output gnu_attribute for single-float.
+ (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_legitimize_address): Likewise.
+ (rs6000_legitimize_reload_address): Likewise.
+ (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (function_arg_advance): Likewise.
+ (function_arg): Likewise.
+ (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
+ (rs6000_emit_prologue): Likewise.
+ (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
+ TARGET_SINGLE_FLOAT.
+ (rs6000_libcall_value): Likewise.
+ * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
+ (TARGET_DOUBLE_FLOAT): New default to 1
+ (TARGET_SIMPLE_FPU): New default to 0
+ (TARGET_SINGLE_FPU): New default to 0
+ (TARGET_SINGLE_FLOAT_MODE): New.
+ (TARGET_DOUBLE_FLOAT_MODE): New.
+ * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
+ TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
+ UNITS_PER_FP_WORD
+ * config/rs6000/rs6000.md (define_mode_iterator): Condition on
+ TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
+ (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
+ copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
+ nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
+ muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
+ movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
+ floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
+ *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
+ fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
+ rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
+ floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
+ movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
+ extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
+ abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
+ cmptf_internal1, *cmptf_internal2): Condition on
+ TARGET_DOUBLE_FLOAT.
+ (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
+ mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
+ *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
+ btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
+ floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
+ *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
+ TARGET_SINGLE_FLOAT.
+ (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
+ * config/rs6000/rs6000.opt (-msingle-float): New.
+ (-mdouble-float): New.
+ (-msimple-fpu): New.
+ * doc/invoke.texi (RS/6000 and PowerPC Options): Add
+ -msingle-float, -mdouble-float, -msimple-fpu options.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
+ _SOFT_DOUBLE for -msingle-float.
+ * config.gcc: New config for target=powerpc-xilinx-eabi.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/constraints.md: New file.
+ * config/sparc/sparc.md: Include it.
+ * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
+ (sparc_extra_constraint_check): Delete.
+ * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
+ (memory_ok_for_ldd): New predicate.
+ (sparc_extra_constraint_check): Delete.
+ * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
+ (CONST_OK_FOR_LETTER_P): Likewise.
+ (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
+ (EXTRA_CONSTRAINT): Likewise.
+
+2008-08-23 Steve Ellcey <sje@cup.hp.com>
+
+ * regrename.c (do_replace): Copy REG_POINTER value to new reg.
+
+2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * alias.c (find_base_value): Use FIND_BASE_TERM.
+ * doc/tm.texi (FIND_BASE_TERM): Update documentation.
+
+2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/i386/i386.c: Include cselib.h.
+ (ix86_pic_register_p): New function.
+ (ix86_delegitimize_address): Use it to check for the PIC register.
+
+2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
+ * config/i386/i386.c (ix86_find_base_term): Don't check for
+ SYMBOL_REF and LABEL_REF.
+
+2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/i386/i386.c (ix86_delegitimize_address): Wrap the
+ constant PLUS in a CONST.
+
+2008-09-23 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
+ check for sibcall support for w64.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
+
+2008-09-23 Aldy Hernandez <aldyh@redhat.com>
+
+ * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
+ parser_build_binary_op.
+ * c-decl.c (build_enumerator): Pass location to build_binary_op.
+ * c-typeck.c (build_array_ref): Same.
+ (parser_build_unary_op): New location argument.
+ (pointer_diff): Pass location to build_binary_op,
+ c_objc_common_truthvalue_conversion.
+ (build_modify_expr): Same.
+ (build_unary_op): New location argument.
+ (build_binary_op): New location argument.
+ (c_objc_common_truthvalue_conversion): Pass location to
+ c_*common_truthvalue_conversion.
+ * c-convert.c (convert): Same.
+ * c-common.c (binary_op_error): New location argument.
+ (pointer_int_sum): Pass location to build_binary_op.
+ (c_common_truthvalue_conversion): New location argument.
+ (warn_for_sign_compare): Same.
+ * c-common.h: Add location argument to c_common_truthvalue_conversion,
+ binary_op_error, build_binary_op, warn_for_sign_compare.
+ * c-parser.c (c_parser_condition): Pass location to
+ c_*common_truthvalue_conversion.
+ (c_parser_conditional_expression): Save condition's location and pass
+ it on down.
+ (c_parser_binary_expression): Same, but for the binary operator's
+ location.
+ (c_parser_omp_for_loop): Pass location to
+ c_objc_common_truthvalue_conversion.
+
+2008-09-23 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.c (cgraph_free_edge): Use sizeof(*e).
+ (cgraph_node_remove_callees): New temporary f. Hold the next item
+ in f when looping.
+ (cgraph_node_remove_callers): Likewise.
+
+ * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
+ (ipa_node_removal_hook): Likewise.
+
+ * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
+ gimple_call_copy_skip_args and moved to the gimple_call section.
+ * gimple.c (gimple_copy_call_skip_args): Renamed to
+ gimple_call_copy_skip_args. Changed al users.
+
+2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-color.c (start_allocno_priorities): Rename to
+ setup_allocno_priorities. Use costs and
+ ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
+ range lengths. Get rid off doubles.
+ (ira_fast_allocations): Call start_allocno_priorities.
+
+2008-09-22 David Daney <ddaney@avtrex.com>
+
+ PR target/37593
+ * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
+ register if TARGET_LONG_CALLS.
+
+2008-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37145
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
+ value-numbering union accesses with their offset and size only.
+ (visit_reference_op_load): Fix simplification of inserted conversions.
+ * tree-ssa-pre.c (find_or_generate_expression): Do not
+ recursively generate expressions if running FRE.
+
+2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_BADDU): New macro.
+ * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
+ New patterns.
+
+2008-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37145
+ * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
+ (phi_translate_1): Constant fold references.
+
+2008-09-22 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37482
+ * tree-vectorizer.h (struct _slp_instance): Add new field.
+ (SLP_INSTANCE_FIRST_LOAD_STMT): New.
+ (get_earlier_stmt): New function.
+ * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
+ function.
+ (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
+ * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
+ asserts that GSI points to the scalar statement being vectorized.
+ Set new statement location according to GSI.
+ (vect_schedule_slp_instance): Use GSI of
+ SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
+
+2008-09-21 Jan Hubicka <jh@suse.cz>
+
+ * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
+ (ipcp_insert_stage): Update dead_nodes bitmap.
+
+2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR target/37528
+ * config/i386/t-cygming (SHLIB_LC): Remove.
+ (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
+ * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
+
+2008-09-22 Hans-Peter Nilsson <hp@axis.com>
+
+ PR middle-end/37170
+ PR middle-end/37280
+ * final.c (mark_symbol_ref_as_used): New helper function.
+ (output_operand): Instead of just looking inside MEMs for
+ SYMBOL_REFs, use new helper function and for_each_rtx.
+ * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
+ to after weak-handling. Don't mark decls with TREE_STATIC as weak.
+ Make head comment more general.
+ * config/darwin.c (machopic_output_indirection): Handle weak
+ references here, like in assemble_external.
+
+2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
+ (sparc_emit_float_lib_cmp): Change return type.
+ * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
+ (gen_compare_operator): New function.
+ (sparc_emit_float_lib_cmp): Return the new operator to be used in
+ the comparison sequence. Minor tweaks.
+ * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
+ that the final operator and the result of sparc_emit_float_lib_cmp
+ match for software TFmode; use emit_insn in lieu of emit_jump_insn.
+ (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
+ buneq, bunge, bunle, bltgt): Assert that the final operator and the
+ result of sparc_emit_float_lib_cmp match for software TFmode.
+ (movqicc, movhicc, movsicc, movdicc): Merge into...
+ (mov<I:mode>cc): ...this.
+ (movsfcc, movdfcc, movtfcc): Merge into...
+ (mov<F:mode>cc): ...this.
+ (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
+ into...
+ (mov<I:mode>_cc_v9): ...this.
+ (movdi_cc_sp64_trunc): Delete.
+ (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
+ movdi_cc_reg_sp64): Merge into...
+ (mov<I:mode>_cc_reg_sp64): ...this.
+ (movsf_cc_sp64): Rename into...
+ (movsf_cc_v9): ...this.
+ (movdf_cc_sp64): Rename into...
+ (movdf_cc_v9): ...this.
+ (movtf_cc_hq_sp64): Rename into...
+ (movtf_cc_hq_v9): ...this.
+ (movtf_cc_sp64): Rename into...
+ (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
+
+2008-09-21 Diego Novillo <dnovillo@google.com>
+
+ * doc/gccint.texi: Include generic.texi and gimple.texi.
+ Re-order index.
+ * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
+ (GIMPLE): Move to gimple.texi.
+ (Annotations): Remove references to to stmt_ann_t and
+ ssa_name_ann_t.
+ (SSA Operands): Rename from 'Statement Operands'.
+ * doc/generic.texi: New.
+ * doc/gimple.texi: New.
+ * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
+ * Makefile.in (TEXI_GCCINT_FILES):
+ * gimple.c (gimple_copy_call_skip_args): Rename from
+ giple_copy_call_skip_args. Update all users.
+ * doc/gimple.texi (gimple_copy_call_skip_args): Document.
+
+2008-09-21 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37539
+ * tree-vect-transform.c (vect_transform_strided_load): Save vector
+ statement in related statement field only for the first load of the
+ group of loads with the same data reference.
+
+2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (TUNE_OCTEON): New macro.
+ * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
+ (mips_multipass_dfa_lookahead): Return 2 for Octeon.
+ * config/mips/octeon.md: New file.
+ * config/mips/mips.md: Include octeon.md. Restore
+ semi-alphabetical order of include files.
+
+2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37571
+ * config/i386/i386.md (*jcc_fused_1): Removed.
+ (*jcc_fused_2): Likewise.
+ (*jcc_fused_3): Likewise.
+ (*jcc_fused_4): Likewise.
+
+2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
+ (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
+ * target.h (gcc_target): Add ira_cover_classes.
+ * ira.c: Remove IRA_COVER_CLASSES guards.
+ (setup_cover_and_important_classes): Use targetm.ira_cover_classes
+ instead of IRA_COVER_CLASSES.
+ (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
+ (setup_class_translate): Likewise.
+ (setup_reg_class_intersect_union): Likewise.
+ (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
+ test of targetm.ira_cover_classes.
+ * opts.c (decode_options): Use targetm.ira_cover_classes instead
+ of IRA_COVER_CLASSES.
+ * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
+ (TARGET_INITIALIZER): Include it.
+ * targhooks.h (default_ira_cover_classes): Declare.
+ * targhooks.c (default_ira_cover_classes): New function.
+
+2008-09-19 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
+
+2008-09-19 Ian Lance Taylor <iant@google.com>
+
+ * varasm.c (narrowing_initializer_constant_valid_p): Return
+ NULL_TREE if ENDTYPE is not an integer.
+
+2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/30930
+ * tree-ssa.c (execute_update_addresses_taken): Also update
+ DECL_GIMPLE_REG_P for vector and complex types.
+
+2008-09-19 Andrew MacLeod <amacleod@redhat.com>
+ Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37567
+ * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
+ empty before freeing them.
+ (find_replaceable_exprs): Move asserts to free_temp_expr_table.
+
+2008-09-18 Bob Wilson <bob.wilson@acm.org>
+
+ * configure.ac: Add HAVE_AS_TLS check for Xtensa.
+ * config/xtensa/predicates.md (tls_symbol_operand): New.
+ * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
+ (TARGET_CANNOT_FORCE_MEM): Define.
+ (xtensa_tls_symbol_p): New.
+ (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
+ (xtensa_legitimate_address_p): Disallow constant pool TLS references.
+ (xtensa_tls_module_base): New.
+ (xtensa_call_tls_desc): New.
+ (xtensa_legitimize_tls_address): New.
+ (xtensa_legitimize_address): Handle TLS symbols.
+ (xtensa_tls_referenced_p_1): New.
+ (xtensa_tls_referenced_p): New.
+ (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
+ UNSPEC_DTPOFF.
+ (XTENSA_BUILTIN_THREAD_POINTER): New.
+ (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
+ (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
+ builtin. Add declarations for __builtin_thread_pointer and
+ __builtin_set_thread_pointer.
+ (xtensa_fold_builtin): Recognize new builtins.
+ (xtensa_expand_builtin): Expand new builtins.
+ * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
+ (TARGET_THREADPTR): Define.
+ (HAVE_AS_TLS): Define default value.
+ (LEGITIMATE_CONSTANT_P): Disallow TLS references.
+ * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
+ (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
+ (UNSPECV_SET_TP): New.
+ (sym_TPOFF, sym_DTPOFF): New.
+ (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
+ * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
+ * configure: Regenerated.
+
+2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37394
+ * config/ia64/ia64.c (ia64_optimization_options): Move
+ checking and setting flag_schedule_insns_after_reload and
+ ia64_flag_schedule_insns2 back to ...
+ (ia64_override_options): Here.
+
+2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/37451
+ * loop-doloop.c (doloop_modify): New argument zero_extend_p and
+ zero extend count after the correction to it is done.
+ (doloop_optimize): Update call to doloop_modify, don't zero extend
+ count before call.
+
+2008-09-18 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
+
+ * ipa-prop.c: Correct comments.
+ * ipa-prop.h: Likewise.
+
+2008-09-18 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37448
+ * ipa-reference.c (ipa_reference_local_vars_info_d,
+ ipa_reference_global_vars_info_d,
+ ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
+ ipa_reference_vars_info_t): Move here from ipa-reference.h
+ (node_duplication_hook_holder, node_removal_hook_holder): New.
+ (get_reference_vars_info_from_cgraph): Rename to ...
+ (get_reference_vars_info): ... this one, use cgraph uids.
+ (get_local_reference_vars_info, get_global_reference_vars_info):
+ Use cgraph instead of decl.
+ (ipa_reference_get_read_local, ipa_reference_get_written_local):
+ Remove.
+ (ipa_reference_get_read_global, ipa_reference_get_not_read_global
+ ipa_reference_get_written_global,
+ ipa_reference_get_not_written_global): Use cgraph argument.
+ (check_call): Simplify avail check.
+ (scan_stmt_for_static_refs): Update.
+ (propagate_bits): Update.
+ (merge_callee_local_info): Remove.
+ (init_function_info): Use cgraph nodes.
+ (clean_function_local_data): Break out from ...
+ (clean_function): ... here.
+ (copy_local_bitmap, copy_global_bitmap): New functions.
+ (duplicate_node_data, remove_node_data): New functions.
+ (generate_summary): Register hooks; use visibility instead of
+ master clones.
+ (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
+ * ipa-reference.h (ipa_reference_local_vars_info_d,
+ ipa_reference_global_vars_info_d,
+ ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
+ ipa_reference_vars_info_t): Move to ipa-reference.c
+ (ipa_reference_get_read_local, ipa_reference_get_written_local):
+ Remove.
+ (ipa_reference_get_read_global, ipa_reference_get_written_global,
+ ipa_reference_get_not_read_global,
+ ipa_reference_get_not_written_global): Update prototype.
+ * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
+ (init_state): Remove.
+ (node_duplication_hook_holder, node_removal_hook_holder): New.
+ (get_function_state, set_function_state): Use VECtor.
+ (analyze_function): Check body availability.
+ (add_new_function): Likewise.
+ (duplicate_node_data, remove_node_data): New.
+ (generate_summary): Register hooks; do not care about clones.
+ (propafate): Do not care about clones; recursive functions are
+ not looping.
+ * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
+ * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
+ * edge_duplication_hook_holder, node_duplication_hook_holder): Make
+ static.
+ * tree-flow.h (function_ann_d): Remove reference_vars_info.
+ * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
+ Update call of ipa-reference accesors.
+
+2008-09-18 Simon Baldwin <simonb@google.com>
+
+ * c-opts.c (c_common_handle_option): Add handling for
+ -Wbuiltin-macro-redefined command line option.
+ * c.opt: Added builtin-macro-redefined option.
+ * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
+ documentation.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37258
+ * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
+ and signedness for integral types.
+ (vn_phi_eq): Require compatible types.
+
+2008-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/34037
+ * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
+ TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
+ VAR_DECL.
+ * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
+ !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
+ ggc_free other TREE_LIST nodes from that chain.
+ * function.c (instantiate_decls): Instantiate also DECL_RTL
+ of vars in cfun->local_decls, free that list afterwards.
+
+2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
+ * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
+
+2008-09-18 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
+ * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
+
+2008-09-18 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/37102
+ * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
+ from a node. Check to see if another PHI is dead.
+ (eliminate_useless_phis): Rename from eliminate_virtual_phis and
+ remove real PHIs which have no uses.
+ (rewrite_out_of_ssa): Call eliminate_useless_phis.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37284
+ * tree-cfg.c (remove_useless_stmts_1): Remove
+ GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
+
+2008-09-18 Nick Clifton <nickc@redhat.com>
+
+ * config/frv/frv.h (IRA_COVER_CLASSES): Define.
+ (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
+ to frv_secondary_reload_class.
+ (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
+ * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
+ (frv_secondary_reload_class): Omit unused parameter.
+ (frv_secondary_reload): New function. Handle the case when
+ secondary_reload_class() is called before the reload_(in|out)
+ _optabs have been initialised.
+ * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
+ unused parameter.
+ * config/frv/frv.md: Define an exclusion set between fr550_m0
+ and fr550_f0.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37456
+ * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
+ want to insert after ends a BB insert on the single fallthru
+ outgoing edge.
+
+2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
+ Mention -march=z9-109, z9-ec and z10.
+
+2008-09-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/37544
+ * regrename.c (maybe_mode_change): Exit early when copy_mode
+ is narrower than orig_mode and narrower than new_mode.
+
+2008-09-18 Alexander Monakov <amonakov@ispras.ru>
+
+ PR middle-end/37499
+ * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
+
+ * sched-rgn.c (ref_counts): Remove.
+ (insn_referenced): New static variable.
+ (INSN_REF_COUNT): Remove.
+ (sched_run_compute_dependencies): Use insn_referenced instead of
+ INSN_REF_COUNT.
+ (add_branch_dependences): Likewise. Delete dead assignment.
+
+2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
+
+ * haifa-sched.c (dep_cost_1): Recognize the producer even if the
+ consumer is an asm. Add comment why this is important.
+ (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
+ recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
+
+2008-09-17 Joseph Myers <joseph@codesourcery.com>
+
+ * expr.c (emit_group_store): Do not shift before moving via a
+ stack slot.
+
+2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * varasm.c (initializer_constant_valid_p): Forbid view-conversions
+ from aggregate to non-aggregate type if the bit pattern is not fully
+ preserved afterwards.
+
+2008-09-17 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
+ (verify_gimple_assign): ... this. Split into ...
+ (verify_gimple_assign_unary): ... this,
+ (verify_gimple_assign_binary): ... that,
+ (verify_gimple_assign_single): ... and this.
+ (verify_types_in_gimple_stmt): Call verify_gimple_assign.
+ Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
+ (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
+ (verify_types_in_gimple_reference): Be forgiving with
+ VIEW_CONVERT_EXPRs.
+ (verify_gimple_phi): Deal with virtual operands.
+
+ * tree.def (PREDICT_EXPR): Change to tcc_expression.
+
+2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * tree.c (get_callee_fndecl): Don't call the language hook.
+ * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
+ * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
+ (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.c (protected_set_expr_location): Don't unnecessarily
+ check for error_mark_node.
+
+2008-09-17 Art Haas <ahaas@impactweather.com>
+
+ * ipa-reference.c (analyze_function): Declare step only if
+ ENABLE_CHECKING is defined.
+
+2008-09-17 Jan Hubicka <jh@suse.cz>
+
+ PR c++/18071
+ * tree.h (DECL_INLINE): remove.
+ (DECL_DECLARED_INLINE_P): Update docs.
+ (DECL_NO_INLINE_WARNING_P): new.
+ (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
+ * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+ Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR bootstrap/37441
+ * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
+ false.
+
+2008-09-17 Jan Hubicka <jh@suse.cz>
+
+ * ipa-reference.c (ipa_obstack): Remove.
+ (local_info_obstack, global_info_obstack): New.
+ (add_static_var): We now handle variables only.
+ (mark_address_taken, mark_load, mark_store): New functions based on ...
+ (check_operand): ... remove.
+ (get_asm_stmt_operands): Rename to ...
+ (check_asm_memory_clobber): ... this. Look only for memory clobber.
+ (scan_stmt_for_static_refs): Rewrite.
+ (scan_op_for_static_refs): Rename to ...
+ (scan_initializer_for_static_refs): do not look for VAR_DECL
+ initializers; stop recursion on types and decls.
+ (ipa_init): Use proper obstacks.
+ (analyze_variable): Use scan_initializer_for_static_refs.
+ (init_function_info): Use local obstack.
+ (analyze_function): Simplify.
+ (add_new_function): We don't need visited_nodes obstack.
+ (generate_summary): Use proper obstacks; cleanup after propagation.
+
+2008-09-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37385
+ PR tree-optimization/37491
+ * alias.c (get_alias_set): Use the canonical type.
+ * tree-vect-transform.c (vectorizable_store): Use the type of
+ the lhs for the vector type. Adjust checking.
+ (vectorizable_load): Adjust checking.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ PR rtl-optimization/37483
+ * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
+ if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
+ Rearrange code to better match the original comment. Check
+ t_unconditional first. Improve comment.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37529
+ * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
+ GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
+
+ PR c++/37530
+ * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
+ GIMPLE_TRY if cleanup sequence is empty.
+
+2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37263
+ * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
+ eliminate IV if the cost are the same.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37380
+ * tree-sra.c (sra_build_assignment): Do not call the gimplifier
+ if not necessary.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37508
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
+
+2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
+
+2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
+ use gen_floatdidf2 directly.
+ (floatunssidf2): Likewise.
+ (floatsidf_ppc64_mfpgpr): Remove.
+ (floatsidf_ppc64): Remove.
+ (floatunssidf_ppc64): Remove.
+
+2008-09-15 Jakub Jelinek <jakub@redhat.com>
+
+ * ira-color.c (finish_cost_update): Free update_cost_queue_elems
+ rather than update_cost_queue.
+
+ * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
+ in every call starting with the second one, instead of only when
+ alias_bitmap_obstack.elements != NULL.
+
+ * tree-predcom.c (filter_suitable_components): Free all refs in
+ act->refs vector before calling release_component.
+ (add_ref_to_chain): Free ref if not adding it to chain->refs.
+
+ * tree-data-ref.c (free_subscripts): Free all subscript objects.
+
+ * tree-loop-linear.c (linear_transform_loops): Initialize
+ lambda_obstack only after calling perfect_loop_nest_depth.
+ Goto free_and_continue instead of just continue for later failures.
+
+ PR middle-end/37479
+ * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
+
+ PR libmudflap/36397
+ * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
+
+2008-09-14 Andreas Schwab <schwab@suse.de>
+
+ * tree-call-cdce.c (check_target_format): Accept Motorola formats.
+
+2008-09-14 Jan Hubicka <jh@suse.cz>
+
+ * invoke.texi (-fconserve-stack): Document.
+ * opts.c (decode_options): Handle conserve_stack.
+ * common.opt (fconvserve_stack): New.
+
+2008-09-14 David Edelsohn <edelsohn@gnu.org>
+
+ * config.host: Add x-aix to host_xmake_file.
+ * config/rs6000/t-aix52: Do not override LDFLAGS.
+ * config/rs6000/x-aix: New file.
+
+2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/19636
+ PR target/24894
+ PR target/31644
+ PR target/31786
+ * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
+ is not recognized as a valid register usage. Allow REG_X to be used
+ as a base pointer.
+ * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
+ forces a reload when using a base register.
+
+2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming-crtend.c (register_frame_ctor): If
+ DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
+ directly with atexit.
+ (deregister_frame_ctor): Rename to ...
+ (deregister_frame_dtor): Use to call __gcc_deregister_frame
+ if !DEFAULT_USE_CXA_ATEXIT.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c: Include value-prof.h
+ * Makefile.in (cgraph.o): Add value-prof.h dependency.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/32581
+ * tree-profile.c (add_abnormal_goto_call_edges): New function.
+ (tree_gen_interval_profiler, tree_gen_pow2_profiler,
+ tree_gen_one_value_profiler, tree_gen_average_profiler,
+ tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
+ too many bytes on misalligned blocks.
+
+2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/cfg.texi: Fix some typos.
+ * doc/extend.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+
+2008-09-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30141
+ * tree-nested.c (finalize_nesting_tree_1): Generate valid
+ gimple stores for memory rhs.
+
+2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/37489
+ * cse.c (fold_rtx): Don't return const_true_rtx for float
+ compare if FLOAT_STORE_FLAG_VALUE is undefined.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/37392
+ * tree-inline.c (remap_gimple_stmt): Do not remap return value.
+
+2008-09-13 Martin Jambor <mjambor@suse.cz>
+ Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (free_edges): New variable.
+ (NEXT_FREE_EDGE): New macro.
+ (cgraph_free_edge): New function.
+ (cgraph_remove_edge): Call cgraph_remove_edge_1.
+ (cgraph_node_remove_callees): Likewise.
+ (cgraph_node_remove_callers): Likewise.
+ (cgraph_create_edge): Reuse edges from the free list. Do not
+ update uid if doing so.
+ (cgraph_remove_*_hook): Add free call.
+
+2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-color.c (conflict_allocno_vec): Delete.
+ (update_cost_queue_elem): New structure.
+ (update_cost_queue): New variable.
+ (update_cost_queue_tail): Likewise.
+ (update_cost_queue_elems): Likewise.
+ (allocno_update_cost_check): Delete.
+ (initiate_cost_update): Allocate update_cost_queue_elems
+ instead of allocno_update_cost_check.
+ (finish_cost_update): Update the free()s accordingly.
+ (start_update_cost): New function.
+ (queue_update_cost): Likewise.
+ (get_next_update_cost): Likewise.
+ (update_copy_costs_1): Inline into...
+ (update_copy_costs): ...here. Use a queue instead of recursive calls.
+ Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
+ once we've established they are equal. Don't allocate update
+ costs if there is nothing to add to them.
+ (update_conflict_hard_regno_costs): Remove ALLOCNO and
+ DIVISOR arguments. Use a queue instead of recursive calls;
+ process all the allocnos in the initial queue, rather than
+ a single allocno.
+ (assign_hard_reg): Use queue_update_cost instead of
+ conflict_allocno_vec. Queue coalesced allocnos instead
+ of calling update_conflict_hard_regno_costs for each one.
+ Just call update_conflict_hard_regno_costs once for the
+ entire queue.
+ (ira_color): Remove conflict_allocno_vec handling.
+
+2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37484
+ * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
+ (save_var_name): Same.
+ (initialize_cloog_names): Same.
+ (initialize_cloog_names): Same.
+
+2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-scalar-evolution.c (set_instantiated_value): Set
+ instantiated_below.
+
+2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37377
+
+ * ira-build.c (common_loop_tree_node_dominator): Remove.
+ (copy_live_ranges_to_removed_store_destinations): New function.
+ (regno_top_level_allocno_map): Move to top level from ...
+ (ira_flattening): ... here. Use
+ copy_live_ranges_to_removed_store_destinations.
+
+ * ira-emit.c (generate_edge_moves): Fix a comment.
+
+2008-09-12 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/37466
+ * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
+ scratch register after 'set' pattern.
+
+2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
+ information passed to mark_reg_pointer.
+ * explow.c (force_reg): Likewise.
+
+2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
+ when building for the celledp architecture.
+
+2008-09-12 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
+
+2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/37424
+ * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
+ the regnos instead of the addresses.
+
+2008-09-11 Janis Johnson <janis187@us.ibm.com>
+
+ * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
+
+2008-09-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
+ entering the weaker equivalence recording.
+
+ * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
+
+2008-09-11 Jeff Law <law@redhat.com>
+
+ * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
+ by assign_stack_local on the IRA path for stack slot sharing
+ as well as the non-IRA path.
+
+2008-09-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h: Fix whitespace issues.
+
+2008-09-11 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (struct ipa_param_flags): Removed.
+ (struct ipa_param_descriptor): New structure.
+ (struct ipa_node_params): ipcp_lattices, param_decls and
+ param_flags moved to ipa_param_description.
+ (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
+ descriptors. Renamed all users.
+ (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
+ changed to access descriptors. Renamed all users.
+ (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
+ to access descriptors. Renamed all users.
+ * ipa-cp.c (ipcp_init_cloned_node): Call
+ ipa_initialize_node_params instead of ipa_count_formal_params and
+ ipa_create_param_decls_array.
+ (ipcp_analyze_node): Likewise.
+ (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
+ descriptors. Renamed all users.
+ (ipcp_initialize_node_lattices): Remove allocation.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+ ipa_initialize_node_params instead of ipa_count_formal_params and
+ ipa_create_param_decls_array.
+ * ipa-prop.c (ipa_create_param_decls_array): Renamed to
+ ipa_populate_param_decls, made static, added parameter info,
+ renamed mt to node, removed allocation, changed to use
+ descriptors.
+ (ipa_count_formal_params): Made static, added parameter info,
+ renamed mt to node.
+ (ipa_initialize_node_params): New function.
+ (ipa_check_stmt_modifications): Changed to use descriptors.
+ (ipa_detect_param_modifications): Removed allocation, changed to
+ use descriptors.
+ (ipa_note_param_call): Changed to use descriptors.
+ (ipa_analyze_params_uses): Removed allocation.
+ (ipa_free_node_params_substructures): Changed to use descriptors.
+ (ipa_edge_duplication_hook): Use the unused attribute.
+ (ipa_node_duplication_hook): Use the unused attribute, changed to
+ use descriptors, changed to duplicate descriptors.
+
+ * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
+ changed all callers. Call ipa_propagate_indirect_call_infos if doing
+ indirect inlining. Made static.
+ (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
+ functions called only once.
+ (cgraph_decide_recursive_inlining): Don't call
+ ipa_propagate_indirect_call_infos, pass new_edges to
+ cgraph_mark_inline_edge instead.
+ (cgraph_decide_inlining_of_small_functions): Don't call
+ ipa_propagate_indirect_call_infos, pass new_edges to
+ cgraph_mark_inline_edge instead.
+ (cgraph_decide_inlining): Don't call
+ ipa_propagate_indirect_call_infos.
+ * ipa-prop.c: Check that vectors are allocated.
+
+ * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
+ iff a new cgraph edges have been created.
+ (cgraph_decide_inlining): New variable redo_always_inline.
+ Flattening and always_inlining loop until callgraph stabilizes.
+ * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
+ true iff new cgraph edges have been created.
+ (propagate_info_to_inlined_callees): Likewise.
+ (ipa_propagate_indirect_call_infos): Likewise.
+
+2008-09-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
+ (set_prologue_iterations): Likewise.
+ * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
+ Likewise.
+ (vect_update_init_of_dr): Likewise.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
+ type verification.
+ * fold-const.c (fold_unary): Do not generate calculations
+ in sub-types.
+
+2008-09-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
+ TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
+ (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
+
+ * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
+ a bool.
+ * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
+ VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
+ before finalizing the changes.
+ * tree-vrp.c (extract_range_from_binary_expr): Add limited support
+ for BIT_IOR_EXPR.
+ (simplify_truth_ops_using_ranges): New.
+ (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
+ simplify_cond_using_ranges, simplify_switch_using_ranges): Return
+ whether a simplification was made.
+ (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
+ use a switch statement and also call simplify_truth_ops_using_ranges.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * ggc-common.c (loc_array): Make static.
+ * dce.c (rest_of_handle_ud_dce): Free worklist.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_release_function_body): Plug memory leak on
+ ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
+ function so we are sure we do not dangle it forever.
+ * function.c (outer_function_chain, find_function_data): Remove.
+ (function_context_stack): New.
+ (push_function_context, pop_function_context): Update.
+ * function.h (struct function): Remove pointer outer.
+ (outer_function_chain, find_function_data): Remove.
+ * stmt.c (force_label_rtx): Remove dead call of find_function_data.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37448
+ * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-pre.c (phi_translate_1): Fix memory leak
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
+ (free_var_map_entry): New function.
+ (redirect_edge_var_map_destroy): Use it.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37448
+ * tree-inline.c (add_lexical_block): Replace with ...
+ (prepend_lexical_block): ... prepend at begginig.
+ (remap_blocks): Use it and reverse later.
+ (expand_call_inline): Use prepend_lexical_block.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Call insn_locators_free.
+ * cfglayout.c (insn_locators_free): New function.
+ * rtl.h (insn_locators_free): Declare.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * ifcvt.c (check_cond_move_block): Make regs argument pointer to
+ vector pointer.
+ (cond_move_process_if_block): Update call.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
+ * vec.c: Include hashtab.h
+ (vec_descriptor, ptr_hash_entry): New structures.
+ (vec_desc_hash, vec_ptr_map): New static variables.
+ (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
+ register_overhead, free_overhead, vec_heap_free): New functions.
+ (vec_gc_o_reserve_1): ggc_free when resizing to 0.
+ (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
+ (cmp_statistic, add_statistics, dump_vec_loc_statistics):
+ New functions.
+
+2008-09-11 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37474
+ * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
+ length of load permutation.
+
+2008-09-11 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
+
+2008-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37382
+ * expmed.c (extract_low_bits): Avoid creating invalid subregs.
+ * dse.c (find_shift_sequence): Use extract_low_bits instead of
+ simplify_gen_subreg.
+
+2008-09-11 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
+ for alias check.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37338
+ * gimplify.c (gimplify_body): Call default_rtl_profile.
+
+ PR target/36904
+ * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
+ instead of tok->val.node if not expanding to something else. Handle
+ intervening CPP_PADDING tokens.
+ (altivec_categorize_keyword): Remove unneeded comparisons.
+
+2008-09-10 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
+
+2008-09-10 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37432
+ * tree-inline.c (insert_init_stmt): Make sure to not
+ insert invalid gimple stores.
+
+2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37388
+ * toplev.c (process_options): Fail and warn when graphite
+ flags are used, but the compiler has not been configured
+ with graphite libraries.
+ * graphite.c (graphite_transform_loops): Remove printfs
+ to dump_file for the case when graphite is not available.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37434:
+ * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
+ the even element into register.
+ (ix86_expand_vector_init_general): Don't use
+ ix86_expand_vector_init_interleave on V16QImode and V8HImode
+ if we can't move from GPR to SSE register directly.
+
+2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
+ not lose track of the number of NOPs needed. Number of NOPs needed
+ for sync vs. loads workaround was switched; corrected. Run second
+ pass for all workarounds. No NOPs needed after call insns. Change
+ second pass to use find_next_insn_start and find_load helpers in order
+ to properly detect parallel insns.
+ * config/bfin/bfin.md (cbranch_with_nops): Increase length.
+
+2008-09-10 Jan Hubicka <jh@suse.cz>
+
+ * value-prof.c (gimple_ic): Fix tuplification bug.
+ * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
+ var warning.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37353
+ * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
+ (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
+ calls instead of cond_dead_built_in_calls.
+ (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
+ initalize the vector only before adding first entry. Use VEC_safe_push
+ instead of VEC_quick_push. Pass cond_dead_built_in_calls to
+ shrink_wrap_conditional_dead_built_in_calls call.
+
+2008-09-10 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37385
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
+ argument, and use it as a vector type if not NULL.
+ (vectorizable_store): Call vect_create_data_ref_ptr with the type of
+ vectorized rhs.
+ (vect_setup_realignment): Call vect_create_data_ref_ptr with
+ additional argument.
+ (vectorizable_load): Likewise.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.md (SWI32): New mode iterator.
+ (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
+ of SWI.
+
+2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/37435
+ * caller-save.c (insert_restore, insert_save): Check the mode by
+ reg_save_code.
+
+2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR other/37265
+ * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
+ splay tree lookup.
+ (dw2_output_indirect_constant_1): Use unstripped name in symbol
+ reference.
+
+2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
+
+ * doc/invoke.texi (ARM Options): Correct errors in discussion
+ of -mfloat-abi, -mhard-float, and -msoft-float.
+
+2008-09-09 Jakub Jelinek <jakub@redhat.com>
+ Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37356
+ * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
+ calling gimple_regimplify_operands on it. Iterate over all newly
+ added statements, not just the last one.
+ (insert_init_stmt): Insert stmt into seq first, then call
+ gimple_regimplify_operands on it. Don't create new gimplification
+ context, nor find referenced vars.
+
+2008-09-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR other/37419
+ * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
+ to pointer to vector pointer.
+ * ipa-prop.c (ipa_propagate_indirect_call_infos,
+ propagate_info_to_inlined_callees): Likewise.
+ (update_call_notes_after_inlining): Likewise. Push new indirect edge
+ to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
+ ipa_check_create_edge_args.
+ * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
+ argument to pointer to vector pointer.
+ (cgraph_decide_inlining_of_small_function): Adjust
+ cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
+ calls.
+
+ PR target/37438
+ * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
+ optimizing for size, not speed.
+
+ PR rtl-optimization/37408
+ * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
+ if parm is promoted.
+
+2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37375
+ * tree-scalar-evolution.c (scev_info_str): Add field
+ instantiated_below.
+ (new_scev_info_str, eq_scev_info, find_var_scev_info,
+ set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
+ set_instantiated_value): Pass instantiated_below.
+ (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
+ to above functions.
+ (instantiate_scev_1, instantiate_scev): Pass a basic block above which
+ the definitions are not instantiated.
+
+ * tree-scalar-evolution.h (instantiate_scev): Update declaration.
+ (block_before_loop): New.
+ * tree-data-ref.c (dr_analyze_indices): Update uses of
+ instantiate_scev.
+ * graphite.c (block_before_scop): New.
+ (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
+ basic block, not a loop for determining the parameters.
+ (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
+ scop.
+ (idx_record_params, find_params_in_bb, find_scop_parameters,
+ build_loop_iteration_domains, add_conditions_to_domain): Update calls
+ to instantiate_scev.
+
+ * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
+
+2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37333
+
+ * ira-build.c (ira_create_allocno): Setup frequency to 0.
+
+ * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
+ Check zero freq and increase if necessary.
+
+2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-conflicts.c (process_regs_for_copy): Check that the hard
+ regno is in the right range. Add comments.
+
+2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
+ warnings.
+ * mips-tfile.c (copy_object): Cast alloca result to int *.
+ * mips-tdump.c (print_symbol): Cast xmalloc return values to
+ proper types.
+ Rename class to sclass.
+ (read_tfile): Cast read_seek return values to proper types.
+ Cast xcalloc return value to proper type.
+
+2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
+ * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
+ * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
+
+2008-09-09 Jan Hubicka <jh@suse.cz>
+
+ * profile.c (is_edge_inconsistent): Add debug output; ignore
+ negative count on fake edges.
+ (is_inconsistent): Add debug output.
+
+2008-09-09 Andrey Belevantsev <abel@ispras.ru>
+
+ * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
+ dump message.
+ (choose_ready): When first insn is chosen from the ready list, also
+ dump it.
+
+2008-09-09 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/37360
+ * haifa-sched.c (max_issue): Do not assert that we never issue more
+ insns than issue_rate. Add comment.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_op): Remove.
+ (verify_types_in_gimple_call): Rename to ...
+ (verify_gimple_call): ... this. Enhance.
+ (verify_types_in_gimple_cond): Remove.
+ (verify_gimple_comparison): New function ...
+ (verify_types_in_gimple_assign): ... split out from here.
+ (verify_types_in_gimple_return): Rename to ...
+ (verify_gimple_return): ... this. Enhance.
+ (verify_types_in_gimple_switch): Rename to ...
+ (verify_gimple_switch): ... this. Enhance.
+ (verify_gimple_goto): New function.
+ (verify_types_in_gimple_phi): Rename to ...
+ (verify_gimple_phi): ... this. Enhance.
+ (verify_types_in_gimple_stmt): Adjust calls to helper functions.
+ Fold in single-statement cases from verify_types_in_gimple_seq_2.
+ (verify_types_in_gimple_seq_2): Remove cases handled in
+ verify_types_in_gimple_stmt.
+
+2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (n_regs_to_save): New static variable.
+ (push_multiple_operation, pop_multiple_operation): Set it.
+ (workaround_rts_anomaly): New function.
+ (workaround_speculation): New function, broken out of bfin_reorg.
+ (bfin_reorg): Call the new functions.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37354
+ PR middle-end/30165
+ * gimplify.c (gimplify_conversion): Change conversions of
+ non-register type to VIEW_CONVERT_EXPRs.
+ (gimplify_addr_expr): If we need to make the operand
+ addressable make sure to use a properly initialized
+ temporary for that so it gets a valid gimple store.
+
+2008-09-09 Aldy Hernandez <aldyh@redhat.com>
+
+ * function.h (struct function): Add function_start_locus.
+ * cfgexpand.c (gimple_expand_cfg): Use it.
+ * c-parser.c (c_parser_declaration_or_fndef): Set it.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37433
+ * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
+ function calls.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37387
+ * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
+ and bits to a common type.
+
+2008-09-09 Nick Clifton <nickc@redhat.com>
+
+ * config/v850/v850.md (return): Restore frame size restriction.
+
+2008-09-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * c-common.c (c_expand_decl): Remove.
+ * c-common.h (anon_aggr_type_p): Remove prototype.
+ (DECL_ANON_UNION_ELEMS): Remove.
+ * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
+ * c-decl.c (anon_aggr_type_p): Remove.
+ * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
+ (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
+ * langhooks.h (struct lang_hooks): Remove expand_decl.
+ * langhooks.c (lhd_expand_decl): Remove.
+ * stmt.c (expand_anon_union_decl): Remove.
+ * tree.h (expand_anon_union_decl): Remove prototype.
+
+2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/36609
+ * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
+ zero.
+ * config/avr/avr.md (QISI): Define mode iterator.
+ (negated_tst<mode>): Redefine as split using mode macro.
+ (reversed_tstqi): Define insn as reversed compare with zero.
+ (reversed_tsthi): Ditto.
+ (reversed_tstsi): Ditto.
+
+2008-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37393
+ * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
+ call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
+
+ PR middle-end/37414
+ * predict.c (optimize_function_for_size_p): Don't segfault if
+ FUN is NULL.
+ * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
+ tree_swap_operands_p): Don't test cfun != NULL before calling
+ optimize_function_for_s*_p.
+
+2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
+ end of the search.
+
+2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * crx/crx.h (IRA_COVER_CLASSES): Define.
+
+2008-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37337
+ * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
+ even when a stmt has been gimple_modified_p, but after fold_stmt is
+ not any longer. Remove unneeded may_have_exposed_new_symbols
+ initializations.
+
+2008-09-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37421
+ * tree-ssa-sccvn.c (visit_copy): Make sure to fully
+ valueize the RHS.
+
+2008-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37415
+ * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
+
+2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR driver/37409
+ * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
+ * pa-hpux10.h (LINK_SPEC): Likewise.
+ * pa-hpux11.h (LINK_SPEC): Likewise.
+
+2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa32-regs.h (IRA_COVER_CLASSES): Define.
+ * pa64-regs.h (IRA_COVER_CLASSES): Define.
+
+2008-09-07 Helge Deller <deller@gmx.de>
+
+ * pa/linux-atomic.c: New file.
+ * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
+ * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
+
+2008-09-07 Richard Guenther <rguenther@suse.de>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36630
+ * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
+ Call STRIP_NOPS before calling evolution_part_in_loop_num.
+
+2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35642
+ * config/rs6000/altivec.md (mulv8hi3): Implement.
+
+2008-09-06 Jeff Law <law@redhat.com>
+
+ * h8300/h8300.h (IRA_COVER_CLASSES): Define.
+
+2008-09-06 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/14703
+ * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
+ declarations.
+ * passes.c (init_optimization_passes): Recompute inline parameters.
+
+2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
+ DECL being null.
+
+2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
+ Peter Fuerst <post@pfrst.de>
+
+ * doc/invoke.texi: Document -mr10k-cache-barrier=.
+ * doc/extend.texi: Document __builtin_mips_cache.
+ * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
+ * config/mips/mips.opt (mr10k-cache-barrier=): New option.
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
+ __GCC_HAVE_BUILTIN_MIPS_CACHE.
+ (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
+ * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
+ (set_push_mips_isas): New variable.
+ (mips_r10k_cache_barrier): New variable.
+ (cache): New availability predicate.
+ (mips_builtins): Add an entry for __builtin_mips_cache.
+ (mips_build_cvpointer_type): New function.
+ (MIPS_ATYPE_CVPOINTER): New macro.
+ (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
+ mode is VOIDmode.
+ (r10k_simplified_address_p, r10k_simplify_address)
+ (r10k_uncached_address_p, r10k_safe_address_p)
+ (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
+ (r10k_needs_protection_p_call, r10k_needs_protection_p)
+ (r10k_insert_cache_barriers): New functions.
+ (mips_reorg_process_insns): Delete cache barriers after a
+ branch-likely instruction.
+ (mips_reorg): Call r10k_insert_cache_barriers.
+ (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
+ * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
+ (UNSPEC_R10K_CACHE_BARRIER): Likewise.
+ (mips_cache, r10k_cache_barrier): New define_insns.
+
+2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
+ * ira-color.c (setup_allocno_left_conflicts_num): Use
+ hard_reg_set_equal_p instead of a comparison with
+ ira_zero_hard_reg_set.
+ * ira.c (setup_reg_subclasses): Likewise.
+ (setup_cover_and_important_classes): Likewise.
+ (setup_class_translate): Likewise.
+ (setup_reg_class_intersect_union): Likewise.
+ (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
+ (ira_init_once): Don't initialize them.
+
+2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
+
+ * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
+
+2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
+
+2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+
+ Improved branch hints, safe hints, and scheduling.
+
+ * haifa-sched.c (sched_emit_insn): Define.
+ * sched-int.h (sched_emit_insn): Add prototype.
+ * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
+ -mhint-max-distance -msafe-hints): Document.
+ * config/spu/spu.c (spu_flag_var_tracking): New.
+ (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
+ TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
+ TARGET_ASM_FILE_START): Define.
+ (TARGET_SCHED_ADJUST_PRIORITY): Remove.
+ (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
+ (spu_emit_branch_hint): Add blocks argument.
+ (insert_branch_hints, insert_nops): Remove.
+ (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
+ uses_ls_unit, spu_sched_init_global, spu_sched_init,
+ spu_sched_reorder, asm_file_start): New functions.
+ (clock_var, spu_sched_length, pipe0_clock,
+ pipe1_clock, prev_clock_var, prev_priority,
+ spu_ls_first, prev_ls_clock): New static variables.
+ * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
+ * config/spu.md (iprefetch): Add operand, make it clobber MEM.
+ (nopn_nv): Add a non-volatile version of nop.
+ * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
+ -mhint-max-distance, -msafe-hints): New options.
+
+2008-09-05 Janis Johnson <janis187@us.ibm.com>
+ Samuel Tardieu <sam@rfc1149.net>
+
+ * opts.c (decode_options): Combine nested if statements.
+
+ PR target/37283
+ * opts.c (decode_options): Handle more relationships among
+ unit-at-a-time, toplevel-reorder, and section-anchors.
+
+2008-09-05 David Daney <ddaney@avtrex.com>
+
+ * doc/install.texi (--enable-reduced-reflection): Document new option.
+
+2008-09-05 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
+ constantpool_mem_p.
+ (constantpool_operand): New.
+ (move_operand): Disallow sub-word modes for the constant pool.
+ * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
+ (xtensa_secondary_reload_class): Replace with....
+ (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
+ Set icode for sub-word reloads from the constant pool.
+ * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
+ (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
+ * config/xtensa/xtensa.md (reload<mode>_literal): New.
+ * config/xtensa/xtensa-protos.h: Update prototypes.
+
+2008-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
+ (REG_CLASS_NAMES): Update.
+ (REG_CLASS_CONTENTS): Update.
+ * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
+ of ALL_REGS for regs 77 and 78.
+ * function.c (instantiate_virtual_regs_in_insn): Assert that
+ return value of simplify_gen_subreg is not NULL.
+
+2008-09-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
+ (gen_rtvec_v): Fix coding standards.
+
+2008-09-04 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (decide_alg): Be more conservative about optimizing for size.
+
+2008-09-04 Ian Lance Taylor <iant@google.com>
+
+ * varasm.c (narrowing_initializer_constant_valid_p): New
+ static function.
+ (initializer_constant_valid_p): Call it.
+
+2008-09-04 Jeff Law <law@redhat.com>
+
+ * fold-const.c (native_encode_real): Fix computation of WORDS.
+ (native_interpret_real): Likewise.
+
+2008-09-04 Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
+
+2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-conflicts.c (process_regs_for_copy): Check insn to check
+ that the cost is already taken into account in ira-costs.c
+
+ * ira-int.h (ira_debug_copy, ira_debug_copies): New.
+
+ * ira-build.c (print_copy, print_copies, ira_debug_copy,
+ ira_debug_copies): New.
+ (ira_bulid): Call print_copies.
+
+ * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
+
+2008-09-04 Samuel Tardieu <sam@rfc1149.net>
+
+ PR target/32783
+ * config/rs6000/rs6000.c (optimization_options): Remove check of
+ flag_toplevel_order.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
+ * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
+ second operand is a reg_imm10_operand.
+ * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
+ *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
+ (*seq_<GPR:mode><GPR2:mode>): Rename to
+ *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
+ ISA_HAS_SEQ_SNE.
+ (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
+ *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
+ ISA_HAS_SEQ_SNE.
+ (*sne_<GPR:mode><GPR2:mode>): Rename to
+ *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
+ ISA_HAS_SEQ_SNE.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_EXTS): New macro.
+ * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
+ combining an arithmetic right shift by more than 31 and a
+ trunction. Don't match for out-of-range shift amounts. Set
+ attribute mode to <MODE>.
+ (*lshr32_trunc<mode>): Name the pattern combining a logical right
+ shift by 32 and and a truncation. Set attribute mode to <MODE>.
+ (*<optab>_trunc<mode>_exts): New pattern for truncated right
+ shifts by less than 32.
+ (extv): Change predicate on first operand to accept registers.
+ Change predicate of the other operands from immediate_operand to
+ const_int_operand. Expand exts when source is a register.
+ (extzv): Change predicate of the constant operands from
+ immediate_operand to const_int_operand.
+ (extzv<mode>): Change predicate of the constant operands from
+ immediate_operand to const_int_operand and no constraint. Also
+ remove mode.
+ (*extzv_trunc<mode>_exts): New pattern.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_CINS): New macro.
+ * config/mips/mips-protos.h (mask_low_and_shift_p,
+ mask_low_and_shift_len): Declare.
+ * config/mips/mips.c (mask_low_and_shift_p,
+ mask_low_and_shift_len): New functions.
+ (mips_print_operand): Handle new operand prefix "m".
+ * config/mips/mips.md (*cins<mode>): New pattern.
+
+2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
+ optimizing for size.
+
+2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
+ regardless of epilogue_completed.
+
+2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/37359
+ * ira-lives.c (process_bb_node_lives): Check setjmp.
+
+2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR middle-end/37243
+ * ira-build.c (form_loop_tree): Reverse BB walk.
+ (create_bb_allocnos): Likewise.
+ * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
+ (mark_reg_store): Rename to...
+ (mark_ref_live): ...this and take a df_ref argument instead of
+ note_stores arguments. Assert that we have a register.
+ (mark_reg_clobber): Delete.
+ (def_conflicts_with_inputs_p): New function.
+ (mark_reg_conflicts): Delete.
+ (mark_reg_death): Rename to...
+ (mark_ref_dead): ...this and take a df_ref argument instead of
+ a register. Assert that we have a register.
+ (process_bb_node_lives): Hoist frequency calculation out of
+ instruction walk. Convert from a forwards scan to a backwards scan.
+ Use DF_REF_USES and DF_REF_DEFS instead of register notes and
+ note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
+ (create_allocno_live_ranges): Don't create regs_set.
+
+2008-09-04 Ian Lance Taylor <iant@google.com>
+
+ * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
+ or REG_LABEL_TARGET.
+ * calls.c (emit_library_call_value_1): Use MEM_P rather than
+ comparing MODE with MEM.
+ * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
+ comparing with GF_PREDICT_TAKEN.
+ (gimple_get_lhs): Change code to enum gimple_code.
+ (gimple_set_lhs): Likewise.
+ * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
+ * omp-low.c (find_omp_clause): Change kind parameter to enum
+ omp_clause_code.
+ * tree-flow.h (find_omp_clause): Update declaration.
+ * regrename.c (clear_dead_regs): Change kind parameter to enum
+ reg_note.
+ * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
+ GET_MODE.
+ * see.c (see_get_extension_data): Change return type to enum
+ entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
+ SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
+ (see_gen_normalized_extension): Change extension_code parameter to
+ enum entry_type.
+ (see_seek_pre_extension_expr): Change extension_code to enum
+ entry_type.
+ (see_merge_one_def_extension): Likewise.
+ (see_handle_relevant_defs): Likewise.
+ (see_handle_relevant_uses): Likewise.
+ (see_analyze_one_def): Likewise.
+ * tree-cfg.c (need_fake_edge_p): Compare gimple code with
+ GIMPLE_ASM rather than ASM_EXPR.
+ * tree-ssa-alias.c (is_escape_site): Compare gimple code with
+ GIMPLE_RETURN rather than RETURN_EXPR.
+ * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
+ (evaluate_stmt): Likewise.
+ * tree-vect-analyze.c (vect_analyze_operations): Change relevance
+ to enum vect_relevant.
+ (vect_mark_stmts_to_be_vectorized): Change assertion to not
+ compare gimple codes with tree codes.
+
+2008-09-04 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
+
+2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
+ pointer check lost in the recent no-unit-at-a-time patch.
+
+2008-09-04 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37343
+ * tree-switch-conversion.c (check_final_bb): Accept only IP
+ invariants.
+
+2008-09-04 Jan Hubicka <jh@suse.cz>
+
+ * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
+ Break out from ...
+ (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
+ using_ranges argument.
+ (vrp_evaluate_conditional): Avoid bogus warning for type range.
+ (vrp_visit_cond_stmt): Update call of
+ vrp_evaluate_conditional_warnv_with_ops
+
+2008-09-04 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/37345
+ PR tree-optimization/37358
+ PR tree-optimization/37357
+ * tree.c (build_function_type_skip_args): Build distinct type copy;
+ set TYPE_CONTEXT.
+ (build_function_decl_skip_args): Set type of new decl not orig decl;
+ clear DECL_VINDEX for methods turned into functions.
+
+2008-09-04 Nick Clifton <nickc@redhat.com>
+
+ * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
+ alignment field, if it is supported.
+
+2008-09-04 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/t-mingw32 (SHLIB_LC): Change order of import
+ libraries.
+
+2008-09-03 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (processor_target_table): Do not
+ enable VMX for POWER6.
+
+2008-09-03 Anton Blanchard <anton@samba.org>
+
+ * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
+ emit memory barrier before operation.
+
+2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
+
+ PR testsuite/37325
+ * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
+ default_elf_asm_output_external.
+
+2008-09-03 Jeff Law <law@redhat.com>
+
+ * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
+
+2008-09-03 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
+ memory barrier to below the test-and-set.
+ (alpha_split_lock_test_and_set_12): Likewise.
+
+2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37243
+
+ * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
+ all_allocnos.
+
+ * ira-color.c (print_loop_title): Use all_allocnos.
+ (color_pass): Ditto. Don't add border_allocnos. Check that
+ subloop allocno in the correspdoning bitmap all_allocnos.
+
+ * ira-emit.c (change_loop): Use all_allocnos.
+
+ * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
+ (ira_create_allocno): Set up all_allocnos bit for the created allocno.
+ (create_cap_allocno): Remove setting mentioned_allocnos.
+ (create_insn_allocnos): Ditto.
+ (remove_unnecessary_allocnos): Use all_allocnos.
+ (check_allocno_creation): Check that allocnos are in the
+ corresponding bitmap all_allocnos.
+
+2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37243
+
+ * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
+ (process_regs_for_copy): Process subregs. Refine check when cost
+ is taken into account in ira-costs.c.
+ (process_reg_shuffles): Use REG_SUBREG_P.
+ (add_insn_allocno_copies): Ditto. Ignore modes.
+
+ * ira-color.c (conflict_allocno_vec): New.
+ (COST_HOP_DIVISOR): New macro.
+ (update_copy_costs_1): Use it.
+ (update_conflict_hard_regno_costs): New function.
+ (assign_hard_reg): Use it.
+ (ira_color): Allocate and free conflict_allocno_vec.
+
+2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37296
+
+ * ira-int.h (ira_sort_insn_chain): Remove.
+
+ * ira.c (basic_block_order_nums, chain_insn_order,
+ chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
+ (ira): Don't call ira_sort_insn_chain.
+
+ * reload1.c (reload): Don't call ira_sort_insn_chain.
+
+2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37293
+ * cgraphunit.c (update_call_expr): Remove eh regions from statements
+ which become non throw.
+ (cgraph_function_versioning): Also clear DECL_WEAK. Call
+ update_call_expr after updating the flags on the decl.
+
+2008-09-03 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/37315
+ * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
+ * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
+ (cgraph_analyze_functions): Use node->analyzed
+ (cgraph_mark_functions_to_output): Likewise.
+ (cgraph_expand_function): All functions can be released after
+ expanding.
+ (cgraph_optimize): Use gimple_has_body_p.
+ * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
+ (cgraph_decide_inlining_incrementally): Likewise.
+ (inline_transform): Inline transform.
+ * tree-inline.c (initialize_cfun): Do now shallow copy structure;
+ copy fields needed.
+ (inlinable_function_p): Drop gimple_body check.
+ (expand_call_inline): Use gimple_has_body_p.
+ * gimple.c (gimple_has_body_p): New.
+ * gimple.h (gimple_has_body_p): Add prototype.
+ * tree-cfg.c (execute_build_cfg): Remove gimple_body.
+ (dump_function_to_file): Use gimple_has_body_p check.
+
+2008-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37346
+ * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
+ substatements.
+ * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
+
+2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ From Michael Frysinger <michael.frysinger@analog.com>
+ * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
+ bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
+ for bf538.
+
+2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
+
+ Add picoChip port.
+ * doc/extend.texi: Document picoChip builtin functions.
+ * doc/invoke.texi: Document picoChip options.
+ * doc/contrib.texi: Add picoChip contribution.
+ * doc/md.texi: Document picoChip constraints.
+ * config.gcc: Add picochip-*-*.
+ * config/picochip/: Add new port.
+
+2008-09-03 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37328
+ * tree-sra.c (sra_build_assignment): Gimplify properly.
+ (generate_copy_inout): Take the correct stmt as definition,
+ remove bogus assert.
+
+2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
+ attributes.
+
+ From Michael Frysinger <michael.frysinger@analog.com>
+ * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
+
+2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
+
+ * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
+ (__gthread_setspecific): Revert 2008-08-31 change to
+ __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
+
+2008-09-02 Aldy Hernandez <aldyh@redhat.com>
+
+ * diagnostic.c (error_at): New.
+ * toplev.h (error_at): New prototype.
+ * c-typeck.c (build_array_ref): Call error_at instead of error.
+ Pass location to pedwarn.
+
+2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
+
+ * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
+
+2008-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (tree_add_const_value_attribute): Only handle
+ VAR_DECL and CONST_DECL.
+
+2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
+ (setup_incoming_varargs_64): Assume cum != NULL. Set/check
+ ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
+ ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
+ Don't set ix86_save_varrargs_registers.
+ (ix86_setup_incoming_varargs): Assume cum != NULL.
+ (ix86_va_start): Check ix86_varargs_gpr_size and
+ ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
+ cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
+ from frame pointer if ix86_varargs_gpr_size == 0.
+ (ix86_compute_frame_layout): Updated.
+ * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
+ (ix86_varargs_gpr_size): Define.
+ (ix86_varargs_fpr_size): Likewise.
+ (machine_function): Remove save_varrargs_registers.
+ Add varargs_gpr_size and varargs_fpr_size.
+
+2008-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ * config/alpha/alpha.c (va_list_skip_additions,
+ alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
+ (alpha_gimplify_va_arg): Call unshare_expr on second use of
+ offset_field.
+
+ PR tree-optimization/36766
+ * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
+ for already removed basic blocks.
+
+ PR target/36332
+ * real.c (real_maxval): Clear a lower bit to make real_maxval
+ match get_max_float for IBM long double format.
+
+2008-09-02 Andreas Schwab <schwab@suse.de>
+
+ * configure.ac: Use m4_quote to quote the expansion of m4_do.
+ * configure: Regenerate.
+
+2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
+ SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
+ checking for a non-VOID CONSTANT_P.
+
+2008-09-02 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
+ * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
+ sdiv_pow2_cheap
+
+2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * expr.c (emit_group_store): Don't assert stack temp mode size.
+
+2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
+ Tobias Grosser <grosser@fim.uni-passau.de>
+ Jan Sjodin <jan.sjodin@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+ Konrad Trifunovic <konrad.trifunovic@inria.fr>
+ Adrien Eliche <aeliche@isty.uvsq.fr>
+
+ Merge from graphite branch.
+ * graphite.c: New.
+ * graphite.h: New.
+ * tree-loop-linear.c (perfect_loop_nest_depth): Export.
+ * doc/invoke.texi (-floop-block, -floop-interchange,
+ -floop-strip-mine): Document new flags.
+ * tree-into-ssa.c (gimple_vec): Moved...
+ * tree-loop-distribution.c (rdg_component): Moved...
+ * cfgloopmanip.c: Include tree-flow.h.
+ (update_dominators_in_loop): New.
+ (create_empty_if_region_on_edge): New.
+ (create_empty_loop_on_edge): New.
+ (loopify): Use update_dominators_in_loop.
+ * tree-pass.h (pass_graphite_transforms): Declared.
+ * configure: Regenerate.
+ * tree-phinodes.c (make_phi_node): Export.
+ (add_phi_node_to_bb): New, split from create_phi_node.
+ * tree-chrec.c (for_each_scev_op): New.
+ * tree-chrec.h (for_each_scev_op): Declared.
+ * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
+ (remove_statement): Call get_phi_with_result.
+ * config.in (HAVE_cloog): Undef.
+ * gdbinit.in (pgg): New.
+ * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
+ * tree-ssa-loop.c (graphite_transforms): New.
+ (gate_graphite_transforms): New.
+ (pass_graphite_transforms): New.
+ * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
+ HAVE_cloog): Defined.
+ * tree-vectorizer.c (rename_variables_in_bb): Export.
+ * tree-data-ref.c (dr_may_alias_p): Export.
+ (stmt_simple_memref_p): New.
+ (find_data_references_in_stmt): Export.
+ (find_data_references_in_loop): Export.
+ (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
+ (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
+ (create_rdg_vertices): Export.
+ (build_empty_rdg): New.
+ (build_rdg): Call build_empty_rdg. Free dependence_relations.
+ * tree-data-ref.h (rdg_component): ... here.
+ (scop_p): New.
+ (struct data_reference): Add a field scop.
+ (DR_SCOP): New.
+ (find_data_references_in_loop): Declared.
+ (find_data_references_in_stmt): Declared.
+ (create_rdg_vertices): Declared.
+ (dr_may_alias_p): Declared.
+ (stmt_simple_memref_p): Declared.
+ (struct rdg_edge): Add a field ddr_p relation.
+ (build_empty_rdg): Declared.
+ * lambda.h (lambda_matrix): Declare a VEC of.
+ (find_induction_var_from_exit_cond): Declared.
+ (lambda_vector_compare): New.
+ * common.opt (fgraphite, floop-strip-mine,
+ floop-interchange, floop-block): New flags.
+ * lambda-code.c (find_induction_var_from_exit_cond): Export.
+ * cfgloop.c (is_loop_exit): New.
+ * cfgloop.h (is_loop_exit): Declared.
+ (create_empty_if_region_on_edge): Declared.
+ (create_empty_loop_on_edge): Declared.
+ * tree-flow.h (add_phi_node_to_bb): Declared.
+ (make_phi_node): Declared.
+ (rename_variables_in_bb): Declared.
+ (perfect_loop_nest_depth): Declared.
+ (graphite_transform_loops): Declared.
+ * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
+ (graphite.o-warn): Add -Wno-error.
+ (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
+ (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
+ (INCLUDES): Add PPLINC, CLOOGINC.
+ (OBJS-common): Add graphite.o.
+ (graphite.o): Add rule.
+ * gimple.h (gimple_vec): ... here.
+ * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
+ * passes.c (init_optimization_passes): Schedule
+ pass_graphite_transforms.
+
+2008-09-02 Samuel Tardieu <sam@rfc1149.net>
+
+ PR target/37283
+ * opts.c (decode_options): Move processing of -fno-unit-at-a-time
+ and -fno-toplevel-reorder after handle_options.
+
+2008-09-02 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_tune_cortex_a9): Define.
+ (arm_override_options): Set arm_tune_cortex_a9.
+ (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
+ (arm_issue_rate): Handle cortexa9.
+ * config/arm/arm.h (arm_tune_cortex_a9): Declare.
+ * config/arm/arm-cores.def: Add cortex-a9.
+ * config/arm/arm-tune.md: Regenerate.
+ * config/arm/arm.md: Include cortex-a9.md.
+ (generic_sched, generic_vfp): Add cortexa9.
+ * config/arm/cortex-a9.md: New file.
+
+2008-09-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37327
+ * tree-vrp.c (register_new_assert_for): Make sure to not have
+ TREE_OVERFLOW set on the bound.
+
+2008-09-02 Alexander Monakov <amonakov@ispras.ru>
+
+ Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
+
+ * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
+ * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
+ spec_info->mask.
+
+2008-09-02 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc/config/spu/spu.md (divdf3): Removed.
+
+2008-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37095
+ * cgraph.c (cgraph_node): When creating new cgraph node after
+ assembler_name_hash has been populated, record it in the hash
+ table.
+
+2008-09-01 Paul Brook <paul@codesourcery.com>
+
+ * doc/invoke.texi: Document -mword-relocations.
+ * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
+ * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
+ * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
+ * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
+ (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
+ (arm_emit_movpair): New function.
+ (arm_print_operand <c>): Handle sybolic addresses.
+ * config/arm/arm.h (TARGET_USE_MOVT): Define.
+ (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
+ * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
+ * config/arm/arm.opt: Add -mword-relocations.
+ * config/arm/arm.md (movsi): Use arm_emit_movpair.
+ (arm_movt, arm_movw): New.
+
+2008-09-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
+ Allow Interworking on ARMv4 EABI based targets.
+ * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
+ (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
+
+2008-09-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
+ optimized LT0 test. Remove optimization for GT.
+
+2008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa64-hpux.h (LIB_SPEC): Link against librt when building static
+ openmp applications.
+ * pa-hpux11.h (LIB_SPEC): Likewise.
+
+ * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
+ is defined.
+
+2008-09-01 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
+ present, use only counts; when guessed use only frequencies.
+ (estimate_bb_frequencies): Use function_frequency.
+ * profile.c (compute_branch_probabilities): Exit early when
+ profile reading failed. Set profile_status.
+ (branch_prob): Do not set profile_status.
+
+2008-09-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.c (protected_set_expr_location): New.
+ * tree.h (protected_set_expr_location): New prototype.
+ * c-tree.h (build_array_ref): Add argument.
+ (parser_build_unary_op): Same.
+ * c-typeck.c (build_indirect_ref): Handle new location argument.
+ (build_array_ref): Same.
+ (parser_build_unary_op): Same.
+ * gimplify.c (gimplify_asm_expr): Set input_location before calling
+ error.
+ * c-omp.c (c_finish_omp_atomic): Pass location when calling
+ build_indirect_ref.
+ * c-common.c (finish_label_address_expr): Handle new location argument.
+ * c-common.h (build_indirect_ref): Add argument.
+ (finish_label_address_expr): Same.
+ * c-parser.c (c_parser_unary_expression): Pass location to build
+ functions.
+ (c_parser_postfix_expression): Same.
+
+2008-09-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md: Include cortex-r4f.md.
+ (attr fpu): Update type list.
+ (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
+ fconstd, fcmps and fcmpd.
+ (attr tune_cortexr4): Define.
+ (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
+ * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
+ fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
+ * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
+ * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
+ * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
+ cortex_a8_vfp_farith: Ditto.
+ * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
+ * config/arm/cortex-r4.md: Use tune_cortexr4.
+ * config/arm/cortex-r4f.md: New file.
+
+2008-09-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37305
+ * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
+ the result of constant conversions.
+ (fold_gimple_assign): Likewise.
+
+2008-09-01 Andrey Belevantsev <abel@ispras.ru>
+
+ * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
+ #ifdef ENABLE_CHECKING.
+
+2008-09-01 Andrey Belevantsev <abel@ispras.ru>
+
+ * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
+ * sched-int.h (print_insn, print_pattern, print_value): Declare also
+ when !INSN_SCHEDULING.
+
+2008-09-01 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
+
+2008-09-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
+
+2008-09-01 Jan Hubicka <jh@suse.cz>
+
+ * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
+
+ * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
+ Pass speed operand.
+ * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
+ * gimplify.c (gimplify_init_constructor): Add speed operand.
+ * tree-sra.c (decide_block_copy): Likewise.
+ * tree-inline.c (estimate_move_cost): Likewise.
+ * config/alpha/alpha.h (MOVE_RATIO): Update.
+ * config/frv/frv.c (MOVE_RATIO): Update.
+ * config/spu/spu.h (MOVE_RATIO): Update.
+ * config/sparc/sparc.h (MOVE_RATIO): Update.
+ * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
+ * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
+ * config/cris/cris.h (MOVE_RATIO): Update.
+ * config/mn10300/mn10300.h (MOVE_RATIO): Update.
+ * config/arm/arm.h (MOVE_RATIO): Update.
+ * config/pa/pa.md: Update uses of MOVE_RATIO
+ * config/pa/pa.h (MOVE_RATIO): Update.
+ * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
+ CLEAR_RATIO, SET_RATIO): Update.
+ * config/h8300/h8300.h (MOVE_RATIO): Update.
+ * config/v850/v850.h (MOVE_RATIO): Update.
+ * config/bfin/bfin.h (MOVE_RATIO): Update.
+
+2008-08-31 Andrey Belevantsev <abel@ispras.ru>
+ Dmitry Melnik <dm@ispras.ru>
+ Dmitry Zhurikhin <zhur@ispras.ru>
+ Alexander Monakov <amonakov@ispras.ru>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
+ sel-sched-dump.c, sel-sched-ir.c: New files.
+ * Makefile.in (OBJS-common): Add selective scheduling object files.
+ (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
+ (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
+ (sched-vis.o): Add dependency on $(INSN_ATTR_H).
+ * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
+ * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
+ (make_forwarder_block): Update loop latch if we have redirected
+ the loop latch edge.
+ * cfgloop.c (get_loop_body_in_custom_order): New function.
+ * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
+ (CP_FALLTHRU_PREHEADERS): Likewise.
+ (get_loop_body_in_custom_order): Declare.
+ * cfgloopmanip.c (has_preds_from_loop): New.
+ (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
+ Assert that the preheader edge will be fall thru when it is set.
+ * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
+ fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
+ fsel-sched-substitution, fselective-scheduling): New flags.
+ * cse.c (hash_rtx_cb): New.
+ (hash_rtx): Use it.
+ * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
+ sel_sched_insn_cnt): New counters.
+ * final.c (compute_alignments): Export. Free dominance
+ info after loop_optimizer_finalize.
+ * genattr.c (main): Output maximal_insn_latency prototype.
+ * genautomata.c (output_default_latencies): New.
+ Factor its code from ...
+ (output_internal_insn_latency_func): ... here.
+ (output_internal_maximal_insn_latency_func): New.
+ (output_maximal_insn_latency_func): New.
+ * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
+ (struct hard_reg_set_iterator): New.
+ (hard_reg_set_iter_init, hard_reg_set_iter_set,
+ hard_reg_set_iter_next): New functions.
+ (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
+ * lists.c (remove_free_INSN_LIST_node,
+ remove_free_EXPR_LIST_node): New functions.
+ * loop-init.c (loop_optimizer_init): When
+ LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
+ calling create_preheaders.
+ (loop_optimizer_finalize): Do not verify flow info after reload.
+ * recog.c (validate_replace_rtx_1): New parameter simplify.
+ Default it to true. Update all uses. Factor out simplifying
+ code to ...
+ (simplify_while_replacing): ... this new function.
+ (validate_replace_rtx_part,
+ validate_replace_rtx_part_nosimplify): New.
+ * recog.h (validate_replace_rtx_part,
+ validate_replace_rtx_part_nosimplify): Declare.
+ * rtl.c (rtx_equal_p_cb): New.
+ (rtx_equal_p): Use it.
+ * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
+ (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
+ debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
+ * vecprim.h: Add a vector type for unsigned int.
+ * haifa-sched.c: Include vecprim.h and cfgloop.h.
+ (issue_rate, sched_verbose_param, note_list, dfa_state_size,
+ ready_try, cycle_issued_insns, spec_info): Make global.
+ (readyp): Initialize.
+ (dfa_lookahead): New global variable.
+ (old_max_uid, old_last_basic_block): Remove.
+ (h_i_d): Make it a vector.
+ (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
+ through HID macro.
+ (after_recovery, adding_bb_to_current_region_p):
+ New variables to handle correct insertion of the recovery code.
+ (struct ready_list): Move declaration to sched-int.h.
+ (rgn_n_insns): Removed.
+ (rtx_vec_t): Move to sched-int.h.
+ (find_insn_reg_weight): Remove.
+ (find_insn_reg_weight1): Rename to find_insn_reg_weight.
+ (haifa_init_h_i_d, haifa_finish_h_i_d):
+ New functions to initialize / finalize haifa instruction data.
+ (extend_h_i_d, init_h_i_d): Rewrite.
+ (unlink_other_notes): Move logic to add_to_note_list. Handle
+ selective scheduler.
+ (ready_lastpos, ready_element, ready_sort, reemit_notes,
+ find_fallthru_edge): Make global, remove static prototypes.
+ (max_issue): Make global. Add privileged_n and state parameters. Use
+ them.
+ (extend_global, extend_all): Removed.
+ (init_before_recovery): Add new param. Fix the handling of the case
+ when we insert a recovery code before the EXIT which has a predecessor
+ with a fallthrough edge to it.
+ (create_recovery_block): Make global. Rename to
+ sched_create_recovery_block. Update.
+ (change_pattern): Rename to sched_change_pattern. Make global.
+ (speculate_insn): Rename to sched_speculate_insn. Make global.
+ Split haifa-specific functionality into ...
+ (haifa_change_pattern): New static function.
+ (sched_extend_bb): New static function.
+ (sched_init_bbs): New function.
+ (current_sched_info): Change type to struct haifa_sched_info.
+ (insn_cost): Adjust for selective scheduling.
+ (dep_cost_1): New function. Move logic from ...
+ (dep_cost): ... here.
+ (dep_cost): Use dep_cost_1.
+ (contributes_to_priority_p): Use sched_deps_info instead of
+ current_sched_info.
+ (priority): Adjust to work with selective scheduling. Process the
+ corner case when all dependencies don't contribute to priority.
+ (rank_for_schedule): Use ds_weak instead of dep_weak.
+ (advance_state): New function. Move logic from ...
+ (advance_one_cycle): ... here.
+ (add_to_note_list, concat_note_lists): New functions.
+ (rm_other_notes): Make static. Adjust for selective scheduling.
+ (remove_notes, restore_other_notes): New functions.
+ (move_insn): Add two arguments. Update assert. Don't call
+ reemit_notes.
+ (choose_ready): Remove lookahead variable, use dfa_lookahead.
+ Remove more_issue, max_points. Move the code to initialize
+ max_lookahead_tries to max_issue.
+ (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
+ ready. Adjust use of move_insn. Call restore_other_notes.
+ (luid): Remove.
+ (sched_init, sched_finish): Move Haifa-specific initialization/
+ finalization to ...
+ (haifa_sched_init, haifa_sched_finish): ... respectively.
+ New functions.
+ (setup_sched_dump): New function.
+ (haifa_init_only_bb): New static function.
+ (haifa_speculate_insn): New static function.
+ (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
+ (extend_ready, extend_all): Remove.
+ (sched_extend_ready_list, sched_finish_ready_list): New functions.
+ (create_check_block_twin, add_to_speculative_block): Use
+ haifa_insns_init instead of extend_global. Update to use new
+ initialization functions. Change parameter. Factor out code from
+ create_check_block_twin to ...
+ (sched_create_recovery_edges) ... this new function.
+ (add_block): Remove.
+ (sched_scan_info): New.
+ (extend_bb): Use sched_scan_info.
+ (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
+ static functions for walking through scheduling region.
+ (sched_luids): New vector variable to replace uid_to_luid.
+ (luids_extend_insn): New function.
+ (sched_max_luid): New variable.
+ (luids_init_insn): New function.
+ (sched_init_luids, sched_finish_luids): New functions.
+ (insn_luid): New debug function.
+ (sched_extend_target): New function.
+ (haifa_init_insn): New static function.
+ (sched_init_only_bb): New hook.
+ (sched_split_block): New hook.
+ (sched_split_block_1): New function.
+ (sched_create_empty_bb): New hook.
+ (sched_create_empty_bb_1): New function.
+ (common_sched_info, ready): New global variables.
+ (current_sched_info_var): Remove.
+ (move_block_after_check): Use common_sched_info.
+ (haifa_luid_for_non_insn): New static function.
+ (init_before_recovery): Use haifa_init_only_bb instead of add_block.
+ (increase_insn_priority): New.
+ * modulo-sched.c (issue_rate): Remove static declaration.
+ (sms_sched_info): Change type to haifa_sched_info.
+ (sms_sched_deps_info, sms_common_sched_info): New variables.
+ (setup_sched_infos): New.
+ (sms_schedule): Initialize them. Call haifa_sched_init/finish.
+ Do not call regstat_free_calls_crossed.
+ (sms_print_insn): Use const_rtx.
+ * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
+ PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
+ PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
+ PARAM_SCHED_MEM_TRUE_DEP_COST): New.
+ * sched-deps.c (sched_deps_info): New. Update all relevant uses of
+ current_sched_info to use it.
+ (enum reg_pending_barrier_mode): Move to sched-int.h.
+ (h_d_i_d): New variable. Initialize to NULL.
+ ({true, output, anti, spec, forward}_dependency_cache): Initialize
+ to NULL.
+ (estimate_dep_weak): Remove static declaration.
+ (sched_has_condition_p): New function. Adjust users of
+ sched_get_condition to use it instead.
+ (conditions_mutex_p): Add arguments indicating which conditions are
+ reversed. Use them.
+ (sched_get_condition_with_rev): Rename from sched_get_condition. Add
+ argument to indicate whether returned condition is reversed. Do not
+ generate new rtx when condition should be reversed; indicate it by
+ setting new argument instead.
+ (add_dependence_list_and_free): Add deps parameter.
+ Update all users. Do not free dependence list when
+ deps context is readonly.
+ (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
+ contexts.
+ (remove_from_dependence_list, remove_from_both_dependence_lists): New.
+ (remove_from_deps): New. Use the above functions.
+ (cur_insn, can_start_lhs_rhs_p): New static variables.
+ (add_or_update_back_dep_1): Initialize present_dep_type.
+ (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
+ haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
+ haifa_note_dep): New functions implementing dependence hooks for
+ the Haifa scheduler.
+ (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
+ note_dep): New functions.
+ (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
+ functions.
+ (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
+ (free_deps): Initialize deps->reg_last.
+ (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
+ sched_analyze_insn): Update to use dependency hooks infrastructure
+ and readonly contexts.
+ (deps_analyze_insn): New function. Move part of logic from ...
+ (sched_analyze): ... here. Also move some logic to ...
+ (deps_start_bb): ... here. New function.
+ (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
+ sel_sched_p.
+ (sched_deps_init): New function. Move code from ...
+ (init_dependency_caches): ... here. Remove.
+ (init_deps_data_vector): New.
+ (sched_deps_finish): New function. Move code from ...
+ (free_dependency_caches): ... here. Remove.
+ (init_deps_global, finish_deps_global): Adjust for use with
+ selective scheduling.
+ (get_dep_weak): Move logic to ...
+ (get_dep_weak_1): New function.
+ (ds_merge): Move logic to ...
+ (ds_merge_1): New static function.
+ (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
+ (ds_get_max_dep_weak): New function.
+ * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
+ (n_insns): Rename to rgn_n_insns.
+ (debug_ebb_dependencies): New function.
+ (init_ready_list): Use it.
+ (begin_schedule_ready): Use sched_init_only_bb.
+ (ebb_print_insn): Indicate when an insn starts a new cycle.
+ (contributes_to_priority, compute_jump_reg_dependencies,
+ add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
+ (add_block1): Remove to ebb_add_block.
+ (ebb_sched_deps_info, ebb_common_sched_info): New variables.
+ (schedule_ebb): Initialize them. Use remove_notes instead of
+ rm_other_notes. Use haifa_local_init/finish.
+ (schedule_ebbs): Use haifa_sched_init/finish.
+ * sched-int.h: Include vecprim.h, remove rtl.h.
+ (struct ready_list): Delete declaration.
+ (sched_verbose_param, enum sched_pass_id_t,
+ bb_vec_t, insn_vec_t, rtx_vec_t): New.
+ (struct sched_scan_info_def): New structure.
+ (sched_scan_info, sched_scan, sched_init_bbs,
+ sched_init_luids, sched_finish_luids, sched_extend_target,
+ haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
+ (struct common_sched_info_def): New.
+ (common_sched_info, haifa_common_sched_info,
+ sched_emulate_haifa_p): Declare.
+ (sel_sched_p): New.
+ (sched_luids): Declare.
+ (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
+ (sched_max_luid, insn_luid): Declare.
+ (note_list, remove_notes, restore_other_notes, bb_note): Declare.
+ (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
+ print_insn, print_pattern, print_value, haifa_classify_insn,
+ sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
+ setup_sched_dump, sched_init, sched_finish,
+ sel_insn_is_speculation_check): Export.
+ (struct ready_list): Move from haifa-sched.c.
+ (ready_try, ready, max_issue): Export.
+ (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
+ sched_init_only_bb, sched_split_block, sched_split_block_1,
+ sched_create_empty_bb, sched_create_empty_bb_1,
+ sched_create_recovery_block, sched_create_recovery_edges): Export.
+ (enum reg_pending_barrier_mode): Export.
+ (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
+ (deps_t): New.
+ (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
+ print_insn field. Move add_block and fix_recovery_cfg to
+ common_sched_info_def. Move compute_jump_reg_dependencies,
+ use_cselib ...
+ (struct sched_deps_info_def): ... this new structure.
+ (sched_deps_info): Declare.
+ (struct spec_info_def): Remove weakness_cutoff, add
+ data_weakness_cutoff and control_weakness_cutoff.
+ (spec_info): Declare.
+ (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
+ dep_count field.
+ (struct haifa_insn_data): Rename to struct _haifa_insn_data.
+ (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
+ (current_sched_info): Change type to struct haifa_sched_info.
+ (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
+ (h_d_i_d): New variable.
+ (HDID): New accessor macro.
+ (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
+ (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
+ and HDID.
+ (IS_SPECULATION_CHECK_P): Update for selective scheduler.
+ (enum SCHED_FLAGS): Update for selective scheduler.
+ (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
+ (init_dependency_caches, free_dependency_caches): Delete declarations.
+ (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
+ estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
+ ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
+ sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
+ haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
+ ds_to_dt): Export.
+ (rm_other_notes): Delete declaration.
+ (schedule_block): Remove one argument.
+ (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
+ ready_element, ready_lastpos, sched_extend_ready_list,
+ sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
+ concat_note_lists): Export.
+ (struct region): Move from sched-rgn.h.
+ (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
+ RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
+ BLOCK_TO_BB, CONTAINING_RGN): Export.
+ (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
+ (current_nr_blocks, current_blocks, target_bb): Likewise.
+ (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
+ sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
+ sched_rgn_local_init, extend_regions,
+ rgn_make_new_region_out_of_new_block, compute_priorities,
+ debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
+ extend_rgns, deps_join rgn_setup_common_sched_info,
+ rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
+ dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
+ (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
+ increase_insn_priority): Likewise.
+ * sched-rgn.c: Include sel-sched.h.
+ (ref_counts): New static variable. Use it ...
+ (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
+ (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
+ (sched_is_disabled_for_current_region_p): Delete static declaration.
+ (struct region): Move to sched-int.h.
+ (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
+ ebb_head): Define and initialize.
+ (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
+ BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
+ BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
+ sched-int.h.
+ (find_single_block_region): Add new argument to indicate that EBB
+ regions should be constructed.
+ (debug_live): Delete declaration.
+ (current_nr_blocks, current_blocks, target_bb):
+ Remove static qualifiers.
+ (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
+ declaration.
+ (init_regions): Delete declaration.
+ (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
+ rgn_estimate_number_of_insns): New.
+ (too_large): Use estimate_number_of_insns.
+ (haifa_find_rgns): New. Move the code from ...
+ (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
+ (free_trg_info): New.
+ (compute_trg_info): Allocate candidate tables here instead of ...
+ (init_ready_list): ... here.
+ (rgn_print_insn): Use const_rtx.
+ (contributes_to_priority, extend_regions): Delete static declaration.
+ (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
+ (add_block1): Rename to rgn_add_block.
+ (debug_rgn_dependencies): Delete static qualifier.
+ (new_ready): Use sched_deps_info. Simplify.
+ (rgn_common_sched_info, rgn_const_sched_deps_info,
+ rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
+ New.
+ (region_sched_info): Rename to rgn_const_sched_info.
+ (deps_join): New, extracted from ...
+ (propagate_deps): ... here.
+ (compute_block_dependences, debug_dependencies): Update for selective
+ scheduling.
+ (free_rgn_deps, compute_priorities): New functions.
+ (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
+ sched_rgn_compute_dependencies): New functions.
+ (schedule_region): Use them.
+ (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
+ rgn_setup_common_sched_info, rgn_setup_sched_infos):
+ New functions.
+ (schedule_insns): Call new functions that were split out.
+ (rgn_make_new_region_out_of_new_block): New.
+ (get_rgn_sched_max_insns_priority): New.
+ (rest_of_handle_sched, rest_of_handle_sched2): Call selective
+ scheduling when appropriate.
+ * sched-vis.c: Include insn-attr.h.
+ (print_value, print_pattern): Make global.
+ (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
+ * target-def.h (TARGET_SCHED_ADJUST_COST_2,
+ TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
+ TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
+ TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
+ TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
+ hooks. Initialize them to 0.
+ (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
+ * target.h (struct gcc_target): Add them. Rename gen_check field to
+ gen_spec_check.
+ * flags.h (sel_sched_switch_set): Declare.
+ * opts.c (sel_sched_switch_set): New variable.
+ (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
+ pipelining is disabled from command line.
+ (common_handle_option): Record whether selective scheduling is
+ requested from command line.
+ * doc/invoke.texi: Document new flags and parameters.
+ * doc/tm.texi: Document new target hooks.
+ * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
+ ia64_gen_check.
+ (dfa_state_size): Do not declare locally.
+ * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
+ * config/rs6000/rs6000.c (rs6000_init_sched_context,
+ rs6000_alloc_sched_context, rs6000_set_sched_context,
+ rs6000_free_sched_context): New functions.
+ (struct _rs6000_sched_context): New.
+ (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
+ scheduling.
+ (rs6000_sched_finish): Do not run for selective scheduling.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * frv.c (frv_rtx_costs): Update forward declaration.
+ * spu.c (spu_rtx_costs): Likewise.
+ * pdp11.c: Include df.h
+ (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
+ * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
+ (m68hc11_rtx_costs_1): Fix call of rtx_cost.
+ * iq2000.c (iq2000_address_cost): Add speed argument.
+ (iq2000_rtx_costs): Likewise.
+ * mn10300.c (mn10300_address_cost_1): Remove speed argument;
+ update call of mn10300_address_cost.
+ * mcore.c: Include df.h
+ (mcore_rtx_costs): Update prototype.
+ * score3.c: Include df.h
+ (score3_rtx_costs): Remove speed argument.
+ * score7.c: Include df.h
+ (score7_address_cost): Remove speed argument.
+ * score-protos.h (score_address_cost): Update prototype.
+ * score.c: Include df.h
+ (score_rtx_costs): Update call of costs functions.
+ * v850.c (v850_rtx_costs): Add bool argument.
+
+2008-08-31 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
+
+2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
+ * config/i386/gthr-win32.c (__gthread_setspecific): Same.
+
+2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * mkmap-flat.awk: Add option pe_dll.
+ * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
+ * config/i386/t-cygwin (SHLIB_LC): Add.
+ * config/i386/t-mingw32 (SHLIB_LC): Add.
+ * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
+ (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
+ (LINK_SPEC): Support libgcc_s.
+ (LIBGCC_SPEC): Support libgcc_s.
+ (LIBGCC_SONAME): New.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
+ mistakely had old version of patch.
+
+ * ipa-cp.c (ipcp_need_original_clone_p): Remove.
+ (ipcp_estimate_growth): New.
+ (ipcp_insert_stage): Use ipcp_estimate_growth.
+ * profile.c (branch_prob): When reading failed, do not consider
+ profile as read.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
+ loop is optimized for speed.
+
+2008-08-31 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37289
+ * fold-const.c (fold_binary): Retain conversions in folding
+ ~A + 1 to -A.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * postreload-gcse.c (eliminate_partially_redundant_loads):
+ Use optimize_bb_for_size_p.
+ * predict.c (maybe_hot_frequency_p): Make inline.
+ (maybe_hot_count_p): Break out from ...
+ (maybe_hot_bb_p): ... this one.
+ (maybe_hot_edge_p): Simplify.
+ * basic-block.h (probably_cold_bb_p): Remove.
+
+2008-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37168
+ * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
+ prototype.
+ * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
+ * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
+ Also split V4SFmode.
+ * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
+ vector float modes.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (PROB_VERY_LIKELY): Make small enough so things
+ become cold.
+ * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
+
+2008-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37287
+ * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
+ add source coords.
+
+ * dwarf2out.c (native_encode_initializer): Subtract min_index for
+ non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * sparc.h (BRANCH_COST): Fix macro definition.
+ * avr.c (avr_operand_rtx_cost): Add speed argument.
+ (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
+
+2008-08-31 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
+ types instead of operands. Re-instantiate verifying of
+ binary expression operands.
+
+2008-08-30 Jan Hubicka <jh@suse.cz>
+
+ * fwprop.c (should_replace_address): Add speed attribute.
+ (PR_OPTIMIZE_FOR_SPEED): New flag.
+ (propagate_rtx_1): Use it.
+ (propagate_rtx): Set it.
+ (try_fwprop_subst): Update call of rtx_costs.
+ (forward_propagate_and_simplify): LIkewise.
+ * hooks.c (hook_int_rtx_bool_0): New
+ (hook_bool_rtx_int_int_intp_false): Replace by ...
+ (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
+ * hooks.h (hook_int_rtx_bool_0): New
+ (hook_bool_rtx_int_int_intp_false): Replace by ...
+ (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
+ * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
+ (prepare_cmp_insn): UPdate call of rtx_cost.
+ * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
+ (reload_cse_simplify_operands): Update call of rtx_cost.
+ (reload_cse_move2add): call of rtx_cost.
+ * target.h (struct gcc_target): Update rtx_costs and address_costs.
+ * rtlanal.c (rtx_cost): Add speed argument.
+ (address_cost): Add speed argument
+ (default_address_cost): Likewise.
+ (insn_rtx_cost): Likewise.
+ * cfgloopanal.c (seq_cost): Add speed argument.
+ (target_reg_cost, target_spill_cost): Turn to array.
+ (init_set_costs): Update for speed.
+ (estimate_reg_pressure_cost): Add speed argument.
+ * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
+ * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
+ * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
+ (seq_cost): Add speed argument.
+ (computation_cost): Add speed arugment.
+ (add_cost, multiply_by_const, get_address_cost): add speed argument.
+ (force_expr_to_var_cost): Update for profile info.
+ (force_var_cost): Likewise.
+ (split_address_cost): Likewise.
+ (ptr_difference_cost): Likewise.
+ (difference_cost): Likewise.
+ (get_computation_cost_at): Likewise.
+ (determine_iv_cost): Likewise.
+ (ivopts_global_cost_for_size): Likewise.
+ (rewrite_use_address): Likewise.
+ (tree_ssa_iv_optimize_loop): Initialize speed field.
+ * cse.c (optimize_this_for_speed_p): New static var.
+ (notreg_cost): Update call of rtx_cost.
+ (cse_extended_basic_block): set optimize_this_for_speed_p.
+ * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
+ (noce_try_cmove_arith): Likewise.
+ (noce_try_sign_mask): LIkewise.
+ * expr.c (compress_float_constant): Update rtx_cost calls.
+ * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
+ argument.
+ (addr_to_parts): Likewise.
+ (create_mem_ref): Likewise.
+ * dse.c (find_shift_sequence): Add speed argument.
+ (replace_read): Update call.
+ * calls.c (precompute_register_parameters): Update call of rtx_cost.
+ * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
+ * neg_cost, shift_cost, shiftadd_cost,
+ shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
+ mul_highpart_cost): Increase dimension.
+ (init_expmed): Initialize for both size and speed.
+ (expand_shift): Use profile.
+ (synth_mult): Use profile.
+ (choose_mult_variant): Use profile.
+ (expand_mult): Use profile.
+ (expand_mult_highpart_optab): Use profile.
+ (expand_mult_highpart): Use profile.
+ (expand_smod_pow2): Use profile.
+ (expand_divmod): Use profile.
+ * simplify-rtx.c (simplify_binary_operation_1): Update call of
+ rtx_cost.
+ * loop-invariant.c (create_new_invariant): Use profile.
+ (gain_for_invariant): Add speed parameter.
+ (best_gain_for_invariant): Likewise.
+ (find_invariants_to_move): Likewise.
+ (move_single_loop_invariants): Set it.
+ * target-def.h (TARGET_RTX_COSTS): Use hook.
+ * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
+ (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
+ * output.h (default_address_cost): Update prototype.
+ * combine.c (optimize_this_for_speed_p): New static var.
+ (combine_validate_cost): Update call of rtx_cost.
+ (combine_instructions): Set optimize_this_for_speed_p.
+ (expand_compound_operation): Update call of rtx_cost.
+ (make_extraction):Update call of rtx_cost.
+ (force_to_mode):Update call of rtx_cost.
+ (distribute_and_simplify_rtx):Update call of rtx_cost.
+ * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
+ (estimate_reg_pressure_cost): Update prototype.
+ * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
+ * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
+ Remove.
+ * config/alpha/alpha.c (alpha_rtx_costs): Update.
+ (alpha_rtx_costs): Update.
+ * config/frv/frv.c (frv_rtx_costs): Update.
+ * config/s390/s390.c (s390_rtx_costs): Update.
+ * config/m32c/m32c.c (m32c_memory_move_cost): Update.
+ (m32c_rtx_costs): Update.
+ * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
+ (spu_rtx_costs): Update.
+ * config/sparc/sparc.c (sparc_rtx_costs): Update.
+ * config/m32r/m32r.c (m32r_rtx_costs): Update.
+ * config/i386/i386.c (:ix86_address_cost): Update.
+ (ix86_rtx_costs): Update.
+ * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
+ * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
+ * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
+ * config/crx/crx.c (crx_address_cost): Update.
+ * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
+ * config/stormy16/stormy16.c
+ (xstormy16_address_cost, xstormy16_rtx_costs): Update.
+ * config/m68hc11/m68hc11.c
+ (m68hc11_address_cost, m68hc11_rtx_costs): Update.
+ * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
+ * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
+ Update.
+ * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
+ Update
+ * config/ia64/ia64.c (ia64_rtx_costs): Update.
+ * config/m68k/m68k.c (m68k_rtx_costs): Update.
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
+ * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
+ * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
+ (mcore_rtx_costs): update.
+ * config/score/score3.c (score3_rtx_costs): Update.
+ * config/score/score7.c (score7_rtx_costs): Update.
+ * config/score/score3.h (score3_rtx_costs):Update.
+ * config/score/score7.h (score7_rtx_costs): Update.
+ * config/score/score.c (score_rtx_costs): Update.
+ * config/arm/arm.c (arm_address_cost): Update.
+ (arm_rtx_costs_1): Update.
+ (arm_rtx_costs_1): Update.
+ (arm_size_rtx_costs): Update.
+ (arm_size_rtx_costs): Update.
+ (arm_size_rtx_costs): Update.
+ (arm_xscale_rtx_costs): Update.
+ (arm_thumb_address_cost): Update.
+ * config/pa/pa.c (hppa_address_cost): Update.
+ * config/mips/mips.c (mips_rtx_costs): Update.
+ * config/vax/vax.c (vax_address_cost): Update.
+ * config/h8300/h8300.c (h8300_shift_costs): Update.
+ (h8300_rtx_costs): Update.
+ * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
+ (v850_rtx_costs): Update.
+ * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
+ * config/bfin/bfin.c
+ (bfin_address_cost): Update.
+ (bfin_rtx_costs): Update.
+ * stmt.c (lshift_cheap_p): Update.
+
+2008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36444
+ * expmed.c (extract_bit_field_1): Check the mode size to make
+ sure the vector modes have the same size.
+
+2008-08-29 Michael Meissner <gnu@the-meissners.org>
+
+ * dojump.c (top level): Include basic-block.h to declare
+ optimize_insn_for_speed_p
+
+ * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
+
+ * opts.h (CL_SAVE): New option class for marking options that are
+ target specific options usable in the target attribute.
+ (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
+
+ * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
+ can easily find the target specific options that are safe to use
+ in the attribute or pragma.
+
+ * attribs.c (decl_attributes): Change #pragma GCC option to
+ #pragma GCC target, and attribute((option(...))) to
+ attribute((target(...))).
+
+ * doc/extend.texi (target attribute): Change from option
+ attribute. Delete push/pop/reset.
+ (#pragma GCC target): Change from #pragma GCC option. Delete
+ push/pop/reset.
+ (#pragma GCC push_options): Document new pragma.
+ (#pragma GCC pop_options): Document new pragma.
+ (#pragma GCC reset_options): Document new pragma.
+
+ * targhooks.c (default_target_option_valid_attribute_p): Add
+ warning about port not supporting target attributes.
+ (default_target_option_pragma_parse): New function, warn about
+ #pragma GCC target not being supported.
+
+ * targhooks.h (default_target_option_pragma_parse): Add
+ declaration.
+
+ * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
+ TI_CURRENT_OPTION_PRAGMA.
+ (current_target_pragma): Rename from current_option_pragma.
+
+ * target.h (struct target_option): Delete booleans for changing
+ the optimization level on hot/cold functions. Change signature of
+ pragma_parse hook to take a second tree.
+
+ * c-tree.h (c_builtin_function_ext_scope): Add declaration.
+
+ * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
+ that the declaration is done at global scope.
+
+ * langhooks.c (add_builtin_function_common): Move most of the code
+ from add_builtin_function here, calling the hook passed in.
+ (add_builtin_function): Call add_builtin_function_common with
+ standard builtin hook.
+ (add_builtin_function_ext_scope): New function to add builtins to
+ global scope.
+
+ * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
+ hook.
+ (add_builtin_function_ext_scope): Add declaration.
+
+ * c-pragma.c (handle_pragma_target): Rename from
+ handle_pragma_option, #pragma GCC option is now #pragma GCC
+ target. Move warning about port not supporting target options to
+ default pragma parse hook. Remove push/pop/reset from this
+ pragma.
+ (handle_pragma_optimize): Remove push/pop/reset from this pragma.
+ (option_stack): Delete static variable.
+ (optimize_stack): Ditto.
+ (optons_stack): New stack of saved target and optimization
+ options.
+ (handle_pragma_push_options): New function to handle pushing both
+ target and optimization options.
+ (handle_pragma_pop_options): New function to handle popping both
+ target and optimization options.
+ (handle_pragma_reset_options): New function to handle resetting
+ both target and optimization options to their initial state.
+ (init_pragma): Rename handle_pragma_option to
+ handle_pragma_target. Add support for push_options, pop_options,
+ and reset_options pragmas.
+
+ * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
+ default_target_option_pragma_parse.
+ (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
+ default_target_option_valid_attribute_p.
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+ (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+ (TARGET_OPTION_HOOKS): Delete the fields for whether to change
+ optimization level on hot/cold functions.
+
+ * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
+ if the caller and callee have different optimization levels.
+
+ * c-common.c (handle_target_attribute): Rename from
+ handle_option_attribute, attribute((option(...))) is now
+ attribute((target(...))). Move warning if the port does not
+ support target attributes to the default hook.
+ (handle_hot_attribute): Delete code to change the optimization
+ level of hot functions.
+ (handle_cold_attribute): Ditto.
+
+ * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
+ argument that is the binary tree options to use if there are no
+ arguments. Call ix86_valid_target_attribute_tree instead of
+ ix86_valid_option_attribute_tree.
+ (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
+ (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
+ ix86_pragma_option_parse.
+
+ * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
+ Rename from ix86_valid_option_attribute_tree.
+
+ * config/i386/i386.c (ix86_add_new_builtins): New function to add
+ new builtins when the ISA changes.
+ (ix86_valid_target_attribute_tree): Rename from
+ ix86_valid_option_attribute_tree. Change callers. If the
+ function specified optimization options, use those as the starting
+ point before setting up the target attributes. If the
+ optimization options were changed in the course of setting the
+ target attributes, record the new optimization options.
+ (ix86_valid_target_attribute_tree_inner_p): Rename from
+ ix86_valid_option_attribute_tree_inner_p. Change callers. Call
+ ix86_add_new_builtins if the ISA changed.
+ (ix86_valid_target_attribute_p): Rename from
+ ix86_valid_option_attribute_p. Change callers.
+ (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
+ __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
+ as delayed builtin functions.
+ (struct builtin_isa): New structure to record builtin functions
+ that should be delayed until the ISA for that function is used.
+ (ix86_builtins_isa): Change from int to struct to track builtin
+ functions we want to declare at some point.
+ (def_builtin): If the front end can delay defining the builtin
+ functions, don't create builtins for ISAs not part of the default
+ options.
+ (def_builtin_const): Ditto.
+ (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
+ __builtin_ia32_pcmov_v2di to be different builtin functions.
+ (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
+ a structure instead of an int.
+ (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
+ ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+ (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+
+ * config/ia64/ia64.h
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+ (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+
+ * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
+ hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
+ (LANG_HOOKS_INITIALIZER): Add
+ LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
+
+2008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/37270
+ * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
+ the reload address with the index register for SFmode
+ access with a displacement.
+
+2008-08-30 Jan Hubicka <jh@suse.cz>
+
+ * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
+ * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
+ (note-if_info): Add BRANCH_COST.
+ (noce_try_store_flag_constants, noce_try_addcc,
+ noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
+ noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
+ find_if_case_2): Use computed branch cost.
+ * expr.h (BRANCH_COST): Update default.
+ * predict.c (predictable_edge_p): New function.
+ * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
+ Update BRANCH_COST call.
+ * basic-block.h (predictable_edge_p): Declare.
+ * config/alpha/alpha.h (BRANCH_COST): Update.
+ * config/frv/frv.h (BRANCH_COST): Update.
+ * config/s390/s390.h (BRANCH_COST): Update.
+ * config/spu/spu.h (BRANCH_COST): Update.
+ * config/sparc/sparc.h (BRANCH_COST): Update.
+ * config/m32r/m32r.h (BRANCH_COST): Update.
+ * config/i386/i386.h (BRANCH_COST): Update.
+ * config/i386/i386.c (ix86_expand_int_movcc): Update use of
+ BRANCH_COST.
+ * config/sh/sh.h (BRANCH_COST): Update.
+ * config/pdp11/pdp11.h (BRANCH_COST): Update.
+ * config/avr/avr.h (BRANCH_COST): Update.
+ * config/crx/crx.h (BRANCH_COST): Update.
+ * config/xtensa/xtensa.h (BRANCH_COST): Update.
+ * config/stormy16/stormy16.h (BRANCH_COST): Update.
+ * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
+ * config/iq2000/iq2000.h (BRANCH_COST): Update.
+ * config/ia64/ia64.h (BRANCH_COST): Update.
+ * config/rs6000/rs6000.h (BRANCH_COST): Update.
+ * config/arc/arc.h (BRANCH_COST): Update.
+ * config/score/score.h (BRANCH_COST): Update.
+ * config/arm/arm.h (BRANCH_COST): Update.
+ * config/pa/pa.h (BRANCH_COST): Update.
+ * config/mips/mips.h (BRANCH_COST): Update.
+ * config/vax/vax.h (BRANCH_COST): Update.
+ * config/h8300/h8300.h (BRANCH_COST): Update.
+ * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
+ * doc/invoke.texi (predictable-branch-cost-outcome): Document.
+ * doc/tm.texi (BRANCH_COST): Update.
+
+2008-08-30 Samuel Tardieu <sam@rfc1149.net>
+
+ PR target/37283
+ * config/arm/arm.c (arm_optimization_options): Set
+ flag_section_anchors to 2 instead of 1 to distinguish it from
+ -fsection-anchors given explicitely on the command line.
+
+2008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
+ final insn of a split.
+
+2008-08-30 Jan Hubicka <jh@suse.cz>
+
+ * postreload-gcse.c (gate_handle_gcse2): Disable for functions
+ optimized for speed.
+ * final.c (compute_alignments): Use optimize_bb_for_size_p.
+ * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
+ * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
+ flag_gcse_after_reload_set): New static vars.
+ (common_handle_option): Enable those flags for profile-use.
+ (decode_options): Remove optimize_size flags that are handled
+ on higher granuality.
+ * tree-vectorizer.c (vectorize_loops): Use
+ optimize_loop_nest_for_speed_p.
+ * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
+ * tree-predcom.c (tree_predictive_commoning): Use
+ optimize_loop_for_speed_p.
+ * varasm.c (assemble_start_function): Use
+ optimize_function_for_speed_p.
+ * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
+ * predict.c (optimize_loop_for_speed_p): Fix walk.
+
+2008-08-30 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
+ functions.
+ (cgraph_decide_inlining_of_small_function): Use edge->count to detect
+ profile presence locally.
+
+2008-08-29 Joseph Myers <joseph@codesourcery.com>
+
+ PR bootstrap/37086
+ * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
+ versions before 4.0.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (insert_init_stmt): Insert sequence even when
+ not in SSA form.
+
+2008-08-29 Jeff Law <law@redhat.com>
+
+ * mn10300.c (mn10300_secondary_reload_class): We need secondary
+ reloads for AM33-2 if IN is a pseudo with an equivalent memory
+ location and class is an FP register.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * see.c (see_merge_one_def_extension): Silence used uninitialized
+ warning.
+ * matrix-reorg.c (check_allocation_function): Likewise.
+ * config/i386/driver-i386.c (detect_caches_amd): Likewise.
+
+2008-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37261
+ * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
+ compute new & and | in type rather than TREE_TYPE (arg0).
+
+ * dwarf2out.c (fortran_common): Update comment.
+ (gen_variable_die): Swap com_die and var_die variables in Fortran
+ COMMON block handling code.
+
+ * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
+
+ * dwarf2out.c (gen_const_die): New function.
+ (size_of_die, value_format, output_die): Output larger
+ dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
+ (native_encode_initializer): New function.
+ (tree_add_const_value_attribute): Call it.
+ (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
+
+ * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
+ DECL_BY_REFERENCE decls don't pass TREE_READONLY and
+ TREE_THIS_VOLATILE to add_type_attribute.
+
+ * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
+ types.
+ (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
+ types.
+
+ * dwarf2out.c (loc_by_reference): New function.
+ (add_location_or_const_value_attribute): Use it.
+
+ PR fortran/23057
+ * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
+ as DW_TAG_variable children of DW_TAG_common_block rather than
+ DW_TAG_member children. Put DW_AT_external to individual
+ DW_TAG_variable DIEs, not to DW_TAG_common_block.
+
+ * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
+ loc_descriptor_from_tree_1.
+
+ PR fortran/29635
+ PR fortran/23057
+ * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
+ arguments to imported_module_or_decl.
+ (debug_nothing_tree_tree): Removed.
+ (debug_nothing_tree_tree_tree_bool): New prototype.
+ * debug.c (do_nothing_debug_hooks): Adjust.
+ (debug_nothing_tree_tree): Removed.
+ (debug_nothing_tree_tree_tree_bool): New function.
+ * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
+ (gen_variable_die): Put all common vars for the
+ same COMMON block under one DW_TAG_common_block.
+ (declare_in_namespace): Return new context_die, for Fortran
+ return the module DIE instead of adding extra declarations into
+ the namespace.
+ (gen_type_die_with_usage): Adjust declare_in_namespace caller.
+ (gen_namespace_die): If is_fortran (), generate DW_TAG_module
+ instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
+ DW_AT_declaration.
+ (dwarf2out_global_decl): Don't skip Fortran global vars.
+ (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
+ (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
+ If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
+ DW_TAG_imported_declaration as child of previous
+ DW_TAG_imported_module.
+ * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
+ * sdbout.c (sdb_debug_hooks): Likewise.
+ * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
+
+ * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
+ * ipa-cp.c (n_cloning_candidates): New static variable.
+ (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
+ (ipcp_print_all_lattices): Improve debug output.
+ (ipcp_cloning_candidate_p): New function.
+ (ipcp_initialize_node_lattices): Use it.
+ (ipcp_init_stage): Do only analyzis here; prettier debug output.
+ (ipcp_propagate_stage): Prettier debug output.
+ (ipcp_iterate_stage): Initialize latices here; prettier debug output.
+ (ipcp_print_all_structures): Remove.
+ (ipcp_need_redirect_p): Test !n_cloning_candidates.
+ (ipcp_insert_stage): Prettier debug output; call
+ cgraph_remove_unreachable_nodes before propagating.
+ (pass_ipa_cp): Schedule function removal pass.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
+ debug output.
+ (cgraph_maybe_hot_edge_p): Move to ...
+ * predict.c (cgraph_maybe_hot_edge_p) ... here.
+ * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
+ (common_handle_option): Set them; enable ipa-cp when profiling.
+ * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
+ (ipa_print_all_jump_functions): Likewise.
+ (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
+ (ipa_print_node_params, ipa_print_all_params): New.
+ * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
+ ipa_print_all_param_flags): Remove.
+ (ipa_print_node_params, ipa_print_all_params): New.
+
+2008-08-29 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
+ change from 2008-04-03.
+ * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
+
+2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37251
+ * ira-color.c (push_allocnos_to_stack): Truncate
+ removed_splay_allocno_vec.
+
+2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37243
+ * ira-color (ira_fast_allocation): Don't assign hard registers to
+ global allocnos.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37278
+ * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
+ for cold internal loops.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (create_variable_info_for): Do not
+ create fields for heap vars or vars with a noalias state.
+ For NO_ALIAS_ANYTHING variables add a self-constraint, not one
+ from ESCAPED.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ * common.opt (ftree-store-ccp): Mark as preserved for
+ backward compatibility.
+ * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
+ * tree-pass.h (pass_store_ccp): Remove.
+ * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
+ (first_vdef): Remove declaration.
+ (get_value_loaded_by): Likewise.
+ * tree-ssa-ccp.c (do_store_ccp): Remove.
+ (get_default_value): Simplify as do_store_ccp is always false
+ now. Do not initialize mem_ref.
+ (set_value_varying): Likewise.
+ (canonicalize_float_value): Likewise.
+ (set_lattice_value): Likewise.
+ (likely_value): Likewise.
+ (surely_varying_stmt_p): Likewise.
+ (ccp_initialize): Likewise.
+ (ccp_lattice_meet): Likewise.
+ (ccp_visit_phi_node): Likewise.
+ (ccp_fold): Likewise.
+ (evaluate_stmt): Likewise.
+ (visit_assignment): Likewise.
+ (ccp_visit_stmt): Likewise.
+ (execute_ssa_ccp): Fold into ...
+ (do_ssa_ccp): ... this.
+ (do_ssa_store_ccp): Remove.
+ (gate_store_ccp): Likewise.
+ (pass_store_ccp): Likewise.
+ * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
+ initialize mem_ref.
+ * tree-ssa-propagate.c (first_vdef): Remove.
+ (get_value_loaded_by): Likewise.
+ (replace_vuses_in): Likewise.
+ (substitute_and_fold): Do not call replace_vuses_in.
+ * opts.c (decode_options): Do not set flag_tree_store_ccp.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37236
+ * tree-ssa-structalias.c (intra_create_variable_infos): Mark
+ PARAM_NOALIAS tags with is_heapvar.
+ * tree-ssa-operands.c (access_can_touch_variable): Offset
+ based tests do not apply for heapvars. Fix offset test.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
+ (-fipa-cp-clone): Enabled by default at -O3.
+ * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
+ make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * tree.c (build_function_type_skip_args,
+ build_function_decl_skip_args): New functions.
+ * tree.h (build_function_type_skip_args,
+ build_function_decl_skip_args): Declare.
+ * gimple.c (giple_copy_call_skip_args): New function.
+ (giple_copy_call_skip_args): Declare.
+
+ * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
+ * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
+ (ipcp_node_modifiable_p): ... this one; use
+ tree_versionable_function_p.
+ (ipcp_create_replace_map): Improve debug output.
+ (ipcp_need_redirect_p): Return false when not clonning.
+ (ipcp_update_callgraph): Skip args.
+ (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
+ skip args.
+ * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
+ (save_inline_function_body): Update call of tree_function_versioning.
+ * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
+ * tree-inline.c (copy_arguments_for_versioning): Add skip_args
+ argument.
+ (tree_function_versioning): Likewise.
+ * tree-inline.h (tree_function_versioning): Update prototype.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * loop-unswitch.c (unswitch_single_loop): Use
+ optimize_loop_for_speed_p.
+ * tree-ssa-threadupdate.c (mark_threaded_blocks):
+ Use optimize_function_for_size_p.
+ * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
+ * postreload-gcse.c (eliminate_partially_redundant_load):
+ Use optimize_bb_for_size_p.
+ * value-prof.c (gimple_divmod_fixed_value_transform,
+ gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
+ gimple_stringops_transform): Use optimize_bb_for_size_p.
+ * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
+ * final.c (compute_alignments): Use optimize_function_for_size_p.
+ * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
+ (fold_builtin_strcpy, fold_builtin_fputs): Use
+ optimize_function_for_size_p.
+ * fold-const.c (tree_swap_operands_p): Use
+ optimize_function_for_size_p.
+ * recog.c (relax_delay_slots): Likewise.
+ * tree-ssa-math-opts.c (replace_reciprocal):
+ Use optimize_bb_for_speed_p.
+ (execute_cse_reciprocals): Use optimize_bb_for_size_p.
+ * ipa-inline.c (cgraph_decide_recursive_inlining): Use
+ optimize_function_for_size_p.
+ (cgraph_decide_inlining_of_small_function): Use
+ optimize_function_for_size_p.
+ * global.c (find_reg): Use optimize_function_for_size_p.
+ * opts.c (decode_options): Do not clear flag_tree_ch,
+ flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
+ flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
+ work it out from profile.
+ * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
+ optimize_loop_for_speed_p.
+ * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+ Constify argument.
+ (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
+ * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
+ * tree-eh.c (decide_copy_try_finally): Use
+ optimize_function_for_size_p.
+ * local-alloc.c (block_alloc): Pass BB pointer.
+ (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
+ * gcse.c (gcse_main): Use optimize_function_for_size_p.
+ * loop-unroll.c (decide_unrolling_and_peeling):
+ Use optimize_loop_for_size_p.
+ (decide_peel_completely): Likewise.
+ * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
+ optimize_loop_for_size_p.
+ (vect_enhance_data_refs_alignment): Likewise.
+ * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
+ (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
+ Update call.
+ * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
+ (try_crossjump_bb): Use optimize_bb_for_size_p.
+ * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
+ optimize_loop_for_speed_p.
+ * bb-reorder.c (find_traces_1_round): Likewise.
+ (copy_bb): Use optimize_bb_for_speed_p.
+ (duplicate_computed_gotos): Likewise.
+ * basic-block.h (optimize_loop_nest_for_size_p,
+ optimize_loop_nest_for_speed_p): New.
+ * stmt.c (expand_case): Use optimize_insn_for_size_p.
+
+2008-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * gcov.c (main): Call expandargv.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
+ is not cold.
+ * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+ Constify arguments.
+ (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
+ * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+ Constify.
+ (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (pass_strip_predict_hints): Declare.
+ * predict.c (strip_builtin_expect): Rename to ...
+ (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
+ (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
+ (tree_estimate_probability): Do not strip builtin_expect.
+ (pass_strip_predict_hints): New pass.
+ * tree-inline.c (expand_call_inline): When inlining cold function,
+ predict it as unlikely.
+ * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37207
+ * tree-vrp.c (extract_range_from_binary_expr): Also try
+ to constant fold if only one of the operands is a constant.
+
+2008-08-29 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
+ the same way as SYMBOL_REFs.
+
+2008-08-28 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
+
+2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_BBIT): New macro.
+ * config/mips/mips.md (branch_likely): Remove const. Fix
+ comment formatting.
+ (define_delay for type "branch"): Change to only apply for branch
+ with likely variant.
+ (define_delay for type "branch" and "branch_likely" no). New delay
+ definition.
+ (equality_op): New code iterator.
+ (bbv, bbinv): New code attributes.
+ (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
+ patterns.
+
+2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+ Andrew Pinski <pinskia@gcc.gnu.org>
+
+ PR 18050
+ * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
+
+2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
+ rule that a symbolic constant must be defined and >= 0 for the
+ corresponding facility to be present at compile-time.
+ * gthr-posix.c: Likewise.
+
+2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
+ * config/mips/mips.md (D): New mode attribute.
+ (mulsi3, muldi3): Merge it into ...
+ (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
+ (muldi3_mul3): New pattern.
+ (mulsi3_mult3): Rename to mulsi3_mul3.
+
+2008-08-28 Jan Hubicka <jh@suse.cz>
+
+ * expmed.c (store_bit_field_1): Be prepared for movstrict expander
+ to fail.
+ * predict.c (always_optimize_for_size_p): Rename to ...
+ (optimize_function_for_size): ... this one; make extern.
+ (optimize_function_for_speed_p): New.
+ (optimize_bb_for_size_p, optimize_bb_for_size_p,
+ optimize_edge_for_size_p,optimize_edge_for_size_p,
+ optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
+ * basic-block.h (optimize_function_for_size_p,
+ optimize_function_for_speed_p): Declare.
+ * i386.md (optimize_size checks): Replace them by appropriate
+ predicate.
+ (standard_80387_constant_p, ix86_compute_frame_layout,
+ ix86_expand_epilogue, ix86_decompose_address,
+ print_operand, emit_i387_cw_initialization,
+ inline_memory_move_cost, ix86_pad_returns,
+ ix86_reorg): Replace optimize_size checks.
+
+2008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * rtl.h (simplify_subreg_regno): Declare.
+ * rtlanal.c (simplify_subreg_regno): New function, split out from...
+ * simplify-rtx.c (simplify_subreg): ...here.
+ * reload.c (find_reloads): Use simplify_subreg_regno instead of
+ subreg_offset_representable_p.
+
+2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/30949
+ * c-typeck.c (convert_for_assignment): Give a note describing what
+ was passed and what was expected.
+
+2008-08-28 Joey Ye <joey.ye@intel.com>
+
+ * doc/extend.texi: Document AVX built-in functions.
+ * doc/invoke.texi: Document -mavx.
+
+2008-08-28 H.J. Lu <hongjiu.lu@intel.com>
+ Joey Ye <joey.ye@intel.com>
+ Xuepeng Guo <xuepeng.guo@intel.com>
+
+ * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
+
+ * config/i386/cpuid.h (bit_FMA): New.
+ (bit_XSAVE): Likewise.
+ (bit_OSXSAVE): Likewise.
+ (bit_AVX): Likewise.
+
+ * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
+ define. Use ASM_OUTPUT_AVX_PREFIX.
+
+ * config/i386/gmmintrin.h: New.
+
+ * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
+ (OPTION_MASK_ISA_AVX_SET): New.
+ (OPTION_MASK_ISA_FMA_SET): Likewise.
+ (OPTION_MASK_ISA_AVX_UNSET): Likewise.
+ (OPTION_MASK_ISA_FMA_SET): Likewise.
+ (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
+ (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
+ (pta_flags): Add PTA_AVX and PTA_FMA.
+ (override_options): Handle PTA_AVX and PTA_FMA.
+ (init_cumulative_args): Handle warn_avx.
+ (classify_argument): Return 0 for COImode and OImode. Return
+ 1 and X86_64_AVX_CLASS for 256bit vector types.
+ (examine_argument): Handle X86_64_AVX_CLASS.
+ (construct_container): Likewise.
+ (function_arg_advance_32): Pass OImode and 256bit vector types
+ in AVX register.
+ (function_arg_advance_64): Take a new argument to indicate if a
+ parameter is named. Handle 256bit vector types. Return
+ immediately for unnamed 256bit vector mode parameters.
+ (function_arg_advance): Updated.
+ (function_arg_32): Add comments for TImode. Handle OImode
+ and 256bit vector types.
+ (function_arg_64): Take a new argument to indicate if a
+ parameter is named. Handle 256bit vector types. Return NULL
+ for unnamed 256bit vector mode parameters.
+ (function_arg): Updated.
+ (setup_incoming_varargs_64): Support
+ AVX encoding for *sse_prologue_save_insn.
+ (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
+ (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
+ enabled. For all 1s in 256bit vector modes, return 3 if AVX is
+ enabled, otherwise return -3.
+ (standard_sse_constant_opcode): Handle AVX and 256bit vector
+ modes.
+ (print_reg): Support AVX registers. Handle 'x' and 't'.
+ Handle 'd' to duplicate the operand.
+ (print_operand): Likewise. Also support AVX vector compare
+ instructions.
+ (output_387_binary_op): Support AVX.
+ (output_fp_compare): Likewise.
+ (ix86_expand_vector_move_misalign): Likewise.
+ (ix86_attr_length_vex_default): New.
+ (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
+ IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
+ IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
+ IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
+ IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
+ IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
+ IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
+ IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
+ IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
+ IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
+ IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
+ IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
+ IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
+ IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
+ IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
+ IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
+ IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
+ IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
+ IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
+ IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
+ IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
+ IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
+ IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
+ IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
+ IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
+ IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
+ IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
+ IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
+ IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
+ IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
+ IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
+ IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
+ IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
+ IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
+ IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
+ IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
+ IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
+ IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
+ IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
+ IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
+ IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
+ IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
+ IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
+ IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
+ IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
+ IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
+ IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
+ IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
+ IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
+ IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
+ IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
+ IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
+ IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
+ IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
+ IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
+ IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
+ IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
+ IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
+ IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
+ IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
+ IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
+ IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
+ IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
+ IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
+ and IX86_BUILTIN_MOVMSKPS256,
+ (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
+ V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
+ V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
+ V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
+ V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
+ VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
+ VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
+ VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
+ (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
+ INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
+ INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
+ INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
+ V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
+ V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
+ V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
+ V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
+ V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
+ V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
+ V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
+ V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
+ V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
+ V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
+ V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
+ V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
+ V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
+ V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
+ (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
+ IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
+ IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
+ IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
+ IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
+ IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
+ IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
+ IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
+ IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
+ IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
+ IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
+ IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
+ (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
+ IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
+ IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
+ IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
+ IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
+ IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
+ IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
+ IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
+ IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
+ IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
+ IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
+ IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
+ IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
+ IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
+ IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
+ IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
+ IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
+ IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
+ IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
+ IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
+ IX86_BUILTIN_CMPPS,
+ IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
+ IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
+ IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
+ IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
+ IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
+ IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
+ IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
+ IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
+ IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
+ IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
+ IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
+ IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
+ IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
+ IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
+ IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
+ IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
+ IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
+ IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
+ IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
+ IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
+ IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
+ IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
+ IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
+ IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
+ IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
+ IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
+ IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
+ IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
+ IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
+ IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
+ IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
+ IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
+ IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
+ IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
+ IX86_BUILTIN_MOVMSKPS256.
+ (ix86_init_mmx_sse_builtins): Support AVX builtins.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_special_args_builtin): Likewise.
+ (ix86_hard_regno_mode_ok): Handle AVX modes.
+ (ix86_expand_vector_init_duplicate): Likewise.
+ (ix86_expand_vector_init_one_nonzero): Likewise.
+ (ix86_expand_vector_init_one_var): Likewise.
+ (ix86_expand_vector_init_concat): Likewise.
+ (ix86_expand_vector_init_general): Likewise.
+ (ix86_expand_vector_set): Likewise.
+ (ix86_vector_mode_supported_p): Likewise.
+ (x86_extended_reg_mentioned_p): Check INSN_P before using
+ PATTERN.
+
+ * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+ OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
+
+ * config/i386/i386.h (TARGET_AVX): New.
+ (TARGET_FMA): Likewise.
+ (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
+ (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
+ (VALID_AVX256_REG_MODE): New.
+ (AVX256_VEC_FLOAT_MODE_P): Likewise.
+ (AVX_FLOAT_MODE_P): Likewise.
+ (AVX128_VEC_FLOAT_MODE_P): Likewise.
+ (AVX256_VEC_FLOAT_MODE_P): Likewise.
+ (AVX_VEC_FLOAT_MODE_P): Likewise.
+ (ASM_OUTPUT_AVX_PREFIX): Likewise.
+ (ASM_OUTPUT_OPCODE): Likewise.
+ (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
+ support.
+ (SSE_REG_MODE_P): Allow 256bit vector modes.
+ (ix86_args): Add a warn_avx field.
+
+ * config/i386/i386.md (UNSPEC_PCMP): New.
+ (UNSPEC_VPERMIL): Likewise.
+ (UNSPEC_VPERMIL2): Likewise.
+ (UNSPEC_VPERMIL2F128): Likewise.
+ (UNSPEC_MASKLOAD): Likewise.
+ (UNSPEC_MASKSTORE): Likewise.
+ (UNSPEC_CAST): Likewise.
+ (UNSPEC_VTESTP): Likewise.
+ (UNSPECV_VZEROALL): Likewise.
+ (UNSPECV_VZEROUPPER): Likewise.
+ (XMM0_REG): Likewise.
+ (XMM1_REG): Likewise.
+ (XMM2_REG): Likewise.
+ (XMM3_REG): Likewise.
+ (XMM4_REG): Likewise.
+ (XMM5_REG): Likewise.
+ (XMM6_REG): Likewise.
+ (XMM8_REG): Likewise.
+ (XMM9_REG): Likewise.
+ (XMM10_REG): Likewise.
+ (XMM11_REG): Likewise.
+ (XMM12_REG): Likewise.
+ (XMM13_REG): Likewise.
+ (XMM14_REG): Likewise.
+ (XMM15_REG): Likewise.
+ (prefix): Likewise.
+ (prefix_vex_imm8): Likewise.
+ (prefix_vex_w): Likewise.
+ (length_vex): Likewise.
+ (maxmin): Likewise.
+ (movoi): Likewise.
+ (*avx_ashlti3): Likewise.
+ (*avx_lshrti3): Likewise.
+ (*avx_setcc<mode>): Likewise.
+ (*fop_<mode>_comm_mixed_avx): Likewise.
+ (*fop_<mode>_comm_avx): Likewise.
+ (*fop_<mode>_1_mixed_avx): Likewise.
+ (*fop_<mode>_1_avx): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_ieee_smin<mode>3): Likewise.
+ (*avx_ieee_smax<mode>3): Likewise.
+ (mode): Add OI, V8SF and V4DF.
+ (length): Support VEX prefix.
+ (*cmpfp_i_mixed): Set prefix attribute.
+ (*cmpfp_i_sse): Likewise.
+ (*cmpfp_iu_mixed): Likewise.
+ (*cmpfp_iu_sse): Likewise.
+ (*movsi_1): Support AVX.
+ (*movdi_2): Likewise.
+ (*movdi_1_rex64): Likewise.
+ (*movti_internal): Likewise.
+ (*movti_rex64): Likewise.
+ (*movsf_1): Likewise.
+ (*movdf_nointeger): Likewise.
+ (*movdf_integer_rex64): Likewise.
+ (*movtf_internal): Likewise.
+ (zero_extendsidi2_32): Likewise.
+ (zero_extendsidi2_rex64): Likewise.
+ (*extendsfdf2_mixed): Likewise.
+ (*extendsfdf2_sse): Likewise.
+ (*truncdfsf_fast_mixed): Likewise.
+ (*truncdfsf_fast_sse): Likewise.
+ (*truncdfsf_mixed): Likewise.
+ (fix_trunc<mode>di_sse): Likewise.
+ (fix_trunc<mode>si_sse): Likewise.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
+ (*rcpsf2_sse): Likewise.
+ (*rsqrtsf2_sse): Likewise.
+ (*sqrt<mode>2_sse): Likewise.
+ (sse4_1_round<mode>2): Likewise.
+ (*sse_prologue_save_insn): Disallow REX prefix for AVX.
+ Support AVX. Set length attribute properly for AVX.
+
+ * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
+ (VECTOR_MODES (FLOAT, 32)): Likewise.
+ (VECTOR_MODE (INT, DI, 8)): Likewise.
+ (VECTOR_MODE (INT, HI, 32)): Likewise.
+ (VECTOR_MODE (INT, QI, 64)): Likewise.
+ (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
+ (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
+ (VECTOR_MODE (INT, DI, 4)): Removed.
+ (VECTOR_MODE (INT, SI, 8)): Likewise.
+ (VECTOR_MODE (INT, HI, 16)): Likewise.
+ (VECTOR_MODE (INT, QI, 32)): Likewise.
+ (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
+ (INT_MODE (OI, 32)): Likewise.
+
+ * config/i386/i386.opt (mavx): New.
+ (mfma): Likewise.
+
+ * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
+
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
+ (*mov<mode>_internal_avx): New.
+ (*movv2sf_internal_rex64_avx): Likewise.
+ (*movv2sf_internal_avx): Likewise.
+
+ * config/i386/predicates.md (const_4_to_5_operand): New.
+ (const_6_to_7_operand): Likewise.
+ (const_8_to_11_operand): Likewise.
+ (const_12_to_15_operand): Likewise.
+ (avx_comparison_float_operator): Likewise.
+
+ * config/i386/sse.md (AVX256MODEI): New.
+ (AVX256MODE): Likewise.
+ (AVXMODEQI): Likewise.
+ (AVXMODE): Likewise.
+ (AVX256MODEF2P): Likewise.
+ (AVX256MODE2P): Likewise.
+ (AVX256MODE4P): Likewise.
+ (AVX256MODE8P): Likewise.
+ (AVXMODEF2P): Likewise.
+ (AVXMODEF4P): Likewise.
+ (AVXMODEDCVTDQ2PS): Likewise.
+ (AVXMODEDCVTPS2DQ): Likewise.
+ (avxvecmode): Likewise.
+ (avxvecpsmode): Likewise.
+ (avxhalfvecmode): Likewise.
+ (avxscalarmode): Likewise.
+ (avxcvtvecmode): Likewise.
+ (avxpermvecmode): Likewise.
+ (avxmodesuffixf2c): Likewise.
+ (avxmodesuffixp): Likewise.
+ (avxmodesuffixs): Likewise.
+ (avxmodesuffix): Likewise.
+ (vpermilbits): Likewise.
+ (pinsrbits): Likewise.
+ (mov<mode>): Likewise.
+ (*mov<mode>_internal): Likewise.
+ (push<mode>1): Likewise.
+ (movmisalign<mode>): Likewise.
+ (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_movdqu<avxmodesuffix>): Likewise.
+ (avx_lddqu<avxmodesuffix>): Likewise.
+ (<plusminus_insn><mode>3): Likewise.
+ (*avx_<plusminus_insn><mode>3): Likewise.
+ (*avx_vm<plusminus_insn><mode>3): Likewise.
+ (mul<mode>3): Likewise.
+ (*avx_mul<mode>3): Likewise.
+ (*avx_vmmul<mode>3): Likewise.
+ (divv8sf3): Likewise.
+ (divv4df3): Likewise.
+ (avx_div<mode>3): Likewise.
+ (*avx_div<mode>3): Likewise.
+ (*avx_vmdiv<mode>3): Likewise.
+ (avx_rcpv8sf2): Likewise.
+ (*avx_vmrcpv4sf2): Likewise.
+ (sqrtv8sf2): Likewise.
+ (avx_sqrtv8sf2): Likewise.
+ (*avx_vmsqrt<mode>2): Likewise.
+ (rsqrtv8sf2): Likewise.
+ (avx_rsqrtv8sf2): Likewise.
+ (*avx_vmrsqrtv4sf2): Likewise.
+ (<code><mode>3): Likewise.
+ (*avx_<code><mode>3_finite): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_vm<code><mode>3): Likewise.
+ (*avx_ieee_smin<mode>3): Likewise.
+ (*avx_ieee_smax<mode>3): Likewise.
+ (avx_addsubv8sf3): Likewise.
+ (avx_addsubv4df3): Likewise.
+ (*avx_addsubv4sf3): Likewise.
+ (*avx_addsubv2df3): Likewise.
+ (avx_h<plusminus_insn>v4df3): Likewise.
+ (avx_h<plusminus_insn>v8sf3): Likewise.
+ (*avx_h<plusminus_insn>v4sf3): Likewise.
+ (*avx_h<plusminus_insn>v2df3): Likewise.
+ (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
+ (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
+ (*avx_maskcmp<mode>3): Likewise.
+ (avx_nand<mode>3): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_nand<mode>3): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_cvtsi2ss): Likewise.
+ (*avx_cvtsi2ssq): Likewise.
+ (*avx_cvtsi2sd): Likewise.
+ (*avx_cvtsi2sdq): Likewise.
+ (*avx_cvtsd2ss): Likewise.
+ (avx_cvtss2sd): Likewise.
+ (avx_cvtdq2ps<avxmodesuffix>): Likewise.
+ (avx_cvtps2dq<avxmodesuffix>): Likewise.
+ (avx_cvttps2dq<avxmodesuffix>): Likewise.
+ (*avx_cvtsi2sd): Likewise.
+ (*avx_cvtsi2sdq): Likewise.
+ (avx_cvtdq2pd256): Likewise.
+ (avx_cvtpd2dq256): Likewise.
+ (avx_cvttpd2dq256): Likewise.
+ (*avx_cvtsd2ss): Likewise.
+ (*avx_cvtss2sd): Likewise.
+ (avx_cvtpd2ps256): Likewise.
+ (avx_cvtps2pd256): Likewise.
+ (*avx_movhlps): Likewise.
+ (*avx_movlhps): Likewise.
+ (avx_unpckhps256): Likewise.
+ (*avx_unpckhps): Likewise.
+ (avx_unpcklps256): Likewise.
+ (*avx_unpcklps): Likewise.
+ (avx_movshdup256): Likewise.
+ (avx_movsldup256): Likewise.
+ (avx_shufps256): Likewise.
+ (avx_shufps256_1): Likewise.
+ (*avx_shufps_<mode>): Likewise.
+ (*avx_loadhps): Likewise.
+ (*avx_storelps): Likewise.
+ (*avx_loadlps): Likewise.
+ (*avx_movss): Likewise.
+ (*vec_dupv4sf_avx): Likewise.
+ (*vec_concatv2sf_avx): Likewise.
+ (*vec_concatv4sf_avx): Likewise.
+ (*vec_setv4sf_0_avx): Likewise.
+ (*vec_setv4sf_avx): Likewise.
+ (*avx_insertps): Likewise.
+ (avx_vextractf128<mode>): Likewise.
+ (vec_extract_lo_<mode>): Likewise.
+ (vec_extract_hi_<mode>): Likewise.
+ (vec_extract_lo_<mode>): Likewise.
+ (vec_extract_hi_<mode>): Likewise.
+ (vec_extract_lo_v16hi): Likewise.
+ (vec_extract_hi_v16hi): Likewise.
+ (vec_extract_lo_v32qi): Likewise.
+ (vec_extract_hi_v32qi): Likewise.
+ (avx_unpckhpd256): Likewise.
+ (*avx_unpckhpd): Likewise.
+ (avx_movddup256): Likewise.
+ (*avx_movddup): Likewise.
+ (avx_unpcklpd256): Likewise.
+ (*avx_unpcklpd): Likewise.
+ (avx_shufpd256): Likewise.
+ (avx_shufpd256_1): Likewise.
+ (*avx_punpckhqdq): Likewise.
+ (*avx_punpcklqdq): Likewise.
+ (*avx_shufpd_<mode>): Likewise.
+ (*avx_storehpd): Likewise.
+ (*avx_loadhpd): Likewise.
+ (*avx_loadlpd): Likewise.
+ (*avx_movsd): Likewise.
+ (*vec_concatv2df_avx): Likewise.
+ (*avx_<plusminus_insn><mode>3): Likewise.
+ (*avx_<plusminus_insn><mode>3): Likewise.
+ (*avx_mulv8hi3): Likewise.
+ (*avxv8hi3_highpart): Likewise.
+ (*avx_umulv8hi3_highpart): Likewise.
+ (*avx_umulv2siv2di3): Likewise.
+ (*avx_mulv2siv2di3): Likewise.
+ (*avx_pmaddwd): Likewise.
+ (*avx_mulv4si3): Likewise.
+ (*avx_ashr<mode>3): Likewise.
+ (*avx_lshr<mode>3): Likewise.
+ (*avx_ashl<mode>3): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_eq<mode>3): Likewise.
+ (*avx_gt<mode>3): Likewise.
+ (*avx_nand<mode>3): Likewise.
+ (*avx_nand<mode>3): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_<code><mode>3): Likewise.
+ (*avx_packsswb): Likewise.
+ (*avx_packssdw): Likewise.
+ (*avx_packuswb): Likewise.
+ (*avx_punpckhbw): Likewise.
+ (*avx_punpcklbw): Likewise.
+ (*avx_punpckhwd): Likewise.
+ (*avx_punpcklwd): Likewise.
+ (*avx_punpckhdq): Likewise.
+ (*avx_punpckldq): Likewise.
+ (*avx_pinsr<avxmodesuffixs>): Likewise.
+ (*avx_pinsrq): Likewise.
+ (*avx_loadld): Likewise.
+ (*vec_extractv2di_1_rex64_avx): Likewise.
+ (*vec_extractv2di_1_avx): Likewise.
+ (*vec_dupv2di_avx): Likewise.
+ (*vec_concatv2si_avx): Likewise.
+ (*vec_concatv4si_1_avx): Likewise.
+ (*vec_concatv2di_avx): Likewise.
+ (*vec_concatv2di_rex64_avx): Likewise.
+ (*avx_uavgv16qi3): Likewise.
+ (*avx_uavgv8hi3): Likewise.
+ (*avx_psadbw): Likewise.
+ (avx_movmskp<avxmodesuffixf2c>256): Likewise.
+ (*avx_phaddwv8hi3): Likewise.
+ (*avx_phadddv4si3): Likewise.
+ (*avx_phaddswv8hi3): Likewise.
+ (*avx_phsubwv8hi3): Likewise.
+ (*avx_phsubdv4si3): Likewise.
+ (*avx_phsubswv8hi3): Likewise.
+ (*avx_pmaddubsw128): Likewise.
+ (*avx_pmulhrswv8hi3): Likewise.
+ (*avx_pshufbv16qi3): Likewise.
+ (*avx_psign<mode>3): Likewise.
+ (*avx_palignrti): Likewise.
+ (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (*avx_mpsadbw): Likewise.
+ (*avx_packusdw): Likewise.
+ (*avx_pblendvb): Likewise.
+ (*avx_pblendw): Likewise.
+ (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_ptest256): Likewise.
+ (avx_roundp<avxmodesuffixf2c>256): Likewise.
+ (*avx_rounds<ssemodesuffixf2c>): Likewise.
+ (*avx_aesenc): Likewise.
+ (*avx_aesenclast): Likewise.
+ (*avx_aesdec): Likewise.
+ (*avx_aesdeclast): Likewise.
+ (avx_vzeroupper): Likewise.
+ (avx_vzeroupper_rex64): Likewise.
+ (avx_vpermil<mode>): Likewise.
+ (avx_vpermilvar<mode>3): Likewise.
+ (avx_vpermil2<mode>3): Likewise.
+ (avx_vperm2f128<mode>3): Likewise.
+ (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_vbroadcastss256): Likewise.
+ (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
+ (avx_vinsertf128<mode>): Likewise.
+ (vec_set_lo_<mode>): Likewise.
+ (vec_set_hi_<mode>): Likewise.
+ (vec_set_lo_<mode>): Likewise.
+ (vec_set_hi_<mode>): Likewise.
+ (vec_set_lo_v16hi): Likewise.
+ (vec_set_hi_v16hi): Likewise.
+ (vec_set_lo_v32qi): Likewise.
+ (vec_set_hi_v32qi): Likewise.
+ (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
+ (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
+ (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
+ (vec_init<mode>): Likewise.
+ (*vec_concat<mode>_avx): Likewise.
+ (blendbits): Support V8SF and V4DF.
+ (sse2_movq128): Support AVX.
+ (<sse>_movnt<mode>): Likewise.
+ (sse2_movntv2di): Likewise.
+ (sse_rcpv4sf2): Likewise.
+ (sse_sqrtv4sf2): Likewise.
+ (sse_rsqrtv4sf2): Likewise.
+ (<sse>_comi): Likewise.
+ (<sse>_ucomi): Likewise.
+ (sse_cvtss2si): Likewise.
+ (sse_cvtss2si_2): Likewise.
+ (sse_cvtss2siq): Likewise.
+ (sse_cvtss2siq_2): Likewise.
+ (sse_cvttss2si): Likewise.
+ (sse_cvttss2siq): Likewise.
+ (sse2_cvtsd2si): Likewise.
+ (sse2_cvtsd2si_2): Likewise.
+ (sse2_cvtsd2siq): Likewise.
+ (sse2_cvtsd2siq_2): Likewise.
+ (sse2_cvttsd2si): Likewise.
+ (sse2_cvttsd2siq): Likewise.
+ (sse2_cvtdq2pd): Likewise.
+ (*sse2_cvtpd2dq): Likewise.
+ (*sse2_cvttpd2dq): Likewise.
+ (*sse2_cvtpd2ps): Likewise.
+ (sse2_cvtps2pd): Likewise.
+ (sse3_movshdup): Likewise.
+ (sse3_movsldup): Likewise.
+ (sse_storehps): Likewise.
+ (*sse4_1_extractps): Likewise.
+ (sse2_storelpd): Likewise.
+ (vec_dupv2df_sse3): Likewise.
+ (*vec_concatv2df_sse3): Likewise.
+ (*sse4_1_pextrb): Likewise.
+ (*sse4_1_pextrb_memory): Likewise.
+ (*sse2_pextrw): Likewise.
+ (*sse4_1_pextrw_memory): Likewise.
+ (*sse4_1_pextrd): Likewise.
+ (*sse4_1_pextrq): Likewise.
+ (sse2_pshufd_1): Likewise.
+ (sse2_pshuflw_1): Likewise.
+ (sse2_pshufhw_1): Likewise.
+ (*sse2_storeq_rex64): Likewise.
+ (*vec_dupv4si): Likewise.
+ (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
+ (sse2_pmovmskb): Likewise.
+ (*sse2_maskmovdqu): Likewise.
+ (*sse2_maskmovdqu_rex64): Likewise.
+ (sse_ldmxcsr): Likewise.
+ (sse_stmxcsr): Likewise.
+ (abs<mode>2): Likewise.
+ (sse4_1_movntdqa): Likewise.
+ (sse4_1_phminposuw): Likewise.
+ (sse4_1_extendv8qiv8hi2): Likewise.
+ (*sse4_1_extendv8qiv8hi2): Likewise.
+ (sse4_1_extendv4qiv4si2): Likewise.
+ (*sse4_1_extendv4qiv4si2): Likewise.
+ (sse4_1_extendv2qiv2di2): Likewise.
+ (*sse4_1_extendv2qiv2di2): Likewise.
+ (sse4_1_extendv4hiv4si2): Likewise.
+ (*sse4_1_extendv4hiv4si2): Likewise.
+ (sse4_1_extendv2hiv2di2): Likewise.
+ (*sse4_1_extendv2hiv2di2): Likewise.
+ (sse4_1_extendv2siv2di2): Likewise.
+ (*sse4_1_extendv2siv2di2): Likewise.
+ (sse4_1_zero_extendv8qiv8hi2): Likewise.
+ (*sse4_1_zero_extendv8qiv8hi2): Likewise.
+ (sse4_1_zero_extendv4qiv4si2): Likewise.
+ (*sse4_1_zero_extendv4qiv4si2): Likewise.
+ (sse4_1_zero_extendv2qiv2di2): Likewise.
+ (*sse4_1_zero_extendv2qiv2di2): Likewise.
+ (sse4_1_zero_extendv4hiv4si2): Likewise.
+ (*sse4_1_zero_extendv4hiv4si2): Likewise.
+ (sse4_1_zero_extendv2hiv2di2): Likewise.
+ (*sse4_1_zero_extendv2hiv2di2): Likewise.
+ (sse4_1_zero_extendv2siv2di2): Likewise.
+ (*sse4_1_zero_extendv2siv2di2): Likewise.
+ (sse4_1_ptest): Likewise.
+ (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
+ (sse4_2_pcmpestri): Likewise.
+ (sse4_2_pcmpestrm): Likewise.
+ (sse4_2_pcmpistri): Likewise.
+ (sse4_2_pcmpistrm): Likewise.
+ (aesimc): Likewise.
+ (aeskeygenassist): Likewise.
+
+2008-08-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/predicates.md (vzeroall_operation): New.
+
+ * config/i386/sse.md (avx_vzeroall): New.
+ (*avx_vzeroall): Likewise.
+
+2008-08-28 Paul Brook <paul@codesourcery.com>
+ Mark Shinwell <shinwell@codesourcery.com>
+ Richard Earnshaw <richard.earnshaw@arm.com>
+
+ * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
+ (TARGET_MIN_ANCHOR_OFFSET): New.
+ (arm_override_options): Set correct anchor ranges for Thumb-1
+ and Thumb-2 if required.
+ (legitimize_pic_address): Handle case involving a TLS symbol
+ reference with an addend.
+ (arm_optimization_options): Enable section anchors at -O1 and
+ above.
+ * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
+ * config/arm/arm-protos.h (arm_optimization_options): New.
+
+2008-08-28 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
+ * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
+ attribute.
+
+ * config/v850/v850.h (IRA_COVER_CLASSES): Define.
+ * config/v850/v850.md (return): Remove frame size restriction.
+
+ * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
+
+ * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
+
+ * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
+
+ * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
+
+2008-08-28 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/vfp11.md: Update license notice.
+ * config/arm/cortex-r4.md: Ditto.
+
+2008-08-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37207
+ * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
+ tuplification bug.
+
+2008-08-28 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/36741
+ * tree.c (int_fits_type_p): Don't forget unsigned integers
+ of type sizetype which higher end word equals -1.
+
+2008-08-28 Ira Rosen <irar@il.ibm.com>
+
+ * target.h (struct vectorize): Add new target builtin.
+ * tree-vectorizer.c (destroy_loop_vec_info): Call
+ vect_free_slp_instance instead of vect_free_slp_node.
+ * tree-vectorizer.h (enum slp_load_perm_type): New.
+ (struct _slp_instance): Add new fields.
+ (SLP_INSTANCE_LOAD_PERMUTATION): New.
+ (SLP_INSTANCE_LOADS): New.
+ (vect_free_slp_tree): Remove.
+ (vect_free_slp_instance): Declare.
+ (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
+ (vectorizable_load): Add argument.
+ (vect_transform_slp_perm_load): New.
+ * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
+ vectorizable_load.
+ (vect_get_place_in_interleaving_chain): New function.
+ (vect_free_slp_tree): Make static.
+ (vect_free_slp_instance): New function.
+ (vect_build_slp_tree): Add new arguments. Allow load permutations and
+ collect the load location in the interleaving chain.
+ (vect_supported_slp_permutation_p): New function.
+ (vect_supported_load_permutation_p): Likewise.
+ (vect_analyze_slp_instance): In case of loads permutation, call
+ vect_supported_load_permutation_p to check that the permutation is
+ supported.
+ * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
+ * tree-vect-transform.c (vect_transform_stmt): Add new argument.
+ (vect_create_mask_and_perm): New function.
+ (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
+ (vectorizable_load): Add an argument. Don't keep the created vectors
+ statements in the node if permutation is required. Call
+ vect_transform_slp_perm_load to generate the permutation.
+ (vect_transform_stmt): Add new argument. Call vectorizable_load with
+ additional argument.
+ (vect_schedule_slp_instance): In case of loads permutation, allocate
+ vectorized statements structure for all the related SLP nodes. Call
+ vect_transform_stmt with addditional argument.
+ (vect_transform_loop): Call vect_transform_stmt with correct arguments.
+ * config/spu/spu.c (spu_builtin_vec_perm): New.
+ (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
+ * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
+ * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
+ (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
+
+2008-08-28 Chris Fairles <chris.fairles@gmail.com>
+
+ * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
+ __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
+ __gthread_cond_signal, __gthread_cond_timedwait,
+ __gthread_cond_timedwait_recursive): New functions.
+ * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
+ Likewise.
+ * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
+ thread interfaces.
+
+2008-08-28 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37005
+ * fold-const.c (maybe_canonicalize_comparison_1): Require
+ undefined overflow only for canonicalizing A +- CST cmp CST.
+ Make sure to not generate new constants that are not inside
+ their TYPE_MIN/MAX_VALUE range.
+ (maybe_canonicalize_comparison): Remove undefined overflow
+ checking from here.
+ (fold_binary): Remove now duplicate folding.
+
+2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
+ use not updated in the last change.
+
+2008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
+ (IRA_COVER_CLASSES): Add FPUL_REGS.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 37217
+ * c-common.c (conversion_warning): Check for null operands.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/31673
+ * c-decl.c (check_for_loop_decls): Improve error message. Give
+ hint.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/37186
+ * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
+ (convert_for_assignment): Pass corrent OPT_W* parameter to
+ WARN_FOR_ASSIGNMENT.
+
+2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35321
+ * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
+
+2008-08-27 Paul Brook <paul@codesourcery.com>
+
+ * config.gcc: Loosen checks for arm uclinux eabi targets.
+
+2008-08-27 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
+ _clzsi2.
+ * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
+
+2008-08-26 Douglas Gregor <doug.gregor@gmail.com>
+
+ * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
+ the enumerators of an ENUMERAL_TYPE.
+ * dbxout.c (dbxout_type): Ditto.
+
+2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/37219
+ * fwprop.c (fwprop): Check that the loop_father is the outer loop.
+ (fwprop_addr): Check that the loop_father is not the outer loop.
+
+2008-08-26 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
+ Remove documentation entry for fmul type.
+ Use fmuls to annotate single-precision multiplication patterns,
+ fmuld to annotate double-precision multiplication patterns,
+ fmacs to annotate single-precision multiply-accumulate patterns
+ and fmacd to annotate double-precision multiply-accumulate patterns.
+ * config/arm/vfp11.md: Update reservations accordingly.
+ * config/arm/arm.md: Note that certain values of the "type"
+ attribute are documented in vfp.md.
+ * config/arm/arm1020e.md: Remove out of date duplicate comment.
+ (v10_cvt): Use new fmul types.
+
+2008-08-26 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/vfp.md: Move pipeline description for VFP11 to...
+ * config/arm/vfp11.md: ...here. New.
+ * config/arm/arm.md: Include vfp11.md.
+
+2008-08-26 Hans-Peter Nilsson <hp@axis.com>
+
+ * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
+ parameter to inform call.
+
+2008-08-26 Jeff Law <law@redhat.com>
+
+ * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
+ avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
+ preferred class when copying a constant into a partial word register.
+
+2008-08-26 Ben Elliston <bje@au.ibm.com>
+
+ * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
+ * cp/typeck.c: Likewise.
+ * cp/tree.c: Likewise.
+ * gimple-low.c: Likewise.
+ * jump.c: Likewise.
+
+2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
+ ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
+
+ * doc/passes.texi: Describe IRA.
+
+ * doc/tm.texi (IRA_COVER_CLASSES,
+ IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
+
+ * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
+ (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
+ -fira-propagate-cost, -fno-ira-share-save-slots,
+ -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
+
+ * flags.h (ira_algorithm): New enumeration.
+ (flag_ira_algorithm, flag_ira_verbose): New external variable
+ declarations.
+
+ * postreload.c (gate_handle_postreload): Don't do post reload
+ optimizations unless the reload is completed.
+
+ * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
+ IRA.
+
+ * tree-pass.h (pass_ira): New external variable declaration.
+
+ * reload.h: Add 2008 to the Copyright.
+
+ * cfgloopanal.c: Include params.h.
+ (estimate_reg_pressure_cost): Decrease cost for IRA optimization
+ mode.
+
+ * params.h (IRA_MAX_LOOPS_NUM): New macro.
+
+ * toplev.c (ira.h): New include.
+ (flag_ira_algorithm, flag_ira_verbose): New external variables.
+ (backend_init_target): Call ira_init.
+ (backend_init): Call ira_init_once.
+ (finalize): Call finish_ira_once.
+
+ * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
+ flag_ira_share_save_slots, flag_ira_share_spill_slots): New
+ external variables.
+
+ * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
+ may_move_out_cost): New external variable declarations.
+ (move_table): New typedef.
+
+ * caller-save.c: Include headers output.h and ira.h.
+ (no_caller_save_reg_set): New global variable.
+ (save_slots_num, save_slots): New variables.
+ (reg_save_code, reg_restore_code, add_stored_regs): Add
+ prototypes.
+ (init_caller_save): Set up no_caller_save_reg_set.
+ (init_save_areas): Reset save_slots_num.
+ (saved_hard_reg): New structure.
+ (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
+ (initiate_saved_hard_regs, new_saved_hard_reg,
+ finish_saved_hard_regs, saved_hard_reg_compare_func): New
+ functions.
+ (setup_save_areas): Add code for sharing stack slots.
+ (all_blocks): New variable.
+ (save_call_clobbered_regs): Process pseudo-register too.
+ (mark_set_regs): Process pseudo-register too.
+ (insert_one_insn): Put the insn after bb note in a empty basic
+ block. Add insn check.
+
+ * global.c (eliminable_regset): Make it external.
+ (mark_elimination): Use DF_LR_IN for IRA.
+ (pseudo_for_reload_consideration_p): New.
+ (build_insn_chain): Make it external. Don't ignore spilled
+ pseudos for IRA. Use pseudo_for_reload_consideration_p.
+ (gate_handle_global_alloc): New function.
+ (pass_global_alloc): Add the gate function.
+
+ * opts.c (decode_options): Set up flag_ira. Print the warning for
+ -fira.
+ (common_handle_option): Process -fira-algorithm and -fira-verbose.
+
+ * timevar.def (TV_IRA, TV_RELOAD): New passes.
+
+ * regmove.c (regmove_optimize): Don't do replacement of output for
+ IRA.
+
+ * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
+ New external variable declarations.
+
+ * local-alloc.c (update_equiv_regs): Make it external. Return
+ true if jump label rebuilding should be done. Rescan new_insn for
+ notes.
+ (gate_handle_local_alloc): New function.
+ (pass_local_alloc): Add the gate function.
+
+ * alias.c (value_addr_p, stack_addr_p): New functions.
+ (nonoverlapping_memrefs_p): Use them for IRA.
+
+ * common.opt (fira, fira-algorithm, fira-coalesce,
+ fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
+ fira-verbose): New options.
+
+ * regclass.c (reg_class_subclasses, contains_reg_of_mode,
+ move_cost, may_move_in_cost, may_move_out_cost): Make the
+ variables external.
+ (move_table): Remove typedef.
+ (init_move_cost): Make it external.
+ (allocate_reg_info, resize_reg_info, setup_reg_classes): New
+ functions.
+
+ * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
+ setup_reg_classes): New function prototypes.
+ (eliminable_regset): New external variable declaration.
+ (build_insn_chain, update_equiv_regs): New function prototypes.
+
+ * Makefile.in (IRA_INT_H): New definition.
+ (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
+ ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
+ (reload1.o, toplev.o): Add dependence on ira.h.
+ (cfgloopanal.o): Add PARAMS_H.
+ (caller-save.o): Add dependence on output.h and ira.h.
+ (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
+ ira-emit.o, ira-lives.o): New entries.
+
+ * passes.c (pass_ira): New pass.
+
+ * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
+
+ * reload1.c (ira.h): Include the header.
+ (changed_allocation_pseudos): New bitmap.
+ (init_reload): Initiate the bitmap.
+ (compute_use_by_pseudos): Permits spilled registers in FROM.
+ (temp_pseudo_reg_arr): New variable.
+ (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
+ IRA. Call alter_reg with the additional parameter. Don't clear
+ spilled_pseudos for IRA. Restore original insn chain for IRA.
+ Clear changed_allocation_pseudos at the end of reload.
+ (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
+ (hard_regno_to_pseudo_regno): New variable.
+ (count_pseudo): Check spilled pseudos. Set up
+ hard_regno_to_pseudo_regno.
+ (count_spilled_pseudo): Check spilled pseudos. Update
+ hard_regno_to_pseudo_regno.
+ (find_reg): Use better_spill_reload_regno_p. Check
+ hard_regno_to_pseudo_regno.
+ (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
+ code for IRA.
+ (eliminate_regs_1): Use additional parameter for alter_reg.
+ (finish_spills): Set up pseudo_previous_regs only for spilled
+ pseudos. Call reassign_pseudos once for all spilled pseudos, pass
+ more arguments. Don't clear live_throughout and dead_or_set for
+ spilled pseudos. Use additional parameter for alter_reg. Call
+ mark_allocation_change. Set up changed_allocation_pseudos.
+ Remove sanity check.
+ (emit_input_reload_insns, delete_output_reload): Use additional
+ parameter for alter_reg. Call mark_allocation_change.
+ (substitute, gen_reload_chain_without_interm_reg_p): New
+ functions.
+ (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
+
+ * testsuite/gcc.dg/20080410-1.c: New file.
+
+ * config/s390/s390.h (IRA_COVER_CLASSES,
+ IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
+
+ * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
+
+ * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
+
+ * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
+
+ * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
+
+ * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
+
+ * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
+
+ 2008-08-24 Jeff Law <law@redhat.com>
+ * ira.c (setup_reg_class_intersect_union): Prefer smallest class
+ when ignoring unavailable registers.
+
+ 2008-08-24 Jeff Law <law@redhat.com>
+ * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
+ FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
+ * ira.c (setup_eliminable_regset): Check stack_realign_needed.
+ * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
+
+ 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
+ * ira-build.c (allocno_range_compare_func): Stabilize sort.
+
+ 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
+ * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
+ * reload1.c (find_reg): Process registers in register allocation order.
+
+ 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
+ * toplev.c (backend_init_target): Move ira_init call from
+ here...
+ (lang_dependent_init_target): ...to here.
+
+ 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
+ * ira.c (setup_class_subset_and_memory_move_costs): Don't
+ calculate memory move costs for NO_REGS.
+
+ 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
+ * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
+ STACK_REGS is defined.
+
+ 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
+
+ 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
+ * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
+
+ 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
+ * config/sh/sh.h (IRA_COVER_CLASSES): Define.
+ * config/sh/sh.md (movsicc_true+3): Check if emit returns a
+ barrier.
+
+2008-08-26 Victor Kaplansky <victork@il.ibm.com>
+ Dorit Nuzman <dorit@il.ibm.com>
+
+ * gcc/config/spu/spu.md (vec_extract_evenv4si,
+ vec_extract_evenv4sf, vec_extract_evenv8hi,
+ vec_extract_evenv16qi, vec_extract_oddv4si,
+ vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
+ vec_interleave_highv4sf, vec_interleave_lowv4sf,
+ vec_interleave_highv4si, vec_interleave_lowv4si,
+ vec_interleave_highv8hi, vec_interleave_lowv8hi,
+ vec_interleave_highv16qi, vec_interleave_lowv16qi,
+ vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
+
+2008-08-25 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/36756
+ * config/rs6000/rs6000.c (optimization_options): Don't default to
+ section anchors without toplevel reorder.
+
+2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
+ (mfc_end_critical_section): Likewise.
+
+2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
+ all type qualifiers from element type to vector type.
+
+2008-08-25 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.md (immediate_insn): Move up in file, fix
+ comment typo, reformat.
+ (fetchop_bit, atomic_hiqi_op memory_barrier,
+ sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
+ sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
+ sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
+ sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
+ sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
+ sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
+ sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
+ sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
+ sync_old_nand<mode>, sync_new_nand<mode>,
+ sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
+ test_and_set_12): Moved to sync.md.
+ (sync.md): Include.
+ * config/mips/sync.md: New file.
+
+2008-08-25 Richard Henderson <rth@redhat.com>
+
+ * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
+ (regsave): Likewise.
+ (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
+ (output_cfi_directive): Likewise.
+ (div_data_align): New.
+ (output_cfi): Use it.
+
+2008-08-24 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
+ * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
+ (TARGET_OCTEON): New macro.
+ (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
+ (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
+ (ISA_HAS_POP): New macro.
+ * config/mips/driver-native.c (host_detect_local_cpu): Handle
+ Octeon.
+ * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
+ Handle Octeon.
+ * config/mips/mips.md (cpu): Add octeon.
+ (type): Add pop attribute value.
+ (popcount<mode>2): New pattern.
+ * doc/invoke.texi (-march=@var{arch}): Add octeon.
+
+2008-08-24 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (-fipa-cp-clone): New option.
+ (-fipa-cp): Update docs.
+ (--param ipcp-unit-growth):New.
+ * ipa-cp.c: Include fibheap.h, params.h
+ (ipcp_initialize_node_lattices): When not cloning, all externally
+ visible functions are bottom.
+ (ipcp_need_redirect_p): Accept clones.
+ (ipcp_insert_stage): Use cost driven heuristics.
+ (max_count, dead_nodes): New static vars.
+ (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
+ ipcp_const_param_count): New functions.
+ * common.opt (ipa-cp-clone): New command line option.
+ * params.def (ipcp-unit-growth): New.
+
+2008-08-24 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (tree_function_versioning): Look harder
+ for referenced vars.
+
+2008-08-24 Razya Ladelsky <razya@il.ibm.com>
+
+ PR tree-optimization/37185
+ * matrix-reorg.c (transform_access_sites): Update changed stmt.
+
+2008-08-23 Jan Hubicka <jh@suse.cz>
+
+ * ipa-cp.c (ipcp_analyze_node): New function.
+ (ipcp_update_cloned_node): Use it.
+ (ipcp_init_stage): Likewise.
+ * ipa-inline.c (function_insertion_hook_holder): New static var.
+ (analyze_function): Break out from ....
+ (inline_generate_summary): Here; register insertion hook.
+ (cgraph_decide_inlining): Remove hook.
+ (add_new_function): New function.
+
+2008-08-23 Jan Hubicka <jh@suse.cz>
+
+ * opts.c (decode_options): Revert accidental change enabling ipa-cp.
+
+2008-08-23 Jan Hubicka <jh@suse.cz>
+
+ * ipa-cp.c (constant_val_insert): Remove.
+ (ipcp_propagate_one_const): Remove.
+ (ipcp_create_replace_map): Always insert replacements to the map.
+ (ipcp_insert_stage): Do not try to insert statements by hand.
+ * tree-inline.c (insert_init_stmt): Break out from ...
+ (setup_one_parameter): ... here; allow NULL BB pointer.
+ (tree_function_versioning): Use setup_one_parameter to process
+ replacement map.
+
+2008-08-23 Jan Hubicka <jh@suse.cz>
+
+ * tree.c (decl_address_ip_invariant_p): New function.
+ * tree.h (decl_address_ip_invariant_p): Declare.
+ * gimple.c (strip_invariant_refs): Break out from ...
+ (is_gimple_invariant_address): ... here
+ (is_gimple_ip_invariant_address): New function.
+ (is_gimple_ip_invariant): New function.
+ * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
+ Declare.
+
+ * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
+ (ipcp_lat_is_insertable): All constants are insertable.
+ (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
+ IPA_CONST_VALUE_REF.
+ (ipcp_initialize_node_lattices): Propagate all types of operands.
+ (build_const_val): Do not handle IPA_CONST_VALUE_REF.
+ (ipcp_create_replace_map): Reformat.
+ (ipcp_need_redirect_p): Simplify.
+ (ipcp_insert_stage): Check that argument is used before clonning.
+ * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
+ IPA_CONST_REF.
+ (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
+ (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
+ (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
+ * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
+ (jump_func_type): Remove IPA_CONST_VALUE_REF.
+ * tree-inline.c (tree_function_versioning): Add variables referenced
+ by replacing trees.
+
+2008-08-23 Jan Hubicka <jh@suse.cz>
+
+ PR target/37094
+ * i386.c (standard_80387_constant_p): Use optimize_size.
+
+2008-08-23 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37161
+ * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
+ * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
+ (vect_determine_vectorization_factor): Move the scalar type
+ retrieval to vect_get_smallest_scalar_type.
+ (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
+ scalar type. Remove redundant computation.
+ * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
+ (vect_get_slp_defs): Take the type of RHS into account if
+ necessary by calling vect_get_smallest_scalar_type. Call
+ vect_get_constant_vectors with additional argument.
+
+2008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35648
+ * doc/invoke.texi (Wwrite-strings): Clarify description.
+
+2008-08-23 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37174
+ * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
+ def stmt is a part of the loop before accessing its stmt_vec_info.
+
+2008-08-22 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/11259
+ * config/avr/avr.md (UNSPEC_SWAP): New constants.
+ (*swap): New insn pattern.
+ (*ashlqi3): Rename from ashlqi3 insn pattern.
+ (ashlqi3): New expanders.
+ (*lshrqi3): Rename from lshrqi3 insn pattern.
+ (lshrqi3): New expanders.
+ (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
+ lshrqi3_const5, lshrqi3_const6): New splitters.
+ (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
+ lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
+ peephole2 patterns.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37078
+ * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
+ [+INF, +INF] ranges.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37143
+ * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
+ a conversion statement instead of a copy.
+
+2008-08-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37184
+ * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
+ CCCmode, CCOmode and CCSmode destination modes.
+
+ PR target/37191
+ * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
+ from different units in a single alternative.
+ (*vec_extractv2sf_1): Ditto.
+ (*vec_extractv2si_0): Ditto.
+ (*vec_extractv2si_1): Ditto.
+ * config/i386/sse.md (sse2_storehpd): Ditto.
+ (sse2_storelpd): Ditto.
+ (sse2_loadhpd): Ditto.
+ (sse2_loadlpd): Ditto.
+
+ PR target/37197
+ * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
+ (popcountsi2): Ditto.
+ (clzdi2_abm): Ditto.
+ (popcountdi2): Ditto.
+ (clzhi2_abm): Ditto.
+ (popcounthi2): Ditto.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36548
+ PR middle-end/37125
+ * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
+ if the multiplication does not overflow.
+
+2008-08-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
+
+2008-08-21 Richard Henderson <rth@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
+ spurrious comma from test.
+ * configure: Rebuild.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 30457
+ * builtins.c (fold_builtin_next_arg): Add warning about undefined
+ behaviour.
+
+2008-08-21 Aldy Hernandez <aldyh@redhat.com>
+
+ * c-tree.h (grokfield): New argument.
+ * c-decl.c (grokfield): Handle new location argument.
+ * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
+
+2008-08-21 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (first_cgraph_function_insertion_hook): New variable.
+ (cgraph_add_function_insertion_hook,
+ cgraph_remove_function_insertion_hook,
+ cgraph_call_function_insertion_hooks): New functions.
+ * cgraph.h (cgraph_add_function_insertion_hook,
+ cgraph_remove_function_insertion_hook,
+ cgraph_call_function_insertion_hooks): Declare.
+ * ipa-reference.c (function_insertion_hook_holder): New variable.
+ (check_operand, look_for_address_of): When checking late, do not care
+ about module bitmaps.
+ (add_new_function): New function.
+ (generate_summary): Register hooks; zero module bitmaps.
+ (propagate): Unregister hooks.
+ * ipa-pure-const.c (function_insertion_hook_holder): New variable.
+ (add_new_function): New function.
+ (generate_summary): Register hook.
+ (propagate): Remove hook.
+
+ * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
+
+ * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
+ * ipa-cp.c (ipcp_update_cloned_node): New function.
+ (build_const_val): Handle functions correctly; bring type logic
+ into sync with tree-inline.c
+ (ipcp_init_stage): Take care of computing stuff needed by
+ indirect inlining; update clones.
+ (ipcp_generate_summary): Break out of ipcp_driver.
+ (ipcp_driver): Do only execution and transformation.
+ (pass_ipa_cp): Make IPA_PASS.
+ * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
+ offset to address.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
+ ipcp, some info is already available.
+ * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
+ * tree-inline.c (remap_ssa_name): Unshare expression.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
+ a PHI ask VN if it is already available.
+ * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
+ * tree-ssa-sccvn.c (vn_phi_lookup): Export.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36817
+ * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
+ makes sure to produce a result of the correct type.
+
+2008-08-21 Jan Hubicka <jh@suse.cz>
+ Backport from LTO branch:
+
+ 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * ipa-pure-const.c
+ (init_state, finish_state, set_function_state, generate_summary):
+ New functions.
+ (scan_stmt): Renamed from scan_function. Changed to keep state in
+ local static vars rather than cgraph aux field.
+ (propagate): Renamed from static_execute. Changed to keep state in
+ local static vars rather than cgraph aux field.
+ (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
+ * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
+
+ 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
+ * ipa-reference.c (init_function_info, generate_summary,
+ propagate): New functions.
+ (analyze_function): Call init_function_info.
+ (static_execute): Stripped into generate_summary and propagate.
+ (pass_ipa_reference): Made into ipa_opt_pass.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37181
+ * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
+ folding result.
+ (extract_range_from_unary_expr): Likewise.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostic.c (pedwarn_at): Rename as pedwarn.
+ (pedwarn): Delete.
+ * toplev.h (pedwarn_at): Likewise.
+ * builtins.c: Update all calls to pedwarn.
+ * c-lex.c: Likewise.
+ * toplev.c: Likewise.
+ * c-tree.h: Likewise.
+ * c-decl.c: Likewise.
+ * c-errors.c: Likewise.
+ * c-typeck.c: Likewise.
+ * c-common.c: Likewise.
+ * c-parser.c: Likewise.
+
+2008-08-20 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/31070
+ * config/sparc/sparc.c (function_arg_slotno): Handle structure
+ with MODE_VECTOR_INT mode.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/179
+ * tree-ssa.c (warn_uninit): Do not warn for variables that can be
+ initialized outside the current module.
+ (warn_uninitialized_var): Ignore left-hand side when walking the
+ trees. Ignore address expressions. Examine VUSE operands in gimple
+ statements with a variable declaration on the right-hand side.
+
+2008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR bootstrap/37155
+ * rtlanal.c (subreg_offset_representable_p): Revert last change.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35701
+ * c-common.c (conversion_warning): Do not warn if applying bit-and
+ operator to unsigned constant that fits in the target type.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/35602
+ * c-common.c (conversion_warning): Do not warn for artificial
+ expressions.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (op_with_constant_singleton_value_range): New function.
+ (extract_range_from_binary_expr): Fall back to constant propagation.
+ (extract_range_from_unary_expr): Likewise.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
+ with TREE_THIS_VOLATILE on shared nodes.
+ (fold_stmt_r): Likewise.
+
+2008-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37171
+ * c-parser.c (c_parser_attributes): For keywords use canonical
+ spelling for attr_name.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * value-prof.c (check_counter): Revert wrong call to error.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * profile.c: Update calls to inform.
+ * value-prof.c: Update calls to inform.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostic.c (inform): Add an explicit location_t parameter.
+ * toplev.h (inform): Update declaration.
+ * builtins.c: Update all calls to inform.
+ * c-common.c: Likewise.
+ * c-decl.c: Likewise.
+ * c-opts.c: Likewise.
+ * c-pch.c: Likewise.
+ * c-pragma.c: Likewise.
+ * c-typeck.c: Likewise.
+ * coverage.c: Likewise.
+ * opts.c: Likewise.
+ * toplev.c: Likewise.
+ * tree-cfg.c: Likewise.
+ * tree-ssa.c: Likewise.
+
+2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37169
+ * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
+ V2DI mode, for SSE4.1, use movq instead of vector set if the
+ second element is zero and inter-unit moves are OK.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
+ properly handle conversion/copy chains after tuplification.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Move the second
+ forwprop pass before alias computation. Remove the second
+ DCE pass. Remove the first dominator and phi copy/const
+ prop passes.
+
+2008-08-20 Nick Clifton <nickc@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
+ support of this feature. Do not assume that a sufficiently new
+ assembler will support the feature regardless of the target type.
+ (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
+ * configure: Regenerate.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (found_in_subgraph): Remove.
+ (live): New global static.
+ (live_on_edge): New function.
+ (blocks_visited): Remove.
+ (register_edge_assert_for_2): Use live_on_edge.
+ (find_conditional_asserts): Remove code dealing with
+ found_in_subgraph. Do not walk the CFG.
+ (find_switch_asserts): Likewise.
+ (find_assert_locations_1): Renamed from find_assert_locations.
+ Move finding assert locations for conditional and switch
+ statements first. Update live bitmap. Do not walk the CFG.
+ (find_assert_locations): New function.
+ (insert_range_assertions): Remove entry of CFG walk.
+ Adjust call to find_assert_locations.
+ * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
+ that only can appear because of fake exit edges but assert we
+ never try to insert on those.
+ (fini_pre): Do not remove fake exit edges here...
+ (execute_pre): ...but here, before committing edge inserts.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Exchange store-ccp
+ with a ccp pass.
+
+2008-08-19 Rafael Espíndola <espindola@google.com>
+
+ * varasm.c (weak_decls): Move earlier in the file.
+ (assemble_external): Add weak decls to the weak_decls list.
+ (declare_weak): Don't add decls to the weak_decls list.
+
+2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37157
+ * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
+ before (sse2_shufpd_<mode>).
+
+2008-08-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37156
+ * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
+ * tree.c (block_nonartificial_location): Likewise.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35972
+ PR tree-optimization/23094
+ * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
+ parameter.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
+ handle MISALIGNED_INDIRECT_REF.
+ (get_ref_from_reference_ops): New helper.
+ (vn_reference_lookup_pieces): Walk the use-def chain using the
+ alias-oracle if requested.
+ * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
+ walking the use-def chain.
+ (compute_avail): But not here.
+ (create_component_ref_by_pieces_1): Properly handle
+ MISALIGNED_INDIRECT_REF.
+ (do_regular_insertion): Handle fully redundant
+ expressions after PHI-translation also for SSA_NAME values, not
+ only constants. Correctly use edoubleprime for that.
+
+2008-08-19 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.c (supportable_widening_operation): Support
+ multi-step conversion, return the number of steps in such conversion
+ and the required intermediate types.
+ (supportable_narrowing_operation): Likewise.
+ * tree-vectorizer.h (vect_pow2): New function.
+ (supportable_widening_operation): Change argument types.
+ (supportable_narrowing_operation): Likewise.
+ (vectorizable_type_promotion): Add an argument.
+ (vectorizable_type_demotion): Likewise.
+ * tree-vect-analyze.c (vect_analyze_operations): Call
+ vectorizable_type_promotion and vectorizable_type_demotion with
+ additional argument.
+ (vect_get_and_check_slp_defs): Detect patterns.
+ (vect_build_slp_tree): Add an argument, don't fail in case of multiple
+ types.
+ (vect_analyze_slp_instance): Don't fail in case of multiple types.
+ Call vect_build_slp_tree with correct arguments. Calculate unrolling
+ factor according to the smallest type in the loop.
+ (vect_detect_hybrid_slp_stmts): Include statements from patterns.
+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
+ supportable_widening_operation with correct arguments.
+ * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
+ operands lists according to the number of vector statements in left
+ or right node, if exists.
+ (vect_gen_widened_results_half): Remove unused argument.
+ (vectorizable_conversion): Call supportable_widening_operation,
+ supportable_narrowing_operation, and vect_gen_widened_results_half
+ with correct arguments.
+ (vectorizable_assignment): Change documentation, support multiple
+ types in SLP.
+ (vectorizable_operation): Likewise.
+ (vect_get_loop_based_defs): New function.
+ (vect_create_vectorized_demotion_stmts): Likewise.
+ (vectorizable_type_demotion): Support loop-aware SLP and general
+ multi-step conversion. Call vect_get_loop_based_defs and
+ vect_create_vectorized_demotion_stmts for transformation.
+ (vect_create_vectorized_promotion_stmts): New function.
+ (vectorizable_type_promotion): Support loop-aware SLP and general
+ multi-step conversion. Call vect_create_vectorized_promotion_stmts
+ for transformation.
+ (vectorizable_store): Change documentation, support multiple
+ types in SLP.
+ (vectorizable_load): Likewise.
+ (vect_transform_stmt): Pass SLP_NODE to
+ vectorizable_type_promotion and vectorizable_type_demotion.
+ (vect_schedule_slp_instance): Move here the calculation of number
+ of vectorized statements for each node from...
+ (vect_schedule_slp): ... here.
+ (vect_transform_loop): Call vect_schedule_slp without the last
+ argument.
+
+2008-08-19 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR bootstrap/37152
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
+ to == in assert statement.
+ (vectorizable_reduction): Fix typo.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/37153
+ * value-prof.c (check_counter): Dereference pointer to overall
+ count when printing it.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * profile.h: Really add it.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * mcf.c: Really add it.
+
+2008-08-18 Paul Yuan <yingbo.com@gmail.com>
+ Vinodha Ramasamy <vinodha@google.com>
+
+ * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
+ count_scale.
+ * value-prof.c (check_counter): Fix the counter if
+ flag_profile_correction is true.
+ (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
+ tree_mod_subtract_transform):
+ Follow check_counter parameter change.
+ * common.opt (fprofile-correction): New option.
+ * mcf.c: New file.
+ * profile.h: Likewise.
+ * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
+ (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
+ is_inconsistent, set_bb_counts, read_profile_edge_counts): New
+ functions.
+ (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
+ flag_profile_correction is set.
+
+2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
+
+2008-08-18 Tomas Bily <tbily@suse.cz>
+
+ * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
+ CONVERT_EXPR_P.
+ * tree-data-ref.c (split_constant_offset_1): Likewise.
+ * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
+ * tree-sra.c (sra_walk_expr): Likewise.
+ * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+ * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
+ * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
+ Likewise.
+ * gimple.c (gimple_assign_unary_nop_p): Likewise.
+ * tree-vect-transform.c (vectorizable_type_demotion)
+ (vectorizable_type_promotion): Likewise.
+ * tree-inline.c (expand_call_inline):
+ * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+ (forward_propagate_addr_expr_1, forward_propagate_comparison)
+ (tree_ssa_forward_propagate_single_use_vars): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
+ (gimple_assign_unary_useless_conversion_p): Likewise.
+ * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+ * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
+ * fold-const.c (fold_unary): Likewise.
+ * tree.h (CONVERT_EXPR_P): Likewise.
+ * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
+ * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+ * tree-vrp.c:
+ (register_edge_assert_for_2, extract_range_from_unary_expr)
+ (register_edge_assert_for_1): Likewise.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
+ dconst_third_ptr, dconst_sqrt2_ptr): Declare.
+ (enum real_value_const): Delete.
+ (get_real_const): Delete.
+ * real.c (get_real_const): Delete.
+ (dconst_e_ptr): Define.
+ (dconst_third_ptr): Define.
+ (dconst_sqrt2_ptr): Define.
+ * builtins.c: Update all callers.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
+ statement iterator after statement removal.
+
+2008-08-18 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
+ (detect_processor_freebsd): Likewise.
+ (host_detect_local_cpu): Call newly added functions for FreeBSD.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
+ and loads have the correct types.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR cpp/7263
+ * c-opts.c (cpp_opts): Remove static.
+ * c-parser.c (cpp_opts): Declare it extern.
+ (disable_extension_diagnostics): Handle cpp options.
+ (enable_extension_diagnostics): Likewise.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostics.c (permerror_at): Rename as permerror.
+ (permerror): Delete.
+ * toplev.h: Likewise.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Remove cleanup_cfg1,
+ sdse1 and addressables2 passes. Replace dce1 with cddce1.
+ Move call_cdce before build_alias. Move copyrename2,
+ cunrolli and ccp2 beafore build_alias. Re-add addressable2
+ right after final inlining.
+ * tree-cfg.c (build_gimple_cfg): Do not dump function here.
+ (pass_build_cfg): But instead via TODO_dump_func.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-sra.c (generate_element_init_1): Deal with NULL constructor
+ element index.
+ (scalarize_init): If we failed to generate some initializers
+ do not generate zeros for not instantiated members. Instead
+ rely on the copy out.
+ * tree-ssa-operands.c (get_addr_dereference_operands): Warn
+ about missing flow-sensitive alias info only if we have
+ aliases computed.
+
+2008-08-17 Nick Clifton <nickc@redhat.com>
+
+ * doc/extend.texi (Function Attributes): Fix typo in description
+ if hot function attribute.
+
+2008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/install.texi (--with-mips-plt): Document.
+ * doc/invoke.texi (-mplt, -mno-plt): Document.
+ * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
+ and handle ${with_mips_plt}.
+ * config/mips/mips.opt (mplt): New option.
+ * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
+ (TARGET_ABICALLS_PIC2): Likewise.
+ (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
+ (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
+ (ASM_SPEC): Use !mabi=* instead of !mabi*.
+ (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
+ to decide whether to output ".option picX" directives.
+ * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
+ Pass -call_nonpic rather than -KPIC for -mplt.
+ (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
+ on the command line. Also remove it when -mabi=64 is used without
+ -msym32.
+ * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
+ * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
+ TARGET_ABICALLS_PIC0.
+ (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
+ TARGET_ABICALLS.
+ (mips16_build_function_stub): Only output ".option pic" directives
+ and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
+ (mips16_build_call_stub): Fix comment and remove redundant
+ ".set at"/"set .noat" directives.
+ (mips_function_rodata_section): Use the default behaviour for
+ TARGET_ABSOLUTE_ABICALLS.
+ (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
+ (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
+ (mips_restore_gp): Do nothing if the current function doesn't use
+ a global pointer.
+ (mips_expand_prologue): Only save $gp if the current function uses it.
+ Use a normal move for TARGET_ABICALLS_PIC0.
+ (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
+
+2008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
+ of function when handling GLOBAL_POINTER_REGNUM.
+
+2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/20548
+ * common.opt (-fstack-check): Do not declare the variable here.
+ (-fstack-check=): New option variant.
+ * doc/invoke.texi (Code Gen Options): Document it.
+ * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
+ (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
+ (STACK_CHECK_STATIC_BUILTIN): New macro.
+ * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
+ * opts.c: Include expr.h.
+ (common_handle_option) <OPT_fold_stack_check_>: New case.
+ <OPT_fstack_check>: Likewise.
+ * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
+ consistently in the test for variable-sized types. Adjust for
+ new behaviour of flag_stack_check.
+ * explow.c: Include except.h.
+ (allocate_dynamic_stack_space): Do not take into account
+ STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
+ * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
+ for variable-sized parameters. Treat all parameters whose size is
+ greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
+ stack checking is enabled.
+ * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
+ size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
+ if generic stack checking is enabled.
+ (expand_function_end): Adjust for new behaviour of flag_stack_check.
+ * reload1.c (reload): Likewise.
+ * stmt.c (expand_decl): Assert that all automatic variables have
+ fixed size at this point and remove dead code.
+ * flags.h (stack_check_type): New enumeration type.
+ (flag_stack_check): Declare.
+ * toplev.c (flag_stack_check): New global variable.
+ * Makefile.in (opts.o): Add dependency on EXPR_H.
+ (explow.o): Add dependency on except.h.
+
+2008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * config/avr/avr.c (avr_override_options): Reduce value of
+ PARAM_INLINE_CALL_COST.
+
+2008-08-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
+ to BLKmode, try to fetch an inner memory reference. Use 'mode' in
+ lieu of TYPE_MODE (type) throughout.
+
+2008-08-15 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (add_minipool_backward_ref): Check for
+ 8-byte-aligned entries in second case of forcing insertion after a
+ particular entry. Change third case to avoid inserting
+ non-8-byte-aligned entries before 8-byte-aligned ones.
+
+2008-08-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
+ strip components for unknown size accesses.
+
+2008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
+
+ * config/s390/2097.md New file.
+ * config/s390/s390.md ("z10prop" attribute): Define none,
+ z10_super, z10_super_E1, z10_super_A1, z10_super_c,
+ z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
+ z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
+ possible values and apply them to insns as appropriate.
+ ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
+ ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
+ fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
+ fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
+ ("bfp" mode attribute): Removed. Every occurence replaced
+ with <mode>.
+ * config/s390/s390.c (struct "z10_cost"): Updated entries.
+ * config/s390/2084.md (insn_reservation "x_itof"): Updated
+ type attribute.
+
+2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/28152
+ * c-parser.c (c_lex_one_token): Do not store the canonical spelling
+ for keywords.
+
+2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
+ additional argument. Support reduction when duplication is needed due
+ to data-types of different sizes in the loop.
+ (get_initial_def_for_induction): Fix printout.
+ (vect_get_vec_def_for_stmt_copy): Support case where the
+ vec_stmt_for_operand is a phi node.
+ (vectorizable_reduction): Support reduction when duplication is needed
+ due to data-types of different sizes in the loop.
+ (vectorizable_call): Remove restriction to not vectorize in case we
+ have data-types of different sizes in the loop.
+ (vectorizable_conversion): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_type_demotion): Likewise.
+ (vectorizable_type_promotion): Likewise.
+ (vectorizable_induction): Add restriction to not vectorize in case
+ we have data-types of different sizes in the loop.
+
+2008-08-14 Christophe Saout <christophe@saout.de>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37101
+ * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
+ (*vec_concatv2di_rex64_sse4_1): Ditto.
+ (*vec_concatv2di_rex64_sse): Ditto.
+
+2008-08-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37103
+ * fold-const.c (fold_widened_comparison): Do not allow
+ sign changes that change the result even if shorter type
+ is wider than arg1_unw's type.
+
+2008-08-13 Kazu Hirata <kazu@codesourcery.com>
+
+ * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
+ Skip if the multilib testing specifies -march that does not
+ agree with the one specified in the testcase.
+
+2008-08-13 Joseph Myers <joseph@codesourcery.com>
+
+ * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
+ zero extend SImode values being converted to TFmode before passing
+ to libcalls.
+
+2008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
+ __PPU__ when targeting the Cell/B.E. PPU processor.
+
+2008-08-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple.h (gimple_call_set_chain): Accept SSA variables.
+ * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
+ Rematerialize the static chain, if any.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
+ static chain.
+
+2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
+ (new_loc_descr): Likewise.
+ (add_loc_descr): Likewise.
+ (size_of_loc_descr): Likewise.
+ (size_of_locs): Likewise.
+ (output_loc_operands): Likewise.
+ (output_loc_sequence): Likewise.
+ (new_reg_loc_descr): New.
+ (build_cfa_loc): Use it.
+ (build_cfa_aligned_loc): Likewise.
+ (one_reg_loc_descriptor): Likewise.
+ (based_loc_descr): Likewise.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 30551
+ * doc/invoke.texi (Wmain): Update.
+ * c-decl.c (start_decl): warn_main is only 0 or 1.
+ (start_function): Likewise. Fix formatting.
+ (finish_function): Delete redundant warning.
+ * c.opt (Wmain): Add Var(warn_main) and Init(-1).
+ * c-opts (c_common_handle_option): -Wall only has effect if
+ warn_main is uninitialized. OPT_Wmain is automatically
+ handled. -pedantic also enables Wmain.
+ (c_common_post_options): Handle all logic for Wmain here.
+ * c-common.c (warn_main): Delete.
+ (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
+ * c-common.h (warn_main): Delete.
+
+2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36701
+ * expr.c (emit_group_store): Allocate stack temp with the
+ largest alignment when copying from register to stack.
+
+2008-08-13 Richard Guenther <rguenther@suse.de>
+
+ * tree.h (maybe_fold_offset_to_address): Declare.
+ * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
+ (ccp_fold): Handle pointer conversions the same as fold_stmt.
+ Likewise for POINTER_PLUS_EXPR.
+ (maybe_fold_offset_to_reference): Enable disabled code.
+ (maybe_fold_offset_to_address): New function.
+ (fold_stmt_r): Use it.
+ (fold_gimple_assign): Likewise.
+ * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
+ (gimplify_expr): Likewise.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * toplev.h (pedwarn_at): Fix declaration.
+
+2008-08-13 Joseph Myers <joseph@codesourcery.com>
+
+ * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
+ LINK_SPEC): Use %R in -Y P argument.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/15236
+ * diagnostic.c (pedwarn_at): New.
+ * toplev.h (pedwarn_at): Declare.
+ * c-tree.h (build_enumerator): Update declaration.
+ * c-decl.c (finish_enum): Update comment.
+ (build_enumerator): Take a location parameter. Give a pedwarn but do
+ not perform any conversion.
+ * c-parser.c (c_parser_enum_specifier): Set correct location for
+ enumerator.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35635
+ * c-common.c (conversion_warning): Use a switch. Ignore boolean
+ expressions except for conversions to signed:1 bitfields. Handle
+ COND_EXPR with constant operands.
+
+2008-08-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/15255
+ * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
+ (struct oecount_s): New struct and VEC types.
+ (cvec): New global.
+ (oecount_hash): New function.
+ (oecount_eq): Likewise.
+ (oecount_cmp): Likewise.
+ (zero_one_operation): New function.
+ (build_and_add_sum): Likewise.
+ (undistribute_ops_list): Perform un-distribution of multiplication
+ and division on the chain of summands.
+ (should_break_up_subtract): Also break up subtracts for factors.
+ (reassociate_bb): Delete dead visited statements.
+ Call undistribute_ops_list. Re-sort and optimize if it did something.
+ * passes.c (init_optimization_passes): Move DSE before
+ reassociation.
+ * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
+ PHI nodes.
+
+2008-08-12 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/invoke.texi (-fipa-pta): Say the option is experimental.
+
+ * doc/invoke.texi: Revert unintended checkin.
+
+2008-08-12 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR libgomp/26165
+ * gcc.c (include_spec_function): Tweak call to find_a_file.
+
+2008-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37014
+ * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
+ and TRUTH_ORIF_EXPR.
+ * dojump.c (do_jump): Likewise.
+
+ PR tree-optimization/37084
+ * tree-inline.c (copy_bb): Call gimple_regimplify_operands
+ if id->regimplify, don't assume stmt is a cast assignment.
+
+2008-08-12 Anatoly Sokolov <aesok@post.ru>
+
+ * final.c (final_scan_insn): Use app_enable/app_disable functions.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR bootstrap/37097
+ * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
+ by last change.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * defaults.h (TARGET_FLOAT_FORMAT): Remove.
+ (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
+
+ * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
+ * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
+ * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
+ * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
+ * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
+
+ * doc/tm.texi (Storage Layout): Remove documentation for
+ TARGET_FLOAT_FORMAT.
+
+ * simplify-rtx.c (simplify_binary_operation_1): Replace
+ TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * real.h (struct real_format): New member has_sign_dependent_rounding.
+ * real.c (ieee_single_format, mips_single_format, motorola_single_format,
+ spu_single_format, ieee_double_format, mips_double_format,
+ motorola_double_format, ieee_extended_motorola_format,
+ ieee_extended_intel_96_format, ieee_extended_intel_128_format,
+ ieee_extended_intel_96_round_53_format, ibm_extended_format,
+ mips_extended_format, ieee_quad_format, mips_quad_format,
+ vax_f_format, vax_d_format, vax_g_format): Initialize it.
+ * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
+
+ * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
+ MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
+ * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
+ MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
+ (ROUND_TOWARDS_ZERO): Likewise.
+
+ * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
+ (FLOAT_MODE_FORMAT): New macro.
+ (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
+ (MODE_COMPOSITE_P): ... this new macro.
+ (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
+ MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
+ * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
+
+ * flags.h: Include "real.h".
+
+ * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
+ REAL_MODE_FORMAT_COMPOSITE_P.
+ * simplify-rtx.c (simplify_const_binary_operation): Likewise.
+
+ * doc/tm.texi (Storage Layout): Remove documentation of
+ MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
+ MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
+ ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
+ they only apply to libgcc2.a.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/float_disf.c: New file.
+ * config/spu/float_unsdisf.c: New file.
+ * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
+ (LIB2FUNCS_EXCLUDE): Define.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+ Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * real.h (struct real_format): New member round_towards_zero.
+ * real.c (round_for_format): Respect fmt->round_towards_zero.
+ (ieee_single_format, mips_single_format, motorola_single_format,
+ spu_single_format, ieee_double_format, mips_double_format,
+ motorola_double_format, ieee_extended_motorola_format,
+ ieee_extended_intel_96_format, ieee_extended_intel_128_format,
+ ieee_extended_intel_96_round_53_format, ibm_extended_format,
+ mips_extended_format, ieee_quad_format, mips_quad_format,
+ vax_f_format, vax_d_format, vax_g_format): Initialize it.
+ * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
+
+ * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
+ real_format to choose rounding mode when calling MPFR functions.
+ (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
+ (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
+
+ * real.h (real_to_decimal_for_mode): Add prototype.
+ * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
+ Respect target rounding mode when generating decimal representation.
+ (real_to_decimal): New stub for backwards compatibility.
+ * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
+ real_to_decimal_for_mode instead of real_to_decimal.
+
+ * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+ Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * real.c (spu_single_format): New variable.
+ * real.h (spu_single_format): Declare.
+
+ * config/spu/spu.c (spu_override_options): Install SFmode format.
+ (spu_split_immediate): Use integer mode to operate on pieces of
+ floating-point values in all cases.
+
+ * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
+ ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
+ ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
+
+2008-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36688
+ * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
+ on the VAR_DECL instead of TYPE_READONLY on its type.
+
+2008-08-12 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.c: Depend on langhooks.h.
+ (supportable_widening_operation): Add two arguments. Support double
+ type conversions.
+ (supportable_narrowing_operation): Likewise.
+ * tree-vectorizer.h (supportable_widening_operation): Add two
+ arguments.
+ (supportable_narrowing_operation): Likewise.
+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
+ supportable_widening_operation with correct arguments.
+ * tree-vect-transform.c (vectorizable_conversion): Likewise.
+ (vectorizable_type_demotion): Support double type conversions.
+ (vectorizable_type_promotion): Likewise.
+ * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
+
+2008-08-11 Michael Matz <matz@suse.de>
+
+ * i386/i386.c (override_options): Move initialisation from
+ flag_schedule_insns_after_reload to here from ...
+ (optimization_options): ... here.
+
+2008-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36998
+ * dwarf2out.c (compute_barrier_args_size_1,
+ compute_barrier_args_size): Temporarily remove assertions.
+
+2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/20644
+ * tree-ssa.c (struct walk_data): Add new flag
+ warn_possibly_uninitialized.
+ (warn_uninitialized_var): Use it.
+ (warn_uninitialized_vars): New.
+ (execute_early_warn_uninitialized): Call it.
+ (execute_late_warn_uninitialized): Likewise.
+
+2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36238
+ * reload1.c (gen_reload): Guard calls to get_secondary_mem
+ for memory subregs.
+
+2008-08-09 Jan Hubicka <jh@suse.cz>
+
+ PR target/37055
+ * optabs.c (maybe_emit_unop_insn): Remove produced code if
+ expansion failed.
+ (expand_fix): Be prepared for expansion to fail.
+ (expand_sfix_optab): Remove instructions if expansion failed.
+
+2008-08-09 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
+ avr31 architecture.
+ * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
+ * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
+ mips/t-libgcc-mips16 to tmake_file.
+ * config/mips/mips-protos.h (mips_call_type): New enum.
+ (mips_pic_base_register, mips_got_load): Declare.
+ (mips_restore_gp): Take an rtx argument.
+ (mips_use_pic_fn_addr_reg_p): Declare.
+ (mips_expand_call): Replace the sibcall_p argument with
+ a mips_call_type argument. Add a lazy_p parameter.
+ (mips_split_call): Declare.
+ * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
+ (MIPS16_PIC_TEMP): Likewise.
+ (reg_class): Delete M16_NA_REGS.
+ (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
+ (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
+ (mips_split_hi_p): Declare.
+ * config/mips/mips.c (mips_split_hi_p): New array.
+ (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
+ (mips_got_symbol_type_p): New function.
+ (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
+ (mips16_stub_function_p): New function.
+ (mips16_local_function_p): Likewise.
+ (mips_use_pic_fn_addr_reg_p): Likewise.
+ (mips_cannot_force_const_mem): Return false for HIGHs.
+ Extend CONST_INT and symbolic handling to MIPS16, using
+ mips_symbol_insns to check that the base symbol type is a
+ legitimate constant. Reject GOT-based constants if
+ TARGET_MIPS16_PCREL_LOADS.
+ (mips_const_insns): Check targetm.cannot_force_const_mem when
+ decomposing a symbolic base and a large offset.
+ (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
+ When calling a function that needs $25 from MIPS16 code,
+ move the target address into $25 separately and add a USE
+ to the call insn.
+ (mips16_gp_pseudo_reg): Insert the initializer immediately
+ before the first real insn.
+ (mips_pic_base_register, mips_got_load): New functions.
+ (mips_split_symbol): Generalize the name of the LO_SUM_OUT
+ parameter to LOW_OUT. Say that it can be any valid SET_SRC
+ when splitting a load-address operation. Split SYMBOL_GOT_DISP
+ constants and highs of SYMBOL_GOT_PAGE_OFST constants.
+ (mips_call_tls_get_addr): Update the call to mips_expand_call,
+ also passing NULL_RTX rather than const0_rtx as the aux argument.
+ (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
+ instead of TARGET_EXPLICIT_RELOCS.
+ (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
+ (mips_load_call_address): Replace the sibcall_p argument with
+ a mips_call_type argument. Use mips_got_load.
+ (mips16_local_alias): New structure.
+ (mips16_local_aliases): New variable.
+ (mips16_local_aliases_hash): New function.
+ (mips16_local_aliases_eq): Likewise.
+ (mips16_local_alias): Likewise.
+ (mips16_stub_function): Likewise.
+ (mips16_build_function_stub): Create a local alias for the target
+ function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
+ .cpload directive and an R_MIPS_NONE relocation for the target
+ function, then load the alias rather than the function itself.
+ Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
+ (mips16_copy_fpr_return_value): Use mips16_stub_function and
+ mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
+ (mips16_build_call_stub): Replace the FN parameter with an
+ FN_PTR parameter. Force the address into a register if it
+ isn't a call_insn_operand; don't rely on the caller to do this.
+ If a call to a locally-defined and locally-binding MIPS16
+ function must be made indirectly, redirect the call to the
+ function's local alias. Use mips16_stub_function_p,
+ mips16_stub_function, mips_expand_call and use_reg.
+ Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
+ Use explicit %hi and %lo accesses where possible.
+ Use MIPS_CALL to generate the correct code form of a
+ jal instruction. Add clobbers of $18 instead of uses.
+ Update the call to mips_emit_call_insn.
+ (mips_expand_call): Replace the SIBCALL_P argument with a
+ mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
+ Take a LAZY_P parameter. Call mips16_build_call_stub first,
+ allowing it to modify the call address. Update the calls to
+ mips_load_call_address and mips_emit_call_insn.
+ (mips_split_call): New function.
+ (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
+ !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
+ SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
+ (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
+ (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
+ if TARGET_MIPS16.
+ (mips_cprestore_slot): New function.
+ (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
+ and use mips_cprestore_slot.
+ (mips_output_function_prologue): Handle TARGET_MIPS16 for
+ LOADGP_OLDABI.
+ (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
+ then use a copygp_mips16 instruction to set up $28.
+ (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
+ (mips16_lay_out_constants): Call split_all_insns_noflow.
+ (mips_reorg_process_insns): Explicitly set all_noreorder_p to
+ false if TARGET_MIPS16.
+ (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
+ (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
+ mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
+ (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
+ MIPS16 code. Allow MIPS16 o32 PIC.
+ (mips_override_options): Allow MIPS16 o32 PIC.
+ * config/mips/mips.md: Lower CONST_GP_P moves into register moves
+ after reload if TARGET_USE_GOT.
+ (UNSPEC_COPYGP): New constant.
+ (length): Use a default length of 8 for MIPS16 GOT loads.
+ (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
+ (*got_page<mode>): Check mips_split_hi_p.
+ (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
+ (unspec_got<mode>, unspec_call<mode>): New expanders.
+ (load_got<mode>, load_call<mode>): Remove the length attributes.
+ Use a got attribute instead of a type attribute.
+ (copygp_mips16): New insn.
+ (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
+ (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
+ (sibcall, sibcall_value, call, call_value): Update the calls
+ to mips_expand_call.
+ (call_internal, call_value_internal): Use mips_split_call.
+ (call_value_multiple_internal): Likewise.
+ (call_split): Move after call_internal (the insn it is split from).
+ (call_internal_direct, call_value_internal_direct): Turn into
+ define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
+ (call_direct_split, call_value_direct_split): New patterns.
+ * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
+ and use M16_REGS instead of M16_NA_REGS.
+ * config/mips/predicates.md (const_call_insn_operand): Replace
+ the TARGET_ABSOLUTE_ABICALLS-based check with a more general
+ mips_use_pic_fn_addr_reg_p check.
+ (move_operand): Reject HIGHs if mips_split_hi_p.
+ * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
+ (__mips16_floatunsisf): Inline __mips16_floatsisf.
+ (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
+ * config/mips/libgcc-mips16.ver: New file.
+ * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
+ $(srcdir)/config/mips/libgcc-mips16.ver.
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_unspec_address_offset): Move earlier
+ in file.
+ (mips_unspec_address, mips_unspec_offset_high): Likewise.
+ (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
+ (mips16_cfun_returns_in_fpr_p): Likewise.
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
+ rather than 4 to PC.
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
+ (FUNCTION_PROFILER): Save the static chain pointer into $2
+ beforehand and restore it aftewards.
+ (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
+ address directly into $25 and call the function through $25;
+ do not clobber $3. Pad the DImode version to cover the space
+ left by the deleted $25 <- $3 move.
+ (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
+ the removal of the $25 <- $3 move.
+ (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
+ * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
+ * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
+ (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
+ * config/mips/mips.c (mips_start_function_definition): New function.
+ (mips_end_function_definition): Likewise.
+ (mips_output_function_prologue): Use mips_start_function_definition.
+ (mips_output_function_epilogue): Use mips_end_function_definition.
+ (build_mips16_function_stub): Use mips_start_function_definition
+ and mips_end_function_definition.
+ (build_mips16_call_stub): Likewise.
+
+2008-08-09 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
+ * gimple.h (gimple_call_fn): Adjust comment.
+ (gimple_call_set_fndecl): New function.
+ (gimple_call_fndecl): Adjust for GIMPLE_CALL no
+ longer having bare FUNCTION_DECL operand.
+ (gimple_call_return_type): Likewise.
+ * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
+
+ * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
+ (gimple_mod_pow2): Likewise.
+ (gimple_mod_subtract): Likewise.
+ (gimple_ic): Likewise.
+ (gimple_stringop_fixed_value): Likewise.
+ (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
+ longer having bare FUNCTION_DECL operand.
+ * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
+ * omp-low.c (optimize_omp_library_calls): Likewise.
+ * cgraphunit.c (update_call_expr): Likewise.
+ * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
+ (execute_convert_to_rsqrt): Likewise.
+ * cfgexpand.c (gimple_to_tree): Simplify.
+ (release_stmt_tree): Fix for GIMPLE_CALL no longer having
+ bare FUNCTION_DECL operand.
+ * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
+ (convert_gimple_call): Use gimple_call_fndecl.
+ * c-common.c (c_warn_unused_result): Likewise.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/17880
+ * c-typeck.c (digest_init): Call verify_sequence_points from here.
+ (c_finish_return): Likewise.
+ (c_start_case): Likewise.
+ * c-common.c (warn_for_collisions_1): Use explicit location in warning.
+ * c-parser.c (c_parser_condition): New. Call
+ verify_sequence_points.
+ (c_parser_paren_condition): Call c_parser_condition.
+ (c_parser_for_statement): Call c_parser_condition.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 36901
+ * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
+ * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
+ Moved from diagnostic.h
+ (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
+ DK_PERMERROR.
+ (emit_diagnostic): New.
+ (warning0, pedwarn0): Delete.
+ (warning, warning_at, pedwarn, permerror): Return bool.
+ * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
+ Moved to diagnostic.c.
+ (struct diagnostic_context): Use correct type for
+ classify_diagnostic.
+ (diagnostic_report_diagnostic): Update declaration.
+ (emit_diagnostic): Declare.
+ * errors.c (warning): Return bool.
+ * errors.h (warning): Update declaration.
+ * toplev.h (warning0, pedwarn0): Delete.
+ (warning, warning_at, pedwarn, permerror): Return bool.
+ * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
+ * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
+ inform. Update all calls.
+ (diagnose_mismatched_decls): Check return value of warning/pedwarn
+ before giving informative note.
+ (implicit_decl_warning): Likewise.
+ * c-typeck.c (build_function_call): Likewise.
+ * tree-sssa.c (warn_uninit): Likewise.
+ * builtins.c (gimplify_va_arg_expr): Likewise.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 7651
+ * doc/invoke.texi (-Wextra): Move warning from here...
+ (-Wuninitialized): ... to here.
+
+2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28875
+ * flags.h (set_Wunused): Delete
+ * toplev.c (process_options): Handle Wunused flags here.
+ * opts.c (maybe_warn_unused_parameter): Delete.
+ (common_handle_option): Replace set_Wunused by warn_unused.
+ (set_Wextra): Do not handle Wunused-parameter here.
+ (set_Wunused): Delete.
+ * c-opts.c (c_common_handle_option): Replace set_Wunused by
+ warn_unused.
+ * common.opt (Wunused): Add Var and Init.
+ (Wunused-function): Likewise.
+ (Wunused-label): Likewise.
+ (Wunused-parameter): Likewise.
+ (Wunused-value): Likewise.
+ (Wunused-variable): Likewise.
+
+2008-08-08 Peter Bergner <bergner@vnet.ibm.com>
+
+ * doc/invoke.texi: Add cpu_type power7.
+ * config.in (HAVE_AS_VSX): New.
+ * config.gcc: Add cpu_type power7.
+ * configure.ac (HAVE_AS_VSX): Check for assembler support of the
+ VSX instructions.
+ * configure: Regenerate.
+ * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
+ power5.
+ * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
+ (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
+ (EXTRA_SPECS): Add asm_cpu_power7 spec string.
+
+2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_conversion): Pass the integral
+ type to vectorize.builtin_conversion.
+ (vectorizable_conversion): Likewise.
+ * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
+ integral type as input.
+ * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
+ FIX_TRUNC_EXPR.
+ (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
+ and ALTIVEC_BUILTIN_VCTSXS.
+ (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
+ formatting.
+
+2008-08-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (likely_value): Calls are not all varying.
+ (surely_varying_stmt_p): Calls are varying only if they are
+ non-builtin and not indirect or have no result.
+ (ccp_fold): Re-instantiate code before the tuples merge.
+
+2008-08-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37056
+ * gimple.h (gimple_assign_rhs_class): New helper function.
+ * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
+ unary operations properly.
+
+2008-08-07 Jan Hubicka <jh@suse.cz>
+
+ * i386.h (ix86_size_cost): Declare.
+ (ix86_cur_cost): New function macro.
+ * i386.md (peepholes expanding size and splitters): Predicate by
+ optimize_insn_for_speed_p.
+ (peepholes reduce size and splitters): Predicate by
+ optimize_insn_for_size_p.
+ * i386.c (ix86_size_cost): Rename from ...
+ (size_cost): This one.
+ (override_options): Update.
+ (decide_alg): Likewise.
+ (ix86_expand_clear): Use RTL profile.
+ (ix86_pad_returns): Use RTL profile.
+
+2008-08-07 Jan Hubicka <jh@suse.cz>
+
+ * recog.c (split_all_insns): Set RTL profile
+ (peephole2_optimize): Likewise.
+ * function.c (thread_prologue_and_epilogue_insns): Likewise.
+ * combine.c (combine_instructions): Likewise.
+
+2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c (c_common_reswords): Also warn about keyword "bool".
+
+2008-08-07 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
+ value in a6 after the set_frame_ptr insn.
+
+2008-08-07 Richard Henderson <rth@redhat.com>
+
+ PR debug/37033
+ * gcc.c (cpp_options): Pass along -g*.
+
+2008-08-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (output_move_neon): Update comment describing
+ big-endian vector layout.
+ (arm_assemble_integer): Do not handle big-endian NEON vectors
+ specially.
+ * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
+ neon_vget_lane<mode>_sext_internal,
+ neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
+ element indices for big-endian.
+
+2008-08-07 Richard Henderson <rth@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
+ * configure, config.in: Rebuild.
+ * debug.h (dwarf2out_do_cfi_asm): Declare.
+ * c-cppbuiltin.c (c_cpp_builtins): Use it.
+ * dwarf2out.c (dwarf2out_do_cfi_asm): New.
+ (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
+ dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
+
+2008-08-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
+ movv2si_internal): Combine into mov<mode>_internal.
+ (movv2si_internal_2): Remove.
+
+2008-08-07 Jan Hubicka <jh@suse.cz>
+
+ PR target/37048
+ * i386.md (single stringop patterns): Enable unconditionally.
+
+2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36992
+ * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
+
+ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
+ (bdesc_args): Add IX86_BUILTIN_MOVQ128.
+
+ * config/i386/sse.md (sse2_movq128): New.
+
+ * doc/extend.texi: Document __builtin_ia32_movq128.
+
+2008-08-07 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37042
+ * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
+ pointers can access anything.
+
+2008-08-06 Jan Hubicka <jh@suse.cz>
+
+ * optabs.c (emit_unop_insn): Break out to ...
+ (maybe_emit_unop_insn): ... this one.
+ (expand_sfix_optab): Use maybe variant.
+ * optabs.h (maybe_emit_unop_insn): Declare.
+
+ * i386.md (mov0 patterns): Enable by default.
+ (FP conversion expanders): Disable expansion of code expanding
+ sequences when instruction should be optimized for size.
+ (single strinop patterns): Enable when optimizing for size.
+ (string expanders): Disable expanding of code expanding sequences
+ when optimizning instruction for size.
+ * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
+ per BB basis.
+ (ix86_fp_comparison_sahf_cost): Likewise.
+ (ix86_expand_branch): Likewise.
+ (ix86_expand_ashl_const): Likewise.
+ (ix86_split_ashl): Likewise.
+ (ix86_expand_strlen): Likewise.
+ (ix86_emit_fp_unordered_jump): Likewie.
+
+2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c: Fix typo.
+ (c_common_reswords): Activate more C++ keyword warnings.
+
+ * matrix-reorg.c (compute_offset): Avoid C++ keywords.
+
+2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 26785
+ * diagnostic.c (permerror_at): New.
+ * toplev.h (permerror_at): Declare.
+
+2008-08-06 Victor Kaplansky <victork@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-transform.c (vect_model_simple_cost): Return
+ immediately if stmt is pure SLP.
+ (vect_model_store_cost): Ditto.
+ (vect_model_load_cost): Ditto.
+ (vectorizable_store): Remove PURE_SLP check before call
+ to vect_model_store_cost.
+ (vect_model_store_cost): When checking whether stmt describe
+ strided access, add a check that it is not slp_node.
+
+2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 8715
+ * c-common.c (warn_for_sign_compare): New. Handle separately the
+ case that 'constant' is zero.
+ * c-typeck.c (build_binary_op): Move code to c-common.c
+
+2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/alpha/alpha.c (alpha_preferred_reload_class,
+ alpha_secondary_reload, alpha_emit_set_const_1, function_value,
+ alpha_output_mi_thunk_osf): Avoid C++ keywords.
+ * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
+ * config/arm/arm.md: Likewise.
+ * config/avr/avr-protos.h (preferred_reload_class,
+ test_hard_reg_class, avr_simplify_comparison_p,
+ out_shift_with_cnt, class_max_nregs): Likewise.
+ * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
+ output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
+ preferred_reload_class, test_hard_reg_class): Likewise.
+ * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
+ bfin_memory_move_cost, bfin_secondary_reload,
+ bfin_output_mi_thunk): Likewise.
+ * config/crx/crx.c (crx_secondary_reload_class,
+ crx_memory_move_cost): Likewise.
+ * config/frv/frv-protos.h (frv_secondary_reload_class,
+ frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
+ * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
+ frv_secondary_reload_class, frv_class_likely_spilled_p,
+ frv_class_max_nregs): Likewise.
+ * config/h8300/h8300.c (h8300_classify_operand,
+ h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
+ Likewise.
+ * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
+ * config/ia64/ia64.c (ia64_preferred_reload_class,
+ ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
+ * config/iq2000/iq2000.c (gen_int_relational): Likewise.
+ * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
+ Likewise.
+ * config/m68hc11/m68hc11.c (preferred_reload_class,
+ m68hc11_memory_move_cost): Likewise.
+ * config/mcore/mcore.c (mcore_secondary_reload_class,
+ mcore_reload_class): Likewise.
+ * config/mips/mips.c (mips_hard_regno_mode_ok_p,
+ mips_class_max_nregs, mips_cannot_change_mode_class,
+ mips_preferred_reload_class, mips_secondary_reload_class,
+ mips_output_mi_thunk): Likewise.
+ * config/mmix/mmix.c (mmix_preferred_reload_class,
+ mmix_preferred_output_reload_class, mmix_secondary_reload_class):
+ Likewise.
+ * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
+ Likewise.
+ * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
+ pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
+ * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
+ * config/rs6000/rs6000.c (paired_expand_vector_init,
+ rs6000_secondary_reload_class, rs6000_output_mi_thunk,
+ compare_section_name, rs6000_memory_move_cost): Likewise.
+ * config/s390/s390.c (s390_emit_compare_and_swap,
+ s390_preferred_reload_class, s390_secondary_reload,
+ legitimize_pic_address, legitimize_tls_address,
+ legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
+ s390_class_max_nregs): Likewise.
+ * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
+ * config/s390/s390.md: Likewise.
+ * config/score/score-protos.h (score_secondary_reload_class,
+ score_preferred_reload_class): Likewise.
+ * config/score/score.c (score_preferred_reload_class,
+ score_secondary_reload_class): Likewise.
+ * config/score/score3.c (score3_output_mi_thunk,
+ score3_preferred_reload_class, score3_secondary_reload_class,
+ score3_hard_regno_mode_ok): Likewise.
+ * config/score/score3.h (score3_preferred_reload_class,
+ score3_secondary_reload_class): Likewise.
+ * config/score/score7.c (score7_output_mi_thunk,
+ score7_preferred_reload_class, score7_secondary_reload_class,
+ score7_hard_regno_mode_ok): Likewise.
+ * config/score/score7.h (score7_preferred_reload_class,
+ score7_secondary_reload_class): Likewise.
+ * config/sh/sh.c (prepare_move_operands, output_far_jump,
+ output_branchy_insn, add_constant, gen_block_redirect,
+ sh_insn_length_adjustment, sh_cannot_change_mode_class,
+ sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
+ * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+ * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
+ xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
+ xstormy16_preferred_reload_class): Likewise.
+ * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
+ xtensa_expand_atomic, override_options,
+ xtensa_preferred_reload_class, xtensa_secondary_reload_class):
+ Likewise.
+ * reorg.c (try_merge_delay_insns): Likewise.
+ * tree.c (merge_dllimport_decl_attributes): Likewise.
+
+ * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
+
+2008-08-06 Michael Matz <matz@suse.de>
+
+ * Makefile.in (write_entries_to_file): Quote words.
+ * gengtype.c (read_input_line): Skip over leading white-space.
+
+2008-08-06 Marc Gauthier <marc@tensilica.com>
+
+ * config.gcc: Match more processor names for Xtensa.
+ * configure.ac: Likewise.
+ * doc/install.texi (Specific): Likewise.
+ * configure: Regenerate.
+
+2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
+ * calls.c (avoid_likely_spilled_reg): Likewise.
+ * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
+ * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
+ * config/i386/i386.c (ix86_expand_special_args_builtin,
+ ix86_secondary_reload): Likewise.
+ * except.c (struct eh_region, gen_eh_region_catch,
+ remove_unreachable_regions, duplicate_eh_regions,
+ assign_filter_values, build_post_landing_pads,
+ sjlj_find_directly_reachable_regions, remove_eh_handler,
+ reachable_next_level, foreach_reachable_handler,
+ can_throw_internal_1, can_throw_external_1,
+ collect_one_action_chain): Likewise.
+ * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
+ * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
+ * function.c (update_temp_slot_address, instantiate_new_reg,
+ instantiate_virtual_regs_in_rtx,
+ instantiate_virtual_regs_in_insn): Likewise.
+ * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
+ * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
+ gimplify_cleanup_point_expr): Likewise.
+ * ipa-cp.c (ipcp_lattice_changed): Likewise.
+ * passes.c (next_pass_1): Likewise.
+ * print-tree.c (print_node_brief, print_node): Likewise.
+ * profile.c (branch_prob): Likewise.
+ * tree-dump.c (dump_register): Likewise.
+ * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
+ Likewise.
+ * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
+ copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
+ copy_edges_for_bb, copy_cfg_body, copy_tree_r,
+ copy_arguments_for_versioning, copy_static_chain): Likewise.
+ * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
+ add_new_name_mapping, register_new_name_mapping): Likewise.
+ * tree-mudflap.c (mf_xform_derefs): Likewise.
+ * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
+ get_init_expr, combine_chains): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * tree-ssa-structalias.c (create_variable_info_for): Likewise.
+ * tree-vrp.c (simplify_cond_using_ranges): Likewise.
+ * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
+ * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
+
+2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37010
+ * calls.c (expand_call): Use the biggest preferred stack
+ boundary.
+
+2008-08-06 Michael Matz <matz@suse.de>
+
+ PR target/36613
+ * reload.c (push_reload): Merge in,out,in_reg,out_reg members
+ for reused reload, instead of overwriting them.
+
+2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37009
+ * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
+ for incoming stack boundary.
+
+ * function.c (assign_parm_find_entry_rtl): Update
+ parm_stack_boundary.
+
+ * function.h (rtl_data): Add parm_stack_boundary.
+
+ * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
+ parm_stack_boundary for incoming stack boundary.
+
+2008-08-06 Joseph Myers <joseph@codesourcery.com>
+
+ * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
+ for unrepresentable subregs or treat them as equal to other regs
+ or subregs with the same register number.
+
+2008-08-06 Aldy Hernandez <aldyh@redhat.com>
+
+ PR middle-end/35432
+ * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
+ if want_value.
+
+2008-08-06 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (maybe_hot_frequency_p): When profile is absent, all
+ frequencies might be hot.
+
+2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * reload.c (find_reloads): Force constants into literal pool
+ also if they are wrapped in a SUBREG.
+
+2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ PR target/35659
+ * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
+ * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
+ Don't allow predicated instructions for data speculation.
+ * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
+ declaration.
+
+2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * haifa-sched.c (extend_global): Split to extend_global_data and
+ extend_region_data. Update all uses.
+ (extend_all): Rename to extend_block_data.
+
+2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * sched-rgn.c (new_ready): Check if instruction can be
+ speculatively scheduled before attempting speculation.
+ (debug_rgn_dependencies): Remove wrongful assert.
+
+2008-08-05 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
+
+2008-08-05 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
+ (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
+ va_size, and type_size.
+
+2008-08-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/37016
+ * tree-ssa.c (useless_type_conversion_p_1): Call langhook
+ if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
+
+2008-08-05 Richard Henderson <rth@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
+ * configure: Rebuild.
+
+2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/37024
+ * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
+ instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
+ is a conversion.
+
+2008-08-05 Richard Henderson <rth@redhat.com>
+
+ * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
+ * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
+ * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
+ * common.opt (fdwarf2-cfi-asm): New.
+ * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
+ * config.in, configure: Rebuild.
+ * dwarf2asm.c (dw2_asm_output_data_raw): New.
+ (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
+ New.
+ (dw2_force_const_mem): Externalize.
+ * dwarf2asm.h: Update.
+ * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
+ generate a real label.
+ (output_cfi_directive): New.
+ (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
+ (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
+ (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
+ and .cfi_lsda.
+ (dwarf2out_end_epilogue): Emit .cfi_endproc.
+ (output_loc_operands_raw, output_loc_sequence_raw): New.
+ (output_cfa_loc_raw): New.
+
+2008-08-05 Paul Brook <paul@codesourcery.com>
+
+ * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
+ * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
+ (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
+ (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
+ * config/arm/arm.h (TARGET_VFPD32): Define.
+ (TARGET_VFP3): Use TARGET_VFPD32.
+ (fputype): Add FPUTYPE_VFP3D16.
+ (LAST_VFP_REGNUM): Use TARGET_VFPD32.
+ * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
+ * config/arm/arm-cores.def: Add cortex-r4f.
+ * config/arm/arm-tune.md: Regenerate.
+
+2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
+ Reword some comments throughout the file.
+
+ (MFC_MIN_DMA_LIST_ELEMENTS): New define.
+ (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
+ (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
+ MFC_MIN_DMA_LIST_ELEMENTS.
+ (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
+ MFC_MAX_DMA_LIST_ELEMENTS.
+
+ (MFC_START_ENABLE): Remove PPU-only define.
+ (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
+ (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
+
+ (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
+ (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
+ (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
+ (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
+ (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
+ (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
+ (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
+
+ (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
+ (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
+ (mfc_sdcrt, mfc_sdcrtst): Likewise.
+ (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
+
+ (spu_read_machine_status): Fix typo.
+
+2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
+ SUBREG of multi-word hard register.
+ * config/spu/spu.c (valid_subreg): Likewise.
+ (adjust_operand): Handle SUBREGs of multi-word hard registers.
+
+2008-08-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
+ the candidate with the stripped base if that base is different
+ from the original base even for offset zero.
+
+2008-08-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36691
+ * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
+ check for no_overflow.
+
+2008-08-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-vect-transform.c (vectorizable_call): Fix tuplification.
+
+2008-08-04 Paul Brook <paul@codesourcery.com>
+
+ * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
+ (arm_order_regs_for_local_alloc): New function.
+ * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
+ prototype.
+ * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
+
+2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37012
+ * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
+ instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
+ (ix86_expand_epilogue): Likewise.
+
+2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
+ in comments.
+
+2008-08-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
+ to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
+ (*movv2sf_internal_rex64): Ditto.
+
+2008-08-03 Jan Hubicka <jh@suse.cz>
+
+ * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
+ expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
+ * expmed.c (expand_smod_pow2): Likewise.
+
+2008-08-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36992
+ * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
+ alternative 0 of operand 1.
+ (*vec_concatv2di_rex64_sse): Ditto.
+ (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
+ of operand 1.
+ (*sse2_storeq_rex64): Penalize allocation of "r" registers.
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
+ of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
+ (*movv2sf_internal_rex64): Ditto.
+
+2008-08-02 Richard Guenther <rguenther@suse.de>
+
+ PR target/35252
+ * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
+ (ssedoublesizemode): New mode attribute.
+ (sse_shufps): Call gen_sse_shufps_v4sf.
+ (sse_shufps_1): Macroize.
+ (sse2_shufpd): Call gen_Sse_shufpd_v2df.
+ (sse2_shufpd_1): Macroize.
+ (vec_extract_odd, vec_extract_even): New expanders.
+ (vec_interleave_highv4sf, vec_interleave_lowv4sf,
+ vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
+ * i386.c (ix86_expand_vector_init_one_nonzero): Call
+ gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
+ (ix86_expand_vector_set): Likewise.
+ (ix86_expand_reduc_v4sf): Likewise.
+
+2008-08-01 Doug Kwan <dougkwan@google.com>
+
+ * matrix-reorg.c: Re-enable all code.
+ (struct malloc_call_data): Change CALL_STMT to gimple type.
+ (collect_data_for_malloc_call): Tuplify.
+ (struct access_site_info): Change STMT to gimple type.
+ (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
+ and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
+ (struct free_info): Change STMT to gimple type.
+ (struct matrix_access_phi_node): Change PHI to gimple type.
+ (get_inner_of_cast_expr): Remove.
+ (may_flatten_matrices_1): Tuplify.
+ (may_flatten_matrices): Ditto.
+ (mark_min_matrix_escape_level): Ditto.
+ (ssa_accessed_in_tree): Refactor statement RHS related code into ...
+ (ssa_accessed_in_call_rhs): New
+ (ssa_accessed_in_assign_rhs): New
+ (record_access_alloc_site_info): Tuplify.
+ (add_allocation_site): Ditto.
+ (analyze_matrix_allocation_site): Ditto.
+ (analyze_transpose): Ditto.
+ (get_index_from_offset): Ditto.
+ (update_type_size): Ditto.
+ (analyze_accesses_for_call_expr): Tuplify and renamed into ...
+ (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
+ (analyze_accesses_for_phi_node): Tuplify.
+ (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
+ (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
+ (analyze_matrix_accesses): Tuplify.
+ (check_var_data): New call-back type for check_var_notmodified_p.
+ (check_var_notmodified_p): Tuplify and use call-back struct to
+ return statement found.
+ (can_calculate_expr_before_stmt): Factor out statement related code
+ into ...
+ (can_calculate_stmt_before_stmt): New.
+ (check_allocation_function): Tuplify.
+ (find_sites_in_func): Ditto.
+ (record_all_accesses_in_func): Ditto.
+ (transform_access_sites): Ditto.
+ (transform_allocation_sites): Ditto.
+ (matrix_reorg): Re-enable.
+ (gate_matrix_reorg): Re-enable.
+
+2008-08-01 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
+ for labels for which it hasn't been set yet. If it has been set,
+ stop walking insns and continue with next worklist item.
+ (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
+ if the only BARRIER is at the very end of a function.
+
+2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * cfgexpand.c (expand_stack_alignment): Assert that
+ stack_realign_drap and drap_rtx must match.
+
+ * function.c (instantiate_new_reg): If DRAP is used to realign
+ stack, replace virtual_incoming_args_rtx with internal arg
+ pointer.
+
+2008-08-01 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
+ loop information only if we initialized it.
+ (execute_pre): Call fini_pre with in_fre.
+ * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
+ if we do not unroll because we hit max-completely-peeled-insns.
+ Use our estimation for consistency, do allow shrinking.
+
+2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
+ with MIN_STACK_BOUNDARY.
+ (ix86_update_stack_boundary): Likewise.
+ (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
+ STACK_BOUNDARY.
+
+ * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
+ (MIN_STACK_BOUNDARY): This.
+
+2008-08-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36997
+ * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
+
+2008-08-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36988
+ * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
+ do not matter if that doesn't change volatile qualification.
+
+2008-08-01 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Do not generate libada-mk. Do not subst
+ host_cc_for_libada.
+ * libada-mk.in: Remove.
+ * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
+ * configure: Regenerate.
+
+2008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * tree-pass.h: Added comment about not dumping passes with name
+ starting with star in struct opt_pass.
+ * passes.c (register_dump_files_1): Don't do dump for a pass with
+ name starting with star.
+ * doc/passes.texi (Pass manager): Mention pass names and special
+ meaning of star prefix to avoid dump.
+
+2008-07-31 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
+ to MIPS64r2.
+ * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
+ (ISA_MIPS64R2): New macro.
+ (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
+ (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
+ ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
+ ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
+ ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
+ ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
+ ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
+ (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
+ (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
+ Move up to keep list alphabetically sorted.
+ (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
+ * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
+ processor.
+ * doc/invoke.texi (MIPS Options): Add -mips64r2.
+ (-march=@var{arch}): Add mips64r2.
+
+2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
+
+2008-07-31 Steve Ellcey <sje@cup.hp.com>
+
+ * expr.c (expand_assignment): Check for complete type.
+
+2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR debug/36977
+ * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
+
+ * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
+ for stack alignment.
+
+ * function.h (rtl_data): Add stack_realign_tried. Update comments.
+
+2008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_canonical_va_list_type): Remove.
+ (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
+
+2008-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36419
+ * dwarf2out.c (barrier_args_size): New variable.
+ (compute_barrier_args_size, compute_barrier_args_size_1): New
+ functions.
+ (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
+ if not called yet in the current function, use barrier_args_size
+ array to find the new args_size value.
+ (dwarf2out_frame_debug): Free and clear barrier_args_size.
+
+2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR debug/36980
+ * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
+ rule 19.
+
+2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR debug/36976
+ * dwarf2out.c (dwarf2out_args_size_adjust): New.
+ (dwarf2out_stack_adjust): Use it.
+ (dwarf2out_frame_debug_expr): Likewise.
+
+2008-07-31 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36978
+ * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
+ the generated condition.
+
+2008-07-31 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Always call
+ pass_early_warn_uninitialized.
+ * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
+ * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
+ * doc/passes.texi (Warn for uninitialized variables): Adjust.
+
+2008-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/36970
+ * builtins.c (maybe_emit_free_warning): New function.
+ (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
+ maybe_emit_free_warning for BUILT_IN_FREE.
+
+ PR debug/36278
+ * dwarf2out.c (get_context_die): New function.
+ (force_decl_die, force_type_die): Use it.
+ (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
+ returns NULL, force generation of DW_TAG_typedef and put that into
+ DW_AT_import.
+
+ PR preprocessor/36649
+ * c-pch.c (c_common_read_pch): Save and restore
+ line_table->trace_includes across PCH restore.
+
+2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/36554
+ * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
+
+2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ PR 36974
+ * final.c (call_from_call_insn): Handle COND_EXEC.
+
+2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * builtins.c (std_gimplify_va_arg_expr): Replace
+ PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+
+2008-07-30 Joey Ye <joey.ye@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * builtins.c (expand_builtin_setjmp_receiver): Replace
+ virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
+ (expand_builtin_apply_args_1): Likewise.
+ (expand_builtin_longjmp): Need DRAP for stack alignment.
+ (expand_builtin_apply): Likewise.
+
+ * caller-save.c (setup_save_areas): Call assign_stack_local_1
+ instead of assign_stack_local to allow alignment reduction.
+
+ * calls.c (emit_call_1): Need DRAP for stack alignment if
+ return pops.
+ (expand_call): Replace virtual_incoming_args_rtx with
+ crtl->args.internal_arg_pointer.
+ * stmt.c (expand_nl_goto_receiver): Likewise.
+
+ * cfgexpand.c (get_decl_align_unit): Estimate stack variable
+ alignment and store to stack_alignment_estimated and
+ max_used_stack_slot_alignment.
+ (expand_one_var): Likewise.
+ (expand_stack_alignment): New function.
+ (tree_expand_cfg): Initialize max_used_stack_slot_alignment
+ and stack_alignment_estimated fields in rtl_data. Call
+ expand_stack_alignment at end.
+
+ * defaults.h (INCOMING_STACK_BOUNDARY): New.
+ (MAX_STACK_ALIGNMENT): Likewise.
+ (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
+ (SUPPORTS_STACK_ALIGNMENT): Likewise.
+
+ * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
+ stack alignment when generating virtual registers.
+
+ * function.c (assign_stack_local): Renamed to ...
+ (assign_stack_local_1): This. Add a parameter to indicate
+ if it is OK to reduce alignment.
+ (assign_stack_local): Use it.
+ (instantiate_new_reg): Instantiate virtual incoming args rtx
+ to vDRAP if stack realignment and DRAP is needed.
+ (assign_parms): Collect parameter/return type alignment and
+ contribute to stack_alignment_estimated.
+ (locate_and_pad_parm): Likewise.
+ (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
+ with crtl->args.internal_arg_pointer.
+
+ * function.h (rtl_data): Add new field drap_reg,
+ max_used_stack_slot_alignment, stack_alignment_estimated,
+ stack_realign_needed, need_drap, stack_realign_processed and
+ stack_realign_finalized.
+ (stack_realign_fp): New macro.
+ (stack_realign_drap): Likewise.
+
+ * global.c (compute_regsets): Frame pointer is needed when
+ stack is realigned. Can eliminate frame pointer when stack is
+ realigned and dynamic realigned argument pointer isn't used.
+
+ * reload1.c (update_eliminables): Frame pointer is needed
+ when stack is realigned.
+ (init_elim_table): Can eliminate frame pointer when stack is
+ realigned and dynamic realigned argument pointer isn't used.
+
+ * rtl.h (assign_stack_local_1): Declare new funtion.
+
+ * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
+ (TARGET_GET_DRAP_RTX): Likewise.
+ (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
+ TARGET_GET_DRAP_RTX.
+
+ * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
+
+ * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
+ STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
+
+2008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
+ vdrap_reg, stack_realign and drap_reg_saved.
+ (add_cfi): Don't allow redefining CFA when DRAP is used.
+ (reg_save): Handle stack alignment.
+ (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
+ alignment. Don't generate DWARF information for (set fp sp)
+ when DRAP is used.
+ (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
+ to INVALID_REGNUM.
+ (int_loc_descriptor): Move prototype forward. Also define if
+ DWARF2_UNWIND_INFO is true.
+ (output_cfa_loc): Handle DW_CFA_expression.
+ (build_cfa_aligned_loc): New.
+ (based_loc_descr): Update assert for stack realign. For local
+ variables, use sp+offset when stack is aligned without drap and
+ fp+offset when stack is aligned with drap. For arguments, use
+ cfa+offset when drap is used to align stack.
+
+2008-07-30 Joey Ye <joey.ye@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_force_align_arg_pointer_string):
+ Break long line.
+ (ix86_gen_andsp): New.
+ (ix86_user_incoming_stack_boundary): Likewise.
+ (ix86_default_incoming_stack_boundary): Likewise.
+ (ix86_incoming_stack_boundary): Likewise.
+ (ix86_can_eliminate): Likewise.
+ (find_drap_reg): Likewise.
+ (ix86_update_stack_boundary): Likewise.
+ (ix86_get_drap_rtx): Likewise.
+ (ix86_finalize_stack_realign_flags): Likewise.
+ (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
+ (TARGET_GET_DRAP_RTX): Likewise.
+ (override_options): Overide option value for new options.
+ (ix86_function_ok_for_sibcall): Remove check for
+ force_align_arg_pointer.
+ (ix86_handle_cconv_attribute): Likewise.
+ (ix86_function_regparm): Likewise.
+ (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
+ (ix86_va_start): Replace virtual_incoming_args_rtx with
+ crtl->args.internal_arg_pointer.
+ (ix86_select_alt_pic_regnum): Check DRAP register.
+ (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
+ (ix86_compute_frame_layout): Compute frame layout wrt stack
+ realignment.
+ (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
+ (ix86_expand_prologue): Decide if stack realignment is needed
+ and generate prologue code accordingly.
+ (ix86_expand_epilogue): Generate epilogue code wrt stack
+ realignment is really needed or not.
+
+ * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
+ (ABI_STACK_BOUNDARY): Likewise.
+ (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
+ (STACK_REALIGN_DEFAULT): Likewise.
+ (INCOMING_STACK_BOUNDARY): Likewise.
+ (MAX_STACK_ALIGNMENT): Likewise.
+ (ix86_incoming_stack_boundary): Likewise.
+ (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
+ (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
+ (CAN_ELIMINATE): Defined with ix86_can_eliminate.
+ (machine_function): Remove force_align_arg_pointer.
+
+ * config/i386/i386.md (BX_REG): New.
+ (R13_REG): Likewise.
+
+ * config/i386/i386.opt (mforce_drap): New.
+ (mincoming-stack-boundary): Likewise.
+ (mstackrealign): Add Init(-1).
+
+ * config/i386/i386-protos.h (ix86_can_eliminate): New
+
+2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * doc/extend.texi: Update force_align_arg_pointer.
+
+ * doc/invoke.texi: Document -mincoming-stack-boundary. Update
+ -mstackrealign.
+
+ * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
+ (INCOMING_STACK_BOUNDARY): Likewise.
+ (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
+ (TARGET_GET_DRAP_RTX): Likewise.
+
+2008-07-30 Andreas Schwab <schwab@suse.de>
+
+ PR rtl-optimization/36929
+ * dse.c (replace_inc_dec): Use emit_insn_before instead of
+ add_insn_before and fix argument order.
+ (replace_inc_dec_mem): Handle NULL rtx.
+
+2008-07-30 Andrew Jenner <andrew@codesourcery.com>
+
+ * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
+ function.
+ (arm_compute_initial_elimination_offset): Use it.
+ (arm_compute_save_reg_mask): Include static chain save slot when
+ calculating alignment.
+ (arm_get_frame_offsets): Ditto.
+ (thumb1_compute_save_reg_mask): Ensure we have a low register saved
+ that we can use to decrement the stack when the stack decrement
+ could be too big for an immediate value in a single insn.
+ (thumb1_expand_prologue): Avoid using r12 for stack decrement.
+
+2008-07-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36967
+ * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
+ Release defs of statements we remove.
+
+2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
+ instead of NULL_RTVEC.
+
+2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR target/35866
+
+ * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
+ vector modes.
+
+2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * final.c (call_from_call_insn): New.
+ (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
+
+2008-07-30 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Substitute ADA_CFLAGS.
+ * configure: Regenerate.
+ * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
+ * Makefile.in: Remove mention of X_* variables.
+ * config/pa/x-ada-hpux10: Remove.
+ * config/pa/x-ada: Remove.
+
+ * doc/fragments.texi: Update.
+
+2008-07-30 Olivier Hainque <hainque@adacore.com>
+
+ * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
+ * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
+ __dso_handle explicitly here.
+
+2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34389
+ * c-typeck.c (build_binary_op): Encapsulate code into...
+ * c-common.c (shorten_binary_op): ...this new function.
+ (conversion_warning): Use the new function. Handle non-negative
+ constant in bitwise-and.
+ * c-common.h (shorten_binary_op): Declare.
+
+2008-07-30 Olivier Hainque <hainque@adacore.com>
+
+ * scan.c (make_sstring_space): Add explicit conversions of
+ allocator's return value.
+ * fix-header.c (recognized_function): Likewise.
+
+2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/cpp.texi: Update to GFDL 1.2.
+ * doc/gcc.texi: Do not list GPL as Invariant Section.
+ * doc/gccint.texi: Likewise. Update copyright years.
+ * doc/install.texi: Update copyright years.
+
+2008-07-30 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/36955
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
+ a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
+
+2008-07-29 Jan Hubicka <jh@suse.cz>
+
+ * c-decl.c (merge_decls): Do not handle DECL_INLINE.
+ (grokdeclarator): Likewise.
+ * langhooks.c (lhd_warn_unused_global_decl): Use
+ DECL_DECLARED_INLINE_P.
+ * print-tree.c (print_node): Remove DECL_INLINE check.
+
+2008-07-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36945
+ * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
+ Record invariant addresses un-decomposed.
+ (copy_reference_ops_from_call): Record reference call
+ arguments properly. Simplify.
+ * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
+ helper split out from ...
+ (create_component_ref_by_pieces): ... here. Simplify.
+ Prepare for recursive invocation for call arguments.
+ (create_expression_by_pieces): Adjust call to
+ create_component_ref_by_pieces.
+ (compute_avail): Process operand 2 of reference ops.
+
+2008-07-29 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
+
+2008-07-29 Jakub Jelinek <jakub@redhat.com>
+
+ * c-format.c (check_format_types): Revert unwanted checkin.
+
+2008-07-29 Jan Hubicka <jh@suse.cz>
+
+ * flags.h (flag_really_no_inline): Remove.
+ * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
+ * toplev.c (flag_really_no_inline): Remove.
+ * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
+ * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
+ (cgraph_decide_inlining_incrementally): Likewise.
+ (compute_inline_parameters): Likewise.
+ * opts.c (decode_options): Simplify.
+ * c-opts.c (c_common_post_options): Do not set flag_no_inline.
+ * common.opt (finline): Initialize to 1.
+ * tree-inline.c (inlinable_function_p): Check flag_no_inline.
+
+2008-07-29 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (always_optimize_for_size_p): New function.
+ (optimize_bb_for_size_p, optimize_bb_for_speed_p,
+ optimize_edge_for_size_p, optimize_edge_for_speed_p,
+ optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
+ functions.
+ (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
+ * function.c (prepare_function_start): Set default profile.
+ * function.h (rtl_data): Add maybe_hot_insn_p.
+ * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
+ (construct_exit_block): Likewise.
+ (tree_expand_cfg): Likewise.
+ * basic-block.h
+ (optimize_bb_for_size_p, optimize_bb_for_speed_p,
+ optimize_edge_for_size_p, optimize_edge_for_speed_p,
+ optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
+ (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
+ Declare.
+
+2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34985
+ * c-decl.c (merge_decls): Merge USED flags.
+
+2008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
+ valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
+ next_stack, lab_false and lab_over trees.
+
+2008-07-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36957
+ * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
+ (useless_type_conversion_p): Remove.
+ (types_compatible_p): Remove.
+ * gimple.h (tree_ssa_useless_type_conversion): Declare.
+ (useless_type_conversion_p): Declare.
+ (types_compatible_p): Declare.
+ (gimple_expr_type): Return the base type only if it is
+ trivially convertible to the subtype.
+
+2008-07-28 Andreas Tobler <a.tobler@schweiz.org>
+
+ * configure.ac: Use the m4_do macro to concatenate the warnings into
+ one string in ACX_PROG_CC_WARNING_OPTS,
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
+ ACX_PROG_CC_WARNINGS_ARE_ERRORS.
+ * configure: Regenerate.
+
+2008-07-28 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
+ (insert_fake_stores): Remove.
+ (realify_fake_stores): Likewise.
+ (execute_pre): Remove dead code.
+ * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
+ (find_func_aliases): Deal with it here instead.
+ Re-enable gcc_unreachable call.
+
+2008-07-28 Richard Guenther <rguenther@suse.de>
+
+ Merge from gimple-tuples-branch.
+
+ * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
+ * gimple.def: New file.
+ * gsstruct.def: Likewise.
+ * gimple-iterator.c: Likewise.
+ * gimple-pretty-print.c: Likewise.
+ * tree-gimple.c: Removed. Merged into ...
+ * gimple.c: ... here. New file.
+ * tree-gimple.h: Removed. Merged into ...
+ * gimple.h: ... here. New file.
+
+ * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
+ * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
+ --enable-checking=gimple flag.
+ * config.in: Likewise.
+ * configure: Regenerated.
+
+ * tree-ssa-operands.h: Tuplified.
+ * tree-vrp.c: Likewise.
+ * tree-loop-linear.c: Likewise.
+ * tree-into-ssa.c: Likewise.
+ * tree-ssa-loop-im.c: Likewise.
+ * tree-dump.c: Likewise.
+ * tree-complex.c: Likewise.
+ * cgraphbuild.c: Likewise.
+ * tree-ssa-threadupdate.c: Likewise.
+ * tree-ssa-loop-niter.c: Likewise.
+ * tree-pretty-print.c: Likewise.
+ * tracer.c: Likewise.
+ * gengtype.c: Likewise.
+ * tree-loop-distribution.c: Likewise.
+ * tree-ssa-loop-unswitch.c: Likewise.
+ * cgraph.c: Likewise.
+ * cgraph.h: Likewise.
+ * tree-ssa-loop-manip.c: Likewise.
+ * value-prof.c: Likewise.
+ * tree-ssa-loop-ch.c: Likewise.
+ * tree-tailcall.c: Likewise.
+ * value-prof.h: Likewise.
+ * tree.c: Likewise.
+ * tree.h: Likewise.
+ * tree-pass.h: Likewise.
+ * ipa-cp.c: Likewise.
+ * tree-scalar-evolution.c: Likewise.
+ * tree-scalar-evolution.h: Likewise.
+ * target.h: Likewise.
+ * lambda-mat.c: Likewise.
+ * tree-phinodes.c: Likewise.
+ * diagnostic.h: Likewise.
+ * builtins.c: Likewise.
+ * tree-ssa-alias-warnings.c: Likewise.
+ * cfghooks.c: Likewise.
+ * fold-const.c: Likewise.
+ * cfghooks.h: Likewise.
+ * omp-low.c: Likewise.
+ * tree-ssa-dse.c: Likewise.
+ * ipa-reference.c: Likewise.
+ * tree-ssa-uncprop.c: Likewise.
+ * toplev.c: Likewise.
+ * tree-gimple.c: Likewise.
+ * tree-gimple.h: Likewise.
+ * tree-chrec.c: Likewise.
+ * tree-chrec.h: Likewise.
+ * tree-ssa-sccvn.c: Likewise.
+ * tree-ssa-sccvn.h: Likewise.
+ * cgraphunit.c: Likewise.
+ * tree-ssa-copyrename.c: Likewise.
+ * tree-ssa-ccp.c: Likewise.
+ * tree-ssa-loop-ivopts.c: Likewise.
+ * tree-nomudflap.c: Likewise.
+ * tree-call-cdce.c: Likewise.
+ * ipa-pure-const.c: Likewise.
+ * c-format.c: Likewise.
+ * tree-stdarg.c: Likewise.
+ * tree-ssa-math-opts.c: Likewise.
+ * tree-ssa-dom.c: Likewise.
+ * tree-nrv.c: Likewise.
+ * tree-ssa-propagate.c: Likewise.
+ * ipa-utils.c: Likewise.
+ * tree-ssa-propagate.h: Likewise.
+ * tree-ssa-alias.c: Likewise.
+ * gimple-low.c: Likewise.
+ * tree-ssa-sink.c: Likewise.
+ * ipa-inline.c: Likewise.
+ * c-semantics.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * expr.c: Likewise.
+ * tree-ssa-loop-ivcanon.c: Likewise.
+ * predict.c: Likewise.
+ * tree-ssa-loop.c: Likewise.
+ * tree-parloops.c: Likewise.
+ * tree-ssa-address.c: Likewise.
+ * tree-ssa-ifcombine.c: Likewise.
+ * matrix-reorg.c: Likewise.
+ * c-decl.c: Likewise.
+ * tree-eh.c: Likewise.
+ * c-pretty-print.c: Likewise.
+ * lambda-trans.c: Likewise.
+ * function.c: Likewise.
+ * langhooks.c: Likewise.
+ * ebitmap.h: Likewise.
+ * tree-vectorizer.c: Likewise.
+ * function.h: Likewise.
+ * langhooks.h: Likewise.
+ * tree-vectorizer.h: Likewise.
+ * ipa-type-escape.c: Likewise.
+ * ipa-type-escape.h: Likewise.
+ * domwalk.c: Likewise.
+ * tree-if-conv.c: Likewise.
+ * profile.c: Likewise.
+ * domwalk.h: Likewise.
+ * tree-data-ref.c: Likewise.
+ * tree-data-ref.h: Likewise.
+ * tree-flow-inline.h: Likewise.
+ * tree-affine.c: Likewise.
+ * tree-vect-analyze.c: Likewise.
+ * c-typeck.c: Likewise.
+ * gimplify.c: Likewise.
+ * coretypes.h: Likewise.
+ * tree-ssa-phiopt.c: Likewise.
+ * calls.c: Likewise.
+ * tree-ssa-coalesce.c: Likewise.
+ * tree.def: Likewise.
+ * tree-dfa.c: Likewise.
+ * except.c: Likewise.
+ * except.h: Likewise.
+ * cfgexpand.c: Likewise.
+ * tree-cfgcleanup.c: Likewise.
+ * tree-ssa-pre.c: Likewise.
+ * tree-ssa-live.c: Likewise.
+ * tree-sra.c: Likewise.
+ * tree-ssa-live.h: Likewise.
+ * tree-predcom.c: Likewise.
+ * lambda.h: Likewise.
+ * tree-mudflap.c: Likewise.
+ * ipa-prop.c: Likewise.
+ * print-tree.c: Likewise.
+ * tree-ssa-copy.c: Likewise.
+ * ipa-prop.h: Likewise.
+ * tree-ssa-forwprop.c: Likewise.
+ * ggc-page.c: Likewise.
+ * c-omp.c: Likewise.
+ * tree-ssa-dce.c: Likewise.
+ * tree-vect-patterns.c: Likewise.
+ * tree-ssa-ter.c: Likewise.
+ * tree-nested.c: Likewise.
+ * tree-ssa.c: Likewise.
+ * lambda-code.c: Likewise.
+ * tree-ssa-loop-prefetch.c: Likewise.
+ * tree-inline.c: Likewise.
+ * tree-inline.h: Likewise.
+ * tree-iterator.c: Likewise.
+ * tree-optimize.c: Likewise.
+ * tree-ssa-phiprop.c: Likewise.
+ * tree-vect-transform.c: Likewise.
+ * tree-object-size.c: Likewise.
+ * tree-outof-ssa.c: Likewise.
+ * cfgloop.c: Likewise.
+ * system.h: Likewise.
+ * tree-profile.c: Likewise.
+ * cfgloop.h: Likewise.
+ * c-gimplify.c: Likewise.
+ * c-common.c: Likewise.
+ * tree-vect-generic.c: Likewise.
+ * tree-flow.h: Likewise.
+ * c-common.h: Likewise.
+ * basic-block.h: Likewise.
+ * tree-ssa-structalias.c: Likewise.
+ * tree-switch-conversion.c: Likewise.
+ * tree-ssa-structalias.h: Likewise.
+ * tree-cfg.c: Likewise.
+ * passes.c: Likewise.
+ * ipa-struct-reorg.c: Likewise.
+ * ipa-struct-reorg.h: Likewise.
+ * tree-ssa-reassoc.c: Likewise.
+ * cfgrtl.c: Likewise.
+ * varpool.c: Likewise.
+ * stmt.c: Likewise.
+ * tree-ssanames.c: Likewise.
+ * tree-ssa-threadedge.c: Likewise.
+ * langhooks-def.h: Likewise.
+ * tree-ssa-operands.c: Likewise.
+ * config/alpha/alpha.c: Likewise.
+ * config/frv/frv.c: Likewise.
+ * config/s390/s390.c: Likewise.
+ * config/m32c/m32c.c: Likewise.
+ * config/m32c/m32c-protos.h: Likewise.
+ * config/spu/spu.c: Likewise.
+ * config/sparc/sparc.c: Likewise.
+ * config/i386/i386.c: Likewise.
+ * config/sh/sh.c: Likewise.
+ * config/xtensa/xtensa.c: Likewise.
+ * config/stormy16/stormy16.c: Likewise.
+ * config/ia64/ia64.c: Likewise.
+ * config/rs6000/rs6000.c: Likewise.
+ * config/pa/pa.c: Likewise.
+ * config/mips/mips.c: Likewise.
+
+2008-07-28 Simon Baldwin <simonb@google.com>
+
+ * c-pragma.c (handle_pragma_message): New function.
+ (init_pragma): Register handle_pragma_message.
+ * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
+ documentation.
+
+2008-07-27 Victor Kaplansky <victork@il.ibm.com>
+
+ PR tree-optimization/35252
+ * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
+ REALPART_EXPR to be considered as same load operation.
+
+2008-07-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/36830
+ * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
+ (expressions_equal_p): Return false if only one operand is null.
+
+2008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
+ version requirements.
+
+2008-07-26 Olivier Hainque <hainque@adacore.com>
+
+ * collect2.c (symkind): New enum. Symbol kinds we care about.
+ (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
+ code and head comment accordingly.
+ (scan_prog_file): Use symkind names instead of bare integers.
+
+2008-07-25 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
+ DECL_INLINE.
+ * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
+ (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
+ * dojump.c (clear_pending_stack_adjust): Likewise.
+ * print-tree.c (print_node): Ignore DECL_INLINE.
+ * tree-inline.c (inlinable_function_p): Likewise.
+
+2008-07-25 Michael Meissner <gnu@the-meissners.org>
+
+ * doc/extend.texi (hot attribute): Document that the hot attribute
+ turns on -O3 for some ports.
+ (cold attribute): Document that the cold attribute turns on -Os
+ for some ports
+
+ * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
+ reflect function specific option support.
+
+ * target.h (struct target_option_hooks): Add fields to say whether
+ the cold attribute implies -Os and the hot attribute implies -O3.
+
+ * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
+ By default, do not turn on -Os for cold functions.
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
+ not turn on -O3 for hot functions.
+
+ * c-common.c (handle_hot_attribute): Use target hook to determine
+ if hot functions should enable -O3.
+ (handle_cold_attribute): Use target hook to determine if cold
+ functions should enable -Os.
+
+ * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
+ (override_options): Move disable scheduling to
+ optimization_options.
+ (optimization_options): Disable scheduling here, not
+ override_options.
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
+ (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
+
+ * config/ia64/ia64.c (ia64_override_options): Move setting
+ scheduling flags to ia64_optimization_options.
+ (ia64_optimization_options): Disable scheduling options here, and
+ not in ia64_override_options.
+ (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
+ (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
+
+2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36936
+ * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
+
+2008-07-25 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/36926
+ * ipa-prop.c (ipa_analyze_call_uses): Call
+ ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
+
+2008-07-25 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
+ movv2si_internal): Add mem = reg alternative.
+
+2008-07-25 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR bootstrap/36918
+ * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
+ DEFAULT_PCC_STRUCT_RETURN to 127.
+
+2008-07-24 Jan Hubicka <jh@suse.cz>
+
+ * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
+ (build_cgraph_edges): Likewise.
+ * cgraph.c (cgraph_node): Do not update assembler hash.
+ (cgraph_remove_node): Drop non-unit-at-a-time code.
+ * tree-pass.h (pass_O0_always_inline): Remove.
+ * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
+ * toplev.c (process_options): Flag unit-at-a-time does not imply
+ no section anchors.
+ * cgraphunit.c: Update comments.
+ (decide_is_function_needed): Drop non-unit-at-a-time mode.
+ (cgraph_assemble_pending_functions): Remove.
+ (cgraph_reset_node): Drop non-unit-at-a-time code.
+ (cgraph_finalize_function): Likewise.
+ (cgraph_analyze_function): Likewise.
+ (cgraph_finalize_compilation_unit): Likewise.
+ (cgraph_expand_function): Likewise.
+ (cgraph_optimize): Likesise.
+ (save_inline_function_body): Likewise.
+ * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
+ * tree-ssa-alias.c (maybe_be_aliased): Likewise.
+ * ipa-inline.c: Update comments.
+ (enum inlining_mode): remove INLINE_SPEED.
+ (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
+ (cgraph_mark_inline_edge): Likewise.
+ (try_inline): Likewise.
+ (cgraph_decide_inlining_incrementally): Likewise.
+ (cgraph_gate_inlining): Remove.
+ (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
+ (cgraph_gate_early_inlining): Likewise.
+ (gate_inline_passes): Remove.
+ (pass_inline_parameters, pass_ipa_inline): Remove gates.
+ (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
+ pass_O0_always_inline): Remove.
+ * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
+ * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
+ * opts.c (no_unit_at_a_time_default): Remove.
+ (decode_options): Remove flag_unit_at_a_time reset and warning.
+ * opts.h (no_unit_at_a_time_default): Remove.
+ * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
+ early in GNU dialect.
+ (merge_decls): Update comment; drop unit-at-a-time check.
+ (finish_decl): Likewise.
+ (grok_declaration): Remove flag_inline_trees code.
+ (finish_functions): Return on function returning non-void on all
+ statics.
+ * ipa-tye-escape.c (gate_type_escape_vars): Remove.
+ * cfgexpand.c (expand_one_static_var): Remove.
+ (expand_one_var): Remove expand_one_static_var call.
+ (expand_used_vars_for_block): Remove flag_unit_a_time check.
+ * c-opts.c (c_common_post_options): Remove flag_inline_trees code
+ and flag_unit_at_a-time compatibility checks.
+ * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
+ * tree-inline.c (flag_inline_trees): Remove.
+ (inlinable_function_p): Don't check it.
+ (expand_call_inline): Remove non-unit-at-a-time code.
+ * tree-inline.h (flag_inline_trees): Remove.
+ * tree-optimize.c (execute_early_local_optimizations): Remove
+ unit-at-a-time checks.
+ (tree_rest_of_compilation): Likewise.
+ * combine.c (setup_incoming_promotions): Likewise.
+ * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
+ * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
+ * passes.c (pass_inline_parameters): Update comments; remove
+ O0_alwaysinline pass.
+ (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
+ (execute_one_pass): Likewise.
+ * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
+ (ix86_function_sseregparm): Likewise.
+ * arm.c (arm_function_in_section_p): Likewise.
+ * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
+ * varpool.c: Update comments.
+ (decide_is_variable_needed): Remove unit-at-a-time checks.
+ (varpool_finalize_decl): Likewise.
+
+2008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
+ to 2 instead of -1.
+ (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
+
+2008-07-24 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
+ imp symbol extension.
+
+ 2008-07-23 Ian Lance Taylor <iant@google.com>
+
+ * tree-vrp.c (infer_value_range): Ignore asm statements when
+ looking for memory accesses for -fdelete-null-pointer-checks.
+
+2008-07-24 Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu-c.c (__vector_keyword): New variable.
+ (vector_keyword): Likewise.
+ (spu_categorize_keyword): New function.
+ (spu_macro_to_expand): Likewise.
+ (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
+ compiling an ISO C dialect.
+
+2008-07-24 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
+ conventional usage.
+
+2008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * configure: Regenerate.
+ * configure.ac: Require texinfo 4.7.
+ * doc/install.texi: Document texinfo 4.7 requirement.
+
+2008-07-23 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
+ rather than for DECL_SAVED_TREE.
+ * ipa-prop.c: Include diagnostic.h.
+ (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
+ thoroughly.
+ (ipa_detect_param_modifications): Function rewritten from scratch.
+ (ipa_compute_jump_functions): Changed accesses to modification flags.
+ (ipa_free_node_params_substructures): Update flags destruction.
+ (ipa_node_duplication_hook): Update flags duplication.
+ (ipa_print_all_params_modified): Updated flag access.
+ * ipa-prop.h (struct ipa_param_flags): New structure.
+ (struct ipa_node_params): New field modification_analysis_done,
+ modified_flags changed into param_flags.
+ (ipa_is_ith_param_modified): Changed to use new flags.
+ * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
+
+ * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
+ ipa-cp.c and split into two functions.
+ (ipa_print_node_jump_functions): New function.
+ (compute_scalar_jump_functions): New function.
+ (type_like_member_ptr_p): New function.
+ (compute_pass_through_member_ptrs): New function.
+ (fill_member_ptr_cst_jump_function): New function.
+ (determine_cst_member_ptr): New function.
+ (compute_cst_member_ptr_arguments): New function.
+ (ipa_compute_jump_functions): Complete rewrite.
+ * ipa-prop.h (enum jump_func_type): Make explicit that we depend
+ on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
+ (struct ipa_member_ptr_cst): New structure.
+ (union jump_func_value): New field member_cst.
+ * ipa-cp.c (ipcp_lat_is_insertable): New function.
+ (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
+ jump function types.
+ (ipcp_print_all_lattices): Slight fprintf rearrangement.
+ (ipcp_print_all_structures): Call ipa_print_all_jump_functions
+ instead of ipcp_print_all_jump_functions.
+ (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
+ only for replacable scalars.
+
+ * doc/invoke.texi (Optimize options): Add description of
+ -findirect-inlining.
+ * common.opt (flag_indirect_inlining): New flag.
+ * opts.c (decode_options): Set flag_indirect_inlining when
+ optimize >= 3.
+
+ * ipa-inline.c: Include ipa-prop.h.
+ (inline_indirect_intraprocedural_analysis): New function.
+ (inline_generate_summary): Allocate parameter and argument info
+ structures, call inline_indirect_intraprocedural_analysis on each
+ node when doing indirect inlining and deallocate indirect inlining
+ data structures in the end.
+ * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
+ (free_all_ipa_structures_after_iinln): New function.
+ (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
+ done.
+ * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
+
+ * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
+ (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
+ of computing the frequency separately.
+ (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
+ of computing the frequency separately.
+ * ipa-cp.c (ipcp_print_all_structures): Replace a call to
+ ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
+ * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
+ (ipa_get_stmt_member_ptr_load_param): New function.
+ (ipa_is_ssa_with_stmt_def): New function.
+ (ipa_note_param_call): New function.
+ (ipa_analyze_call_uses): New function.
+ (ipa_analyze_stmt_uses): New function.
+ (ipa_analyze_params_uses): New function.
+ (ipa_free_node_params_substructures): Also free the param_calls linked
+ list.
+ (ipa_node_duplication_hook): Also duplicate the param_calls
+ linked list.
+ (ipa_print_node_param_flags): New function.
+ (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
+ (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
+ * ipa-prop.h (struct ipa_param_flags): New field called.
+ (struct ipa_param_call_note): New structure.
+ (struct ipa_node_params): New fields param_calls and
+ uses_analysis_done.
+ (ipa_is_ith_param_called): New function.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+ ipa_analyze_params_uses and dump parameter flags.
+
+ * ipa-inline.c (cgraph_decide_recursive_inlining): Call
+ ipa_propagate_indirect_call_infos if performing indirect inlining,
+ pass a new parameter new_edges to it.
+ (add_new_edges_to_heap): New fucntion.
+ (cgraph_decide_inlining_of_small_functions): New vector
+ new_indirect_edges for newly found indirect edges , call
+ ipa_propagate_indirect_call_infos after inlining.
+ (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
+ inlining if performing indirect inlining. Call
+ free_all_ipa_structures_after_iinln when doing so too.
+ (inline_generate_summary): Do not call
+ free_all_ipa_structures_after_iinln here.
+ * ipa-prop.c (update_jump_functions_after_inlining): New function.
+ (print_edge_addition_message): New function.
+ (update_call_notes_after_inlining): New function.
+ (propagate_info_to_inlined_callees): New function.
+ (ipa_propagate_indirect_call_infos): New function.
+ * ipa-prop.h: Include cgraph.h
+ (struct ipa_param_call_note): Fields reordered, new field processed.
+ * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
+ flag indirect_call.
+ * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
+ rediscovered call statements.
+ * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
+ (dump_cgraph_node): Dump also the indirect_call flag.
+ (cgraph_clone_edge): Copy also the indirect_call flag.
+ * tree-inline.c (copy_bb): Do not check for fndecls from call
+ expressions, check for edge availability when moving clones.
+ (get_indirect_callee_fndecl): New function.
+ (expand_call_inline): If callee declaration is not apprent from
+ the statement, try calling get_indirect_callee_fndecl. Do not
+ issue warnings or call sorry when not inlinings an indirect edge.
+ * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
+
+ * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
+ bit more frandly to matching.
+ * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
+ * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
+ * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
+
+2008-07-23 Michael Meissner <gnu@the-meissners.org>
+
+ PR 36907
+ * opth-gen.awk: Suppress function specific features when building
+ target libraries.
+ * optc-gen.awk: Ditto.
+
+2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35058
+ * diagnostic.c (pedwarn): Add opt parameter.
+ (pedwarn0): New.
+ * c-tree.h (pedwarn_init): Add opt parameter.
+ (pedwarn_c90): Likewise.
+ (pedwarn_c99): Likewise.
+ * c-errors.c (pedwarn_c99): Likewise.
+ (pedwarn_c90): Likewise.
+ * toplev.h (pedwarn): Update declaration.
+ (pedwarn0): Declare.
+ * c-lex.c: All calls to pedwarn changed.
+ * builtins.c: All calls to pedwarn changed.
+ * toplev.c: All calls to pedwarn changed.
+ * c-decl.c: All calls to pedwarn changed.
+ * c-typeck.c: All calls to pedwarn changed.
+ * c-common.c: All calls to pedwarn changed.
+ * c-parser.c: All calls to pedwarn changed.
+
+2008-07-23 Michael Meissner <gnu@the-meissners.org>
+ Karthik Kumar <karthikkumar@gmail.com>
+
+ * attribs.c (file scope): Include c-common.h.
+ (decl_attributes): Add support for #pragma GCC optimize and
+ #pragma GCC option.
+
+ * targhooks.c (default_can_inline_p): New function that is the
+ default for the TARGET_CAN_INLINE_P target hook.
+
+ * targhooks.h (default_can_inline_p): Add declaration.
+
+ * tree.c (cl_optimization_node): New static tree for building
+ OPTIMIZATION_NODE tree.
+ (cl_target_option_node): New static tree for building
+ TARGET_OPTION_NODE tree.
+ (cl_option_hash_table): New hash table for hashing
+ OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
+ (cl_option_hash_hash): New function to provide the hash value for
+ OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
+ (cl_option_hash_eq): New function to provide an equality test for
+ OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
+ (tree_code_size): Add support for OPTIMIZATION_NODE and
+ TARGET_OPTION_NODE trees.
+ (tree_code_structure): Add support for OPTIMIZATION_NODE and
+ TARGET_OPTION_NODE trees.
+ (build_optimization_node): Build a tree that has all of the
+ current optimization options.
+ (build_target_option_node): Build a tree that has the target
+ options that might be changed on a per function basis.
+
+ * tree.h (file scope): Include options.h.
+ (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
+ (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
+ (TREE_OPTIMIZATION): Ditto.
+ (TREE_TARGET_SPECIFIC): Ditto.
+ (struct tree_function_decl): Add fields for remembering the
+ current optimization options and target specific options.
+ (struct tree_optimization_option): New tree variant that remembers
+ the optimization options.
+ (struct tree_target_option): New tree variant that remembers the
+ target specific flags that might change for compiling a particular
+ function.
+ (union tree_node): Include tree_optimization_option and
+ tree_target_option fields.
+ (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
+ TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
+ TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
+ TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
+ TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
+ optimization and target options.
+ (optimization_default_node): New macro to refer to global_trees
+ field.
+ (optimization_current_node): Ditto.
+ (optimization_cold_node): Ditto.
+ (optimization_hot_node): Ditto.
+ (target_option_default_node): Ditto.
+ (target_option_current_node): Ditto.
+ (current_option_pragma): Ditto.
+ (current_optimize_pragma): Ditto.
+
+ * target.h (struct gcc_target): Add valid_option_attribute_p,
+ target_option_save, target_option_restore, target_option_print,
+ target_option_pragma_parse, and can_inline_p hooks.
+
+ * toplev.h (parse_optimize_options): Add declaration.
+ (fast_math_flags_struct_set_p): Ditto.
+
+ * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
+ adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
+ optimize is used.
+
+ * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
+ tree_can_inline_p hook to see if one function can inline another.
+ (cgraph_decide_inlining): Ditto.
+ (cgraph_decide_inlining_incrementally): Ditto.
+
+ * opts.c (decode_options): Add support for running multiple times
+ to allow functions with different target or optimization options
+ than was specified on the command line.
+ (fast_math_flags_struct_set_p): New function that is similar to
+ fast_math_flags_set_p, except it uses the values in the
+ cl_optimization structure instead of global variables.
+
+ * optc-gen.awk: Add support for TargetSave to allow a back end to
+ declare new fields that need to be saved when using function
+ specific options. Include flags.h and target.h in the options.c
+ source. Add support for Save to indicate which options can be set
+ for individual functions. Generate cl_optimize_save,
+ cl_optimize_restore, cl_optimize_print, cl_target_option_save,
+ cl_target_option_restore, cl_target_option_print functions to
+ allow functions to use different optimization or target options.
+
+ * opt-functions.awk (var_type_struct): Return the type used for
+ storing the field in a structure.
+
+ * opth-gen.awk: Add support for TargetSave to allow a back end to
+ declare new fields that need to be saved when using function
+ specific options. Add support for Save to indicate which options
+ can be set for individual functions. Only generate one extern for
+ Mask fields. Generate cl_optimization and cl_target_option
+ structures to remember optimization and target options.
+
+ * treestruct.def (TS_OPTIMIZATION): Add support for garbage
+ collecting new tree nodes.
+ (TS_TARGET_OPTION): Ditto.
+
+ * c-decl.c (merge_decls): Merge function specific target and
+ optimization options.
+
+ * function.c (invoke_set_current_function_hook): If the function
+ uses different optimization options, change the global variables
+ to reflect this.
+
+ * coretypes.h (struct cl_optimization): Add forward reference.
+ (struct cl_target_option): Ditto.
+
+ * c-pragma.c (option_stack): New static vector to remember the
+ current #pragma GCC option stack.
+ (handle_pragma_option): New function to support #pragma GCC option
+ to change target options.
+ (optimize_stack): New static vector to remember the current
+ #pragma GCC optimize stack.
+ (handle_pragma_optimize): New function to support #pragma GCC
+ optimize to change optimization options.
+ (init_pragma): Add support for #pragma GCC optimize and #pragma
+ GCC option.
+
+ * tree.def (OPTIMIZATION_NODE): New tree code for remembering
+ optimization options.
+ (TARGET_OPTION_NODE): New tree code for remembering certain target
+ options.
+
+ * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
+ TARGET_OPTION_NODE trees.
+
+ * common.opt (-O): Add Optimization flag.
+ (-Os): Ditto.
+ (-fmath-errno): Ditto.
+ (-falign-functions): Add UInteger flag to make sure flag gets full
+ int in cl_optimization structure.
+ (-falign-jumps): Ditto.
+ (-falign-labels): Ditto.
+ (-falign-loops): Ditto.
+ (-fsched-stalled-insns): Ditto.
+ (-fsched-stalled-insns-dep): Ditto.
+
+ * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
+ definition.
+ (TARGET_OPTION_SAVE): Ditto.
+ (TARGET_OPTION_RESTORE): Ditto.
+ (TARGET_OPTION_PRINT): Ditto.
+ (TARGET_OPTION_PRAGMA_PARSE): Ditto.
+ (TARGET_CAN_INLINE_P): Ditto.
+ (TARGET_INITIALIZER): Add new hooks.
+
+ * tree-inline.c (tree_can_inline_p): New function to determine
+ whether one function can inline another. Check if the functions
+ use compatible optimization options, and also call the backend
+ can_inline_p hook.
+
+ * tree-inline.h (tree_can_inline_p): Add declaration.
+
+ * c-common.c (c_common_attribute): Add support for option and
+ optimize attributes.
+ (handle_option_attribute): Add support for the option attribute to
+ allow the user to specify different target options for compiling a
+ specific function.
+ (handle_optimize_attribute): Add support for the optimize
+ attribute to allow the user to specify different optimization
+ options for compiling a specific function.
+ (handle_hot_attribute): Turn on -O3 optimization for this one
+ function if it isn't the default optimization level.
+ (handle_cold_attribute): Turn on -Os optimization for this one
+ function if it insn't the default optimization.
+ (const_char_p): New const char * typedef.
+ (optimize_args): New static vector to remember the optimization
+ arguments.
+ (parse_optimize_options): New function to set up the optimization
+ arguments from either the optimize attribute or #pragma GCC optimize.
+
+ * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
+ (builtin_define_std): Ditto.
+
+ * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
+ Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
+ (x86_64-*-*): Ditto.
+
+ * Makefile.in (TREE_H): Add options.h.
+ (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
+
+ * doc/extend.texi (option attribute): Document new attribute.
+ (optimize attribute): Ditto.
+ (hot attribute): Document hot attribute sets -O3.
+ (cold attribute): Document cold attribute sets -Os.
+ (#pragma GCC option): Document new pragma.
+ (#pragma GCC optimize): Ditto.
+
+ * doc/options.texi (TargetSave): Document TargetSave syntax.
+ (UInteger): Document UInteger must be used for certain flags.
+ (Save): Document Save option to create target specific options
+ that can be saved/restored on a function specific context.
+
+ * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
+ (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
+
+ * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
+ (TARGET_OPTION_SAVE): Ditto.
+ (TARGET_OPTION_RESTORE): Ditto.
+ (TARGET_OPTION_PRINT): Ditto.
+ (TARGET_OPTION_PRAGMA_PARSE): Ditto.
+ (TARGET_CAN_INLINE_P): Ditto.
+
+ * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
+ -mfpmath=sse,387.
+ (-mfpmath=both): Ditto.
+
+2008-07-23 Michael Meissner <gnu@the-meissners.org>
+ Karthik Kumar <karthikkumar@gmail.com>
+
+ * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
+ (TARGET_POPCNT): Ditto.
+ (TARGET_SAHF): Ditto.
+ (TARGET_AES): Ditto.
+ (TARGET_PCLMUL): Ditto.
+ (TARGET_CMPXCHG16B): Ditto.
+ (TARGET_RECIP): Move switch into target_flags.
+ (TARGET_FUSED_MADD): Ditto.
+ (ix86_arch_features): Make an unsigned char type.
+ (ix86_tune_features): Ditto.
+ (OVERRIDE_OPTIONS): Add bool argument to override_options call.
+ (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
+ (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
+
+ * config/i386/i386.opt (arch): New TargetSave field to define
+ fields that need to be saved for function specific option support.
+ (tune): Ditto.
+ (fpmath): Ditto.
+ (branch_cost): Ditto.
+ (ix86_isa_flags_explicit): Ditto.
+ (tune_defaulted): Ditto.
+ (arch_specified): Ditto.
+ (-m128-long-double): Add Save flag to save option for target
+ specific option support.
+ (-m80387): Ditto.
+ (-maccumulate-outgoing-args): Ditto.
+ (-malign-double): Ditto.
+ (-malign-stringops): Ditto.
+ (-mfancy-math-387): Ditto.
+ (-mhard-float): Ditto.
+ (-mieee-fp): Ditto.
+ (-minline-all-stringops): Ditto.
+ (-minline-stringops-dynamically): Ditto.
+ (-mms-bitfields): Ditto.
+ (-mno-align-stringops): Ditto.
+ (-mno-fancy-math-387): Ditto.
+ (-mno-push-args): Ditto.
+ (-mno-red-zone): Ditto.
+ (-mpush-args): Ditto.
+ (-mred-zone): Ditto.
+ (-mrtd): Ditto.
+ (-msseregparm): Ditto.
+ (-mstack-arg-probe): Ditto.
+ (-m32): Ditto.
+ (-m64): Ditto.
+ (-mmmx): Ditto.
+ (-m3dnow): Ditto.
+ (-m3dnowa): Ditto.
+ (-msse): Ditto.
+ (-msse2): Ditto.
+ (-msse3): Ditto.
+ (-msse4.1): Ditto.
+ (-msse4.2): Ditto.
+ (-msse4): Ditto.
+ (-mno-sse4): Ditto.
+ (-msse4a): Ditto.
+ (-msse5): Ditto.
+ (-mrecip): Move flag into target_flags.
+ (-mcld): Ditto.
+ (-mno-fused-madd): Ditto.
+ (-mfused-madd): Ditto.
+ (-mabm): Move flag into ix86_isa_flags.
+ (-mcx16): Ditto.
+ (-mpopcnt): Ditto.
+ (-msahf): Ditto.
+ (-maes): Ditto.
+ (-mpclmul): Ditto.
+
+ * config/i386/i386-c.c: New file for #pragma support.
+ (ix86_target_macros_internal): New function to #define or #undef
+ target macros based when the user uses the #pragma GCC option to
+ change target options.
+ (ix86_pragma_option_parse): New function to add #pragma GCC option
+ support.
+ (ix86_target_macros): Move defining the target macros here from
+ TARGET_CPU_CPP_BUILTINS in i386.h.
+ (ix86_register_pragmas): Register the #pragma GCC option hook. If
+ defined, initialize any subtarget #pragmas.
+
+ * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
+ REGISTER_TARGET_PRAGMAS.
+
+ * config/i386/t-i386: New file for x86 dependencies.
+ (i386.o): Make dependencies mirror the include files used.
+ (i386-c.o): New file, add dependencies.
+
+ * config/i386/i386-protos.h (override_options): Add bool argument.
+ (ix86_valid_option_attribute_tree): Add declaration.
+ (ix86_target_macros): Ditto.
+ (ix86_register_macros): Ditto.
+
+ * config/i386/i386.c (ix86_tune_features): Move initialization of
+ the target masks to initial_ix86_tune_features to allow functions
+ to have different target options. Make type unsigned char,
+ instead of unsigned int.
+ (initial_ix86_tune_features): New static vector to hold processor
+ masks for the tune variables.
+ (ix86_arch_features): Move initialization of the target masks to
+ initial_ix86_arch_features to allow functions to have different
+ target options. Make type unsigned char, instead of unsigned int.
+ (initial_ix86_arch_features): New static vector to hold processor
+ masks for the arch variables.
+ (enum ix86_function_specific_strings): New enum to describe the
+ string options used for attribute((option(...))).
+ (ix86_target_string): New function to return a string that
+ describes the target options.
+ (ix86_debug_options): New function to print the current options in
+ the debugger.
+ (ix86_function_specific_save): New function hook to save the
+ function specific global variables in the cl_target_option structure.
+ (ix86_function_specific_restore): New function hook to restore the
+ function specific variables from the cl_target_option structure to
+ the global variables.
+ (ix86_function_specific_print): New function hook to print the
+ target specific options in the cl_target_option structure.
+ (ix86_valid_option_attribute_p): New function hook to validate
+ attribute((option(...))) arguments.
+ (ix86_valid_option_attribute_tree): New function that is common
+ code between attribute((option(...))) and #pragma GCC option
+ support that parses the options and returns a tree holding the options.
+ (ix86_valid_option_attribute_inner_p): New helper function for
+ ix86_valid_option_attribute_tree.
+ (ix86_can_inline_p): New function hook to decide if one function
+ can inline another on a target specific basis.
+ (ix86_set_current_function); New function hook to switch target
+ options if the user used attribute((option(...))) or #pragma GCC
+ option.
+ (ix86_tune_defaulted): Move to static file scope from
+ override_options.
+ (ix86_arch_specified): Ditto.
+ (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
+ ix86_isa_flags.
+ (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
+ (OPTION_MASK_ISA_ABM_SET): Ditto.
+ (OPTION_MASK_ISA_POPCNT_SET): Ditto.
+ (OPTION_MASK_ISA_CX16_SET): Ditto.
+ (OPTION_MASK_ISA_SAHF_SET): Ditto.
+ (OPTION_MASK_ISA_AES_UNSET): Ditto.
+ (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
+ (OPTION_MASK_ISA_ABM_UNSET): Ditto.
+ (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
+ (OPTION_MASK_ISA_CX16_UNSET): Ditto.
+ (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
+ (struct ptt): Move to static file scope from override_options.
+ (processor_target_table): Ditto.
+ (cpu_names): Ditto.
+ (ix86_handle_option): Add support for options that are now isa options.
+ (override_options): Add support for declaring functions that
+ support different target options than were specified on the
+ command line. Move struct ptt, processor_target_table, cpu_names,
+ ix86_tune_defaulted, ix86_arch_specified to static file scope.
+ Add bool argument. Fix up error messages so the appropriate error
+ is given for either command line or attribute.
+ (ix86_previous_fndecl): New static to remember previous function
+ declaration to see if we need to change target options.
+ (ix86_builtins_isa): New array to record the ISA of each builtin
+ function.
+ (def_builtin): Always create the builtin function, even if the
+ current ISA doesn't support it.
+ (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
+ tests for those builtins.
+ (ix86_init_builtins): Remove TARGET_MMX test for calling
+ ix86_init_mmx_sse_builtins.
+ (ix86_expand_builtin): If the current ISA doesn't support a given
+ builtin, signal an error.
+ (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
+ (TARGET_SET_CURRENT_FUNCTION): Ditto.
+ (TARGET_OPTION_SAVE): Ditto.
+ (TARGET_OPTION_RESTORE): Ditto.
+ (TARGET_OPTION_PRINT): Ditto.
+ (TARGET_CAN_INLINE_P): Ditto.
+
+2008-07-22 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * c-typeck.c (build_external_ref): Don't call assemble_external.
+ * final.c (output_operand): Call assemble_external.
+
+2008-07-21 DJ Delorie <dj@redhat.com>
+
+ * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
+ (TARGET_HARD_REGNO_SCRATCH_OK): Define.
+
+2008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.md ("div<mode>3"): Convert into expander, move
+ original insn and splitter contents into ...
+ ("*div<mode>3_fast"): ... this new pattern. Enable only if
+ flag_unsafe_math_optimizations. Add dummy scratch register.
+ ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
+ !flag_unsafe_math_optimizations. Returns number with next
+ highest magnitude if this is still less or equal to the true
+ quotient in magnitude.
+
+2008-07-21 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * Makefile.in: Replace toplev.h with TOPLEV_H.
+ * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
+ * c-lex.c (fe_file_change): Don't set in_system_header.
+ * c-parser.c (c_token): Remove in_system_header.
+ (c_lex_one_token): Don't set in_system_header.
+ (c_parser_set_source_position_from_token): Don't set in_system_header.
+ * diagnostic.c (diagnostic_report_diagnostic): Use location from
+ diagnostic_info.
+ (warning_at): New.
+ * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
+ * flags.h (in_system_header): Remove.
+ * function.c (saved_in_system_header): Remove.
+ (push_cfun): Don't set in_system_header.
+ (pop_cfun): Don't set in_system_header.
+ (push_struct_function): Don't set in_system_header.
+ * input.h (expanded_location): Add sysp.
+ (in_system_header_at): New.
+ (in_system_header): New.
+ * toplev.c (in_system_header): Remove.
+ * toplev.h: Include input.h
+ (warning_at): New.
+ * tree-cfg.c (execute_warn_function_return): Call warning_at.
+ * tree-ssa.c (warn_uninit): Call warning_at.
+ (warn_uninitialized_var): Update calls to warn_uninit.
+ (warn_uninitialized_phi): Update calls to warn_uninit.
+ * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
+ (expand_location): Initialize xloc.sysp.
+ * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
+ (tree_decl_with_vis): Remove in_system_header_flag.
+
+2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/36822
+ * recog.c (asm_operand_ok): Change the order of the extra
+ memory constraint checks.
+
+2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/36879
+ * tree-switch-conversion.c (build_one_array): Call
+ varpool_mark_needed_node and varpool_finalize_decl
+ instead of assemble_variable.
+
+2008-07-19 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_add_new_function): Do early local passes.
+ * tree-nrv.c (gate_pass_return_slot): New gate.
+ (pass_nrv): Add the gate.
+ * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
+ functions.
+ (coalesce_ssa_name): Coalesce SSA names.
+ * tree-ssa-live.c (remove_unused_locals): Be more conservative when
+ not optimizing so unused user vars remains visible.
+ * common.opt (flag_tree_ter): Always enable by default.
+ * tree-ssa-ter.c: Include flags.h
+ (is_replaceable_p): Check that locations match; when aliasing
+ is missing be conservative about loads.
+ * tree-optimize.c (gate_init_datastructures): Remove.
+ (pass_init_datastructures): New.
+ * passes.c: Reorder passes so we always go into SSA.
+
+2008-07-19 Jan Hubicka <jh@suse.cz>
+
+ * doc/extend.texi (flatten attribute): Remove note about
+ unit-at-a-time.
+ * doc/invoke.texi (--combine): Likewise.
+ (-finline-functions-called-once): Update levels when enabled.
+ (-funit-at-a-time): Document new behaviour.
+ (-ftoplevel-reorder): Document that it is enabled -O0 and imply
+ -fno-section-anchors when disabled explicitly.
+ (inline params): They are not ignored now.
+ (precompiled headers): Remove unit-at-a-time as being incompatible.
+ * opts.c (decode_options): Handle unit-at-a-time as alias;
+ imply -fno-section-anchors when toplevel reorder is disabled
+ explicitly.
+ * common.opt (ftoplevel-reorder): Set default value to 2.
+ (funit-at-a-time): Set default value to 1.
+ * config/rs6000/rs6000.c (optimization_options): Set section anchors
+ to 2.
+
+2008-07-19 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_int_roundingfn,
+ expand_builtin_int_roundingfn_2): Do not take subtarget argument;
+ it is not useful.
+
+2008-07-19 Richard Guenther <rguenther@suse.de>
+
+ PR bootstrap/36864
+ * tree-ssa-sccvn.h (get_constant_value_id): Declare.
+ * tree-ssa-sccvn.c (get_constant_value_id): New function.
+ * tree-ssa-pre.c (get_expr_value_id): For newly created
+ constant value-ids make sure to add the expression to its
+ expression-set.
+
+2008-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36877
+ * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
+ return value of the builtin is ignored.
+
+2008-07-19 Olivier Hainque <hainque@adacore.com>
+
+ * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
+ bits, a C conformant malloc implementation has to provide.
+ * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
+
+2008-07-19 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/36780
+ PR target/36827
+ * reload.c (find_reloads_subreg_address): Only reload address if
+ reloaded == 0, not for reloaded != 1.
+
+ Revert:
+ 2008-07-16 Joseph Myers <joseph@codesourcery.com>
+ * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
+ (m32c_legitimate_address_p): Handle "++rii" addresses created by
+ m32c_legitimize_reload_address.
+
+ 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
+ * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
+ (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
+
+2008-07-19 Olivier Hainque <hainque@adacore.com>
+
+ * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
+ argument, saying whether nested array are to be collapsed
+ into a single array type DIE with multiple subscripts.
+ (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
+ issues, centralize the nested array types collapsing control and
+ disable the transformation for Ada.
+
+2008-07-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36786
+ * config/i386/i386.md (x86_64_shift_adj_1): Rename from
+ x86_64_shift_adj.
+ (x86_64_shift_adj_2): New expander.
+ (x86_64_shift_adj_3): Ditto.
+ * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
+ to split TImode operands.
+ (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
+ (ix86_split_lshr): Ditto.
+
+2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
+ and __CHAR32_TYPE__.
+ * c-typeck.c (digest_init): Support char16_t and char32_t.
+ (set_nonincremental_init_from_string): Idem.
+
+2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36859
+ * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
+ PREFERRED_STACK_BOUNDARY.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+
+2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36858
+ * function.c (locate_and_pad_parm): Cap boundary earlier.
+
+2008-07-17 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
+ no-op for targets which don't use DLLs.
+
+2008-07-17 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
+ that nodes are relevant by examining the node->analyzed flag.
+ (ipcp_init_stage): Check which nodes are relevant, assert that the
+ relevant ones are also required.
+ (ipcp_propagate_stage): Check on the side arrays are properly
+ allocated.
+ (ipcp_print_all_jump_functions): Make sure not to touch any node
+ that is not analyzed or an edge that does not have a corresponding
+ entry in the on-the-side vectors.
+ (ipcp_function_scale_print): Likewise.
+ (ipcp_update_callgraph): Check that the node is relevant.
+ (ipcp_insert_stage): Check that the node is relevant. Check there is
+ an info for every node and edge.
+ * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
+ (ipa_print_all_tree_maps): Likewise and a new variable info.
+ (ipa_print_all_params_modified): Likewise.
+ * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
+
+2008-07-17 Roman Zippel <zippel@linux-m68k.org>
+
+ PR target/25343
+ * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
+
+2008-07-17 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/36753
+ * fwprop.c (use_killed_between): Don't shortcut
+ single-definition global registers.
+
+2008-07-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (varpool_empty_needed_queue): Declare.
+ * cgraphunit.c (output_in_order): Mark all variables as needed;
+ empty the queue.
+ * varpool.c (varpool_assemble_node): Update debug queue.
+ (varpool_assemble_pending_decls): Don't do it here.
+ (varpool_empty_needed_queue): New function.
+
+2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * recog.c (peephole2_optimize): Fix formatting.
+
+2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-pch.c (get_ident): Avoid C++ keywords.
+ * combine-stack-adj.c (single_set_for_csa): Likewise.
+ * final.c (asm_insn_count, final_scan_insn, alter_subreg,
+ output_asm_insn): Likewise.
+ * reload.c (push_secondary_reload, find_reusable_reload,
+ push_reload, combine_reloads, find_reloads,
+ debug_reload_to_stream): Likewise.
+ * reload.h (struct reload): Likewise.
+ * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
+ allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
+ emit_output_reload_insns): Likewise.
+ * targhooks.c (default_secondary_reload): Likewise.
+ * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
+
+2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * recog.c (validate_change_1, validate_change,
+ validate_unshare_change, validate_replace_rtx_1, struct
+ funny_match, constrain_operands, peephole2_optimize): Avoid C++
+ keywords.
+ * reload.c (push_secondary_reload, secondary_reload_class,
+ scratch_reload_class, find_valid_class, find_reusable_reload,
+ push_reload, find_dummy_reload, find_reloads_address_1,
+ find_reloads_address_part, find_equiv_reg): Likewise.
+ * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
+ choose_reload_regs): Likewise.
+ * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
+ Likewise.
+ * rtlhooks.c (gen_lowpart_if_possible): Likewise.
+ * sched-ebb.c (add_deps_for_risky_insns): Likewise.
+ * sched-rgn.c (concat_INSN_LIST): Likewise.
+ * stor-layout.c (mode_for_size, mode_for_size_tree,
+ smallest_mode_for_size): Likewise.
+
+2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cfg.c (dump_reg_info): Avoid C++ keywords.
+ * dwarf2asm.c (dw2_force_const_mem,
+ dw2_asm_output_encoded_addr_rtx): Likewise.
+ * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
+ * expmed.c (expand_shift): Likewise.
+ * global.c (find_reg): Likewise.
+ * graph.c (draw_edge): Likewise.
+ * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
+ * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
+ widen_clz, widen_bswap, expand_parity, expand_unop,
+ emit_cmp_and_jump_insn_1): Likewise.
+ * postreload.c (reload_cse_simplify_operands): Likewise.
+ * ra.h (add_neighbor): Likewise.
+ * reg-stack.c (remove_regno_note, change_stack): Likewise.
+ * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
+ record_reg_classes, copy_cost, record_address_regs,
+ invalid_mode_change_p): Likewise.
+ * regrename.c (regrename_optimize, scan_rtx_reg,
+ dump_def_use_chain, find_oldest_value_reg,
+ replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
+
+2008-07-16 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
+ MASK_POWERPC64 for power4 in previous commit.
+
+2008-07-16 Olivier Hainque <hainque@adacore.com>
+
+ * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
+ instead of bare conversion to cast const-ness away.
+
+2008-07-16 Anatoly Sokolov <aesok@post.ru>
+
+ * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
+ XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
+ * config/xtensa/xtensa.c (xtensa_function_value): New function.
+ (TARGET_FUNCTION_VALUE): Define.
+
+2008-07-16 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (processor_target_table): Add
+ MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
+
+2008-07-16 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/36827
+ * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
+ (m32c_legitimate_address_p): Handle "++rii" addresses created by
+ m32c_legitimize_reload_address.
+
+2007-07-16 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
+ DECL_IN_SYSTEM_HEADER in sync.
+
+2008-07-15 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
+ * tree-ssa-pre.c (pre_expr_eq): Ditto
+ (get_constant_for_value_id): Take a type as an argument.
+ (fully_constant_expression): Pass in type.
+ (find_or_generate_expression): Short circuit constant case.
+ (create_expression_by_pieces): Remove special casing of
+ pointer_plus.
+ (do_regular_insertion): Short circuit constant case.
+ (do_partial_partial_insertion): Ditto.
+
+2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/36782
+ * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
+
+2008-07-15 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/libgcc-xtensa.ver: New file.
+ * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
+
+2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * df-problems.c (df_set_note): Avoid C++ keywords.
+ * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
+ * dse.c (record_store, remove_useless_values): Likewise.
+ * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
+ gen_reg_rtx_offset, operand_subword, change_address_1,
+ change_address, adjust_address_1, offset_address,
+ widen_memory_access, emit_copy_of_insn_after): Likewise.
+ * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
+ * fwprop.c (should_replace_address, propagate_rtx_1,
+ propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
+ Likewise.
+ * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
+ gcse_emit_move_after, update_ld_motion_stores): Likewise.
+ * lcm.c (compute_insert_delete, pre_edge_lcm,
+ compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
+ * lower-subreg.c (resolve_reg_notes): Likewise.
+ * mode-switching.c (optimize_mode_switching): Likewise.
+
+2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * bt-load.c (add_btr_def, migrate_btr_def,
+ branch_target_load_optimize): Avoid C++ keywords.
+ * caller-save.c (insert_restore, insert_save, insert_one_insn):
+ Likewise.
+ * combine.c (subst, simplify_set, make_extraction,
+ make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
+ * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
+ fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
+
+2008-07-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36369
+ * c-common.c (strict_aliasing_warning): Do not warn for
+ TYPE_REF_CAN_ALIAS_ALL pointers.
+ (c_common_get_alias_set): may_alias types are not special.
+ * tree.c (build_pointer_type_for_mode): Look up the may_alias
+ attribute and set can_ref_all accordingly.
+ (build_reference_type_for_mode): Likewise.
+ * doc/extend.texi (may_alias): Clarify.
+
+2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/36780
+ * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
+ (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
+
+2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31568
+ * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
+ gcc_assert, instead call output_operand_lossage.
+
+2008-07-15 Kai Tietz <kai.tietz@onevision.com>
+
+ * builtins.c (std_canonical_va_list): Treat structure based
+ va_list types.
+
+2008-07-15 Ben Elliston <bje@au.ibm.com>
+
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
+
+2007-07-14 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
+ is set.
+
+2008-07-14 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
+ * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
+ fix predicates and constraints.
+ * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
+ * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
+
+2008-07-14 Doug Kwan <dougkwan@google.com>
+
+ * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
+ additional option file arm/eabi.opt.
+ * config/arm/eabi.h (File): New configuration file for EABI targets.
+ * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
+ SUBSUBTARGET_EXTRA_SPECS.
+ (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
+ * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
+ from STARTFILE_SPEC so that it can be referenced in an override.
+ (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
+ (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
+ can be referenced in an override.
+ (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
+ * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
+ so that it can be referenced in an override.
+ (LINK_SPEC): Use BPABI_LINK_SPEC.
+ * config/arm/eabi.opt (File): New.
+
+2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (TARGET_DEF_H): Add targhooks.h.
+ (FIXED_VALUE_H): New variable.
+ (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
+ input.h, fixed-value.h.
+ (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
+ (BASIC_BLOCK_H): Use $(BITMAP_H).
+ (FUNCTION_H): Add varray.h.
+ (IPA_REFERENCE_H): Use $(BITMAP_H).
+ (CGRAPH_H): Add $(BASIC_BLOCK_H).
+ (DF_H): Use $(BITMAP_H).
+ (GGC_H): Add statistics.h.
+ (INSN_ADDR_H): New.
+ (INSN_ATTR_H): Use it.
+ (SYSTEM_H): Add safe-ctype.h, filenames.h.
+ (INPUT_H): New.
+ (SYMTAB_H): Add $(OBSTACK_H).
+ (CPP_INTERNAL_H): New.
+ (TREE_DUMP_H): Add tree-pass.h.
+ (TREE_FLOW_H): Use $(BITMAP_H)
+ (PRETTY_PRINT_H): Use $(INPUT_H).
+ (EBITMAP_H): Rename from typo-ed EBIMAP_H.
+ (GSTAB_H): New.
+ (BITMAP_H): New.
+ (many object files): Fix lots of header dependencies throughout.
+
+2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (write_entries_to_file, write_entries_to_file_split):
+ New macros.
+ (s-gtyp-input): Use them to write tmp-gi.list.
+ (echo_to_gi.list): Remove.
+
+2008-07-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (pre_info): Remove.
+ (switch_to_PRE_table): Likewise.
+ (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
+ (set_hashtable_value_ids): Do not create value-ids for the
+ optimistic tables.
+ (run_scc_vn): Remove double test. Remove bogus special-case
+ in value-number printing.
+ * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
+ * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
+ SSA_NAME_VALUE.
+ * tree-flow-inline.h (get_value_handle): Remove.
+ * tree-flow.h (get_value_handle): Remove.
+
+2008-07-14 Martin Jambor <mjambor@suse.cz>
+
+ * tree-switch-conversion.c (gen_inbound_check): Make sure the type
+ in which we generate arithmetics is not a subrange.
+
+2008-07-14 Martin Jambor <mjambor@suse.cz>
+
+ * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
+
+2008-07-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
+
+2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/36745
+ * config/s390/s390.c (s390_secondary_reload): Add a secondary
+ reload for symbol refs moved to r0 with -fPIC.
+ (legitimize_pic_address): Use the target register as temporary
+ reg if possible.
+ (emit_symbolic_move): Adjust comment.
+ * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
+ New expanders.
+
+2008-07-14 Ben Elliston <bje@au.ibm.com>
+
+ * c-common.h (C_CPP_HASHNODE): New macro.
+ * coretypes.h (struct cpp_token): Forward declare.
+ * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
+ the context-sensitive keyword method.
+ * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
+ __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
+ expand_bool_pixel): New.
+ (altivec_categorize_keyword): New function.
+ (init_vector_keywords): New function.
+ (rs6000_macro_to_expand): Likewise.
+ (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
+ compiling an ISO C dialect.
+
+2008-07-13 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
+ (create_expression_by_pieces): Fix typo.
+ (do_regular_insertion): Use debug counter here too.
+
+2008-07-14 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/35492.
+ * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
+ CONST_OK_FOR_LETTER_P. All port-local users changed.
+ (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
+ implement Kp matching power-of-two.
+ (CONSTRAINT_LEN): Define to match.
+ * config/cris/cris.md: Replace all use of constraint K with Kc.
+ ("*btst*): Use Kp for operand 0 of last alternative.
+
+2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR testsuite/36440
+ * tree-call-cdce.c (check_target_format): Accept MIPS single, double
+ and quad formats.
+
+2008-07-13 Jan Hubicka <jh@suse.cz>
+
+ * tree.c (decl_assembler_name_equal): Expect assembler name of decl
+ to be mangled too.
+
+2008-07-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36811
+ * langhooks.c (lhd_print_error_function): Deal with recursive
+ BLOCK trees.
+
+2008-07-12 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (assembler_name_hash): New static var.
+ (hash_node_by_assembler_name, eq_assembler_name): New.
+ (cgraph_node_for_asm): Use hashtable.
+ (cgraph_remove_node): Maintain hashtable.
+ (change_decl_assembler_name): Sanity check that names are not changing
+ after aliasing was processed.
+ * cgraph.h (varpoon_node): Add next GGC marker.
+ * tree.c (decl_assembler_name_equal): Constify.
+ (decl_assembler_name_hash): New.
+ * tree.h (decl_assembler_name_equal): Constify.
+ (decl_assembler_name_hash): Update.
+
+2008-07-12 David Daney <ddaney@avtrex.com>
+
+ * config/mips/driver-native.c (host_detect_local_cpu): Handle
+ sb1 and r5000 cpus.
+
+2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/md.texi: Document the MIPS "v" constraint.
+ * config/mips/mips.h (reg_class): Revert last change.
+ (REG_CLASS_NAMES): Likewise.
+ (REG_CLASS_CONTENTS): Likewise.
+ * config/mips/mips.c (mips_regno_to_class): Likewise.
+ * config/mips/constraints.md (v): Likewise, but add documentation.
+ Add a comment to say that this constraint should not be used in
+ gcc code.
+
+2008-07-11 DJ Delorie <dj@redhat.com>
+
+ * config/h8300/h8300.md (length): Fix branch offset limit.
+
+2008-07-11 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
+ * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
+ (avr_hard_regno_scratch_ok): New function.
+ (TARGET_HARD_REGNO_SCRATCH_OK): Define.
+ * config/avr/avr.md (all peepholes that request a scratch register):
+ Remove avr_peep2_scratch_safe use.
+
+2008-07-11 Tom Tromey <tromey@redhat.com>
+ Ian Lance Taylor <iant@google.com>
+
+ * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
+ (struct c_common_resword): Define.
+ (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
+ (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
+ (c_common_reswords, num_c_common_reswords): Declare.
+ * c-common.c (c_common_reswords): New global const array.
+ (num_c_common_reswords): New const int.
+ * c-parser.c (struct resword, reswords): Don't define.
+ (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
+ (c_parse_init): Clarify mask code. Use c_common_reswords rather
+ than reswords. If warning about C++ keywords, give them a special
+ RID code.
+ (c_lex_one_token): Warn about C++ keywords. Call
+ objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
+ (c_parser_external_declaration): Look for RID_xxx rather than
+ RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
+ (c_parser_statement_after_labels): Likewise.
+ (c_parser_objc_class_instance_variables): Likewise.
+ (c_parser_objc_class_declaration): Likewise.
+ (c_parser_objc_try_catch_statement): Likewise.
+ * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
+ (declspecs_add_type): Likewise.
+
+2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
+
+ * ggc-page.c (alloc_page):
+ Substituting xmalloc, xcalloc with
+ XNEWVEC and XCNEWVAR macros which add the
+ needed casts.
+
+2008-07-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36765
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
+ aliases from HEAP vars to SMTs.
+
+2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
+ * configure.ac (loose_warn): Move -Wc++-compat from here...
+ (strict_warn): ...to here.
+ * configure: Regenerate.
+
+2008-07-10 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
+ i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
+ m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
+ rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
+ excluding more specific h8300-*-* and sh-*-* targets.
+
+2008-07-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
+ (eliminate): Ditto.
+ (execute_pre): Call loop_optimizer_finalize in early exit.
+
+2008-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36790
+ * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
+ uids in the bitmap, not just VAR_DECL uids.
+
+ PR rtl-optimization/36419
+ * combine-stack-adj.c (adjust_frame_related_expr): New function.
+ (combine_stack_adjustments_for_block): Call it if needed. Delete
+ correct insn.
+ * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
+ DW_CFA_GNU_args_size if CSA pass merged some adjustments into
+ prologue sp adjustment.
+
+2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+
+ PR other/28322
+ * opts.c (print_ignored_options): Report postponed diagnostics for
+ unknown -Wno-* options as warnings, not errors.
+ (postpone_unknown_option_error): Renamed to...
+ (postpone_unknown_option_warning): ... this.
+
+2008-07-09 Doug Kwan <dougkwan@google.com>
+
+ Revert:
+ 2008-07-08 Doug Kwan <dougkwan@google.com>
+
+ * config/arm/arm.opt (mandroid): New option.
+ * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
+ (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
+ (CC1_SPEC): Same.
+ (CC1PLUS_SPEC): Same.
+ (LIB_SPEC): Same.
+ (STARTFILE_SPEC): Same.
+ (ENDFILE_SPEC): Same.
+ (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
+ used.
+
+2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/35802
+ * config/mips/mips.h (reg_class): Remove V1_REG.
+ (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
+ * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
+ instead of V1_REGS.
+ (mips_get_tp): New function.
+ (mips_legitimize_tls_address): Use it.
+ * config/mips/constraints.md (v): Delete.
+ * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
+ (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
+ After reload, split into a move and ...
+ (*tls_get_tp_<mode>_split): ...this new instruction.
+
+2008-07-09 David Daney <ddaney@avtrex.com>
+
+ * config/mips/driver-native.c: Include coretypes.h and tm.h.
+
+2008-07-09 Jakub Jelinek <jakub@redhat.com>
+
+ * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
+ (push_gimplify_context): Don't allocate temp_htab nor c itself here.
+ Add c argument.
+ (pop_gimplify_context): Check c->temp_htab instead of optimize whether
+ htab_delete should be called. Don't free c.
+ (lookup_tmp_var): Create temp_htab lazily.
+ (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
+ gimplify_body, force_gimple_operand): Adjust push_gimplify_context
+ callers.
+ * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
+ lower_omp_ordered, lower_omp_critical, lower_omp_for,
+ create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
+ * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
+ * tree-sra.c (generate_element_init): Likewise.
+ * tree-mudflap.c (execute_mudflap_function_ops,
+ execute_mudflap_function_decls): Likewise.
+ * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
+ * tree-gimple.h (struct gimplify_ctx): New type.
+ (push_gimplify_context): Adjust prototype.
+
+2008-07-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (phi_translate_1): Update placement of
+ add_to_value calls.
+
+2008-07-09 Anatoly Sokolov <aesok@post.ru>
+
+ * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
+ * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
+ (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
+ * targhooks.c (default_hard_regno_scratch_ok): New function.
+ * targhooks.h (default_hard_regno_scratch_ok): Declare function.
+ * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
+ * recog.c: Include "target.h".
+ (peep2_find_free_register): Add check for global regs. Add target
+ specific check.
+ * Makefile.in (recog.o): Depend on target.h.
+
+2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_canonical_va_list_type): New.
+ (TARGET_CANONICAL_VA_LIST_TYPE): Define.
+
+2008-07-09 Raksit Ashok <raksit@google.com>
+
+ * doc/invoke.texi (Option Summary): Mention new option
+ -Wdisallowed-function-list=...
+ (Warning Options): Document -Wdisallowed-function-list=...
+ * common.opt (Wdisallowed-function-list=): New flag.
+ * flags.h (warn_disallowed_functions): External definition of new
+ boolean warning flag.
+ (warn_if_disallowed_function_p): Declare new function.
+ * opts.c (warning_disallowed_functions): New static variable.
+ (warn_disallowed_functions): New boolean warning flag.
+ (warn_if_disallowed_function_p): New function.
+ (add_comma_separated_to_vector): Rename
+ add_instrument_functions_exclude_list to this.
+ (common_handle_option): Handle new option. Rename calls to
+ add_instrument_functions_exclude_list into calls to
+ add_comma_separated_to_vector.
+ * c-parser.c (c_parser_postfix_expression_after_primary): New warning
+ based on flag warn_disallowed_functions.
+
+2008-07-09 Christian Bruel <christian.bruel@st.com>
+
+ * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
+ instead of get_attr_length.
+
+2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
+ keywords.
+ * genemit.c (gen_insn): Likewise.
+ * gengtype.c (note_def_vec): Likewise.
+ * gengtype.h (note_def_vec): Likewise.
+ * genoutput.c (struct data, output_insn_data, process_template,
+ gen_expand, gen_split, note_constraint): Likewise.
+ * genrecog.c (new_decision, add_to_sequence, factor_tests,
+ make_insn_sequence): Likewise.
+ * gensupport.c (record_insn_name): Likewise.
+
+2008-07-08 Doug Kwan <dougkwan@google.com>
+
+ * config/arm/arm.opt (mandroid): New option.
+ * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
+ (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
+ (CC1_SPEC): Same.
+ (CC1PLUS_SPEC): Same.
+ (LIB_SPEC): Same.
+ (STARTFILE_SPEC): Same.
+ (ENDFILE_SPEC): Same.
+ (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
+ used.
+
+2008-07-08 Raksit Ashok <raksit@google.com>
+
+ * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
+ (set_storage_via_setmem): Fix expected_align parameter.
+ * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
+ missing from the list.
+ * doc/md.texi (movmem): Explicitly state that expected alignment is
+ to be expressed in bytes.
+ (setmem): Explicitly state that expected alignment is to be expressed
+ in bytes.
+
+2008-07-08 Joseph Myers <joseph@codesourcery.com>
+
+ * reload.c (find_reloads_subreg_address): Do not require validity
+ of address in original mode before reloading address.
+
+2008-07-07 Tianwei Sheng <tianweis@google.com>
+
+ * df-core.c (df_remove_problem): Adjust the access to avoid out of
+ bounds array access.
+
+2008-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
+
+2008-07-05 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/23455
+ Fix PR tree-optimization/35286
+ Fix PR tree-optimization/35287
+ * Makefile.in (OBJS-common): Remove tree-vn.o.
+ (tree-vn.o): Remove.
+ * dbgcnt.def: Add treepre_insert debug counter.
+ * gcc/tree-flow.h (add_to_value): Updated for other changes.
+ (debug_value_expressions): Ditto.
+ (print_value_expressions): Ditto.
+ * tree-pretty-print.c (dump_generic_node): Updated for
+ VALUE_HANDLE removal.
+ * tree-ssa-dom.c (record_equality): Ditto.
+ (cprop_operand): Ditto.
+ (lookup_avail_expr): Ditto.
+ * tree-ssa-threadedge.c
+ (record_temporary_equivalences_from_stmts_at_dest): Ditto.
+ (simplify_control_stmt_condition): Ditto.
+ * tree.c (tree_code_size): Ditto.
+ (tree_node_structure): Ditto.
+ (iterative_hash_expr): Ditto.
+ * tree.def: Ditto.
+ * tree.h (VALUE_HANDLE_ID): Ditto.
+ (VALUE_HANDLE_EXPR_SET): Ditto.
+ (struct tree_value_handle): Ditto.
+ (union tree_node): Ditto.
+ * treestruct.def: Ditto.
+ * tree-vn.c: Removed.
+ * tree-ssa-pre.c: Rewritten entirely.
+ * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
+ (constant_value_ids): Ditto.
+ (vn_nary_op_t): Moved to header.
+ (vn_phi_t): Ditto.
+ (vn_reference_op_t): Ditto
+ (vn_reference_t): Ditto.
+ (next_value_id): New variable.
+ (VN_INFO): Add an assert.
+ (vn_constant_eq): New function.
+ (vn_constant_hash): Ditto.
+ (get_or_alloc_constant_value_id): Ditto.
+ (value_id_constant_p): Ditto.
+ (vn_reference_compute_hash): De-staticify.
+ (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
+ Disable some code with a FIXME. Remove VALUE_HANDLE use.
+ (valueize_refs): Update opcode if it changes from ssa name to constant.
+ (vn_reference_lookup_1): Add new argument.
+ (vn_reference_lookup): Ditto.
+ (vn_reference_lookup_pieces): New function.
+ (vn_reference_insert): Add return type. Modify to deal with value ids.
+ (vn_reference_insert_pieces): New function.
+ (vn_nary_op_compute_hash): De-staticify.
+ (vn_nary_op_eq): Ditto.
+ (vn_nary_op_lookup_pieces): New function.
+ (vn_nary_op_lookup): Add new argument.
+ (vn_nary_op_insert_pieces): New function.
+ (vn_nary_op_insert): Add return type. Modify to deal with value ids.
+ (vn_phi_insert): Ditto.
+ (visit_unary_op): Update for callee changes.
+ (visit_binary_op): Ditto.
+ (visit_reference_op_load): Ditto.
+ (visit_reference_op_store): Ditto.
+ (init_scc_vn): Init next_value_id, constant_to_value_id and
+ constant_value_ids.
+ (free_scc_vn): Free them.
+ (set_hashtable_value_ids): New function.
+ (run_scc_vn): Use it.
+ (get_max_value_id): New function.
+ (get_next_value_id): Ditto.
+ (expressions_equal_p): Moved from tree-vn.c
+ (sort_vuses): Ditto.
+ (sort_vuses_heap): Ditto.
+ * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
+ above).
+ * tree.c (iterative_hash_hashval_t): Made non-static
+ * tree.h (iterative_hash_hashval_t): Declare it.
+
+2008-07-08 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
+ instead of ipa_create_node_params.
+ (ipcp_driver): Allocate infos with ipa_check_create_node_params and
+ ipa_check_create_edge_args, free them with
+ free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
+
+ * ipa-prop.c: Include flags.h and tree-inline.h.
+ (ipa_node_params_vector): New variable.
+ (ipa_edge_args_vector): New variable.
+ (edge_removal_hook_holder): New variable.
+ (node_removal_hook_holder): New variable.
+ (edge_duplication_hook_holder): New variable.
+ (node_duplication_hook_holder): New variable.
+ (ipa_detect_param_modifications): Check for presence of modified flags.
+ (ipa_compute_jump_functions): Check for presence of jump functions.
+ (ipa_free_edge_args_substructures): New function.
+ (ipa_create_node_params): Removed.
+ (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
+ (ipa_free_node_params_substructures): New function.
+ (ipa_free_all_node_params): Changed to deallocate the on-the-side
+ vector.
+ (ipa_edge_removal_hook): New function.
+ (ipa_node_removal_hook): New function.
+ (duplicate_array): New function.
+ (ipa_edge_duplication_hook): New function.
+ (ipa_node_duplication_hook): New function.
+ (ipa_register_cgraph_hooks): New function.
+ (ipa_unregister_cgraph_hooks): New function.
+ (free_all_ipa_structures_after_ipa_cp): New function.
+
+ * ipa-prop.h: Include vec.h.
+ (ipa_node_params_t): New typedef with vector types for it.
+ (ipa_edge_args_t): New typedef with vector types for it.
+ (IPA_NODE_REF): Changed to access an on-the-side vector.
+ (IPA_EDGE_REF): Changed to access an on-the-side vector.
+ (ipa_check_create_node_params): New function.
+ (ipa_check_create_edge_args): New function.
+
+ * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
+ all users.
+
+2008-07-07 Tom Tromey <tromey@redhat.com>
+
+ * configure, config.in: Rebuilt.
+ * configure.ac: Don't check for scandir or alphasort.
+
+2008-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (arm_init_neon_builtins): Register built-in
+ types immediately after creating them.
+
+2008-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
+
+2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
+
+ * tree-ssa-structalias.c (compute_points_to_sets): Add call to
+ dump_constraint_graph.
+ (dump_constraint_edge): New function.
+ (dump_constraint_graph): New function.
+ (debug_constraint_graph): New function.
+ (dump_constraint): Removed useless comparison.
+ * tree-ssa-structalias.h (dump_constraint_edge): Declare.
+ (dump_constraint_graph): Declare.
+ (debug_constraint_graph): Declare.
+ * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
+
+2008-07-07 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (is_va_list_char_pointer): New.
+ (ix86_va_start): Replace compare with ms_va_list_type_node
+ by is_va_list_char_pointer.
+ (ix86_gimplify_va_arg): Likewise.
+
+2008-07-07 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.c (cgraph_edge_max_uid): New variable.
+ (struct cgraph_edge_hook_list): New type.
+ (struct cgraph_node_hook_list): New type.
+ (struct cgraph_2edge_hook_list): New type.
+ (struct cgraph_2node_hook_list): New type.
+ (first_cgraph_edge_removal_hook): New variable.
+ (first_cgraph_node_removal_hook): New variable.
+ (first_cgraph_edge_duplicated_hook): New variable.
+ (first_cgraph_node_duplicated_hook): New variable.
+ (cgraph_add_edge_removal_hook): New function.
+ (cgraph_remove_edge_removal_hook): New function.
+ (cgraph_call_edge_removal_hooks): New function.
+ (cgraph_add_node_removal_hook): New function.
+ (cgraph_remove_node_removal_hook): New function.
+ (cgraph_call_node_removal_hooks): New function.
+ (cgraph_add_edge_duplication_hook): New function.
+ (cgraph_remove_edge_duplication_hook): New function.
+ (cgraph_call_edge_duplication_hooks): New function.
+ (cgraph_add_node_duplication_hook): New function.
+ (cgraph_remove_node_duplication_hook): New function.
+ (cgraph_call_node_duplication_hooks): New function.
+ (cgraph_create_edge): Assign to edge uid.
+ (cgraph_remove_edge): Call edge removal hooks.
+ (cgraph_node_remove_callees): Call edge removal hooks.
+ (cgraph_node_remove_callers): Call edge removal hooks.
+ (cgraph_remove_node): Call node removal hooks.
+ (cgraph_clone_edge): Call edge duplication hooks.
+ (cgraph_clone_node): Call node duplication hooks.
+
+ * cgraph.h (cgraph_edge): New field uid.
+ (cgraph_edge_hook): New type.
+ (cgraph_node_hook): New type.
+ (cgraph_2edge_hook): New type.
+ (cgraph_2node_hook): New type.
+
+2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config.in: Regenerate.
+
+2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
+
+ * gcc.c (print_sysroot): New.
+ (option_map, display_help, process_command): Handle the
+ -print-sysroot option.
+ (main): Print the sysroot if requested.
+ * doc/invoke.texi (Debugging Options): Document -print-sysroot.
+
+2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR target/34780
+ * unwind-pe.h (size_of_encoded_value): add attribute unused.
+
+2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
+ (assign_parm_setup_block_p): Also check mode of entry_parm.
+
+2008-07-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.h (set_used_smts): Remove.
+ * tree-ssa-structalias.c (used_smts): Likewise.
+ (set_used_smts): Likewise.
+ * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
+ call to set_used_smts.
+
+2008-07-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
+ (new_var_info): Set it to false.
+ (solution_set_add): Correctly handle pointers outside a var and
+ inside a field.
+ (type_safe): Treat variables with is_full_var properly.
+ (do_sd_constraint): Likewise.
+ (do_ds_constraint): Likewise.
+ (process_constraint): Remove zeroing offset for !use_field_sensitive.
+ (get_constraint_for_ptr_offset): New function.
+ (get_constraint_for_component_ref): For addresses at least include
+ the last field of the variable. Handle is_full_vars properly.
+ (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
+ (handle_ptr_arith): Remove.
+ (find_func_aliases): Simplify assignment handling.
+ (create_function_info_for): For parameter and result varinfos set
+ is_full_var flag.
+ (create_variable_info_for): Set is_full_var flag whenever we
+ just created a single varinfo for a decl.
+ (init_alias_vars): Initialize use_field_sensitive from
+ max-fields-for-field-sensitive parameter.
+
+2008-07-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36713
+ * tree-flow-inline.h (is_call_used): New function.
+ * tree-nrv.c (dest_safe_for_nrv_p): Use it.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+ * tree-outof-ssa.c (create_temp): Set call-used flag if required.
+
+2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
+
+2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
+
+ * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
+
+2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
+ to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
+ tmake_file.
+ * config/m68k/t-linux: New.
+ * doc/install.texi: Document m68k-*-linux is now multilibbed by
+ default.
+
+2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
+ * config/m68k/m68k-devices.def: Remove multilibs that only differ
+ by MAC/EMAC.
+
+2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c (execute): Fix -Wc++-compat warning.
+
+2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36720
+ * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
+ constant for little endian.
+
+2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
+ mips_base_mips16 instead of TARGET_MIPS16.
+ (mips_base_mips16): Declare.
+ * config/mips/mips.c (mips_base_mips16): Make global.
+ (was_mips16_p): Remove GTY marker.
+ (was_mips16_pch_p): New variable.
+ (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
+ (mips_override_options): Force to non-MIPS16 mode initially.
+ Do not complain about MIPS16 PIC incompatibilities here.
+ Only allow -mgpopt if -mexplicit-relocs is in force for
+ non-MIPS16 code.
+
+2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ * configure.ac: Check for caddr_t, define to char * if not defined.
+ * configure: Regenerate.
+ * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
+ (mmap_gt_pch_use_address): Likewise.
+ * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
+
+2008-07-06 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (struct variable_info): Remove has_union.
+ (new_var_info): Deal with it.
+ (solution_set_add): Likewise.
+ (bitpos_of_field): Make signed, fix.
+ (struct fieldoff): Remove type and decl fields. Make size field
+ unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
+ flags.
+ (fieldoff_compare): Deal with it.
+ (push_fields_onto_fieldstack): Remove has_union argument, glob
+ adjacent non-pointer fields together.
+ (create_function_info_for): Do not set has_union.
+ (create_variable_info_for): Simplify.
+
+2008-07-06 Kai Tietz <kai.tietz@onevision.com>
+
+ * config.gcc (extra_headers): Add cross-stdarg.h for target
+ x86_64-*-* and i?86-*-*.
+ * config/i386/cross-stdarg.h: New.
+ * builtins.c (std_fn_abi_va_list): New.
+ (std_canonical_va_list_type): New.
+ (stabilize_va_list): Replace va_list_type_node use by
+ mtarget.canonical_va_list_type.
+ (gimplify_va_arg_expr): Likewise.
+ (expand_builtin_va_copy): Replace va_list_type_node use by
+ mtarget.fn_abi_va_list.
+ * tree-sra.c (is_va_list_type): New helper.
+ (decl_can_be_decomposed_p): Replace
+ va_list_type_node use by is_va_list_type.
+ * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
+ * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+ * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
+ * config/i386/i386-protos.h (ix86_get_valist_type): New.
+ (ix86_enum_va_list): New.
+ * config/i386/i386.c (sysv_va_list_type_node): New.
+ (ms_va_list_type_node): New.
+ (ix86_function_type_abi): Remove sorry.
+ (ix86_build_builtin_va_list_abi): New.
+ (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
+ for 64-bit targets.
+ (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
+ (ix86_init_builtins_va_builtins_abi): New.
+ (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
+ for 64-bit targets.
+ (ix86_handle_abi_attribute): New.
+ (attribute_spec): Add sysv_abi and ms_abi.
+ (ix86_fn_abi_va_list): New.
+ (ix86_canonical_va_list_type): New.
+ (ix86_enum_va_list): New.
+ (TARGET_FN_ABI_VA_LIST): New.
+ (TARGET_CANONICAL_VA_LIST_TYPE): New.
+ * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
+ * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
+ (TARGET_CANONICAL_VA_LIST_TYPE): New.
+ (TARGET_ENUM_VA_LIST): New.
+ * expr.h (std_fn_abi_va_list): New.
+ (std_canonical_va_list_type): New.
+ * target-def.h (TARGET_FN_ABI_VA_LIST): New.
+ (TARGET_CANONICAL_VA_LIST_TYPE): New.
+ (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
+ TARGET_CANONICAL_VA_LIST_TYPE.
+ * target.h (struct gcc_target): Add fn_abi_va_list hook
+ and canonical_va_list_type hook.
+
+2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
+ integral and pointer types.
+
+2008-07-04 Roger Sayle <roger@eyesopen.com>
+
+ * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
+ the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
+
+2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/36684
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
+
+2008-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
+ build_gimple_modify_stmt.
+ (build_arrays, gen_inbound_check): Likewise. Force RHS to be
+ gimple operand. Use fold_build* instead of build*.
+
+2008-07-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
+ (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
+ properly to compute the reachability set if we do field-sensitive PTA.
+ * invoke.texi (max-fields-for-field-sensitive): Document default.
+ * opts.c (decode_options): Set max-fields-for-field-sensitive to
+ 100 for optimize >= 2.
+
+2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ggc-zone.c (lookup_page_table_if_allocated,
+ set_page_table_entry, zone_find_object_size, alloc_small_page,
+ alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
+ new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
+ -Wc++-compat and/or -Wcast-qual warnings.
+
+2008-07-04 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/36634
+ * config/rs6000/rs6000.md (call, call_value): Don't arrange for
+ pic_offset_table_rtx to be marked as used here.
+ (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
+ TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
+ (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
+ (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
+ !TARGET_SECURE_PLT.
+
+2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alloc-pool.c (hash_descriptor, eq_descriptor,
+ alloc_pool_descriptor): Fix -Wc++-compat warnings.
+ * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
+ Likewise.
+ * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
+ loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
+ final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
+ * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
+ Likewise.
+
+2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-flow.h (loop_only_exit_p): Declare.
+ * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
+ * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
+ the number of iterations if it is constant. Otherwise, if this is the
+ only possible exit of the loop, use the conservative estimate on the
+ number of iterations of the entire loop if available.
+
+2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
+ * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
+ Add synchronization functions.
+ * config/sync.c: New file.
+ * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
+ (LIBGCC_SYNC_CFLAGS): Likewise.
+
+2008-07-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36710
+ * config/i386/i386.md (mode): Add TF to "mode" attribute.
+ (*pushtf_sse): New insn pattern.
+ (pushtf splitters): New splitters.
+
+2008-07-03 Michael Meissner <gnu@the-meissners.org>
+
+ PR middle-end/35736
+ * predict.c (build_predict_expr): Use void_type_node for the tree
+ type, instead of NULL_TREE.
+
+2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (contains_aligned_value_p): Return true
+ for TCmode.
+ (ix86_data_alignment): Align TCmode to 128bits.
+ (ix86_local_alignment): Likewise.
+
+2008-07-03 Andrew Haley <aph@redhat.com>
+
+ PR bootstrap/33304
+ * vec.h (VEC_TA): New.
+ (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
+ DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
+ * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
+ (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
+ (C_COMMON_FIXED_TYPES): Remove first arg.
+ (C_COMMON_FIXED_MODE_TYPES): Likewise.
+ * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
+ MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
+ not to use empty macro arguments.
+
+2008-07-02 Joseph Myers <joseph@codesourcery.com>
+
+ * config/alpha/vms_tramp.asm, config/arm/crti.asm,
+ config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
+ config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
+ config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
+ config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
+ config/i386/sol2-gc1.asm, config/ia64/crti.asm,
+ config/ia64/crtn.asm, config/m68hc11/larith.asm,
+ config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
+ config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
+ config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
+ config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
+ config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
+ config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
+ config/rs6000/e500crtres64gpr.asm,
+ config/rs6000/e500crtres64gprctr.asm,
+ config/rs6000/e500crtrest32gpr.asm,
+ config/rs6000/e500crtrest64gpr.asm,
+ config/rs6000/e500crtresx32gpr.asm,
+ config/rs6000/e500crtresx64gpr.asm,
+ config/rs6000/e500crtsav32gpr.asm,
+ config/rs6000/e500crtsav64gpr.asm,
+ config/rs6000/e500crtsav64gprctr.asm,
+ config/rs6000/e500crtsavg32gpr.asm,
+ config/rs6000/e500crtsavg64gpr.asm,
+ config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
+ config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
+ config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
+ config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
+ config/sparc/sol2-cn.asm: Remove .file directives.
+
+2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * resource.c (mark_referenced_resources): Look inside
+ UNSPEC_VOLATILEs and ASM_INPUTs.
+
+2008-07-02 Ian Lance Taylor <iant@google.com>
+
+ * rtlanal.c (add_reg_note): New function.
+ * rtl.h (add_reg_note): Declare.
+ * auto-inc-dec.c (attempt_change): Use add_reg_note.
+ * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
+ * builtins.c (expand_builtin_longjmp): Likewise.
+ (expand_builtin_nonlocal_goto): Likewise.
+ * calls.c (emit_call_1, expand_call): Likewise.
+ * cfgexpand.c (add_reg_br_prob_note): Likewise.
+ * cfglayout.c (fixup_reorder_chain): Likewise.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
+ (commit_one_edge_insertion): Likewise.
+ * combine.c (move_deaths, distribute_notes): Likewise.
+ * df-problems.c (df_set_note): Likewise.
+ * emit-rtl.c (link_cc0_insns, try_split): Likewise.
+ (set_unique_reg_note): Likewise.
+ (emit_copy_of_insn_after): Likewise.
+ * expr.c (expand_expr_real): Likewise.
+ * gcse.c (add_label_notes): Likewise.
+ * haifa-sched.c (create_check_block_twin): Likewise.
+ * jump.c (mark_jump_label_1): Likewise.
+ * loop-doloop.c (add_test, doloop_modify): Likewise.
+ * loop-unswitch.c (compare_and_jump_seq): Likewise.
+ * lower-subreg.c (move_eh_region_note): Likewise.
+ * optabs.c (emit_libcall_block): Likewise.
+ * predict.c (predict_insn): Likewise.
+ (combine_predictions_for_insn): Likewise.
+ * recog.c (peephole2_optimize): Likewise.
+ * regmove.c (try_auto_increment): Likewise.
+ * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
+ * reload.c (find_reloads): Likewise.
+ * reload1.c (fixup_eh_region_note): Likewise.
+ (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
+ * reorg.c (delete_prior_computation): Likewise.
+ (delete_computation, dbr_schedule): Likewise.
+ * config/pa/pa.c (legitimize_pic_address): Likewise.
+ * config/sh/sh.c (sh_reorg): Likewise.
+
+2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36669
+ * config/libgcc-glibc.ver: Add %exclude.
+ * config/m32r/libgcc-glibc.ver: Likwise.
+ * config/s390/libgcc-glibc.ver: Likwise.
+ * config/sh/libgcc-glibc.ver: Likwise.
+ * config/sparc/libgcc-sparc-glibc.ver: Likwise.
+
+ * config/i386/libgcc-glibc.ver: New.
+
+ * config/i386/libgcc-x86_64-glibc.ver: Removed.
+
+2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
+ from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
+ i[34567]86-*-linux*, x86_64-*-linux*. Add
+ i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
+ i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
+ x86_64-*-linux*. Add i386/t-linux to tmake_file for
+ i[34567]86-*-linux*, x86_64-*-linux*.
+
+ * libgcc-std.ver: Add empty GCC_4.4.0.
+
+ * mkmap-symver.awk: Support multiple versions per symbol.
+
+ * config/i386/i386.c (ix86_init_builtins): Always define
+ __builtin_fabsq and __builtin_copysignq with fallbacks.
+ (ix86_expand_builtin): Emit normal call for __builtin_fabsq
+ and __builtin_copysignq if SSE2 isn't available.
+
+ * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
+ (LIBGCC2_TF_CEXT): Likwise.
+ (TF_SIZE): Likwise.
+
+ * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
+
+ * config/i386/sfp-machine.h: Moved to libgcc.
+
+ * config/i386/sfp-machine.h: New.
+ * config/i386/t-linux: Likwise.
+
+ * config/i386/t-darwin: Remove softfp_wrap_start and
+ softfp_wrap_end.
+ * config/i386/t-darwin64: Likewise.
+
+ * config/i386/t-fprules-softfp64: Renamed to ...
+ * config/i386/t-fprules-softfp: This.
+
+ * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
+ and softfp_wrap_end.
+
+2008-07-02 Jason Merrill <jason@redhat.com>
+
+ * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
+
+ * tree.c (ctor_to_list): New fn.
+ * tree.h: Declare it.
+ (CONSTRUCTOR_ELT): New macro.
+ (CONSTRUCTOR_NELTS): New macro.
+
+2008-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (struct variable_info): Reorder
+ to fill padding on 64bit hosts. Make collapsed_to an int.
+ (get_varinfo_fc): Deal with that.
+ (new_var_info): Likewise.
+ (collapse_rest_of_var): Likewise.
+
+2008-07-02 Joshua Sumali <jsumali@redhat.com>
+
+ * doc/install.texi (--enable-java-home): Document.
+ (--enable-aot-compile-rpm): Likewise.
+ (--with-arch-directory): Likewise.
+ (--with-os-directory): Likewise.
+ (--with-origin-name): Likewise.
+ (--with-arch-suffix): Likewise.
+ (--with-jvm-root-dir): Likewise.
+ (--with-jvm-jar-dir): Likewise.
+ (--with-python-dir): Likewise.
+
+2008-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
+ from decls explicitly. Merge operand checking from tuples.
+
+2008-07-02 Martin Jambor <mjambor@suse.cz>
+
+ * tree-switch-conversion.c: Included timevar.h which I forgot before.
+
+2008-07-02 Martin Jambor <mjambor@suse.cz>
+
+ * tree-switch-conversion.c: Included timevar.h
+ (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
+
+ * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
+
+2008-07-02 Martin Jambor <mjambor@suse.cz>
+
+ * tree-switch-conversion.c: Corrected various comments and
+ whitespace issues
+ (build_constructors): Fixed minor formatting mistakes.
+
+ * invoke.texi (Optimize Options): Corrected the
+ switch-conversion-max-branch-ratio parameter.
+
+2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
+
+ * final.c (asm_insn_count): Return zero for an empty asm body.
+
+2008-07-02 Richard Guenther <rguenther@suse.de>
+
+ * bitmap.h (bitmap_set_bit): Return bool.
+ (bitmap_clear_bit): Likewise.
+ * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
+ write to the bitmap if it would.
+ (bitmap_clear_bit): Likewise.
+ * tree-ssa-structalias.c (add_implicit_graph_edge): Use
+ bitmap_set_bit return value.
+ (add_pred_graph_edge): Likewise.
+ (add_graph_edge): Likewise.
+ (do_sd_constraint): Likewise.
+ (do_ds_constraint): Likewise.
+
+2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
+ Fix -Wc++-compat and/or -Wcast-qual warnings.
+ * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
+ gen_regparm_prefix): Likewise.
+ * vmsdbgout.c (write_modbeg, lookup_filename,
+ vmsdbgout_source_line, vmsdbgout_init): Likewise.
+
+2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
+ defaults.h definition apply.
+
+2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * function.c (assign_parm_remove_parallels): New.
+ (assign_parm_setup_block_p): Do not return true for non-BLKmode
+ PARALLELs.
+ (assign_parm_setup_block): Do not handle them.
+ (assign_parm_setup_reg, assign_parm_setup_stack): Call
+ assign_parm_remove_parallels.
+
+2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * c-typeck.c (convert_for_assignment): Use
+ vector_targets_convertible_p.
+ * c-common.c (vector_targets_convertible_p): New.
+ * c-common.h (vector_targets_convertible_p): New prototype.
+ * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
+ opaque_p_V2SI_type_node.
+
+2008-07-01 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
+ RFmode constants.
+
+2008-07-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
+ TFmode constants via two element DImode vector for hosts with
+ HOST_BITS_PER_WIDE_INT < 64.
+ (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
+ also for HOST_BITS_PER_WIDE_INT < 64.
+
+2008-07-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36666
+ * tree-ssa-structalias.c (get_constraint_for_1): Declare.
+ (get_constraint_exp_from_ssa_var): Split into ...
+ (get_constraint_exp_for_temp): ... this ...
+ (get_constraint_for_ssa_var): ... and that.
+ Return constraint expressions for all touched sub-fields
+ if the results address is not taken.
+ (process_constraint): Remove assertion that aggregate
+ assignments do not happen at this place.
+ (get_constraint_for_component_ref): Add address_p argument.
+ Return constraint expressions for all touched sub-fields
+ if the results address is not taken.
+ (do_deref): Use get_constraint_exp_for_temp.
+ (get_constraint_for_1): Rename from ...
+ (get_constraint_for): ... this. Add the old function as wrapper.
+ (do_structure_copy): Use get_constraint_for_1.
+
+2008-07-01 Martin Jambor <mjambor@suse.cz>
+
+ * Makefile.in (tree-switch-conversion.o): Add.
+ (OBJS-common): Add tree-swtch-conversion.o.
+ * passes.c (init_optimization_passes): Add pass_convert_switch.
+ * tree-pass.h (pass_convert_switch): Add.
+ * tree-switch-conversion.c: New file.
+ * gcc.dg/tree-ssa/cswtch.c: New testcase.
+ * common.opt (ftree-cswtch): New option.
+ * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
+ * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
+ * opts.c (decode_options): Set flag_tree_switch_conversion when
+ optimization level is >= 2.
+ * doc/invoke.texi (Optimize Options): Added description of
+ -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
+
+2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/darwin-driver.c (darwin_default_min_version): Fix
+ -Wc++-compat warnings.
+
+2008-06-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
+ of operand 0.
+
+2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
+
+2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/34744
+ * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
+ (df_scan_free_internal): Free data structures not
+ allocated in storage pools.
+ (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
+ (df_refs_add_to_chains): Use df_scan_free_ref_vec and
+ df_scan_free_mws_vec.
+ * dse.c (dse_step6): Free offset_map_p and offset_map_n
+ unconditionally.
+
+2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (contains_aligned_value_p): Return true
+ for __float128.
+ (ix86_function_arg_boundary): Return its natural boundary
+ for __float128.
+ (return_in_memory_32): Don't check TDmode.
+ (ix86_split_to_parts): Support splitting into 4 parts and
+ support TFmode for 32bit target.
+ (ix86_split_long_move): Support splitting into 4 parts.
+ (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
+ for SSE2.
+ (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
+ (ix86_init_builtins): Here.
+ (ix86_scalar_mode_supported_p): Always return true for TFmode.
+ (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
+ 'q' and 'w', respectively.
+
+ * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
+ TARGET_64BIT.
+ (movtf_internal): Likewise.
+ (<code>tf2): Likewise.
+ (*absnegtf2_sse): Likewise.
+ (copysign<mode>3): Likewise.
+ (copysign<mode>3_const): Likewise.
+ (copysign<mode>3_var): Likewise.
+ (define_split UNSPEC_COPYSIGN): Likewise.
+ * config/i386/sse.md (*nandtf3): Likewise.
+ (<code>tf3): Likewise.
+ (*<code>tf3): Likewise.
+
+2008-06-30 Joey Ye <joey.ye@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * global.c (compute_regsets): Set frame_pointer_needed here.
+ * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
+
+2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * doc/install.texi (specific): Expand Windows build notes.
+
+2008-06-30 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36648
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
+ number of prolog iterations by step. Fix the comment.
+
+2008-06-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36671
+ * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
+ handle calls from ECF_MALLOC functions.
+ (handle_pure_call): ECF_MALLOC functions do not return
+ call-used memory.
+ (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
+
+2008-06-29 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.c (print_operand): Always print a float
+ constant in hex.
+ * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
+ (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
+ Remove macros.
+
+ * config/rs6000/x-linux64: Remove never used file.
+
+2008-06-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.h (compute_points_to_sets): Adjust
+ prototype.
+ (struct alias_info): Move ...
+ * tree-ssa-alias.c: ... here.
+ (update_alias_info): Declare.
+ (compute_may_aliases): Call it.
+ (update_alias_info): New function.
+ * tree-ssa-structalias.c (update_alias_info): Move ...
+ * tree-ssa-alias.c (update_alias_info_1): ... here.
+ * tree-ssa-structalias.c (process_constraint_1): Remove
+ unused from_call argument. Rename to ...
+ (process_constraint): ... this. Delete old wrapper.
+ (make_constraint_to): Adjust callers.
+ (handle_const_call): Likewise.
+ (handle_pure_call): Likewise.
+ (init_base_vars): Likewise.
+ (handle_lhs_call): Likewise. Remove unnecessary constraint.
+ (find_func_aliases): We don't need structure copies for
+ complex types.
+ (make_constraint_from_anything): Remove.
+ (create_variable_info_for): For globals make constraints
+ from escaped, not from anything.
+ (compute_points_to_sets): Do not call update_alias_info.
+ (ipa_pta_execute): Use make_constraint_from.
+
+2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
+ (bitmap.o-warn, dominance.o-warn): New.
+ * configure.ac (cxx_compat_warn): Delete.
+ (loose_warn): Add -Wcast-qual and -Wc++-compat.
+ * system.h: Remove #pragma diagnostic for -Wcast-qual and
+ -Wc++-compat.
+ * configure: Regenerate.
+
+ * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
+ warnings.
+
+2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
+ * df-scan.c (df_notes_rescan): Likewise.
+ * ggc-page.c (set_page_table_entry): Likewise.
+ * intl.c (gcc_gettext_width): Likewise.
+ * varasm.c (get_unnamed_section, get_noswitch_section,
+ get_section): Likewise.
+
+2008-06-28 Andrew Jenner <andrew@codesourcery.com>
+
+ * regrename.c (build_def_use): Don't copy RTX.
+
+2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
+
+ * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
+ (Type Attributes): Fix nesting of @table and @subsection. Adjust
+ punctuation. Use @ref instead of @xref.
+ (Function Names): Remove stray @display/@end display.
+ (C++ Attributes): Use @ref instead of @xref.
+ (Deprecated Features): Fix punctuation around @xref.
+ (Backwards Compatibility): Likewise.
+ * doc/rtl.texi (Incdec): Remove stray @table/@end table.
+
+2008-06-28 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
+ constants for E500 double.
+
+2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * doc/rtl.texi (const_vector): Document const_fixed as legitimate
+ element type of const_vector.
+
+2008-06-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
+ Remove FLAGS_REG clobber from expander pattern.
+ (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
+ (anddi3, andsi3, andhi3, andqi3): Ditto.
+ (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
+ (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
+ (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
+ (ashlsi3, ashlhi3, ashlqi3): Ditto.
+ (ashrsi3, ashrhi3, ashrqi3): Ditto.
+ (lshrsi3, lshrhi3, lshrqi3): Ditto.
+ (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
+ (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
+
+2008-06-28 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (callused_id, var_callused,
+ callused_tree): Add.
+ (handle_pure_call): New function.
+ (find_func_aliases): Call it.
+ (find_what_p_points_to): Handle the call-used set.
+ (clobber_what_escaped): Likewise.
+ (compute_call_used_vars): New function.
+ (init_base_vars): Init the call-used variable.
+ (do_sd_constraint): Do not propagate the solution from CALLUSED
+ but use CALLUSED as a placeholder.
+ (solve_graph): Likewise.
+ * tree-flow-inline.h (gimple_call_used_vars): New function.
+ * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
+ (compute_call_used_vars): Declare.
+ * tree-ssa-alias.c (set_initial_properties): Call
+ compute_call_used_vars.
+ (reset_alias_info): Clear call-used variables.
+ (add_call_clobber_ops): Assert we are not called for const/pure
+ functions. Remove handling of them.
+ (add_call_read_ops): Handle pure functions by adding the
+ call-used set of variables as VUSEs.
+ * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
+ (delete_tree_ssa): Free it.
+ * tree-dfa.c (remove_referenced_var): Clear the var from the
+ call-used bitmap.
+
+2008-06-28 Kai Tietz <kai.tietz@onevision.com>
+
+ * tree.c (build_varargs_function_type_list): New.
+ (build_function_type_list_1): New.
+ (build_function_type_list): Use build_function_type_list_1.
+ * tree.h (build_varargs_function_type_list): New.
+
+2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR target/34856
+ * config/spu/spu.c (spu_builtin_splats): Do not generate
+ invalid CONST_VECTOR expressions.
+ (spu_expand_vector_init): Likewise.
+
+2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * optabs.c (libfunc_decls): New variable.
+ (libfunc_decl_hash, libfunc_decl_eq): New functions.
+ (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
+ for the same function twice.
+
+2008-06-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
+ ix86_expand_binary_operator directly.
+ (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
+ for operand 2.
+ (*ashrti3_1): Ditto.
+ (*lshrti3_1): Ditto.
+ (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
+ (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
+ using only one splitter. Conditionaly execute splitter before or
+ after peephole2 pass.
+ (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
+ (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
+ Use only one alternative in asm template.
+ (x86_64_shld): Compress operand 2 constraints. Use only one alternative
+ in asm template.
+ (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
+ "J" operand constraint for operand 2.
+ (*ashldi3_cconly_rex64): Ditto.
+ (*ashrdi3_cmp_rex64): Ditto.
+ (*ashrdi3_cconly_rex64): Ditto.
+ (*lshrdi3_cmp_rex64): Ditto.
+ (*lshrdi3_cconly_rex64): Ditto.
+ * config/i386/predicates.md (const_1_to_63_operand): New predicate.
+ * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
+ (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
+ gen_x86_shrd_1.
+
+2008-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gimplify.c (omp_is_private): Don't return true if decl is not
+ already private on #pragma omp for or #pragma omp parallel for.
+
+ PR debug/36617
+ * tree-cfg.c (struct move_stmt_d): Replace block field with
+ orig_block and new_block fields.
+ (move_stmt_r): Only set TREE_BLOCK to p->new_block if
+ if it used to be NULL, p->orig_block or if p->orig_block is NULL.
+ (move_block_to_fn): Replace vars_map and new_label_map arguments
+ with struct move_stmt_d pointer.
+ (replace_block_vars_by_duplicates): New function.
+ (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
+ move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
+ all subblocks of ORIG_BLOCK to the new function. Call
+ replace_block_vars_by_duplicates.
+ * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
+ * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
+ BLOCK of the new function. Adjust move_sese_region_to_fn caller.
+ Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
+ (expand_omp): Temporarily set input_location to the location of
+ region's controlling stmt.
+ (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
+ BIND_EXPR, push ctx->block_vars and gimplification vars into
+ the BIND_EXPR and its block's BLOCK_VARS instead of directly
+ into dest function.
+ (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
+ there are any BLOCK_VARS.
+ (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
+ OMP_PARALLEL or OMP_TASK stmt.
+ (lower_omp): Save and restore input_location around the lower_omp_1
+ call.
+
+2008-06-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36400
+ PR tree-optimization/36373
+ PR tree-optimization/36344
+ * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
+ var_nonlocal, nonlocal_tree, nonlocal_id): New globals
+ (update_alias_info): Remove call clobbering code.
+ (make_constraint_to): New helper function.
+ (make_escape_constraint): Likewise.
+ (handle_rhs_call): Use it on all pointer containing arguments.
+ Also mark the static chain escaped.
+ (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
+ instead of ANYTHING.
+ (make_constraint_from): New helper split out from ...
+ (make_constraint_from_anything): ... here.
+ (find_func_aliases): Add constraints for escape sites.
+ (intra_create_variable_infos): Make constraints from NONLOCAL
+ for parameters.
+ (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
+ as ANYTHING.
+ (clobber_what_p_points_to): Remove.
+ (clobber_what_escaped): New function.
+ (init_base_vars): Init NONLOCAL and ESCAPED.
+ (do_sd_constraint): Do not propagate the solution from ESCAPED
+ but use ESCAPED as a placeholder.
+ (solve_graph): Likewise.
+ * tree-flow.h (clobber_what_p_points_to): Remove.
+ (clobber_what_escaped): Declare.
+ * tree-ssa-alias.c (set_initial_properties): Call it.
+ Remove code clobbering escaped pointers.
+
+2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * function.c (allocate_struct_function): Only allocate a unique
+ funcdef_no if the decl is nonzero.
+
+2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-protos.h (mips_split_const_insns): Declare.
+ * config/mips/mips.c (mips_split_const_insns): New function.
+ * config/mips/mips.md (move_type): New attribute.
+ (mode): Move attribute definition earlier in file. Add "TI" and "TF".
+ (dword_mode): New attribute.
+ (type): Avoid long line. Map "move_type"s to "type"s,
+ choosing "multi" for doubleword moves if appropriate.
+ Swap MTC/MFC comments to match their declaration order.
+ (extended_mips16): Default to "yes" if "move_type" is "sll0",
+ "type" is "branch" or "jal" is "direct".
+ (length): Handle "extended_mips16" first. Make the default
+ "0" for "ghost" instructions. Set the length from "move_type".
+ (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
+ of "type", with "sll0" for the register alternative. Remove the
+ "extended_mips16" attribute.
+ (zero_extendsidi2, *clear_upper32): Use "move_type" instead
+ of "type", with "shift_shift" for the register alternative.
+ Remove the "length" attribute.
+ (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
+ (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
+ of "type", with "andi" for the register alternative.
+ (*zero_extendqihi2): Likewise.
+ (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
+ of "andi" instead of a "type" of "arith".
+ (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
+ instead of "type".
+ (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
+ (mov_<store>r, *mov<mode>_ra): Likewise.
+ (extendsidi2): Use "move_type" instead of "type", with "move"
+ for the register alternative.
+ (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
+ of "type", with "signext" for the register alternative.
+ (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
+ (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
+ (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
+ (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
+ (floatdisf2, *branch_equality<mode>_mips16): Likewise.
+ (unnamed branch insn): Likewise.
+ (*movdi_gp32_fp64): Fold into...
+ (*movdi_32bit): ...here.
+ (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
+ (*movdf_hardfloat): ...this new pattern.
+ (*movdf_softfloat): Remove redundant FPR alternatives.
+ (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
+ (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
+ (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
+ the "move" attribute.
+ (*movdi_32bit): Use "move_type" instead of "type" and remove the
+ "length" attribute. Use "fpload" and "fpstore" instead of "load"
+ and "store" for COP loads and stores.
+ (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
+ (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
+ (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
+ (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
+ (*movtf_mips16, *movv2sf): Likewise.
+ (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
+ (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
+ (mfhc1<mode>): Use "move_type" instead of "move".
+ (*low<mode>_mips16): Use "extended_mips16" instead of "length".
+ (loadgp_blockage): Remove the "length" attribute.
+ (blockage, set_got_version, update_got_version): Likewise.
+ (call_internal): Remove the "extended_mips16" attribute.
+ (call_value_internal, call_value_multiple_internal): Likewise.
+ * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
+ instead of "move".
+ * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
+ the "length" attribute.
+
+2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
+ -Wcast-qual warnings.
+ * c-pragma.c (dpm_eq, handle_pragma_push_macro,
+ handle_pragma_pop_macro): Likewise.
+ * collect2.c (resolve_lib_name): Likewise.
+ * config/arc/arc.c (arc_init): Likewise.
+ * config/arm/arm.c (neon_builtin_compare,
+ locate_neon_builtin_icode): Likewise.
+ * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
+ * config/bfin/bfin.c (bfin_init_machine_status,
+ bfin_optimize_loop): Likewise.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
+ * config/cris/cris.c (cris_init_expanders): Likewise.
+ * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
+ * config/darwin.c (machopic_indirection_eq,
+ machopic_indirection_name, machopic_output_indirection): Likewise.
+ * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
+ frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
+ frv_optimize_membar): Likewise.
+ * config/i386/cygwin.h (mingw_scan,
+ GCC_DRIVER_HOST_INITIALIZATION): Likewise.
+ * config/i386/cygwin1.c (mingw_scan): Likewise.
+ * config/i386/i386.c (machopic_output_stub): Likewise.
+ * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
+ i386_pe_unique_section): Likewise.
+ * config/ia64/ia64.c (ia64_init_machine_status,
+ ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
+ Likewise.
+ * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
+ * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
+ * config/m68k/m68k.c (m68k_handle_option,
+ m68k_sched_md_init_global): Likewise.
+ * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
+ mcore_unique_section): Likewise.
+ * config/mips/mips.c (mips_block_move_straight,
+ mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
+ Likewise.
+ * config/mmix/mmix.c (mmix_init_machine_status,
+ mmix_encode_section_info): Likewise.
+ * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
+ * config/rs6000/rs6000.c (rs6000_init_machine_status,
+ print_operand_address, output_toc, redefine_groups,
+ rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
+ * config/s390/s390.c (s390_init_machine_status): Likewise.
+ * config/score/score.c (score_block_move_straight,
+ score_block_move_loop_body): Likewise.
+ * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
+ * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
+ * emit-rtl.c (find_auto_inc): Likewise.
+ * gcc.c (translate_options, process_command): Likewise.
+ * reorg.c (dbr_schedule): Likewise.
+ * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
+ * xcoffout.c (xcoffout_declare_function): Likewise.
+
+2008-06-27 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
+ ipa-pta working again.
+
+2008-06-27 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/t-aix52: Append large data option to LDFLAGS for
+ genautomata.
+
+2008-06-27 Edmar Wienskoski <edmar@freescale.com>
+
+ * config.gcc (powerpc*-*-*): Add new core e500mc.
+ * config/rs6000/e500mc.md: New file.
+ * config/rs6000/rs6000.c (processor_costs): Add new costs for
+ e500mc.
+ (rs6000_override_options): Add e500mc case to
+ processor_target_table. Altivec and Spe options not allowed
+ with e500mc. Add isel instruction to e500mc by
+ default. Initialize rs6000_cost for e500mc.
+ (rs6000_issue_rate): Set issue rate for e500mc.
+ * config/rs6000/rs6000.h (processor_type): Add
+ PROCESSOR_PPCE500MC.
+ (ASM_CPU_SPEC): Add e500mc.
+ Set TARGET_ISEL to rs6000_isel.
+ * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
+ (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
+ * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
+ Include e500mc.md.
+ * doc/invoke.texi: Add e500mc to list of cpus.
+
+2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ PR c/34867
+ * c-lex.c (lex_charconst): Initialize unsignedp.
+
+2008-06-27 Olivier Hainque <hainque@adacore.com>
+
+ * gimplify.c (gimplify_modify_expr_to_memset): Assert our
+ documented assumptions.
+
+2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2out.c: Remove trailing white spaces. Break long line
+ in comments.
+
+2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * libfuncs.h (LTI_synchronize): New libfunc_index.
+ (synchronize_libfunc): Declare.
+ * builtins.c (expand_builtin_synchronize): Consider using
+ synchronize_libfunc before falling back on an asm blockage.
+ * config/mips/mips.c: Include libfuncs.h
+ (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
+
+2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
+ parameter. Copy stack_reg to r11 where appropriate.
+ (no_global_regs_above): Add gpr parameter.
+ (rs6000_stack_info): Only add padding for SPE save area if we
+ are saving SPE GPRs and CR.
+ (saveres_routine_syms): New variable.
+ (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
+ Define.
+ (rs6000_savres_routine_sym): New function.
+ (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
+ split out of...
+ (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
+ rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
+ Tweak FPR out-of-line saving.
+ (rs6000_make_savres_rtx): New function.
+ (rs6000_use_multiple_p): New function.
+ (rs6000_savres_strategy): New function.
+ (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
+ out-of-line if appropriate.
+ * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
+ if we are optimizing for size.
+ (GP_SAVE_INLINE): Define.
+ (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
+ * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
+ * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
+ * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
+ (*save_fpregs_<mode>): Add use of r11.
+ (*restore_gpregs_<mode>): New insn.
+ (*return_and_restore_gpregs_<mode>): New insn.
+ (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
+ use r11.
+ * config/rs6000/spe.md (*save_gpregs_spe): New insn.
+ (*restore_gpregs_spe): New insn.
+ (*return_and_restore_gpregs_spe): New insn.
+ * config/rs6000/predicates.md (save_world_operation): Fix check.
+
+2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
+ this point, so assert that.
+
+2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
+
+ * cfganal.c: Include vec.h and vecprim.h.
+ (compute_idf): Import from...
+ * tree-into-ssa (compute_idf): ...here.
+ * basic-block.h (compute_idf): Export.
+
+2008-06-26 Joseph Myers <joseph@codesourcery.com>
+
+ * c-decl.c (merge_decls): Use !current_function_decl to check for
+ extern declaration of C99 inline function being at file scope.
+
+2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
+
+ * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
+
+2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alias.c (record_alias_subset, init_alias_analysis): Fix
+ -Wc++-compat and/or -Wcast-qual warnings.
+ * attribs.c (lookup_attribute_spec): Likewise.
+ * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
+ copy_bb, connect_traces,
+ find_rarely_executed_basic_blocks_and_cr): Likewise.
+ * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
+ note_btr_set, migrate_btr_defs): Likewise.
+ * builtins.c (result_vector, expand_builtin_memcpy,
+ expand_builtin_mempcpy_args, expand_builtin_strncpy,
+ builtin_memset_read_str, expand_builtin_printf,
+ fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
+ Likewise.
+ * caller-save.c (mark_set_regs): Likewise.
+ * calls.c (expand_call, emit_library_call_value_1): Likewise.
+ * cgraph.c (cgraph_edge): Likewise.
+ * combine.c (likely_spilled_retval_1): Likewise.
+ * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
+ htab_counts_entry_del, get_coverage_counts): Likewise.
+ * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
+ new_cselib_val): Likewise.
+ * dbgcnt.c (dbg_cnt_process_opt): Likewise.
+ * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
+ Likewise.
+ * df-core.c (df_compact_blocks): Likewise.
+ * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
+ * df-scan.c (df_grow_reg_info, df_ref_create,
+ df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
+ df_ref_compare, df_ref_create_structure, df_bb_refs_record,
+ df_record_entry_block_defs, df_record_exit_block_uses,
+ df_bb_verify): Likewise.
+ * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
+ DF_REF_EXTRACT_MODE_CONST): New.
+ * dominance.c (get_immediate_dominator, get_dominated_by,
+ nearest_common_dominator, root_of_dom_tree,
+ iterate_fix_dominators, first_dom_son, next_dom_son): Fix
+ -Wc++-compat and/or -Wcast-qual warnings.
+ * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
+ record_store, replace_read, check_mem_read_rtx, scan_insn,
+ dse_step1, dse_record_singleton_alias_set): Likewise.
+ * dwarf2asm.c (dw2_force_const_mem): Likewise.
+
+2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
+ dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
+ lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
+ assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
+ build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
+ add_ranges_num, add_ranges_by_labels, file_info_cmp,
+ file_name_acquire, output_file_names, add_const_value_attribute,
+ premark_used_types_helper, file_table_eq, file_table_hash,
+ lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
+ dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
+ -Wcast-qual warnings.
+ * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
+ ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
+ * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
+ gen_reg_rtx, start_sequence, init_emit): Likewise.
+ * et-forest.c (et_new_occ, et_new_tree): Likewise.
+ * except.c (init_eh_for_function, gen_eh_region,
+ remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
+ arh_to_landing_pad, arh_to_label, add_action_record,
+ add_call_site, switch_to_exception_section): Likewise.
+ * expmed.c (synth_mult): Likewise.
+ * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
+ store_expr): Likewise.
+ * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
+ Likewise.
+ * function.c (assign_stack_temp_for_type,
+ allocate_struct_function, match_asm_constraints_1): Likewise.
+ * gcov-io.c (gcov_allocate): Likewise.
+ * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
+ GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
+ (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
+ record_one_set, insert_expr_in_table, insert_set_in_table,
+ dump_hash_table, compute_hash_table_work, alloc_hash_table,
+ pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
+ reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
+ -Wcast-qual warnings.
+
+2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
+ -Wcast-qual warnings.
+ * gcc.c (process_command): Likewise.
+ * genattrtab.c (oballoc): Use XOBNEW.
+ (oballocvec): Define.
+ (attr_hash_add_rtx, attr_hash_add_string, attr_string,
+ get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
+ gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
+ -Wc++-compat and/or -Wcast-qual warnings.
+ * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
+ XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
+ (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
+ gen_presence_absence_set, gen_automaton, gen_regexp_el,
+ gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
+ gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
+ add_excls, process_presence_absence_names,
+ process_presence_absence_patterns, add_presence_absence,
+ process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
+ get_free_state, add_arc, get_free_automata_list_el,
+ form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
+ transform_3, cache_presence, create_ainsns, create_automata,
+ create_state_ainsn_table, dfa_insn_code_enlarge,
+ output_trans_func, output_min_issue_delay_func,
+ output_dead_lock_func, output_reset_func,
+ output_get_cpu_unit_code_func, output_dfa_start_func,
+ expand_automata): Likewise.
+ * genextract.c (gen_insn): Likewise.
+ * gengtype-lex.l: Likewise.
+ * gengtype.c (read_input_list, adjust_field_type,
+ process_gc_options): Likewise.
+ * genoutput.c (note_constraint): Likewise.
+ * genpreds.c (mangle, add_constraint): Likewise.
+ * genrecog.c (process_define_predicate, new_decision,
+ add_to_sequence): Likewise.
+ * gensupport.c (record_insn_name): Likewise.
+
+2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/i386/driver-i386.c (detect_caches_amd,
+ detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
+ and/or -Wcast-qual warnings.
+ *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
+ gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
+ gt_pch_save): Likewise.
+ * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
+ gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
+ * global.c (compute_regsets): Likewise.
+ * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
+ finish_graph_dump_file): Likewise.
+ * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
+ unlink_bb_notes): Likewise.
+ * integrate.c (get_hard_reg_initial_val): Likewise.
+ * ipa-prop.c (ipa_push_func_to_list): Likewise.
+ * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
+ * local-alloc.c (update_equiv_regs): Likewise.
+ * loop-invariant.c (check_invariant_table_size,
+ hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
+ Likewise.
+ * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
+ altered_reg_used, mark_altered): Likewise.
+ * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
+ insert_var_expansion_initialization,
+ combine_var_copies_in_loop_exit, apply_opt_in_copies,
+ release_var_copies): Likewise.
+ * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
+ analyze_matrix_decl, add_allocation_site, analyze_transpose,
+ analyze_accesses_for_phi_node, check_var_notmodified_p,
+ check_allocation_function, find_sites_in_func,
+ record_all_accesses_in_func, transform_access_sites,
+ transform_allocation_sites): Likewise.
+ * omp-low.c (new_omp_region, create_omp_child_function_name,
+ check_omp_nesting_restrictions, check_combined_parallel,
+ lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
+ * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
+ gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
+ gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
+ Likewise.
+ * opts-common.c (prune_options): Likewise.
+ * opts.c (add_input_filename, print_filtered_help,
+ get_option_state): Likewise.
+ * params.c (add_params): Likewise.
+ * passes.c (set_pass_for_id, next_pass_1,
+ do_per_function_toporder, pass_fini_dump_file): Likewise.
+ * postreload.c (reload_cse_simplify_operands): Likewise.
+ * predict.c (tree_predicted_by_p, tree_predict_edge,
+ clear_bb_predictions, combine_predictions_for_bb): Likewise.
+
+2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
+ warnings.
+ * recog.c (check_asm_operands, validate_change_1): Likewise.
+ * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
+ subst_asm_stack_regs): Likewise.
+ * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
+ cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
+ * regmove.c (reg_is_remote_constant_p): Likewise.
+ * regrename.c (regrename_optimize, scan_rtx_reg,
+ kill_clobbered_value, kill_set_value, kill_autoinc_value):
+ Likewise.
+ * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
+ regstat_compute_calls_crossed): Likewise.
+ * reload1.c (init_reload, new_insn_chain,
+ has_nonexceptional_receiver, reload, copy_reloads,
+ calculate_needs_all_insns, init_elim_table): Likewise.
+ * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
+ * rtl.c (shallow_copy_rtx_stat): Likewise.
+ * rtlanal.c (parms_set): Likewise.
+ * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
+ sbitmap_resize, sbitmap_vector_alloc): Likewise.
+ * sched-ebb.c (earliest_block_with_similiar_load,
+ add_deps_for_risky_insns): Likewise.
+ * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
+ schedule_region): Likewise.
+ * see.c (eq_descriptor_pre_extension,
+ hash_descriptor_pre_extension, hash_del_pre_extension,
+ eq_descriptor_properties, hash_descriptor_properties,
+ hash_del_properties, see_seek_pre_extension_expr,
+ see_initialize_data_structures, see_print_register_properties,
+ see_print_pre_extension_expr, see_delete_merged_def_extension,
+ see_delete_unmerged_def_extension, see_emit_use_extension,
+ see_pre_delete_extension, see_map_extension, see_commit_changes,
+ see_analyze_merged_def_local_prop,
+ see_analyze_merged_def_local_prop,
+ see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
+ see_set_prop_merged_def, see_set_prop_unmerged_def,
+ see_set_prop_unmerged_use, see_print_one_extension,
+ see_merge_one_use_extension, see_merge_one_def_extension,
+ see_store_reference_and_extension, see_update_uses_relevancy,
+ see_update_defs_relevancy): Likewise.
+ * statistics.c (hash_statistics_hash, hash_statistics_eq,
+ hash_statistics_free, curr_statistics_hash): Likewise.
+ * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
+ expand_asm_operands, expand_return, case_bit_test_cmp,
+ expand_case): Likewise.
+ * stor-layout.c (start_record_layout): Likewise.
+ * stringpool.c (ggc_alloc_string, gt_pch_n_S,
+ gt_pch_save_stringpool): Likewise.
+ * tree-data-ref.c (hash_stmt_vertex_info,
+ have_similar_memory_accesses_1, ref_base_address_1): Likewise.
+ * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
+
+2008-06-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36627
+ * config/i386/i386.md: Change constraints of HImode and QImode
+ immediate operands from "i" to "n". Change SImode "ni" constraint to
+ "i" and SImode "rmi" constraint to "g". Remove all constraints
+ from const0_operand and const1_operand predicated operands.
+ (i): Change QImode and HImode attribute from "i" to "n".
+ (*subqi_2): Change HImode operands to QImode.
+ (*subqi_3): Ditto.
+
+2008-06-25 Olivier Hainque <hainque@adacore.com>
+
+ * Makefile.in (GTFILES_H): Use | instead of ; as separator in
+ sed substitutions.
+
+2008-06-25 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (fieldoff_compare): Make sure to
+ not overflow the result type.
+
+2008-06-25 Richard Guenther <rguenther@suse.de>
+
+ * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
+ (vn_lookup): Likewise.
+
+2008-06-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35518
+ * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
+ * tree-sra.c (instantiate_element): Use fold_build3 to build
+ BIT_FIELD_REFs.
+ (try_instantiate_multiple_fields): Likewise.
+
+2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md: Change all string instruction's clobber to
+ be early clobbers.
+
+2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
+ use_backchain_to_restore_sp to true
+ if the offset of the link register save area would go over the 32k - 1
+ offset limit of the load
+ instructions.
+
+2008-06-25 Hans-Peter Nilsson <hp@axis.com>
+
+ * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
+ anchor for the type-punning blurb. Cross-reference "Structures
+ unions enumerations and bit-fields implementation". Provide a
+ cast-through-pointer example. Make final sentence self-contained.
+ * doc/implement-c.texi (Structures unions enumerations and
+ bit-fields implementation): Cross-reference the type-punning blurb
+ in the -fstrict-aliasing documentation.
+
+2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36594
+ * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
+ the memory instead of the memory itself for the save area.
+
+2008-06-24 Olivier Hainque <hainque@adacore.com>
+ Nicolas Roche <roche@adacore.com>
+
+ * gengtype.c (srcdir_len): size_t instead of int.
+ (get_file_realbasename): New function. For F a filename, the real
+ basename of F, with all the path components stripped.
+ (get_file_srcdir_relative_path): New function. For F a filename, the
+ relative path to F from $(srcdir).
+ (get_file_basename): Rewrite using get_file_srcdir_relative_path and
+ get_file_realbasename. Adjust the head comment.
+ (get_prefix_langdir_index): New function. For F a filename, return the
+ lang_dir_names[] relative index of the language directory that is
+ a prefix in F.
+ (get_file_langdir): For F a filename, return the name of the language
+ directory where F is located.
+ (get_file_gtfilename): New function. The gt- output file name for an
+ input filename F.
+ (get_output_file_with_visibility): Replace in-line computations with
+ uses of get_file_gtfilename and get_prefix_langdir_index.
+ * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
+
+2008-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36504
+ * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
+ references without base address.
+
+2008-06-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/36584
+ * calls.c (expand_call): Increase alignment for recursive functions.
+
+2008-06-23 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
+ (TARGET_FUNCTION_VALUE): New define.
+ * config/avr/avr-protos.h (avr_function_value): Remove declaration.
+ * config/avr/avr.h (FUNCTION_VALUE): Remove.
+
+2008-06-23 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
+ (fmod<mode>3): Ditto.
+ (remainderxf3): Ditto.
+ (remainder<mode>3): Ditto.
+
+2008-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36533
+ * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
+ REG is a hard register.
+
+ PR tree-optimization/36508
+ * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
+ 499, don't check it at all in release compilers.
+
+2008-06-23 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
+ together with SSE_TARGET_MATH to disable insn pattern.
+ (*fop_<MODEF:mode>_2_i387): Ditto.
+ (*fop_<MODEF:mode>_3_i387): Ditto.
+
+2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
+
+2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ PR middle-end/34906
+ * gimplify.c (gimplify_asm_expr): Check the return code of
+ parse_output_constraint call, set function return and is_inout
+ value if it failed.
+
+2008-06-22 Ian Lance Taylor <iant@google.com>
+
+ * c-lex.c (narrowest_unsigned_type): Change itk to int.
+ (narrowest_signed_type): Likewise.
+ * c-typeck.c (c_common_type): Change local variable mclass to enum
+ mode_class, twice.
+ (parser_build_binary_op): Compare the TREE_CODE_CLASS with
+ tcc_comparison, not the tree code itself.
+ * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
+ (c_expand_expr): Cast modifier to enum expand_modifier.
+ * c-common.h (C_RID_CODE): Add casts.
+ (C_SET_RID_CODE): Define.
+ * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
+ (c_lex_one_token): Add cast to avoid warning.
+ (c_parser_objc_type_name): Rename local typename to type_name.
+ (check_no_duplicate_clause): Change code parameter to enum
+ omp_clause_code.
+ (c_parser_omp_var_list_parens): Change kind parameter to enum
+ omp_clause_code.
+ (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
+ c_parser_omp_list_var_parens.
+ (c_parser_omp_threadprivate): Likewise.
+ * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
+ * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
+ * c-format.c (NO_FMT): Define.
+ (printf_length_specs): Use NO_FMT.
+ (asm_fprintf_length_specs): Likewise.
+ (gcc_diag_length_specs): Likewise.
+ (scanf_length_specs): Likewise.
+ (strfmon_length_specs): Likewise.
+ (gcc_gfc_length_specs): Likewise.
+ (printf_flag_specs): Change 0 to STD_C89.
+ (asm_fprintf_flag_specs): Likewise.
+ (gcc_diag_flag_specs): Likewise.
+ (gcc_cxxdiag_flag_specs): Likewise.
+ (scanf_flag_specs): Likewise.
+ (strftime_flag_specs): Likewise.
+ (strfmon_flag_specs): Likewise.
+ (print_char_table): Likewise.
+ (asm_fprintf_char_table): Likewise.
+ (gcc_diag_char_table): Likewise.
+ (gcc_tdiag_char_table): Likewise.
+ (gcc_cdiag_char_table): Likewise.
+ (gcc_cxxdiag_char_table): Likewise.
+ (gcc_gfc_char_table): Likewise.
+ (scan_char_table): Likewise.
+ (time_char_table): Likewis.
+ (monetary_char_table): Likewise.
+ * c-format.h (BADLEN): Likewise.
+
+2008-06-21 Ian Lance Taylor <iant@google.com>
+
+ * tree.h (enum tree_code): Include all-tree.def, not tree.def.
+ Define END_OF_BASE_TREE_CODES around inclusion.
+ * tree.c (tree_code_type): New global array.
+ (tree_code_length, tree_code_name): Likewise.
+ * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
+ $(lang_tree_files).
+ (all-tree.def, s-alltree): New targets.
+ (gencheck.h, s-gencheck): Remove.
+ (tree.o): Depend upon all-tree.def.
+ (build/gencheck.o): Remove gencheck.h dependency.
+ (mostlyclean): Don't remove gencheck.h.
+ * c-common.h (enum c_tree_code): Remove.
+ * c-lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * gencheck.c (tree_codes): Include all-tree.def, rather than
+ tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
+ after it is used.
+ * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
+ than tree.def.
+ * cp/cp-tree.h (enum cplus_tree_code): Remove.
+ (operator_name_info): Size to MAX_TREE_CODES.
+ (assignment_operator_name_info): Likewise.
+ * cp/cp-lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
+ (assignment_operator_name_info): Likewise.
+ * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
+ MAX_TREE_CODES.
+ * cp/mangle.c (write_expression): Likewise.
+ * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
+ * fortran/f95-lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * java/java-tree.h (enum java_tree_code): Remove.
+ * java/lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
+ * objc/objc-act.h (enum objc_tree_code): Remove.
+ * objc/objc-lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * objcp/objcp-lang.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+ * ada/ada-tree.h (enum gnat_tree_code): Remove.
+ * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
+ * ada/misc.c (tree_code_type): Remove.
+ (tree_code_length, tree_code_name): Remove.
+
+2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
+ the grand_bitmap_obstack.
+
+2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ggc.h (GGC_RESIZEVAR): New, reorder macros.
+ * tracer.c (tail_duplicate): Fix for -Wc++-compat.
+ * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
+ * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
+ move_stmt_r, new_label_mapper): Likewise.
+ * tree-complex.c (cvc_lookup): Likewise.
+ * tree-dfa.c (create_function_ann): Likewise.
+ * tree-dump.c (dump_register): Likewise.
+ * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
+ find_phi_replacement_condition): Likewise.
+ * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
+ tree_function_versioning): Likewise.
+ * tree-into-ssa.c (cmp_dfsnum): Likewise.
+ * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
+ * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
+ get_nonlocal_debug_decl, convert_nonlocal_reference,
+ convert_nonlocal_omp_clauses, get_local_debug_decl,
+ convert_local_reference, convert_local_omp_clauses,
+ convert_nl_goto_reference, convert_nl_goto_receiver,
+ convert_tramp_reference, convert_call_expr): Likewise.
+ * tree-outof-ssa.c (contains_tree_r): Likewise.
+ * tree-parloops.c (reduction_phi, initialize_reductions,
+ eliminate_local_variables_1, add_field_for_reduction,
+ add_field_for_name, create_phi_for_local_result,
+ create_call_for_reduction_1, create_loads_for_reductions,
+ create_stores_for_reduction, create_loads_and_stores_for_name):
+ Likewise.
+ * tree-phinodes.c (allocate_phi_node): Likewise.
+ * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
+ * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
+ * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
+ * tree-ssa-coalesce.c (compare_pairs): Likewise.
+ * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
+ memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
+ record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
+ * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
+ * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
+ vn_nary_op_insert): Likewise.
+ * tree-ssa.c (redirect_edge_var_map_add,
+ redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
+ * tree-vectorizer.c (vectorize_loops): Likewise.
+ * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
+ build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
+ tree_cons_stat, build1_stat, build_variant_type_copy,
+ decl_init_priority_lookup, decl_fini_priority_lookup,
+ decl_priority_info, decl_restrict_base_lookup,
+ decl_restrict_base_insert, decl_debug_expr_lookup,
+ decl_debug_expr_insert, decl_value_expr_lookup,
+ decl_value_expr_insert, type_hash_eq, type_hash_lookup,
+ type_hash_add, get_file_function_name, tree_check_failed,
+ tree_not_check_failed, tree_range_check_failed,
+ omp_clause_range_check_failed, build_omp_clause,
+ build_vl_exp_stat): Likewise.
+ * value-prof.c (gimple_histogram_value,
+ gimple_duplicate_stmt_histograms): Likewise.
+ * var-tracking.c (attrs_list_insert, attrs_list_copy,
+ unshare_variable, variable_union_info_cmp_pos, variable_union,
+ dataflow_set_different_1, dataflow_set_different_2,
+ vt_find_locations, variable_was_changed, set_variable_part,
+ emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
+ * varasm.c (prefix_name, emutls_decl, section_entry_eq,
+ section_entry_hash, object_block_entry_eq,
+ object_block_entry_hash, create_block_symbol,
+ initialize_cold_section_name, default_function_rodata_section,
+ strip_reg_name, set_user_assembler_name, const_desc_eq,
+ build_constant_desc, output_constant_def, lookup_constant_def,
+ const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
+ create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
+ default_internal_label): Likewise.
+ * varray.c (varray_init, varray_grow): Likewise.
+ * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
+
+2008-06-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
+ operators for "test" insn. Macroize insn using SWI mode macro.
+ (*jcc_fused_2): Ditto.
+ (*jcc_fused_3): Macroize insn using SWI mode macro.
+ (*jcc_fused_4): Ditto.
+
+2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * tree-ssa-pre.c: Fix typo in comment.
+ (init_antic, fini_antic): Add explicit funtions for
+ initializing and deinitializing ANTIC and AVAIL sets.
+ (create_expression_by_pieces): Fix typo in comment.
+ Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
+ (execute_pre): Eventually dump details about ANTIC_IN.
+
+2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * collect2.c (main, add_to_list): Fix for -Wc++-compat.
+ * gcc.c (translate_options, init_spec, store_arg, read_specs,
+ add_to_obstack, file_at_path, find_a_file, execute,
+ add_preprocessor_option, add_assembler_option, add_linker_option,
+ process_command, insert_wrapper, do_option_spec, do_self_spec,
+ spec_path, do_spec_1, is_directory, main, used_arg,
+ getenv_spec_function): Likewise.
+ * tlink.c (symbol_hash_lookup, file_hash_lookup,
+ demangled_hash_lookup, symbol_push, file_push, frob_extension):
+ Likewise.
+
+2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi: Updated subreg section.
+
+2008-06-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36523
+ * cgraphunit.c (cgraph_process_new_functions): Don't clear
+ node->needed and node->reachable.
+ * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
+ * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
+ (expand_task_call): Don't call expand_task_copyfn.
+ (expand_task_copyfn): Renamed to...
+ (finalize_task_copyfn): ... this.
+
+2008-06-19 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
+ clobbering framepointer.
+
+2008-06-19 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (execute_early_local_optimizations): Set
+ cgraph_state only at first invocation.
+
+2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (-Wc++-compat): Activate as a warning, no an error.
+
+2008-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
+ instead of "#" in insn asm template.
+ (*jcc_fused_2): Ditto.
+
+2008-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (ix86_tune_indices)
+ [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
+ (TARGET_FUSE_CMP_AND_BRANCH): New define.
+ * config/i386/i386.md (*jcc_fused_1): New insn pattern
+ (*jcc_fused_2): Ditto.
+ * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
+ X86_TUNE_FUSE_CMP_AND_BRANCH targets.
+ (print operand): Handle 'E' and 'e' code.
+
+2008-06-19 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_mcu_t): Add attiny13a.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+ * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
+ node->decl.
+ (cgraph_expand_function): Use local copy of decl.
+ (cgraph_expand_all_functions): Remove redundant initialization of
+ order_pos.
+ (cgraph_optimize): Reword internal_error message.
+
+2008-06-19 Chung-Lin Tang <ctang@marvell.com>
+
+ * arm-protos.h (arm_return_in_memory): Remove public
+ arm_return_in_memory() prototype.
+ * arm.c (arm_return_in_memory): Add static prototype, add target
+ hook macro, change definition and comments.
+ * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
+
+2008-06-19 Ben Elliston <bje@au.ibm.com>
+
+ * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
+ real.c: Remove references to IEEE 754R.
+ * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
+ * doc/libgcc.texi (Decimal float library routines): Likewise.
+
+2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * targhooks.h (struct gcc_target): New member unwind_word_mode.
+ (default_unwind_word_mode): Add prototype.
+ * targhooks.c (default_unwind_word_mode): New function.
+ (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
+ instead of word_mode.
+ * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
+ (TARGET_INITIALIZER): Use it.
+
+ * c-common.c (handle_mode_attribute): Support "unwind_word"
+ mode attribute.
+ * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
+
+ * except.c (init_eh): Use targetm.unwind_word_mode () instead of
+ word_mode to access SjLj_Function_Context member "data".
+ (sjlj_emit_dispatch_table): Likewise. Also, perform type
+ conversion from targetm.eh_return_filter_mode () to
+ targetm.unwind_word_mode () if they differ.
+
+ * builtin-types.def (BT_UNWINDWORD): New primitive type.
+ (BT_FN_UNWINDWORD_PTR): New function type.
+ (BT_FN_WORD_PTR): Remove.
+ * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
+ * except.c (expand_builtin_extend_pointer): Convert pointer to
+ targetm.unwind_word_mode () instead of word_mode.
+
+ * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
+ * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
+ (spu_unwind_word_mode): New function.
+ (TARGET_EH_RETURN_FILTER_MODE): Do not define.
+ (TARGET_UNWIND_WORD_MODE): Define.
+ * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
+
+2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (reg_align): Remove.
+ (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
+ (spu_split_load): Use regno_aligned_for_load instead of reg_align.
+ (spu_split_store): Likewise.
+
+2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * gcc/tree-vn.c: Fix typo in comment.
+
+2008-06-18 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_optimize): Output debug info when doing
+ toplevel reorder too.
+
+2008-06-18 Jan Hubicka <jh@suse.cz>
+
+ * c-opts.c (c_common_post_options): PCH is not compatible with
+ no-unit-at-a-time.
+ * opts.c (handle_options): Enable unit-at-a-time at O0 along with
+ -fno-toplevel-reorder by default now.
+
+2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR documentation/30739
+ * doc/install.texi (Prerequisites): Document dependency on awk.
+
+2008-06-18 Uros Bizjak <ubizjak@gmail.com>
+ Ian Lance Taylor <iant@google.com>
+
+ PR rtl-optimization/35604
+ * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
+ only want to change jump destinations, not eventual label comparisons.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_expand_pending_functions): Give up at
+ syntax errors.
+ (cgraph_analyze_function): Likewise.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (cgraph_mark_if_needed): New function.
+ * cgraphunit.c (cgraph_mark_if_needed): New function.
+ * c-decl.c (duplicate_decl): Use it.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_add_new_function): When in expansion state, do
+ lowering.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
+
+2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
+ Kazu Hirata <kazu@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com
+
+ * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
+ * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
+ * config/mips/linux.h (host_detect_local_cpu): Declare, add to
+ EXTRA_SPEC_FUNCTIONS.
+ (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
+ (DRIVER_SELF_SPECS): Adjust.
+ * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
+ * config/mips/st.h, config/mips/t-st: New.
+ * config/mips/driver-native.c, config/mips/x-native: New.
+ * doc/invoke.texi (MIPS): Document 'native' value for -march and
+ -mtune options.
+
+2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
+ from it.
+ (ISA_HAS_FP_CONDMOVE): New macro.
+ (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
+ (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
+ (ISA_HAS_NMADD3_NMSUB3): New macro.
+ * config/mips/mips.c (mips_rtx_costs): Update.
+ * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
+ compiling for ST Loongson 2E/2F.
+ (madd<mode>): Rename to madd4<mode>. Update.
+ (madd3<mode>): New pattern.
+ (msub<mode>): Rename to msub4<mode>. Update.
+ (msub3<mode>): New pattern.
+ (nmadd<mode>): Rename to nmadd4<mode>. Update.
+ (nmadd3<mode>): New pattern.
+ (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
+ (nmadd3<mode>_fastmath): New pattern.
+ (nmsub<mode>): Rename to nmsub4<mode>. Update.
+ (nmsub3<mode>): New pattern.
+ (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
+ (nmsub3<mode>_fastmath): New pattern.
+ (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
+
+2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
+ (DF_REF_INSN_INFO): New.
+ (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
+ (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
+ with a NULL DF_REF_INSN_INFO.
+ (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
+ DF_INSN_SET.
+ (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
+ DF_INSN_INFO_EQ_USES): New.
+ (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
+ DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
+ DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
+ * df-core.c: Update comment for above changes.
+ (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
+ DF_INSN_UID_* macros.
+ (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
+ * df-scan.c (df_ref_record): Take a df_insn_info instead of an
+ insn rtx. Update all callers.
+ (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
+ df_ref_create_structure, df_insn_refs_collect): Likewise.
+ (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
+ * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
+ (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
+ macros to access the insn refs.
+ (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
+ * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
+ (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
+ for accessing the refs.
+ (try_fwprop_subst): Likewise.
+ * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
+ * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
+ for accessing the refs.
+ * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
+ (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
+ to look at the insn refs.
+ (record_uses): Likewise.
+ * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
+ function anymore.
+ (mark_artificial_uses): Don't mark_insn for artificial refs.
+ (mark_reg_rependencies): Likewise.
+
+ * doc/rtl.texi: Remove documentation of ADDRESSOF.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add attiny167.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * tree-ssa-sccvn.c: Fix format of comments.
+
+2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * cgraph.c: Remove unneeded forward declarations of eq_node()
+ and hash_node().
+
+2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
+
+ * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
+ REG_RETVAL notes.
+ (see_update_relevancy): Likewise.
+ * fwprop.c (try_fwprop_subst): Likewise.
+ * rtlanal.c (noop_move_p): Likewise.
+ * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
+ notes to non-existing libcall blocks.
+ * cse.c (cse_insn): Change prototype. Don't update libcall notes.
+ Remove orig_set.
+ (cse_extended_basic_block): Don't track libcall and no-conflict notes.
+ (dead_libcall_p): Remove.
+ (delete_trivially_dead_insns): Don't use it.
+ * web.c (union_defs): Remove comment about keeping nops.
+ * gcse.c (hash_scan_insn): Don't take libcall pointers.
+ (compute_hash_table_work): Don't track libcall notes.
+ (do_local_cprop): Don't take libcall pointers. Don't update
+ libcall notes.
+ (adjust_libcall_notes): Deleted.
+ (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
+ ever have existed in the first place).
+ (replace_store_insn): Don't try to remove libcall notes.
+ * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
+ (resolve_reg_notes): Don't call them.
+ (resolve_simple_move): Likewise.
+ (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
+ Don't remove REG_RETVAL notes.
+ * emit-rtl.c (try_split): Don't update libcall notes.
+ (emit_copy_of_insn_after): Dito.
+ * cselib.c (cselib_current_insn_in_libcall): Remove.
+ (cselib_process_insn): Don't set/clear it.
+ (new_elt_loc_list): Don't record it.
+ (cselib_init): Don't initialize it.
+ * cselib.c (struct elt_loc_list): Remove in_libcall field.
+ * loop-invariant.c (find_invariant_insn): Don't look for libcall
+ notes.
+ * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
+ (sched_analyze): Don't set up deps->libcall_block_tail_insn.
+ (init_deps): Don't initialize it.
+ * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
+ * combine.c (delete_noop_moves): Don't update libcall notes.
+ (can_combine_p): Remove now pointless #if 0 block.
+ (try_combine): Remove another obsolete #if 0 block.
+ (distribute_notes): Don't distribute libcall notes.
+ * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
+ * dce.c (libcall_dead_p): Remove.
+ (delete_unmarked_insns): Don't handle libcall blocks.
+ (preserve_libcall_for_dce): Remove.
+ (prescan_insns_for_dce): Don't special-case libcall block insns.
+ * reload1 (reload): Don't handle libcall notes.
+ * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
+ documentation.
+
+2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
+
+2008-06-16 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36493
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
+ the arguments list. Use VECTYPE to create vector pointer.
+ (vectorizable_store): Fail if accesses through a pointer to vectype
+ do not alias the original memory reference operands.
+ Call vect_create_data_ref_ptr without the removed argument.
+ (vectorizable_load): Likewise.
+ (vect_setup_realignment): Call vect_create_data_ref_ptr without the
+ removed argument.
+
+2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/36336
+ * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
+ reg_equiv_constant.
+
+2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/loongson2ef.md: New file.
+ * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
+ (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
+ and loongson_2f.
+ (loongson2ef.md): New include.
+ * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
+ (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
+ (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
+ (loongson_gt_<mode>, loongson_extract_halfword)
+ (loongson_insert_halfword_0, loongson_insert_halfword_2)
+ (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
+ (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
+ (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
+ (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
+ (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
+ (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
+ (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
+ (vec_interleave_low<mode>): Define type attribute.
+ * config/mips/mips.c (mips_ls2): New static variable.
+ (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
+ (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
+ (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
+ Implement target scheduling hooks.
+ (mips_multipass_dfa_lookahead): Update to handle tuning for
+ Loongson 2E/2F.
+ (mips_sched_init): Initialize data for Loongson scheduling.
+ (mips_ls2_variable_issue): New static function.
+ (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
+ Add sanity check.
+ (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
+ (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
+ * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
+ (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
+ Handle ST Loongson 2E/2F cores.
+ (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
+
+2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * omp-low.c (extract_omp_for_data): Fix comment typo.
+ * c.opt: Fix typo.
+
+2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/sourcebuild.texi (Config Fragments): Remove obsolete
+ FIXME note about gcc/config.guess.
+ * doc/options.texi (Option file format): Remove non-ASCII bytes.
+ * doc/cpp.texi: Expand TABs, drop indentation outside examples.
+ * doc/cppopts.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/gcc.texi: Likewise.
+ * doc/gccint.texi: Likewise.
+ * doc/gcov.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/hostconfig.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/loop.texi: Likewise.
+ * doc/makefile.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+ * doc/trouble.texi: Likewise.
+
+2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
+ * config/mips/mips-protos.h (mips_expand_vector_init): New.
+ * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
+ builtins.
+ * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
+ (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
+ (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
+ V8QImode cases.
+ (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
+ (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
+ (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
+ (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
+ (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
+ (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
+ (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
+ (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
+ (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
+ (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
+ (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
+ (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
+ (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
+ (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
+ (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
+ (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
+ (mips_builtins): Add Loongson builtins.
+ (mips_loongson_2ef_bdesc): New.
+ (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
+ (mips_builtin_vector_type): Handle unsigned versions of vector modes.
+ (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
+ (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
+ New.
+ (mips_expand_vector_init): New.
+ * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
+ (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
+ if appropriate.
+ * config/mips/mips.md: Add unspec numbers for Loongson
+ builtins. Include loongson.md.
+ (MOVE64): Include Loongson vector modes.
+ (SPLITF): Include Loongson vector modes.
+ (HALFMODE): Handle Loongson vector modes.
+ * config/mips/loongson.md: New.
+ * config/mips/loongson.h: New.
+ * config.gcc: Add loongson.h header for mips*-*-* targets.
+ * doc/extend.texi (MIPS Loongson Built-in Functions): New.
+
+2008-06-14 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
+ h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
+ i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
+ iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
+ m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
+ m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
+ mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
+ mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
+ mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
+ mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
+ powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
+ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
+ sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
+ sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
+ sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
+ v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
+ Remove use_fixproto=yes.
+ (ia64*-*-hpux*): Remove comment about using fixproto.
+ (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
+
+2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac: Update gthr-default.h lazily, to avoid unneeded
+ library rebuilds.
+ * configure: Regenerate.
+
+2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/36520
+ * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
+ before evaluating it.
+
+2008-06-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/36507
+ * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
+ nested inline functions.
+ (start_decl, start_function): Don't invert DECL_EXTERNAL
+ for nested inline functions.
+
+2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
+ splits that must be made for correctness.
+
+2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
+ (AVAIL_NON_MIPS16): Likewise.
+ (mips_builtin_description): Replace target_flags with a predicate.
+ (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
+ (dspr2_32): New availability predicates.
+ (MIPS_BUILTIN): New macro.
+ (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
+ (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
+ (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
+ Replace the TARGET_FLAGS parameters with AVAIL parameters.
+ (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
+ (mips_dsp_32only_bdesc): Merge into...
+ (mips_builtins): ...this new array.
+ (mips_bdesc_map, mips_bdesc_arrays): Delete.
+ (mips_init_builtins): Update after above changes.
+ (mips_expand_builtin_1): Merge into...
+ (mips_expand_builtin): ...here and update after above changes.
+
+2008-06-12 Paul Brook <paul@codesourcery.com>
+
+ * longlong.h (__arm__): Define count_leading_zeros.
+ * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
+ (clzsi2, clzdi2): New functions.
+ * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
+ * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
+ * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
+ * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
+
+2008-06-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_tune_flags): New.
+ (override_options): Compute m68k_tune_flags.
+ (MULL_COST, MULW_COST): Update for various variants of CFV2.
+ * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
+
+2008-06-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36506
+ * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
+
+2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
+ TREE_THIS_VOLATILE on INDIRECT_REF nodes.
+
+2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
+ (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
+
+2008-06-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36506
+ * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
+ reductions.
+
+2008-06-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36345
+ * tree-flow.h (struct ptr_info_def): Align escape_mask,
+ add memory_tag_needed flag.
+ (may_alias_p): Declare.
+ * tree-ssa-alias.c (may_alias_p): Export.
+ (set_initial_properties): Use memory_tag_needed flag.
+ (update_reference_counts): Likewise.
+ (reset_alias_info): Reset memory_tag_needed flag.
+ (create_name_tags): Check memory_tag_needed flag.
+ (dump_points_to_info_for): Dump it.
+ * tree-ssa-structalias.c (struct variable_info): Remove
+ directly_dereferenced flag.
+ (new_var_info): Do not initialize it.
+ (process_constraint_1): Do not set it.
+ (update_alias_info): Set is_dereferenced flag.
+ (set_uids_in_ptset): Use may_alias_p.
+ (set_used_smts): Check memory_tag_needed flag.
+ (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
+ * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
+ memory_tag_needed flag.
+ * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
+ from broken design.
+
+2008-06-12 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (ix86_compute_frame_layout): Disable
+ red zone for w64 abi.
+ (ix86_expand_prologue): Likewise.
+ (ix86_force_to_memory): Likewise.
+ (ix86_free_from_memory): Likewise.
+
+2008-06-11 Edmar Wienskoski <edmar@freescale.com>
+
+ PR target/36425
+ * config/rs6000/rs6000.c (rs6000_override_options): Set
+ rs6000_isel conditionally to the absence of comand line override.
+ * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+ Remove duplicate rs6000_isel setting.
+ * config/rs6000/eabispe.h: Ditto.
+
+2008-06-11 Richard Guenther <rguenther@suse.de>
+
+ * alias.c (get_alias_set): Use the element alias-set for arrays.
+ (record_component_aliases): For arrays and vectors do nothing.
+ * c-common.c (strict_aliasing_warning): Handle the cases
+ of alias set zero explicitly.
+ * Makefile.in (dfp.o-warn): Add -Wno-error.
+
+2008-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
+ tune_32 tune_64.
+ (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
+ tune_32 tune_64 to supported_defaults. Allow values not
+ supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
+ x86_64. Do not override cpu_32 or cpu_64 values from target name.
+ (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
+ with_cpu_64 to generic for 64-bit-supporting configurations, not
+ with_cpu. Remove FIXMEs.
+ * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
+ --with-arch-64, --with-tune-32, --with-tune-64): Document.
+ * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
+ (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
+ arch_32 and arch_64.
+
+2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
+ Use DECL_SIZE_UNIT to retrieve the size of the field.
+
+2008-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (arm_init_neon_builtins): Move initialization
+ with function calls after declarations. Lay out
+ neon_float_type_node before further use.
+
+2008-06-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (may_point_to_global_var): Declare.
+ * tree-ssa-alias.c (may_point_to_global_var): New function.
+ * tree-ssa-sink.c (is_hidden_global_store): Use it.
+
+2008-06-10 Kazu Hirata <kazu@codesourcery.com>
+
+ * configure.ac: Teach that fido supports .debug_line.
+ * configure: Regenerate.
+
+2008-06-10 Tom Tromey <tromey@redhat.com>
+
+ * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
+ debug hook.
+
+2008-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
+ (encode_decimal64, decode_decimal64, encode_decimal128,
+ decode_decimal128): Reverse order of 32-bit parts of value if host
+ and target endianness differ.
+
+2008-06-10 Vinodha Ramasamy <vinodha@google.com>
+
+ * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
+ Avoid division by 0.
+ (tree_mod_pow2_value_transform): Likewise.
+ (tree_ic_transform): Likewise.
+ (tree_stringops_transform): Likewise.
+ (tree_mod_subtract_transform): Likewise.
+ * tree-inline-c (copy_bb): Corrected int type to gcov_type.
+ (copy_edges_for_bb): Likewise.
+ (initialize_cfun): Likewise.
+
+2008-06-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
+ nonmemory_operand. Add "N" operand constraint.
+ (*btsi): Ditto.
+ (*jcc_btdi_mask_rex64): New instruction and split pattern.
+ (*jcc_btsi_mask): Ditto.
+ (*jcc_btsi_mask_1): Ditto.
+
+2008-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.c (build_opaque_vector_type): Set
+ TYPE_CANONICAL for copied element type.
+
+2008-06-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36473
+ * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
+ Add m_CORE2 and m_GENERIC.
+ * config/i386/predicates.md (bt_comparison_operator): New predicate.
+ * config/i386/i386.md (*btdi_rex64): New instruction pattern.
+ (*btsi): Ditto.
+ (*jcc_btdi_rex64): New instruction and split pattern.
+ (*jcc_btsi): Ditto.
+ (*jcc_btsi_1): Ditto.
+ (*btsq): Fix Intel asm dialect operand order.
+ (*btrq): Ditto.
+ (*btcq): Ditto.
+
+2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR middle-end/36447
+ * simplify-rtx.c (simplify_subreg): Add check for shift count
+ greater than size.
+
+2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/md.texi: Synchronize with later constraints.md change.
+ * longlong.h (umul_ppmm): Replace the MIPS asm implementation
+ with a C implementation.
+ * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
+ MFLO handling.
+ (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
+ (mips_split_doubleword_move): Use special MTHI and MFHI instructions
+ when moving to and from MD_REGNUM.
+ (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
+ Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
+ Handle byte and halfword moves.
+ (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
+ separately.
+ * config/mips/constraints.md (h): Turn into NO_REGS.
+ (l, x): Update documentation.
+ * config/mips/mips.md (UNSPEC_MFHILO): Delete.
+ (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
+ (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
+ (HILO): New mode iterator.
+ (MOVE128): Add TI.
+ (any_div): New code iterator.
+ (u): Extend code attribute to div and udiv.
+ (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
+ d_operand in the splitters. Remove redundant CONST_INT checks.
+ (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
+ (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
+ (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
+ accordingly, using normal moves instead of unspecs to move LO into
+ a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
+ (<u>mulsidi3): Handle expansion in C code.
+ (<u>mulsidi3_32bit_internal): Rename to...
+ (<u>mulsidi3_32bit): ...this.
+ (<u>mulsidi3_32bit_r4000): Fix insn separator.
+ (*<u>mulsidi3_64bit): Rename to...
+ (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
+ into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
+ to set LO and HI to the multiplication result. Use a normal move
+ for MFLO and an unspec for MFHI.
+ (*<u>mulsidi3_64bit_parts): Replace with...
+ (<u>mulsidi3_64bit_hilo): ...this new instruction.
+ (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
+ (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
+ and extend it to TARGET_FIX_R4000. Store the destination in a GPR
+ instead of HI. Split the instruction into a separate multiplication
+ and MFHI if !TARGET_FIX_R4000.
+ (<su>muldi3_highpart): Likewise.
+ (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
+ and the "=h" clobber.
+ (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
+ (<u>mulditi3): New expander.
+ (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
+ (madsi): Remove "=h" clobber.
+ (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
+ Force the modulus result to be a GPR and split the instruction into
+ a division followed by an MFHI after reload.
+ (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
+ (*lea_high64): Use d_operand in the define_peephole2. Likewise
+ the MIPS16 HIGH define_split.
+ (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
+ of acc<->gpr moves to "multi".
+ (*movdi_64bit): Replace the single "x" alternative with
+ alternatives for moving into and out of "a".
+ (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
+ (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
+ (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
+ Use d_operand in the splitters. Remove redundant CONST_INT checks.
+ (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
+ (movti): New expander.
+ (*movti, *movti_mips16): New insns.
+ (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
+ (mfhi<GPR:mode>_<HILO:mode>): New pattern.
+ (mthi<GPR:mode>_<HILO:mode>): Likewise.
+ * config/mips/predicates.md (fpr_operand): Delete.
+ (d_operand): New predicate.
+
+2008-06-09 Michael Meissner <michael.meissner@amd.com>
+
+ * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
+ failure on some Bourne shells.
+ (x86_64-*-*): Ditto.
+
+2008-06-09 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
+
+2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
+ (sparc-sun-solaris2*): Likewise.
+
+2008-06-09 Arnaud Charlet <charlet@adacore.com
+
+ * doc/install.texi: Update requirements to build the Ada compiler.
+
+2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * df-scan.c (struct df_scan_problem_data): Remove the
+ mw_link_pool alloc pool.
+ (df_scan_free_internal): Don't free it.
+ (df_scan_alloc): Don't allocate it.
+ * df.h (struct df_link): Update comment.
+
+2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * except.h: Correct checks for when SJLJ exceptions must be used.
+
+2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
+ default.
+
+2008-06-08 Joseph Myers <joseph@codesourcery.com>
+
+ PR tree-optimization/36218
+ * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
+ configure for the build system.
+ (BUILD_LDFLAGS): Define.
+ * configure: Regenerate.
+ * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
+
+2008-07-08 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/36424
+ * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
+ * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
+ * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
+
+2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
+
+2008-06-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (Obsolete configurations): Remove list of
+ configurations.
+ (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
+ *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
+ targets matched by those patterns.
+ (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
+ m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
+ alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
+ arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
+ hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
+ i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
+ i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
+ i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
+ i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
+ mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
+ powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
+ powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
+ strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
+ vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
+ i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
+ Make code for Solaris 7 and greater unconditional for Solaris.
+ (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
+ Remove --with-* handling.
+ * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
+ (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
+ ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
+ LINK_OS_WINDISS_SPEC): Remove.
+ * config/rs6000/sysv4.opt (mwindiss): Remove.
+ * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
+ * configure: Regenerate.
+ * doc/cpp.texi: Don't mention BeOS.
+ * doc/extend.texi (interrupt): Don't mention MS1.
+ * doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv,
+ m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
+ alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
+ i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
+ powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
+ Remove.
+ * doc/invoke.texi (MT Options): Remove.
+ (-mwindiss): Remove.
+ (CRIS Options): Remove cris-axis-aout references.
+ (HPPA Options): Don't mention hppa1.1-*-pro.
+ * doc/md.texi (MorphoTech family): Remove.
+ * libgcc2.c: Don't handle UWIN.
+ * config/alpha/t-unicosmk: Remove.
+ * config/alpha/unicosmk.h: Remove.
+ * config/arm/kaos-arm.h: Remove.
+ * config/arm/kaos-strongarm.h: Remove.
+ * config/arm/strongarm-coff.h: Remove.
+ * config/arm/strongarm-elf.h: Remove.
+ * config/arm/strongarm-pe.h: Remove.
+ * config/arm/t-strongarm-pe: Remove.
+ * config/arm/t-xscale-coff: Remove.
+ * config/arm/t-xscale-elf: Remove.
+ * config/arm/xscale-coff.h: Remove.
+ * config/arm/xscale-elf.h: Remove.
+ * config/chorus.h: Remove.
+ * config/cris/aout.h: Remove.
+ * config/cris/aout.opt: Remove.
+ * config/cris/t-aout: Remove.
+ * config/i386/beos-elf.h: Remove.
+ * config/i386/kaos-i386.h: Remove.
+ * config/i386/ptx4-i.h: Remove.
+ * config/i386/sco5.h: Remove.
+ * config/i386/sco5.opt: Remove.
+ * config/i386/sysv4-cpp.h: Remove.
+ * config/i386/sysv5.h: Remove.
+ * config/i386/t-beos: Remove.
+ * config/i386/t-sco5: Remove.
+ * config/i386/t-uwin: Remove.
+ * config/i386/uwin.asm: Remove.
+ * config/i386/uwin.h: Remove.
+ * config/kaos.h: Remove.
+ * config/mips/windiss.h: Remove.
+ * config/mt: Remove directory.
+ * config/pa/pa-osf.h: Remove.
+ * config/pa/pa-pro-end.h: Remove.
+ * config/pa/t-pro: Remove.
+ * config/ptx4.h: Remove.
+ * config/rs6000/beos.h: Remove.
+ * config/rs6000/kaos-ppc.h: Remove.
+ * config/rs6000/t-beos: Remove.
+ * config/rs6000/windiss.h: Remove.
+ * config/sh/kaos-sh.h: Remove.
+ * config/sol2-6.h: Remove.
+ * config/sparc/sol26-sld.h: Remove.
+ * config/sparc/sysv4-only.h: Remove.
+ * config/vax/bsd.h: Remove.
+ * config/vax/t-memfuncs: Remove.
+ * config/vax/ultrix.h: Remove.
+ * config/vax/vaxv.h: Remove.
+ * config/windiss.h: Remove.
+
+2008-06-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36438
+ * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
+ for vector shifts with constant scalar shift operands.
+
+2008-06-06 Sandip Matte <sandip@rmicorp.com>
+
+ * doc/invoke.texi: Document -march=xlr.
+ * config/mips/xlr.md: New file.
+ * config/mips/mips.md: Include it.
+ (cpu): Add "xlr".
+ * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
+ * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
+ (mips_rtx_cost_data): Likewise.
+
+2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
+ PRE_INC and PRE_DEC cases.
+
+2008-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36419
+ * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
+ the emitting jump insn.
+
+ PR target/36362
+ * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
+ is not bool, boolify the whole *expr_p and convert to the desired type.
+
+2008-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
+ * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
+ Add omp_private_outer_ref hook, add another argument to
+ omp_clause_default_ctor hook.
+ * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
+ (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
+ (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
+ hook_tree_tree_tree_tree_null.
+ (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
+ LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
+ * hooks.c (hook_tree_tree_tree_tree_null): New function.
+ * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
+ * tree.def (OMP_TASK): New tree code.
+ * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
+ OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
+ OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
+ OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
+ OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
+ OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
+ OMP_CLAUSE_COLLAPSE_EXPR): Define.
+ (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
+ (OMP_DIRECTIVE_P): Add OMP_TASK.
+ (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
+ (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
+ * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
+ and OMP_CLAUSE_UNTIED entries.
+ (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
+ num_ops to 2.
+ (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
+ Walk OMP_CLAUSE_LASTPRIVATE_STMT.
+ * tree-pretty-print.c (dump_omp_clause): Handle
+ OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
+ OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
+ (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
+ * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
+ warning about unsigned iterators. Change decl/init/cond/incr
+ arguments to TREE_VECs, check arguments for all collapsed loops.
+ (c_finish_omp_taskwait): New function.
+ (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
+ ws_clauses.
+ * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
+ default_function_array_conversion on init. Add par_clauses argument.
+ If decl is present in parallel's lastprivate clause, change it to
+ shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
+ Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
+ collapse count in clauses.
+ (c_parser_omp_for, c_parser_omp_parallel): Adjust
+ c_parser_omp_for_loop callers.
+ (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
+ (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
+ (c_parser_omp_clause_name): Handle collapse and untied clauses.
+ (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
+ functions.
+ (c_parser_omp_clause_schedule): Handle schedule(auto).
+ Include correct location in the error message.
+ (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
+ and PRAGMA_OMP_CLAUSE_UNTIED.
+ (OMP_TASK_CLAUSE_MASK): Define.
+ (c_parser_omp_task, c_parser_omp_taskwait): New functions.
+ (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
+ * tree-nested.c (convert_nonlocal_omp_clauses,
+ convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
+ OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
+ OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
+ Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
+ OMP_CLAUSE_DECL.
+ (conver_nonlocal_reference, convert_local_reference,
+ convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
+ OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
+ (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
+ * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
+ * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
+ * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
+ (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
+ * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
+ (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
+ OMP_CLAUSE_UNTIED.
+ * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
+ * c-common.h (c_finish_omp_taskwait): New prototype.
+ * gimple-low.c (lower_stmt): Handle OMP_TASK.
+ * tree-parloops.c (create_parallel_loop): Create 1 entry
+ vectors for OMP_FOR_{INIT,COND,INCR}.
+ * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
+ (make_edges): Handle OMP_TASK.
+ * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
+ loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
+ * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
+ * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
+ BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
+ BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
+ BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
+ BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
+ * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
+ BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
+ BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
+ BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
+ BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
+ BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
+ * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
+ handle POINTER_PLUS_EXPR. If loop counter has been replaced and
+ original iterator is present in lastprivate clause or if
+ collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
+ OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
+ (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
+ (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
+ (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
+ if it is set, lookup var in outer contexts too. Handle
+ OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
+ to be implicitly determined firstprivate for task regions.
+ (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
+ if it is set, lookup var in outer contexts too. Set
+ OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
+ Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
+ OMP_CLAUSE_UNTIED. Take region_type as last argument
+ instead of in_parallel and in_combined_parallel.
+ (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
+ Adjust callers.
+ (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
+ GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
+ (new_omp_context): Set default_kind to
+ OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
+ (omp_region_type): New enum.
+ (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
+ fields, add region_type.
+ (new_omp_context): Take region_type as argument instead of is_parallel
+ and is_combined_parallel.
+ (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
+ omp_is_private, omp_check_private): Adjust ctx->is_parallel and
+ ctx->is_combined_parallel checks.
+ (gimplify_omp_task): New function.
+ (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
+ OMP_CLAUSE_UNTIED.
+ * omp-low.c (extract_omp_for_data): Use schedule(static)
+ for schedule(auto). Handle pointer and unsigned iterators.
+ Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
+ Add loops argument. Extract data for collapsed OMP_FOR loops.
+ (expand_parallel_call): Assert sched_kind isn't auto,
+ map runtime schedule to index 3.
+ (struct omp_for_data_loop): New type.
+ (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
+ Add loop, loops, collapse and iter_type fields.
+ (workshare_safe_to_combine_p): Disallow combined for if
+ iter_type is unsigned long long. Don't combine collapse > 1 loops
+ unless all bounds and steps are constant. Adjust extract_omp_for_data
+ caller.
+ (expand_omp_for_generic): Handle pointer, unsigned and long long
+ iterators. Handle collapsed OMP_FOR loops. Adjust
+ for struct omp_for_data changes. If libgomp function doesn't return
+ boolean_type_node, add comparison of the return value with 0.
+ (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
+ pointer, unsigned and long long iterators. Adjust for struct
+ omp_for_data changes.
+ (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
+ to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
+ unsigned long long. Allocate loops array, pass it to
+ extract_omp_for_data. For collapse > 1 loops use always
+ expand_omp_for_generic.
+ (omp_context): Add sfield_map and srecord_type fields.
+ (is_task_ctx, lookup_sfield): New functions.
+ (use_pointer_for_field): Use is_task_ctx helper. Change first
+ argument's type from const_tree to tree. Clarify comment.
+ In OMP_TASK disallow copy-in/out sharing.
+ (build_sender_ref): Call lookup_sfield instead of lookup_field.
+ (install_var_field): Add mask argument. Populate both record_type
+ and srecord_type if needed.
+ (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
+ in srecord_type.
+ (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
+ and DECL_FIELD_OFFSET.
+ (scan_sharing_clauses): Adjust install_var_field callers. For
+ firstprivate clauses on explicit tasks allocate the var by value in
+ record_type unconditionally, rather than by reference.
+ Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
+ Use is_taskreg_ctx instead of is_parallel_ctx.
+ Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
+ (create_omp_child_function_name): Add task_copy argument, use
+ *_omp_cpyfn* names if it is true.
+ (create_omp_child_function): Add task_copy argument, if true create
+ *_omp_cpyfn* helper function.
+ (scan_omp_parallel): Adjust create_omp_child_function callers.
+ Rename parallel_nesting_level to taskreg_nesting_level.
+ (scan_omp_task): New function.
+ (lower_rec_input_clauses): Don't run constructors for firstprivate
+ explicit task vars which are initialized by *_omp_cpyfn*.
+ Pass outer var ref to omp_clause_default_ctor hook if
+ OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
+ Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
+ OMP_CLAUSE_REDUCTION_INIT.
+ (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
+ avoid duplicate setting of fields. Handle
+ OMP_CLAUSE_PRIVATE_OUTER_REF.
+ (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
+ copy-out if TREE_READONLY, only copy-in.
+ (expand_task_copyfn): New function.
+ (expand_task_call): New function.
+ (struct omp_taskcopy_context): New type.
+ (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
+ New functions.
+ (lower_omp_parallel): Rename to...
+ (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
+ Call create_task_copyfn if srecord_type is needed. Adjust
+ sender_decl type.
+ (task_shared_vars): New variable.
+ (check_omp_nesting_restrictions): Warn if work-sharing,
+ barrier, master or ordered region is closely nested inside OMP_TASK.
+ Add warnings for barrier if closely nested inside of work-sharing,
+ ordered, or master region.
+ (scan_omp_1): Call check_omp_nesting_restrictions even for
+ GOMP_barrier calls. Rename parallel_nesting_level to
+ taskreg_nesting_level. Handle OMP_TASK.
+ (lower_lastprivate_clauses): Even if some lastprivate is found on a
+ work-sharing construct, continue looking for them on parent parallel
+ construct.
+ (lower_omp_for_lastprivate): Add lastprivate clauses
+ to the beginning of dlist rather than end. Adjust for struct
+ omp_for_data changes.
+ (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
+ not after it. Handle collapsed OMP_FOR loops, adjust for
+ OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
+ (get_ws_args_for): Adjust extract_omp_for_data caller.
+ (scan_omp_for): Handle collapsed OMP_FOR
+ loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
+ (lower_omp_single_simple): If libgomp function doesn't return
+ boolean_type_node, add comparison of the return value with 0.
+ (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
+ loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
+ (parallel_nesting_level): Rename to...
+ (taskreg_nesting_level): ... this.
+ (is_taskreg_ctx): New function.
+ (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
+ of is_parallel_ctx.
+ (execute_lower_omp): Rename parallel_nesting_level to
+ taskreg_nesting_level.
+ (expand_omp_parallel): Rename to...
+ (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
+ Call omp_task_call for OMP_TASK regions.
+ (expand_omp): Adjust caller, handle OMP_TASK.
+ (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
+
+ * bitmap.c (bitmap_default_obstack_depth): New variable.
+ (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
+ if argument is NULL and bitmap_default_obstack is already initialized.
+ * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
+ at the end.
+ * matrix-reorg.c (matrix_reorg): Likewise.
+
+2008-06-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*indirect_jump): Macroize using P
+ mode iterator. Remove !TARGET_64BIT from insn constraints.
+ (*tablejump_1): Ditto.
+ (*indirect_jump_rex64): Remove insn pattern.
+ (*tablejump_1_rex64): Ditto.
+ (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
+ and eh_return_si insn patterns.
+
+2008-06-06 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (merge_smts_into): Remove.
+ (find_what_p_points_to): Do not bother to compute the
+ points-to set for pt_anything pointers.
+ * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
+ for pt_anything pointers is ok.
+
+2008-06-06 Jan Hubicka <jh@suse.cz>
+
+ * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
+
+2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * cgraph.c: Fix typos in comments.
+ (cgraph_availability_names): Fix string typo.
+ * fold-const.c: Fix typos in comments.
+ (fold_binary): Fix typo in warning.
+ * genautomata.c: Fix typos in comments.
+ (check_presence_pattern_sets): Fix typo in local variable.
+ (output_description): Fix typo in output.
+ * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
+ * hwint.h: Likewise.
+ * matrix-reorg.c (check_allocation_function): Likewise.
+ * omega.c (smooth_weird_equations): Likewise.
+ * auto-inc-dec.c: Fix typos in comments.
+ * bb-reorder.c: Likewise.
+ * builtins.c: Likewise.
+ * c-common.c: Likewise.
+ * c-cppbuiltin.c: Likewise.
+ * c-parser.c: Likewise.
+ * c-pretty-print.c: Likewise.
+ * cfgcleanup.c: Likewise.
+ * cfgexpand.c: Likewise.
+ * cfghooks.c: Likewise.
+ * cfglayout.c: Likewise.
+ * cfgloopmanip.c: Likewise.
+ * cgraphunit.c: Likewise.
+ * coverage.c: Likewise.
+ * dbxout.c: Likewise.
+ * df-byte-scan.c: Likewise.
+ * df-core.c: Likewise.
+ * df-problems.c: Likewise.
+ * df-scan.c: Likewise.
+ * dfp.c: Likewise.
+ * dominance.c: Likewise.
+ * domwalk.c: Likewise.
+ * dse.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * emit-rtl.c: Likewise.
+ * et-forest.c: Likewise.
+ * function.c: Likewise.
+ * function.h: Likewise.
+ * gcc.c: Likewise.
+ * gcov-io.c: Likewise.
+ * gcov.c: Likewise.
+ * gcse.c: Likewise.
+ * genattrtab.c: Likewise.
+ * ggc-page.c: Likewise.
+ * gimplify.c: Likewise.
+ * gthr-lynx.h: Likewise.
+ * haifa-sched.c: Likewise.
+ * ipa-cp.c: Likewise.
+ * ipa-inline.c: Likewise.
+ * ipa-prop.h: Likewise.
+ * ipa-pure-const.c: Likewise.
+ * ipa-struct-reorg.c: Likewise.
+ * ipa-struct-reorg.h: Likewise.
+ * ipa-type-escape.c: Likewise.
+ * ipa.c: Likewise.
+ * loop-doloop.c: Likewise.
+ * mips-tfile.c: Likewise.
+ * mkmap-flat.awk: Likewise.
+ * mkmap-symver.awk: Likewise.
+ * modulo-sched.c: Likewise.
+ * omp-low.c: Likewise.
+ * optabs.c: Likewise.
+ * optabs.h: Likewise.
+ * opts.c: Likewise.
+ * passes.c: Likewise.
+ * postreload-gcse.c: Likewise.
+ * postreload.c: Likewise.
+ * predict.c: Likewise.
+ * pretty-print.h: Likewise.
+ * profile.c: Likewise.
+ * protoize.c: Likewise.
+ * ra-conflict.c: Likewise.
+ * real.c: Likewise.
+ * recog.c: Likewise.
+ * regclass.c: Likewise.
+ * regs.h: Likewise.
+ * reload.c: Likewise.
+ * rtl-error.c: Likewise.
+ * rtlanal.c: Likewise.
+ * scan.h: Likewise.
+ * sched-rgn.c: Likewise.
+ * see.c: Likewise.
+ * stmt.c: Likewise.
+ * target.h: Likewise.
+ * tree-dfa.c: Likewise.
+ * tree-eh.c: Likewise.
+ * tree-flow-inline.h: Likewise.
+ * tree-inline.c: Likewise.
+ * tree-into-ssa.c: Likewise.
+ * tree-loop-distribution.c: Likewise.
+ * tree-nested.c: Likewise.
+ * tree-parloops.c: Likewise.
+ * tree-pass.h: Likewise.
+ * tree-pretty-print.c: Likewise.
+ * tree-profile.c: Likewise.
+ * tree-scalar-evolution.c: Likewise.
+ * tree-sra.c: Likewise.
+ * tree-ssa-alias-warnings.c: Likewise.
+ * tree-ssa-ccp.c: Likewise.
+ * tree-ssa-coalesce.c: Likewise.
+ * tree-ssa-dom.c: Likewise.
+ * tree-ssa-dse.c: Likewise.
+ * tree-ssa-forwprop.c: Likewise.
+ * tree-ssa-live.c: Likewise.
+ * tree-ssa-live.h: Likewise.
+ * tree-ssa-loop-im.c: Likewise.
+ * tree-ssa-loop-ivopts.c: Likewise.
+ * tree-ssa-loop-niter.c: Likewise.
+ * tree-ssa-loop-prefetch.c: Likewise.
+ * tree-ssa-phiopt.c: Likewise.
+ * tree-ssa-phiprop.c: Likewise.
+ * tree-ssa-sccvn.c: Likewise.
+ * tree-ssa-ter.c: Likewise.
+ * tree-ssa-threadupdate.c: Likewise.
+ * tree-ssa.c: Likewise.
+ * tree-vect-analyze.c: Likewise.
+ * tree-vect-transform.c: Likewise.
+ * tree-vectorizer.c: Likewise.
+ * tree-vn.c: Likewise.
+ * tree-vrp.c: Likewise.
+ * tree.c: Likewise.
+ * tree.def: Likewise.
+ * tree.h: Likewise.
+ * unwind-dw2-fde.c: Likewise.
+ * unwind.inc: Likewise.
+ * value-prof.c: Likewise.
+ * vmsdbgout.c: Likewise.
+
+2008-06-05 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
+ always place FP constants in the TOC for TARGET_POWERPC64.
+ * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
+
+2008-06-05 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
+ * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
+ enable for TARGET_E500_DOUBLE.
+ (*movdd_softfloat32): Also enable for !TARGET_FPRS.
+ * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
+ floating-point modes like integer modes for E500 double.
+ (rs6000_legitimate_offset_address_p): Likewise.
+ (rs6000_legitimize_address): Likewise. Do not allow REG+REG
+ addressing for DDmode for E500 double.
+ (rs6000_hard_regno_nregs): Do not treat decimal floating-point
+ modes as using 64-bits of registers for E500 double.
+ (spe_build_register_parallel): Do not handle DDmode or TDmode.
+ (rs6000_spe_function_arg): Do not handle DDmode or TDmode
+ specially for E500 double.
+ (function_arg): Do not call rs6000_spe_function_arg for DDmode or
+ TDmode for E500 double.
+ (rs6000_gimplify_va_arg): Only handle SDmode in registers
+ specially if TARGET_HARD_FLOAT && TARGET_FPRS.
+ (rs6000_split_multireg_move): Do not handle TDmode specially for
+ E500 double.
+ (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
+ using 64-bit registers for E500 double.
+ (emit_frame_save): Do not handle DDmode specially for E500 double.
+ (gen_frame_mem_offset): Likewise.
+ (rs6000_function_value): Do not call spe_build_register_parallel
+ for DDmode or TDmode.
+ (rs6000_libcall_value): Likewise.
+ * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
+ DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
+ for E500 double.
+
+2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
+ in comments.
+
+2008-06-04 Junjie Gu <jgu@tensilica.com>
+
+ * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
+ comparison for frame pointers.
+
+2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/27386
+ * config/avr/avr.h (PUSH_ROUNDING): Remove.
+
+2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/30243
+ * builtins.c (expand_builtin_signbit): Don't take lowpart when
+ register is already smaller or equal to required mode.
+
+2008-06-04 Xinliang David Li <davidxl@google.com>
+
+ * tree-call-cdce.c: New file.
+ (cond_dead_built_in_calls): New static variable.
+ (input_domain): New struct.
+ (check_pow): New function.
+ (check_builtin_call): Ditto.
+ (check_target_format): Ditto.
+ (is_call_dce_candidate): Ditto.
+ (gen_one_condition): Ditto.
+ (gen_conditions_for_domain): Ditto.
+ (get_domain): Ditto.
+ (gen_conditions_for_pow_cst_base): Ditto.
+ (gen_conditions_for_pow_int_base): Ditto.
+ (gen_conditions_for_pow): Ditto.
+ (get_no_error_domain): Ditto.
+ (gen_shrink_wrap_conditions): Ditto.
+ (shrink_wrap_one_built_in_call): Ditto.
+ (shink_wrap_conditional_dead_built_in_calls): Ditto.
+ (tree_call_cdce): Ditto.
+ (gate_call_cdce): Ditto.
+ (pass_call_cdce): New gimple pass.
+ * passes.c (init_optimization_passes): New pass.
+ * tree-pass.h: New pass declaration.
+ * opts.c (decode_options): New flag setting.
+ * common.opt: Add -ftree-builtin-call-dce flag.
+ * Makefile.in: Add new source file.
+ * tempvar.def: New tv_id.
+ * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
+
+2008-06-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
+ (is_call_clobbered): Always check var_ann->call_clobbered.
+ (mark_call_clobbered): Always set var_ann->call_clobbered.
+ (clear_call_clobbered): Always clear var_ann->call_clobbered.
+ * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
+ (reset_alias_info): Clear call clobbering info on MTAGs and
+ globals as well.
+ (set_pt_anything): Set pt_global_mem.
+ (create_tag_raw): Adjust comment.
+ (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
+
+2008-06-04 Joseph Myers <joseph@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/m68k/m68k.opt (mxgot): New option.
+ * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
+ (m68k_output_addr_const_extra): New.
+ * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
+ * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
+ * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
+ * doc/invoke.texi (M680x0 Options): Document -mxgot.
+
+2008-06-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
+ negative or non-representable offsets.
+
+2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_gen_leave): New.
+ (ix86_gen_pop1): Likewise.
+ (ix86_gen_add3): Likewise.
+ (ix86_gen_sub3): Likewise.
+ (ix86_gen_sub3_carry): Likewise.
+ (ix86_gen_one_cmpl2): Likewise.
+ (ix86_gen_monitor): Likewise.
+ (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
+ ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
+ ix86_gen_one_cmpl2 and ix86_gen_monitor.
+ (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
+ (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
+ mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
+ (ix86_expand_epilogue): Updated.
+ (print_operand): Handle integer register operand for 'z'.
+ (ix86_expand_strlensi_unroll_1): Likewise.
+ (ix86_expand_strlen): Likewise.
+ (ix86_expand_builtin): Likewise.
+ (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
+ mov{q}/mov{l} and add{q}/add{l}.
+
+2008-06-03 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.md (P): New mode iterator.
+ (SFmode push_operand splitter): Macroize DImode and SImode pushes
+ using P mode iterator.
+ (DFmode push_operand splitter): Ditto.
+ (XFmode push_operand splitter): Ditto.
+ (DFmode float_extend SFmode push_operand splitter): Ditto.
+ (XFmode float_extend SFmode push_operand splitter): Do not generate
+ SImode pushes for 64bit target. Macroize Dimode and SImode
+ pushes using P mode iterator.
+ (XFmode float_extend DFmode push_operand splitter): Ditto.
+
+2008-06-03 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
+ * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
+ * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
+ return type to int.
+ (ix86_call_abi_override): Remove check for call_used_regs.
+
+2008-06-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (find_func_aliases): Add constraints
+ for the lhs of calls if the return type contains pointers.
+
+2008-06-03 Kai Tietz <kai.tietz@onevision.com>
+
+ * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
+ * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
+ * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
+ * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
+ of cfun and DEFAULT_ABI to deceide abi mode.
+ (DEFAULT_ABI): New.
+ (REG_PARM_STACK_SPACE): Removed.
+ (OUTGOING_REG_PARM_STACK_SPACE): Removed.
+ (STACK_BOUNDARY): Use default target to deceide stack boundary.
+ * config/i386/i386-protos.h (ix86_cfun_abi): New.
+ (ix86_function_abi): Likewise.
+ (ix86_function_type_abi): Likewise.
+ (ix86_call_abi_override): Likewise.
+ * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
+ specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
+ * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
+ (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
+ specific defines.
+ (X86_64_REGPARM_MAX): New.
+ (X86_64_SSE_REGPARM_MAX): New.
+ (X64_REGPARM_MAX): New.
+ (X64_SSE_REGPARM_MAX): New.
+ (X86_32_REGPARM_MAX): New.
+ (X86_32_SSE_REGPARM_MAX): New.
+ (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
+ (ix86_function_regparm): Handle user calling abi.
+ (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
+ by DEFAULT_ABI versus SYSV_ABI check.
+ (ix86_reg_parm_stack_space): New.
+ (ix86_function_type_abi): New.
+ (ix86_call_abi_override): New.
+ (ix86_function_abi): New.
+ (ix86_cfun_abi): New.
+ (init_cumulative_args): Call abi specific initialization.
+ (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
+ (function_arg_64): Extend SSE_REGPARM_MAX check.
+ (function_arg (): Remove TARGET_64BIT_MS_ABI.
+ (ix86_pass_by_reference): Likewise.
+ (ix86_function_value_regno_p): Likewise.
+ (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
+ (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
+ (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
+ (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
+ (setup_incoming_varargs_64): Adjust regparm for call abi.
+ (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
+ (ix86_va_start): Likewise.
+ (ix86_gimplify_va_arg): Likewise.
+ (ix86_expand_prologue): Likewise.
+ (output_pic_addr_const): Likewise.
+ (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
+ (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
+ (x86_output_mi_thunk): Likewise.
+ (x86_function_profiler): Likewise.
+ * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
+ (SYSV_ABI, MS_ABI): New constants.
+ (DEFAULT_ABI): New.
+ (init_regs): Add prototype of function in regclass.c file.
+ (OVERRIDE_ABI_FORMAT): New.
+ (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
+ (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
+ (OUTGOING_REG_PARM_STACK_SPACE): New.
+ (ix86_reg_parm_stack_space): New prototype.
+ (CUMULATIVE_ARGS): Add call_abi member.
+ (machine_function): Add call_abi member.
+ * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
+ TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
+
+2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/34879
+ * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
+ (avr_builtin_setjmp_frame_value): New function.
+ * config/avr/avr.md (nonlocal_goto_receiver): Define.
+ (nonlocal_goto): Define.
+
+2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_emit_loadgp): Return early if
+ there is nothing do to, otherwise emit a blockage if
+ !TARGET_EXPLICIT_RELOCS || crtl->profile.
+ * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
+
+2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac: Drop unneeded backslash ending up in config.in.
+ * acinclude.m4: Likewise.
+ * config.in: Regenerate.
+
+2008-05-26 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (maybe_hot_frequency_p): Break out of...
+ (maybe_hot_bb_p): ... here.
+ (maybe_hot_edge_p): New.
+ * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
+ * basic-block.h (maybe_hot_edge_p): Declare.
+
+2008-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
+ (*cmpfp_<mode>_cc): Ditto.
+ (*fp_jcc_8<mode>_387): Ditto.
+ (*fop_<MODEF:mode>_2_i387): Ditto.
+ (*fop_<MODEF:mode>_3_i387): Ditto.
+ (*fop_xf_2_i387): Ditto.
+ (*fop_xf_3_i387): Ditto.
+
+2008-06-02 Tomas Bily <tbily@suse.cz>
+
+ * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
+
+2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_valid_offset_p): New function.
+ (mips_valid_lo_sum_p): Likewise.
+ (mips_classify_address): Use them.
+ (mips_force_address): New function.
+ (mips_legitimize_address): Use it.
+ * config/mips/mips.md (MOVE128): New mode iterator.
+ (movtf): Require TARGET_64BIT. Remove empty strings.
+ (*movtf_internal): Rename to...
+ (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
+ of "R" and use {,fp}{load,store} attributes instead of "multi".
+ Use a separate define_split.
+ (*movtf_mips16): New pattern.
+
+2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-protos.h (mips_expand_before_return): Declare.
+ * config/mips/mips.c (mips_expand_before_return): New function.
+ (mips_expand_epilogue): Call it.
+ * config/mips/mips.md (return): Turn into a define_expand.
+ (*return): New insn.
+
+2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
+ * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
+ functions. Do not emit uses and clobbers of CONCATs; individually
+ use and clobber their operands.
+ * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
+ gen_clobber, emit_use and gen_use.
+ (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
+ (expand_builtin_return): Likewise.
+ * cfgbuild.c (count_basic_blocks): Likewise.
+ * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
+ * explow.c (emit_stack_restore): Likewise.
+ * expmed.c (extract_bit_field_1): Likewise.
+ * expr.c (convert_move, emit_move_complex_parts): Likewise.
+ (emit_move_multi_word, store_constructor): Likewise.
+ * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
+ (thread_prologue_and_epilogue_insns): Likewise.
+ * lower-subreg.c (resolve_simple_move): Likewise.
+ * optabs.c (widen_operand, expand_binop): Likewise.
+ (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
+ * reload.c (find_reloads): Likewise.
+ * reload1.c (eliminate_regs_in_insn): Likewise.
+ * stmt.c (expand_nl_goto_receiver): Likewise.
+ * config/alpha/alpha.md (builtin_longjmp): Likewise.
+ * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
+ * config/arm/arm.c (arm_load_pic_register): Likewise.
+ (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
+ * config/arm/arm.md (untyped_return): Likewise.
+ * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
+ * config/avr/avr.c (expand_prologue): Likewise.
+ * config/bfin/bfin.c (do_unlink): Likewise.
+ * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
+ * config/cris/cris.c (cris_expand_prologue): Likewise.
+ * config/darwin.c (machopic_indirect_data_reference): Likewise.
+ (machopic_legitimize_pic_address): Likewise.
+ * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
+ (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
+ * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
+ (ix86_expand_convert_uns_didf_sse): Likewise.
+ (ix86_expand_vector_init_general): Likewise.
+ * config/ia64/ia64.md (eh_epilogue): Likewise.
+ * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
+ * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
+ * config/m32r/m32r.c (m32r_reload_lr): Likewise.
+ (config/iq2000/iq2000.c): Likewise.
+ * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
+ (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
+ (builtin_longjmp): Likewise.
+ * config/mn10300/mn10300.md (call, call_value): Likewise.
+ * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
+ * config/pdp11/pdp11.md (abshi2): Likewise.
+ * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
+ * config/s390/s390.c (s390_emit_prologue): Likewise.
+ * config/s390/s390.md (movmem_long, setmem_long): Likewise.
+ (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
+ (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
+ * config/sh/sh.c (prepare_move_operands): Likewise.
+ (output_stack_adjust, sh_expand_epilogue): Likewise.
+ (sh_set_return_address, sh_expand_t_scc): Likewise.
+ * config/sparc/sparc.c (load_pic_register): Likewise.
+ * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
+ * config/spu/spu.c (spu_expand_epilogue): Likewise.
+ * config/v850/v850.c (expand_epilogue): Likewise.
+
+2008-05-31 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
+ (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
+ (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
+ * config/avr/avr.c (expand_prologue, expand_epilogue): Use
+ movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
+ stack pointer register.
+ (output_movhi): Remove code for interrupt specific writing to the
+ stack pointer register.
+
+2008-05-31 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34244
+ * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
+ (tree_expr_nonzero_warnv_p): Likewise.
+ * tree-vrp.c (vrp_expr_computes_nonnegative): Call
+ ssa_name_nonnegative_p.
+ (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
+ (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
+ not tree_expr_nonzero_warnv_p.
+
+ PR tree-optimization/36262
+ Revert
+ 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/34244
+ * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
+ (record_numbers_of_iterations): New function.
+ (execute_vrp): Cache the numbers of iterations of loops.
+ * tree-scalar-evolution.c (scev_reset_except_niters):
+ New function.
+ (scev_reset): Use scev_reset_except_niters.
+ * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
+
+2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
+ __WORKAROUND_RETS when appropriate.
+
+2008-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
+ *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
+ mode iterator.
+ (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
+ *fop_df_comm_sse insn patterns using MODEF mode iterator.
+ (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
+ *fop_df_comm_i387 insn patterns using MODEF mode iterator.
+ (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
+ *fop_df_1_mixed insn patterns using MODEF mode iterator.
+ (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
+ *fop_df_1_sse insn patterns using MODEF mode iterator.
+ (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
+ *fop_df_1_i387 insn patterns using MODEF mode iterator.
+ (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
+ *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
+ (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
+ *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
+ (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
+ (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
+ (*fop_xf_4_i387): Use <MODE> for mode attribute.
+ (*fop_xf_5_i387): Ditto.
+ (*fop_xf_6_i387): Ditto.
+
+2008-05-30 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (build_string_literal): Avoid generating
+ a non-gimple_val result.
+
+2008-05-30 DJ Delorie <dj@redhat.com>
+
+ * exec-tool.in: Use an environment variable (private) instead of a
+ file (shared) as a semaphore, so as to not break parallel builds.
+
+2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * optabs.c (maybe_encapsulate_block): Remove.
+ (emit_libcall_block): Adjust accordingly.
+ * optabs.h (maybe_encapsulate_block): Remove prototype.
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
+ Don't use maybe_encapsulate_block.
+
+2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_address,
+ rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
+ rtx is a SYMBOL_REF before calling get_pool_constant.
+
+2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
+
+2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
+ rather than OS names to choose INO_T_EQ definition.
+ (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
+ (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
+
+2008-05-29 Daniel Franke <franke.daniel@gmail.com>
+
+ PR target/36348
+ * config/darwin-f.c: New.
+ * config/t-darwin: Added rule to build darwin-f.o.
+ * config.gcc: Defined new variable, fortran_target_objs.
+ (*-*-darwin*): Set fortran_target_objs.
+ * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
+ * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
+ * configure: Regenerated.
+
+2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35771
+ * config/i386/i386.c (ix86_function_arg_boundary): Convert to
+ canonical type if needed.
+
+2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
+
+2008-05-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36343
+ PR tree-optimization/36346
+ PR tree-optimization/36347
+ * tree-flow.h (clobber_what_p_points_to): Declare.
+ * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
+ pointed-to variable is dereferenced is irrelevant to whether
+ the pointer can access the pointed-to variable.
+ (clobber_what_p_points_to): New function.
+ * tree-ssa-alias.c (set_initial_properties): Use it.
+ * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
+ call clobber check for NMTs.
+
+2008-05-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
+ for printing gcov_type.
+
+2008-05-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * tree-ssa-propagate.c (set_rhs): Preserve the histogram
+ and the eh region information.
+ * value-prof.c (gimple_move_stmt_histograms): New function.
+ * value-prof.h (gimple_move_stmt_histograms): New function declaration.
+
+2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
+
+2008-05-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * value-prof.c (tree_ic_transform): Print counts.
+ * tree-profile.c (tree_gen_ic_func_profiler):
+ Clear __gcov_indreict_call_callee variable to avoid misattribution
+ of the profile.
+
+2008-05-28 Rafael Espíndola <espindola@google.com>
+
+ * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
+ invalid sharing.
+
+2008-05-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36339
+ * tree-ssa-alias.c (set_initial_properties): Move pt_anything
+ and clobbering code out of the loop.
+
+2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
+ letters defined.
+
+ * config/s390/s390.c (s390_compare_and_branch_condition_mask,
+ s390_contiguous_bitmask_p, s390_symref_operand_p,
+ s390_check_symref_alignment, s390_reload_larl_operand,
+ s390_reload_symref_address): New functions.
+ (s390_branch_condition_mnemonic): Support compare and branch
+ instructions.
+ (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
+ and 'W' constraints.
+ (s390_secondary_reload): Add secondary reloads for unaligned
+ symbol refs or symbol refs to floating point or QI/TI mode
+ integer values.
+ (legitimate_address_p): Accept symbol references as addresses.
+ (s390_expand_insv): Use rotate and insert selected bits
+ instruction for insv when building for z10.
+ (print_operand_address): Handle symbol ref addresses.
+ (print_operand): Output modifier 'c' added for signed byte values.
+ (s390_encode_section_info): Mark symbol refs with
+ SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
+
+ * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
+ (length attribute): RRF, RRR have 4 byte length.
+ (FPALL, INTALL): New mode iterators added.
+ (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
+ *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
+ *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
+ *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
+ *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
+ *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
+ *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
+ *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
+ instructions.
+ (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
+ *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
+ *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
+ reload<INTALL:mode><P:mode>_toreg_z10,
+ reload<FPALL:mode><P:mode>_tomem_z10,
+ reload<FPALL:mode><P:mode>_toreg_z10,
+ reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
+ *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
+ *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
+ *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
+ definition.
+ (movmem, clrmem, cmpmem): New splitters added.
+
+ * config/s390/predicates.md (larl_operand): Use
+ SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
+ SYMBOL_REF_ALIGN1_P.
+ (s390_signed_integer_comparison,
+ s390_unsigned_integer_comparison): New predicates.
+
+ * config/s390/s390-protos.h (s390_check_symref_alignment,
+ s390_contiguous_bitmask_p, s390_reload_larl_operand,
+ s390_reload_symref_address,
+ s390_compare_and_branch_condition_mask): Prototypes added.
+
+ * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
+ SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
+ SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
+
+2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (z10_cost): New cost function for z10.
+ (s390_handle_arch_option, override_options): Support -march=z10 switch.
+ (s390_issue_rate): Adjust issue rate for z10.
+ * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
+ (processor_flags): Add PF_Z10.
+ (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
+ * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
+ * gcc/config.gcc: Add z10.
+
+2008-05-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36291
+ * tree-flow. h (struct gimple_df): Remove var_anns member.
+ * tree-flow-inline.h (gimple_var_anns): Remove.
+ (var_ann): Simplify.
+ * tree-dfa.c (create_var_ann): Simplify.
+ (remove_referenced_var): Clear alias info from var_anns of globals.
+ * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
+ (delete_tree_ssa): Clear alias info from var_anns of globals.
+ Do not free var_anns.
+ (var_ann_eq): Remove.
+ (var_ann_hash): Likewise.
+
+2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
+
+ * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
+ and loongson2f entries.
+ (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
+ * config/mips/mips.h (processor_type): Add Loongson-2E
+ and Loongson-2F entries.
+ (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
+ (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
+ * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
+ * doc/invoke.texi (MIPS Options): Document loongson2e
+ and loongson2f processor names.
+
+2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35767
+ PR target/35771
+ * config/i386/i386.c (ix86_function_arg_boundary): Use
+ alignment of canonical type.
+ (ix86_expand_vector_move): Check unaligned memory access for
+ all SSE modes.
+
+2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
+ Moved to the front of file.
+
+2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2out.c (current_fde): New.
+ (add_cfi): Use it.
+ (lookup_cfa:): Likewise.
+ (dwarf2out_end_epilogue): Likewise.
+ (dwarf2out_note_section_used): Likewise.
+
+2008-05-27 Michael Matz <matz@suse.de>
+
+ PR c++/27975
+ * c.opt (Wenum-compare): New warning option.
+ * doc/invoke.texi (Warning Options): Document -Wenum-compare.
+
+2008-05-27 Michael Matz <matz@suse.de>
+
+ PR middle-end/36326
+ * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
+ non-BLKmode types.
+ * tree-tailcall.c (find_tail_calls): Don't mark calls storing
+ into memory as tail calls.
+
+2008-05-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36339
+ * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
+ pointers cause all addressable variables to be call clobbered.
+
+2008-05-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36245
+ * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
+
+2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md: Replace all occurences of the 'm'
+ constraint with 'RT'.
+
+2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
+ definitions added.
+ ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
+ "*movdi_64".
+ ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
+ ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
+ ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
+
+2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * reload.c (find_reloads): Skip alternatives according to the
+ "enabled" attribute. Constify the constraint variable.
+ * recog.c (get_attr_enabled): Add default implementation.
+ (extract_insn): Set the alternative_enabled_p array
+ in the recog_data struct.
+ (preprocess_constraints, constrain_operands): Skip
+ alternatives according to the "enabled" attribute
+ * recog.h (struct recog_data): New field alternative_enabled_p.
+ (skip_alternative): New inline function.
+ * regclass.c (record_operand_costs): Check the "enabled" attribute.
+ (record_reg_classes): Skip alternative according to the
+ "enabled" attribute.
+
+ * doc/md.texi: Add documention for the "enabled" attribute.
+
+2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
+ * postreload.c (reload_cse_simplify_operands): Replace 'm'
+ constraint with TARGET_MEM_CONSTRAINT.
+ * recog.c (asm_operand_ok, preprocess_constraints,
+ constrain_operands): Likewise.
+ * regclass.c (record_reg_classes): Likewise.
+ * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
+ * reload1.c (maybe_fix_stack_asms): Likewise.
+ * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
+ * recog.h: Adjust comment.
+ * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
+ * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
+ * doc/md.texi: Add a note to description of 'm' constraint.
+ * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
+
+2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
+ that the bitfield is of integral type before testing its precision.
+
+2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+ Sa Liu <saliu@de.ibm.com>
+
+ * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
+ __modti3, __udivti3, __umodti3 and __udivmodti4.
+ * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
+ that implement TImode mul and div functions.
+ * config/spu/multi3.c: New. Implement __multi3.
+ * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
+ * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
+ functions on SPU.
+
+2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
+ new tls_gd_* and tls_ld_* insns instead of an insn sequence.
+ * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
+ tls_sysv_suffix): New mode and mode attribute iterators.
+ (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
+ (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
+ (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
+ tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
+ tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
+ iterators.
+
+2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/36329
+ * tree.h (CALL_CANNOT_INLINE_P): Add access check.
+ * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
+ * cgraphbuild.c (initialize_inline_failed): Use the latter
+ macro in lieu of the former.
+ * ipa-inline.c (cgraph_mark_inline): Likewise.
+ (cgraph_decide_inlining_of_small_function): Likewise.
+ (cgraph_decide_inlining): Likewise.
+ (cgraph_decide_inlining_incrementally): Likewise.
+
+2008-05-26 Tristan Gingold <gingold@adacore.com>
+ Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
+ instead of pm_lo8/pm_hi8 to makes this call working on avr6.
+ * config/avr/avr.c (expand_prologue): Tune "call_prologue"
+ optimization for 'avr6' architecture.
+
+2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/34932
+ * config/avr/avr.md (*addhi3_zero_extend2): Remove.
+
+2008-05-26 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (expr_has_constants): Declare.
+ (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
+
+2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36253
+ * caller-save.c (insert_restore): Verify alignment of spill space.
+ (insert_save): Likewise.
+ * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
+ * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
+ (STACK_SLOT_ALIGNMENT): Likewise.
+ * function.c (LOCAL_ALIGNMENT): Removed.
+ (get_stack_local_alignment): New.
+ (assign_stack_local): Use it. Set alignment on stack slot.
+ (assign_stack_temp_for_type): Use get_stack_local_alignment.
+ * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
+ (STACK_SLOT_ALIGNMENT): New.
+ * config/i386/i386.c (ix86_local_alignment): Handle caller-save
+ stack slot in XFmode.
+
+ * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
+
+2008-05-26 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/36321
+ * config/i386/i386.md (allocate_stack_worker_64): Make sure
+ argument operand in rax isn't removed.
+
+2008-05-26 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36300
+ * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
+ not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
+
+2008-05-26 Daniel Franke <franke.daniel@gmail.com>
+
+ PR bootstrap/36331
+ * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
+
+2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
+
+ * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
+ * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
+
+2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
+ build a trampoline if we don't want one.
+ * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
+ return zero for nested functions if we don't want a trampoline.
+
+2008-05-26 Daniel Franke <franke.daniel@gmail.com>
+
+ * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
+
+2008-05-26 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/18428
+ * c.opt: Removed undocumented option '-lang-fortran'.
+ * c-common.h: Removed global variable 'lang_fortran'.
+ * c-opts.c (c_common_handle_option): Removed code to handle
+ option '-lang-fortran'. Updated includes.
+ * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
+ definition of '__GFORTRAN__'.
+ (define__GNUC__): Reimplemented to use BASEVER and
+ cpp_define_formatted.
+ (builtin_define_with_value_n): Removed.
+ * c-incpath.h: Renamed to ...
+ * incpath.h: ... this.
+ * c-incpath.c: Renamed to ...
+ * incpath.c: ... this. Updated includes.
+ * fix-header.c: Updated includes.
+ * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
+ (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
+ (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
+
+2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h: Update the table of flags used on tree nodes.
+ (TREE_NO_TRAMPOLINE): New accessor for static_flag.
+ (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
+ (FORCED_LABEL): Add access check.
+ (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
+ (ASM_INPUT_P): Likewise.
+ (ASM_VOLATILE_P): Likewise.
+ (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
+ (OMP_SECTION_LAST): Access private_flag directly.
+ (OMP_RETURN_NOWAIT): Likewise.
+ (OMP_PARALLEL_COMBINED): Likewise.
+ (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
+ (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
+ * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
+ deprecated_flag directly.
+
+2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * final.c (frame_pointer_needed): Removed.
+ * flags.h (frame_pointer_needed): Likewise.
+
+ * function.h (rtl_data): Add frame_pointer_needed.
+ (frame_pointer_needed): New.
+
+2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
+
+ * config.gcc (sh2[lbe]*-*-linux*): Allow target.
+
+2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
+ SRC is a REG.
+
+2008-05-25 Alan Modra <amodra@bigpond.net.au>
+
+ * c-common.c (strip_array_types): Move function to..
+ * tree.c: ..here.
+ (get_inner_array_type): Delete.
+ * c-common.h (strip_array_types): Move declaration to..
+ * tree.h: ..here.
+ (get_inner_array_type): Delete.
+ * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
+ * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
+ * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
+ * config/pa/pa.c (emit_move_sequence): Likewise.
+
+2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (*sse_prologue_save_insn): Set length
+ attribute to 34.
+
+2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * function.c: Include target hook for nonlocal_goto frame value.
+
+2008-05-24 Richard Guenther <rguenther@suse.de>
+
+ * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
+ variable can be only accessed through a pointer or a union.
+
+2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
+ * doc/extend.texi: Likewise.
+
+2008-05-23 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/jump.md (untyped_call): Add.
+
+ * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
+ for A24 to PSImode.
+ (m32c_address_cost): Detail costs for indirect offsets.
+
+2008-05-23 Rafael Espíndola <espindola@google.com>
+
+ * see.c (see_get_extension_data): Don't use SUBREG_REG to test
+ if a node is a SUBREG.
+ (see_analyze_one_def): Don't use SUBREG_REG to test if a node
+ is a SUBREG.
+
+2008-05-23 Paul Brook <paul@codesourcery.com>
+ Carlos O'Donell <carlos@codesourcery.com>
+
+ * doc/extend.texi: Clarify use of __attribute__((naked)).
+ * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
+ * target.h (gcc_target): Add allocate_stack_slots_for_args.
+ * function.c (use_register_for_decl): Use
+ targetm.calls.allocate_stack_slots_for_args.
+ * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
+ * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
+ (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
+
+2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
+
+2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
+
+ * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
+ PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
+ is only rounded once.
+
+2008-05-23 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
+
+2008-05-23 Uros Bizjak <ubizjak@gmail.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36079
+ * configure.ac: Handle --enable-cld.
+ * configure: Regenerated.
+ * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
+ * config/i386/i386.h (struct machine_function): Add needs_cld field.
+ (ix86_current_function_needs_cld): New define.
+ * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
+ (cld): New isns pattern.
+ (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
+ cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
+ * config/i386/i386.opt (mcld): New option.
+ * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
+ TARGET_CLD and ix86_current_function_needs_cld.
+ (override_options): Use -mcld by default for 32-bit code if
+ USE_IX86_CLD.
+
+ * doc/install.texi (Options specification): Document --enable-cld.
+ * doc/invoke.texi (Machine Dependent Options)
+ [i386 and x86-64 Options]: Add -mcld option.
+ (Intel 386 and AMD x86-64 Options): Document -mcld option.
+
+2008-05-23 Kai Tietz <kai.tietz@onevison.com>
+ * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
+ (return_in_memory_64): Likewise.
+ (return_in_memory_ms_64): Likewise.
+
+2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
+ * builtins.c (fold_builtin_fpclassify): New.
+ (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
+ * builtins.def (BUILT_IN_FPCLASSIFY): New.
+ * c-common.c (handle_type_generic_attribute): Adjust to accept
+ fixed arguments before an elipsis.
+ (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
+ * doc/extend.texi: Document __builtin_fpclassify.
+
+2008-05-22 Aldy Hernandez <aldyh@redhat.com>
+
+ * omp-low.c (gate_expand_omp_ssa): Remove.
+ (pass_expand_omp_ssa): Remove.
+ (gate_expand_omp): Do not check for flag_openmp_ssa.
+ * common.opt (-fopenmp-ssa): Remove.
+ * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
+
+2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.opt (mfixed-range): New option.
+ * config/sh/sh-protos.h (sh_fix_range): Declare.
+ * config/sh/sh.c (sh_fix_range): New function.
+ * config/sh/sh.h (sh_fixed_range_str): Declare.
+ (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
+ is not empty.
+ * doc/invoke.texi (SH Options): Document -mfixed-range.
+
+2008-05-22 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
+ it before the redeclaration.
+
+2008-05-22 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (get_sequence_length): Add new function.
+ (expand_prologue, expand_epilogue): Remove duplicate code.
+
+2008-05-22 Rafael Espíndola <espindola@google.com>
+
+ * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
+ sharing.
+
+2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
+ * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
+
+ * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
+ UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
+ (vect_update_misalignment_for_peel): Likewise.
+ (vector_alignment_reachable_p): Likewise.
+ * tree-vect-transform.c (vectorizable_load): Likewise.
+ * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
+ (get_vectype_for_scalar_type): Pass mode of scalar_type
+ to UNITS_PER_SIMD_WORD.
+
+ * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
+ * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
+ * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
+ * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
+ * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
+
+2008-05-22 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36293
+ * tree-vect-transform.c (vect_transform_strided_load): Don't check
+ if the first load must be skipped because of a gap.
+
+2008-05-22 Richard Guenther <rguenther@suse.de>
+
+ * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
+ more cases of offset disambiguation that is possible if
+ strict-aliasing rules apply.
+ * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
+ for basic offset and type-based disambiguation.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
+ ix86_expand_vector_set on V16QImode for SSE4.1.
+
+2008-05-21 Tom Tromey <tromey@redhat.com>
+
+ * c.opt (Wimport): Mark as undocumented.
+ * doc/invoke.texi (Option Summary): Don't mention -Wimport or
+ -Wno-import.
+ (Warning Options): Likewise.
+ * doc/cppopts.texi: Don't mention -Wimport.
+
+2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36287
+ PR tree-optimization/36286
+ * lambda-code.c (build_access_matrix): Do not use the loop->num
+ for computing the number of induction variables: use the loop depth
+ instead.
+
+2008-05-21 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/36280
+ * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
+ option -f(no-)leading-underscore.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_general): Use
+ GET_MODE_NUNITS (mode).
+
+2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
+
+ * doc/invoke.texi: Add cpu_type's 464 and 464fp.
+ (-mmulhw): Add 464 to description.
+ (-mdlmzb): Likewise.
+ * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
+ * config/rs6000/rs6000.c (processor_target_table): Add 464 and
+ 464fp entries.
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
+ * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
+ * config/rs6000/rs6000.md: Update comments for 464.
+
+2008-05-21 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (vec_extractv4sf): Removed.
+ (vec_extractv2df): Likewise.
+ (vec_extractv2di): Likewise.
+ (vec_extractv4si): Likewise.
+ (vec_extractv8hi): Likewise.
+ (vec_extractv16qi): Likewise.
+ (vec_extract<mode>): New.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (vec_setv4sf): Removed.
+ (vec_setv2df): Likewise.
+ (vec_setv2di): Likewise.
+ (vec_setv4si): Likewise.
+ (vec_setv8hi): Likewise.
+ (vec_setv16qi): Likewise.
+ (vec_set<mode>): New.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_general): Remove
+ goto for vec_concat and vec_interleave.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (vec_initv4sf): Removed.
+ (vec_initv2df): Likewise.
+ (vec_initv2di): Likewise.
+ (vec_initv4si): Likewise.
+ (vec_initv8hi): Likewise.
+ (vec_initv16qi): Likewise.
+ (vec_init<mode>): New.
+
+2008-05-21 Joseph Myers <joseph@codesourcery.com>
+
+ * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
+
+2008-05-21 Tom Tromey <tromey@redhat.com>
+
+ * ggc-zone.c (lookup_page_table_if_allocated): New function.
+ (zone_find_object_offset): Likewise.
+ (gt_ggc_m_S): Likewise.
+ (highest_bit): Likewise.
+ * ggc-page.c (gt_ggc_m_S): New function.
+ * stringpool.c (string_stack): Remove.
+ (init_stringpool): Update.
+ (ggc_alloc_string): Use ggc_alloc.
+ (maybe_delete_ident): New function.
+ (ggc_purge_stringpool): Likewise.
+ (gt_ggc_m_S): Remove.
+ * ggc-common.c (ggc_protect_identifiers): New global.
+ (ggc_mark_roots): Call ggc_purge_stringpool. Use
+ ggc_protect_identifiers.
+ * ggc.h (ggc_protect_identifiers): Declare.
+ (gt_ggc_m_S): Update.
+ (ggc_purge_stringpool): Declare.
+ * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
+ * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
+ special case.
+ (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
+
+2008-05-21 David S. Miller <davem@davemloft.net>
+
+ * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
+ tmake_file.
+
+2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
+ once finished.
+
+2008-05-20 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
+ UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
+ (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
+ UNSPEC_UPDATE_GOT_VERSION): Renumber.
+ (optab, insn): Add 'plus' and 'minus' to define_code_attr.
+ (atomic_hiqi_op): New define_code_iterator.
+ (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
+ mips_expand_compare_and_swap_12.
+ (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
+ MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
+ (sync_<optab><mode>, sync_old_<optab><mode>,
+ sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
+ sync_new_nand<mode>): New define_expands for HI and QI mode operands.
+ (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
+ sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
+ (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
+ (test_and_set_12): New insn.
+ (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
+ sync_new_<optab><mode>, sync_old_nand<mode>,
+ sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
+ clobber to operand 0 for SI and DI mode insns.
+ * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
+ mips_gen_fn_4): New typedefs.
+ (mips_gen_fn_ptrs): Define new union type.
+ (mips_expand_compare_and_swap_12): Remove declaration.
+ (mips_expand_atomic_qihi): Declare function.
+ * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
+ (mips_expand_atomic_qihi): ... this. Use new generator function
+ parameter.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
+ (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
+ (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
+ MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
+ MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
+ MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
+ MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
+ MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
+ MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
+ MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
+ New macros.
+
+2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
+ the missing break.
+
+2008-05-20 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
+ * config/avr/avr.c (avr_OS_main_function_p): Add new function.
+ (avr_attribute_table): Add 'OS_main' function attribute.
+ (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
+ functions with 'OS_main' attribute.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35204
+ * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
+ helper, split out from ...
+ (DFS): ... here. Make the DFS walk non-recursive.
+
+2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/36181
+ * tree-parloops.c (loop_has_vector_phi_nodes): New.
+ (parallelize_loops): Don't parallelize when the loop has vector
+ phi nodes.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-loop-linear.c (gather_interchange_stats): Look in the access
+ matrix, and never look at the tree representation of the memory
+ accesses.
+ (linear_transform_loops): Computes parameters and access matrices.
+ * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
+ when fails.
+ (access_matrix_get_index_for_parameter): New.
+ * tree-data-ref.h (struct access_matrix): New.
+ (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
+ AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
+ AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
+ am_vector_index_for_loop): New.
+ (struct data_reference): Add field access_matrix.
+ (DR_ACCESS_MATRIX): New.
+ (compute_data_dependences_for_loop): Update declaration.
+ (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
+ * lambda.h (lambda_vector_vec_p): Declared.
+ * lambda-code.c: Depend on pointer-set.h.
+ (lambda_collect_parameters_from_af, lambda_collect_parameters,
+ av_for_af_base, av_for_af, build_access_matrix,
+ lambda_compute_access_matrices): New.
+ * Makefile.in (lambda-code.o): Depend on pointer-set.h.
+
+2008-05-20 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
+ $SOURCEDIR/include.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36206
+ * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
+ FOLD_CONVERSIONS.
+ (instantiate_scev_1): Rename flags to fold_conversions.
+ Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
+ outeside instantiation_loop.
+ * tree-chrec.h (evolution_function_is_affine_in_loop): New.
+ (evolution_function_is_affine_or_constant_p): Removed.
+ * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
+ instantiate_scev.
+ (analyze_siv_subscript): Pass in the loop nest number.
+ Call evolution_function_is_affine_in_loop instead of
+ evolution_function_is_affine_p.
+ (analyze_overlapping_iterations): Pass in the loop nest number.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36206
+ * tree-chrec.h (chrec_fold_op): New.
+ * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
+ and other trees.
+
+2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
+ (DIRS_EQ): New.
+ (remove_duplicates): Do not set inode on non-inode systems.
+ Use DIRS_EQ.
+
+2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config.gcc (tm_file): Update comments about relative pathnames.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
+ * tree-ssa-sccvn.c (process_scc): Likewise.
+ * tree-ssa-sink.c (execute_sink_code): Likewise.
+ * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
+ * tree-vrp.c (process_assert_insertions): Likewise.
+ * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
+ (perform_tree_ssa_dce): Likewise.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
+ (dump_dominator_optimization_stats): Likewise.
+ * tree-vectorizer.c (vectorize_loops): Likewise.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
+
+2008-05-20 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+ * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
+ (SUBTARGET_RETURN_IN_MEMORY): New.
+ * config/i386/i386elf.h: Likewise.
+ * config/i386/ptx4-i.h: Likewise.
+ * config/i386/sol2-10.h: Likewise.
+ * config/i386/sysv4.h: Likewise.
+ * config/i386/vx-common.h: Likewise.
+ * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
+ * config/i386/i386.c (ix86_return_in_memory): Made static and
+ make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
+ (ix86_i386elf_return_in_memory): Removed.
+ (ix86_i386interix_return_in_memory): Removed.
+ (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
+ * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
+
+2008-05-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
+
+2008-05-19 Xinliang David Li <davidxl@google.com>
+
+ * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
+ * opts.c: Ditto.
+ * common.opt: Ditto.
+ * doc/invoke.texi: Ditto.
+
+2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
+ (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
+
+2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_concat): Change
+ sizes of operand array from 8/4 to 4/2.
+ (ix86_expand_vector_init_general): Change size of operand array
+ from 32 to 16. Remove op0, op1 and half_mode.
+
+2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_concat): New.
+ (ix86_expand_vector_init_interleave): Likewise.
+ (ix86_expand_vector_init_general): Use them. Assert
+ word_mode == SImode when n_words == 4.
+
+2008-05-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_secondary_reload): New static function.
+ (TARGET_SECONDARY_RELOAD): New define.
+ * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
+ * config/i386/i386.md (reload_outqi): Remove.
+
+2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/35509
+ * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
+ Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
+ (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
+ (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
+ (fold_builtin_1): Likewise.
+ * builtins.def (BUILT_IN_ISINF_SIGN): New.
+ c-common.c (check_builtin_function_arguments): Handle
+ BUILT_IN_ISINF_SIGN.
+ * doc/extend.texi: Document __builtin_isinf_sign.
+ * fold-const.c (operand_equal_p): Handle COND_EXPR.
+
+2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
+ EH cleanup at the end of the pass, search for those that have been
+ turned into forwarder blocks and do the cleanup on their successor.
+
+2008-05-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_expr): Allow conversions from
+ pointers to sizetype and vice versa.
+
+2008-05-18 Xinliang David Li <davidxl@google.com>
+
+ * gcc/tree-ssa-dce.c: Coding style fix.
+ (check_pow): Documentation comment.
+ (check_log): Documenation comment. Coding style fix.
+ (is_unnecessary_except_errno_call): Ditto.
+ (gen_conditions_for_pow): Ditto.
+ (gen_conditions_for_log): Ditto.
+ (gen_shrink_wrap_conditions): Ditto.
+ (shrink_wrap_one_built_in_calls): Ditto.
+ * gcc/doc/invoke.texi: Better documentation string.
+ * ChangeLog: Fix wrong change log entries from
+ May 17 checkin on function call DCE.
+
+2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
+
+2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
+ * df-problems.c (simulation routines): Fixed block comment to
+ properly say how to add forwards scanning functions.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-inline.c (setup_one_parameter): Remove dead code.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
+ a BIT_AND_EXPR only for an INTEGER_TYPE.
+
+2008-05-17 Xinliang David Li <davidxl@google.com>
+
+ * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
+ (check_pow, check_log, is_unnecessary_except_errno_call): New
+ functions to check for eliminating math functions that are pure
+ except for setting errno.
+ (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
+ general condition expressions for shrink-wrapping pow/log calls.
+ (gen_shrink_wrap_conditions): Ditto.
+ (shrink_wrap_one_built_in_call): Ditto.
+ (shrink_wrap_conditional_dead_built_in_calls): Ditto.
+ (mark_operand_necessary): If debugging, output if OP is necessary.
+ (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
+ unnecessary.
+ * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
+ opt level >= 2.
+ * gcc/common.opt: New user flag -ftree-builtin-dce.
+ * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
+
+2008-05-16 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
+ * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
+
+2008-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36246
+ * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * ifcvt.c (dead_or_predicable): Rename
+ df_simulate_one_insn_backwards to df_simulate_one_insn.
+ * recog.c (peephole2_optimize): Ditto.
+ * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
+ Ditto.
+ * df.h: Rename df_simulate_one_insn_backwards to
+ df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
+ * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
+ scanning of defs and uses.
+ (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
+ (df_simulate_one_insn_forwards): Removed.
+
+2008-05-16 Doug Kwan <dougkwan@google.com>
+
+ * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
+ QNaN & SNaN.
+ (real_from_string): Handle NaNs and Inf as approriate.
+
+2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * doc/gty.texi (Source Files Containing Type Information): Note
+ that headers should appear first in the gtfiles list.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree.def (COND_EXEC): Properly documented this code.
+
+2008-05-16 Diego Novillo <dnovillo@google.com>
+
+ * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
+ * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
+ the new field.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree-ssa-dse (max_stmt_uid): Removed.
+ (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
+ tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
+ * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
+ * function.h (cfun.last_stmt_uid): New field.
+ * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
+ gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
+ New functions.
+ * tree-dfa.c (renumber_gimple_stmt_uids): New function.
+ (create_stmt_ann): Initialize the ann->uid field.
+ * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
+ with new calls.
+ * tree-flow.h (renumber_gimple_stmt_uids): New function.
+
+2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
+ * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
+ (init_empty_tree_cfg): Call it.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
+ Update all users.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/invoke.text (-fdump-tree-*-verbose): New option.
+ * tree-dump.c (dump_options): New verbose option.
+ * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
+ Add verbose dump.
+ * tree-pass.h (TDF_VERBOSE): New dump flag.
+ * print-tree.c (print_node): Added code to be able to print PHI_NODES.
+ (tree-flow.h): Added include.
+ * Makefile.in (print-tree.o): Added TREE_FLOW_H.
+
+2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
+
+ From Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
+ mcpu=bf561-none and mcpu=bf561-0.2.
+ * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+ * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+ * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
+ * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
+ (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
+ option.
+ * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
+ (cputype_selected): Remove.
+ (bfin_handle_option): Don't use cputype_selected.
+ (override_options): When no mcpu option, enable all workarounds.
+ Don't use bfin_workarounds.
+ * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
+ processor type.
+ (DEFAULT_CPU_TYPE): Don't define.
+
+2008-05-16 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
+ on deletion of the last stmt.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
+ V8HImode for SSE2 and V16QImode for SSE4.1.
+
+2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * cgraph.h (compute_inline_parameters): Made public.
+ * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
+ variable_generate_summary, function_write_summary,
+ variable_write_summary, variable_read_summary. Added generate_summary,
+ write_summary, read_summary.
+ * cgraphunit.c (cgraph_process_new_functions): Changed call from
+ pass_ipa_inline.function_generate_summary, to
+ compute_inline_parameters.
+ * ipa-inline.c (compute_inline_parameters): Made public and added
+ node parameter.
+ (compute_inline_parameters_for_current): New function.
+ (pass_inline_param): Now calls compute_inline_parameters_for_current.
+ (inline_generate_summary): Removed parameter and made to loop over
+ all cgraph nodes.
+ (pass_ipa_inline): Updated for new IPA_PASS structure.
+ * passes.c (execute_ipa_summary_passes): Now is called once per
+ pass rather than once per node*pass.
+
+2008-05-15 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
+ avr_have_mul_p, avr_asm_only_p): Remove variables.
+ (avr_override_options): Remove initialization of removed variables.
+ (avr_file_start): Convert removed variables to fields of
+ 'struct base_arch_s *avr_current_arch'.
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
+ (AVR_HAVE_MUL): (Ditto.).
+ (AVR_HAVE_MOVW): (Ditto.).
+ (AVR_HAVE_LPMX): (Ditto.).
+ (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
+ avr_asm_only_p): Remove declaration.
+
+2008-05-15 Diego Novillo <dnovillo@google.com>
+
+ * config/arm/arm.c (arm_return_in_memory): Fix return type.
+ * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
+
+2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR middle-end/36194
+ * combine.c (check_conversion): Rename back to check_promoted_subreg.
+ Don't call record_truncated_value from here.
+ (record_truncated_value): Turn it into a for_each_rtx callback.
+ (record_truncated_values): New function.
+ (combine_instructions): Call note_uses with record_truncated_values.
+ Change name of check_conversion to check_promoted_subreg.
+
+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi: Document support for torture tests.
+
+2008-05-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
+ to alternative 4 of operand 2.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-pass.h (current_pass): Declare.
+ (get_pass_for_id): Likewise.
+ * passes.c (passes_by_id, passes_by_id_size): New globals.
+ (set_pass_for_id): New function.
+ (get_pass_for_id): Likewise.
+ (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
+ (execute_function_todo): Flush per function statistics.
+ * toplev.c (compile_file): Init statistics.
+ (general_init): Do early statistics initialization.
+ (finalize): Finish statistics.
+ * statistics.h (statistics_early_init): Declare.
+ (statistics_init): Likewise.
+ (statistics_fini): Likewise.
+ (statistics_fini_pass): Likewise.
+ (statistics_counter_event): Likewise.
+ (statistics_histogram_event): Likewise.
+ * statistics.c: New file.
+ * Makefile.in (OBJS-common): Add statistics.o.
+ (statistics.o): Add dependencies.
+ * doc/invoke.texi (-fdump-statistics): Document.
+
+ * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
+ (insert): Likewise.
+ (execute_pre): Use statistics_counter_event.
+ * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
+ (substitute_and_fold): Increment it. Use statistics_counter_event.
+
+2008-05-15 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
+
+ * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
+ * tree-ssa-alias.c (new_type_alias): Remove references to
+ sub-variables from comment.
+ * tree-ssa-operands.c (swap_tree_operands): Likewise.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
+ attribute to 1 only for insertps alternative.
+
+2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (loadbytes): New pattern.
+ * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
+ (bfin_init_builtins): Initialize it.
+ (bdesc_1arg): Add it.
+
+2008-05-15 Sa Liu <saliu@de.ibm.com>
+
+ * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
+ * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
+ * testsuite/lib/target-supports.exp: Add
+ check_effective_target_fortran_integer_16.
+
+2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
+ * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
+ * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
+ (TARGET_RETURN_IN_MEMORY): Define.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36244
+ * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
+ * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
+ represent unmodifiable vars.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-dfa.c (refs_may_alias_p): Allow all kinds of
+ INDIRECT_REF and TARGET_MEM_REF.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
+ TARGET_MEM_REF.
+
+2008-05-15 Uros Bizjak <ubizjak@gmail.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
+ (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
+ for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
+ insn alternatives. Add missing alternatives.
+ (*vec_concatv2di_rex64_sse4_1): Likewise.
+ (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
+ (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
+ Require TARGET_SSE.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36009
+ PR tree-optimization/36204
+ * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
+ (determine_invariantness_stmt): Record the loop a store is
+ always executed in.
+ * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
+ dependency.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34330
+ * tree-ssa-alias.c (get_smt_for): Only assert that accesses
+ through the pointer will alias the SMT.
+
+2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
+
+2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
+ OTI_vrotl, OTI_vrotr to support vector/vector shifts.
+ (vashl_optab): New optab for vector/vector shifts.
+ (vashr_optab): Ditto.
+ (vlshr_optab): Ditto.
+ (vrotl_optab): Ditto.
+ (vrotr_optab): Ditto.
+ (optab_subtype): New enum for optab_for_tree_code call.
+ (optab_for_tree_code): Add enum optab_subtype argument.
+
+ * optabs.c (optab_for_tree_code): Take an additional argument to
+ distinguish between a vector shift by a scalar and vector shift by
+ a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
+ shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
+ vector shift by a vector.
+ (expand_widen_pattern_expr): Pass additional argument to
+ optab_for_tree_code.
+
+ * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
+ vrotl_optab, vrotr_optab.
+
+ * expr.c (expand_expr_real_1): Update calls to
+ optab_for_tree_code to distinguish between vector shifted by a
+ scalar and vector shifted by a vector.
+ * tree-vectorizer.c (supportable_widening_operation): Ditto.
+ (supportable_narrowing_operation): Ditto.
+ * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
+ * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
+ * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
+ (vect_create_epilog_for_reduction): Ditto.
+ (vectorizable_reduction): Ditto.
+ (vectorizable_operation): Ditto.
+ (vect_strided_store_supported): Ditto.
+ (vect_strided_load_supported): Ditto.
+ * tree-vect-generic.c (expand_vector_operations_1): Ditto.
+ * expmed.c (expand_shift): Ditto.
+
+ * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
+ scalar type.
+ (ashr@var{m}3): Ditto.
+ (vashl@var{m}3): Document new vector/vector shift standard name.
+ (vashr@var{m}3): Ditto.
+ (vlshr@var{m}3): Ditto.
+ (vrotl@var{m}3): Ditto.
+ (vrotr@var{m}3): Ditto.
+
+ * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
+ (PPERM_INVERT): Ditto.
+ (PPERM_REVERSE): Ditto.
+ (PPERM_REV_INV): Ditto.
+ (PPERM_ZERO): Ditto.
+ (PPERM_ONES): Ditto.
+ (PPERM_SIGN): Ditto.
+ (PPERM_INV_SIGN): Ditto.
+ (PPERM_SRC1): Ditto.
+ (PPERM_SRC2): Ditto.
+
+ * config/i386/sse.md (mulv2di3): Add SSE5 support.
+ (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
+ allows a memory operand to be the value being added, and split it
+ to improve vectorization.
+ (sse5_pmacsdqh_mem): Ditto.
+ (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
+ (sse5_mulv2div2di3_high): Ditto.
+ (vec_pack_trunc_v8hi): Add SSE5 pperm support.
+ (vec_pack_trunc_v4si): Ditto.
+ (vec_pack_trunc_v2di): Ditto.
+ (sse5_pcmov_<mode>): Remove code that tried to use use
+ andps/andnps instead of pcmov.
+ (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
+ pmacsdqh instructions.
+ (vec_widen_smult_lo_v4si): Ditto.
+
+ * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
+ (PPERM_INVERT): Ditto.
+ (PPERM_REVERSE): Ditto.
+ (PPERM_REV_INV): Ditto.
+ (PPERM_ZERO): Ditto.
+ (PPERM_ONES): Ditto.
+ (PPERM_SIGN): Ditto.
+ (PPERM_INV_SIGN): Ditto.
+ (PPERM_SRC1): Ditto.
+ (PPERM_SRC2): Ditto.
+ (ix86_expand_sse_movcc): Move the SSE5 test after the if
+ true/false tests.
+ (ix86_expand_int_vcond): If SSE5 generate all possible integer
+ comparisons.
+ (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
+ says ignore whether the last reference is a memory operand.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+ Paolo Bonzini <bonzini at gnu dot org>
+
+ * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
+ shift patterns.
+
+ * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
+ (vlshr<mode>3): Rename from vlshr<mode>3.
+ (vashr<mode>3): Rename from vashr<mode>3.
+ (mulv4sf3): Change the names of vector shift patterns.
+ (mulv4si3): Ditto.
+ (negv4sf2): Ditt.
+
+ * config/spu/spu.c (spu_initialize_trampoline): Rename vector
+ shift insns.
+
+ * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
+ (SI_SHLHI): Ditto.
+ (SI_SHL): Ditto.
+ (SI_SHLI): Ditto.
+ (SI_ROTH): Ditto.
+ (SI_ROTHI): Ditto.
+ (SI_ROT): Ditto.
+ (SI_ROTI): Ditto.
+ (SPU_RL_0): Ditto.
+ (SPU_RL_1): Ditto.
+ (SPU_RL_2): Ditto.
+ (SPU_RL_3): Ditto.
+ (SPU_RL_4): Ditto.
+ (SPU_RL_5): Ditto.
+ (SPU_RL_6): Ditto.
+ (SPU_RL_7): Ditto.
+ (SPU_SL_0): Ditto.
+ (SPU_SL_1): Ditto.
+ (SPU_SL_2): Ditto.
+ (SPU_SL_3): Ditto.
+ (SPU_SL_4): Ditto.
+ (SPU_SL_5): Ditto.
+ (SPU_SL_6): Ditto.
+ (SPU_SL_7): Ditto.
+
+ * config/spu/spu.md (v): New iterator macro to add v for vector types.
+ (floatunssidf2_internal): Change vector/vector shift names.
+ (floatunsdidf2_internal): Ditto.
+ (mulv8hi3): Ditto.
+ (ashrdi3): Ditto.
+ (ashrti3): Ditto.
+ (cgt_df): Ditto.
+ (cgt_v2df): Ditto.
+ (dftsv): Ditto.
+ (vashl<mode>3): Rename from ashl<mode>3.
+ (vashr<mode>3): Rename from ashr<mode>3.
+ (vlshr<mode>3): Rename from lshr<mode>3.
+ (vrotl<mode>3): Rename from rotl<mode>3.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+
+ PR target/36224
+ * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
+ multiply gives the wrong value when doing widening multiplies.
+ (vec_widen_smult_lo_v4si): Ditto.
+
+2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
+ LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
+ emit_library_call_value.
+ * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
+ * tree.h (ECF_LIBCALL_BLOCK): Removed.
+ * calls.c (initialize_argument_information, precompute_arguments,
+ expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
+ (precompute_arguments): Removed flags parameter.
+ * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
+
+2008-05-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
+ Make sure to register the store if the use is a PHI_NODE.
+
+2008-05-14 Olivier Hainque <hainque@adacore.com>
+
+ * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
+ memory if the component is to be referenced in BLKmode according
+ to get_inner_reference.
+
+2008-05-14 Adam Nemet <anemet@caviumnetworks.com>
+
+ * calls.c (emit_library_call_value_1): Restore code clearing
+ ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
+
+2008-05-14 Olivier Hainque <hainque@adacore.com>
+ Nicolas Roche <roche@adacore.com>
+
+ * configure.ac: Add support for a "gcc_subdir" variable in
+ config-lang.in, to denote a subdirectory where the language/GCC
+ integration files are to be found.
+ * configure: Regenerate.
+
+2008-05-14 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36098
+ * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
+ value for the first load in the group in case of a gap.
+ (vect_build_slp_tree): Check that there are no gaps in loads.
+
+2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
+ * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
+ expand_copysign_bit): Change call to emit_no_conflict_block to
+ emit_insn and remove unneeded code to construct extra args.
+ (emit_no_conflict_block): Removed.
+ * optabls.h (emit_no_conflict_block): Removed.
+ * cse.c (cse_extended_basic_block): Remove search for
+ REG_NO_CONFLICT note.
+ * global.c: Removed incorrect comment added in revision 117.
+ * expr.c (convert_move): Change call to emit_no_conflict_block to
+ emit_insn.
+ * recog.c: Change comments so that they do not mention
+ REG_NO_CONFLICT.
+ * local_alloc.c (combine_regs): Removed last parameter.
+ (no_conflict_p): Removed.
+ (block_alloc): Removed note, no_conflict_combined_regno and set
+ local vars. Removed all code to process REG_NO_CONFLICT blocks.
+ (combine_regs): Removed already_dead and code to look for
+ REG_NO_CONFLICT notes.
+ * lower_subreg (remove_retval_note): Removed code to look for
+ REG_NO_CONFLICT block.
+ (resolve_reg_notes): Removed REG_NO_CONFLICT case.
+ (resolve_clobber): Remove code to process libcalls that have
+ REG_NO_CONFLICT notes.
+ * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
+ case.
+ * combine.c (can_combine_p, distribute_notes): Removed
+ REG_NO_CONFLICT case.
+ * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
+ to emit_insns.
+ * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
+ * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
+ Ditto.
+ * reg-notes.def (NO_CONFLICT): Removed.
+
+2008-05-14 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/sparc.c (sparc_profile_hook): If
+ NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
+ * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
+ * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
+
+2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
+
+2008-05-13 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36222
+ * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
+ and op1 expansion before vector concat to have less live pseudos.
+
+2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
+ ix86_expand_vector_set if supported.
+
+2008-05-13 Diego Novillo <dnovillo@google.com>
+ Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
+
+ * tree.h (init_phinodes, fini_phinodes, release_phi_node,
+ phinodes_print_statistics, init_ssanames, fini_ssanames,
+ make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
+ release_ssa_name, release_defs, replace_ssa_name_symbol,
+ ssanames_print_statistics): Move ...
+ * tree-flow.h: ... here.
+ * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
+ Use FN instead of cfun.
+ (make_ssa_name_fn): Rename from make_ssa_name.
+ (pass_release_ssa_names): Add TODO_dump_func to finish flags.
+ * tree-flow-inline.h (make_ssa_name): Move from
+ tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
+ * omp-low.c (expand_omp_parallel):
+ * tree-flow-inline.h (redirect_edge_var_map_result):
+ * tree-ssa.c (init_tree_ssa): Add argument FN.
+ Use it instead of cfun. Update all users.
+
+2008-05-13 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22168:
+ * doc/cpp.texi (Top): Update menu.
+ (Alternatives to Wrapper #ifndef): New node.
+ (Other Directives): Document deprecation.
+ (Obsolete Features): Remove menu.
+ (Assertions): Merge node into Obsolete Features.
+ (Obsolete once-only headers): Move earlier; rename to Alternatives
+ to Wrapper #ifndef.
+ * doc/cppopts.texi: Update.
+ * c.opt (Wdeprecated): Enable for C and ObjC.
+ * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
+ (C++ Dialect Options): Move -Wno-deprecated from here to...
+ (Warning Options): ... here.
+
+2008-05-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36227
+ * fold-const.c (fold_sign_changed_comparison): Do not allow
+ changes in pointer-ness.
+
+2008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/24713
+ * config/sh/sh.c (sh_expand_prologue): Don't clear
+ RTX_FRAME_RELATED_P for push insns.
+
+2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
+
+2008-05-12 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (machine_function): Add 'is_leaf' field.
+ * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
+ Use 'machine->is_leaf' instead of 'leaf_func_p'.
+
+2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
+ (*vec_concatv4sf_sse): This.
+ (*sse2_concatv2si): Renamed to ...
+ (*vec_concatv2si_sse2): This.
+ (*sse1_concatv2si): Renamed to ...
+ (*vec_concatv2si_sse): This.
+ (*vec_concatv2di_rex): Renamed to ...
+ (*vec_concatv2di_rex64): This.
+ (*vec_concatv2si_sse4_1): New.
+ (*vec_concatv2di_rex64_sse4_1): Likewise.
+
+2008-05-12 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36111
+ * recog.c (validate_replace_rtx_1): Unshare new RTL expression
+ that was created for swappable operands.
+
+2008-05-12 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/36001
+ * Makefile.in: Substitute GNATMAKE and GNATBIND.
+ * configure.ac: Add call to ACX_PROG_GNAT.
+
+2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * optc-gen.awk: Fix comment typo.
+
+2008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ * pretty-print.c (pp_integer_with_precision): Use
+ HOST_LONG_LONG_FORMAT.
+
+2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
+
+2008-05-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_ptest): Removed.
+ (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
+ (bdesc_args): Add __builtin_ia32_ptestz128,
+ __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
+ (ix86_expand_builtin): Updated.
+
+2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * tree-cfg.c (valid_fixed_convert_types_p): New function.
+ (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
+
+2008-05-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * value-prof.c (interesting_stringop_to_profile): Do not
+ return early for BUILT_IN_MEMPCPY.
+
+2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * calls.c (expand_call): Don't use callgraph to increase
+ preferred_stack_boundary.
+
+ * cgraph.h (cgraph_rtl_info): Use unsigned on
+ preferred_incoming_stack_boundary.
+
+ * final.c (rest_of_clean_state): Use unsigned on
+ preferred_stack_boundary.
+
+2008-05-09 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22231:
+ * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
+ proceeding.
+
+2008-05-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/36129
+ * tree-ssa-ccp.c: Include value-prof.h.
+ (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
+ built-in function was folded to a constant.
+ * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
+
+2008-05-09 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-scalar-evolution.c: Document instantiate_scev.
+ (instantiate_parameters_1): Renamed instantiate_scev_1.
+ Don't use the same loop for instantiation_loop and evolution_loop.
+ (instantiate_scev): New.
+ (instantiate_parameters): Moved...
+ (resolve_mixers): Update call to instantiate_scev_1 to pass the
+ same loop twice. Maintains the semantics for this function.
+ * tree-scalar-evolution.h (instantiate_scev): Declare.
+ (instantiate_parameters): ...here. Now static inline.
+ * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
+ instead of resolve_mixers.
+
+2008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * rtl-factoring.c (collect_pattern_seqs): Fix typo.
+
+2008-05-09 Tomas Bily <tbily@suse.cz>
+
+ * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
+ * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
+ * tree-ssa-structalias.c (get_constraint_for): Likewise.
+ * c-common.c (c_common_truthvalue_conversion): Likewise.
+ * tree-object-size.c (compute_object_offset): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * varasm.c (const_hash_1, compare_constant, copy_constant)
+ (compute_reloc_for_constant, output_addressed_constants)
+ (initializer_constant_valid_p): Likewise.
+ * c-omp.c (check_omp_for_incr_expr): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * c-typeck.c (c_finish_return): Likewise.
+ * tree-vectorizer.c (supportable_widening_operation)
+ (supportable_narrowing_operation): Likewise.
+ * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
+ * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
+ * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
+ (descr_info_loc): Likewise.
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
+ * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
+ (fold_unary): Likewise.
+ * builtins.c (get_pointer_alignment): Likewise.
+ * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
+ (instantiate_parameters_1): Likewise.
+ * tree.c (expr_align, stabilize_reference): Likewise.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
+ * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+ * config/alpha/alpha.c (va_list_skip_additions): Likewise.
+ * c-common.c (c_alignof_expr, check_function_arguments_recurse):
+ Likewise.
+ * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
+ * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
+ * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+ (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
+ (forward_propagate_comparison)
+ (tree_ssa_forward_propagate_single_use_vars): Likewise.
+ * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
+ * emit-rtl.c (component_ref_for_mem_expr)
+ (set_mem_attributes_minus_bitpos): Likewise.
+ * tree-ssa-phiopt.c (conditional_replacement): Likewise.
+ * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
+ Likewise.
+ * c-typeck.c (default_function_array_conversion, build_indirect_ref)
+ (build_function_call, pointer_diff, build_compound_expr)
+ (c_finish_return): Likewise.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
+ * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
+ Likewise.
+ * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
+ * expr.c (is_aligning_offset): Likewise.
+ * tree-ssa-alias.c (is_escape_site): Likewise.
+ * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
+ (check_all_va_list_escapes): Likewise.
+ * tree-ssa-loop-ivopts.c (determine_base_object)
+ (determine_common_wider_type): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
+ * tree-gimple.c (is_gimple_cast): Likewise.
+ * fold-const.c (decode_field_reference)
+ (fold_sign_changed_comparison, fold_unary, fold_comparison)
+ (fold_binary): Likewise.
+ * tree-ssa-alias-warnings.c (find_alias_site_helper)
+ (already_warned_in_frontend_p): Likewise.
+ * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
+ * tree.c (really_constant_p, get_unwidened): Likewise.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+ * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+ * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
+ Likewise.
+ * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
+ CONVERT_EXPR_P.
+ (CONVERT_EXPR_P): Define.
+ (CASE_CONVERT): Define.
+
+2008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/36117
+ * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
+ (delete_unmarked_insns): When deleting a call, call
+ delete_unreachable_blocks.
+ * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+ RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
+ (-ftree-salias): Likewise.
+ (salias-max-implicit-fields): Remove param documentation.
+ (salias-max-array-elements): Likewise.
+ * tree-pass.h (pass_create_structure_vars): Remove.
+ * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+ (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+ * tree-ssa-alias.c (create_structure_vars): Remove.
+ (gate_structure_vars): Likewise.
+ (pass_create_structure_vars): Likewise.
+ (gate_build_alias): Likewise.
+ (pass_build_alias): Adjust to run always and dump the function.
+ * common.opt (ftree-salias): Hide.
+ * passes.c (init_optimization_passes): Remove
+ pass_create_structure_vars, adjust comment.
+ * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+ (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+ * opts.c (decode_options): Do not set flag_tree_salias.
+ (common_handle_option): Add OPT_ftree_salias to the backward
+ compatibility section.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow-inline.h (var_can_have_subvars): Move ...
+ * tree-ssa-structalias.c (var_can_have_subvars): ... here.
+ * tree-flow.h (var_can_have_subvars): Remove.
+ (push_fields_onto_fieldstack): Remove.
+ (sort_fieldstack): Likewise.
+ (struct fieldoff): Move ...
+ * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
+ alias_set and base_for_components fields.
+ (sort_fieldstack): Make static.
+ (push_fields_onto_fieldstack): Likewise. Remove code that
+ handles anything but RECORD_TYPEs. Remove alias_set and
+ base_for_components handling.
+ (create_variable_info_for): Adjust.
+
+2008-05-08 Seongbae Park <seongbae.park@gmail.com>
+
+ * common.opt (Wframe-larger-than=): Shorten the help message
+ to one line.
+ * doc/invoke.texi (Wframe-larger-than=): Add more description.
+
+2008-05-08 Rafael Espíndola <espindola@google.com>
+
+ * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
+ trap.
+ * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
+ trap and that both operands are gimple values.
+ (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
+ * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
+ is a fp operation.
+
+2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * read-rtl.c (join_c_conditions): Return the first string if the
+ two strings are equal.
+
+2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gensupport.h (pred_data): Add a "num_codes" field.
+ (add_predicate_code): Declare.
+ * gensupport.c (add_predicate_code): New function.
+ (std_pred_table): Add an "allows_const_p" field.
+ (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
+ Remove the (incomplete) list of such codes from the codes field.
+ (init_predicate_table): Use add_predicate_code. Add all
+ RTX_CONST_OBJs if allows_const_p is true.
+ * genrecog.c (process_define_predicate): Use add_predicate_code.
+
+2008-05-08 David Daney <ddaney@avtrex.com>
+ Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
+ special case of constant zero operands.
+ * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
+ old and new values. Special case constant zero values.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
+ fails.
+ (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
+ (MIPS_COMPARE_AND_SWAP_12_0): New macro.
+
+2008-05-08 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/36090
+ * simplify-rtx.c (simplify_plus_minus): Create CONST of
+ similar RTX_CONST_OBJ before CONST_INT.
+
+2008-05-08 Steve Ellcey <sje@cup.hp.com>
+
+ * stmt.c (expand_stack_restore): Change sa mode if needed.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
+ return type to bool.
+ (ix86_sol10_return_in_memory): Likewise.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+ * config/i386/i386.c (ix86_return_in_memory): Likewise.
+ (ix86_sol10_return_in_memory): Likewise.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+
+2008-05-08 Kai Tietz <kai.tietz@onevision.com>
+
+ PR bootstrap/36180
+ * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
+ fndecl argument.
+ (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
+ * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
+ declared in front.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
+ * tree-data-ref.h (struct dr_alias): Remove subvars field.
+ (DR_SUBVARS): Remove.
+ * tree-dfa.c (dump_subvars_for): Remove.
+ (debug_subvars_for): Likewise.
+ (dump_variable): Do not dump subvars.
+ (remove_referenced_var): Do not remove subvars.
+ * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
+ (lookup_subvars_for_var): Remove.
+ (get_subvars_for_var): Likewise.
+ (get_subvars_at): Likewise.
+ (get_first_overlapping_subvar): Likewise.
+ (overlap_subvar): Likewise.
+ * tree-flow.h (subvar_t): Remove.
+ (struct var_ann_d): Remove subvars field.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
+ argument. Remove special handling of SFTs.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (compute_call_clobbered): Likewise.
+ (count_mem_refs): Likewise.
+ (compute_memory_partitions): Likewise.
+ (compute_flow_insensitive_aliasing): Likewise.
+ (setup_pointers_and_addressables): Likewise.
+ (new_type_alias): Likewise.
+ (struct used_part): Remove.
+ (used_portions): Likewise.
+ (struct used_part_map): Likewise.
+ (used_part_map_eq): Likewise.
+ (used_part_map_hash): Likewise.
+ (free_used_part_map): Likewise.
+ (up_lookup): Likewise.
+ (up_insert): Likewise.
+ (get_or_create_used_part_for): Likewise.
+ (create_sft): Likewise.
+ (create_overlap_variables_for): Likewise.
+ (find_used_portions): Likewise.
+ (create_structure_vars): Likewise.
+ * tree.def (STRUCT_FIELD_TAG): Remove.
+ * tree.h (MTAG_P): Adjust.
+ (struct tree_memory_tag): Remove base_for_components and
+ unpartitionable flags.
+ (struct tree_struct_field_tag): Remove.
+ (SFT_PARENT_VAR): Likewise.
+ (SFT_OFFSET): Likewise.
+ (SFT_SIZE): Likewise.
+ (SFT_NONADDRESSABLE_P): Likewise.
+ (SFT_ALIAS_SET): Likewise.
+ (SFT_UNPARTITIONABLE_P): Likewise.
+ (SFT_BASE_FOR_COMPONENTS_P): Likewise.
+ (union tree_node): Remove sft field.
+ * alias.c (get_alias_set): Remove special handling of SFTs.
+ * print-tree.c (print_node): Remove handling of SFTs.
+ * tree-dump.c (dequeue_and_dump): Likewise.
+ * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
+ * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
+ * tree-predcom.c (set_alias_info): Do not set subvars.
+ * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
+ * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
+ * tree-ssa-operands.c (access_can_touch_variable): Likewise.
+ (add_vars_for_offset): Remove.
+ (add_virtual_operand): Remove special handling of SFTs.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ (get_modify_stmt_operands): Likewise.
+ (get_expr_operands): Likewise.
+ (add_to_addressable_set): Likewise.
+ * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
+ * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
+ (tree_code_size): Remove STRUCT_FIELD_TAG handling.
+ (tree_node_structure): Likewise.
+ * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
+ handling of SFTs.
+ (find_what_p_points_to): Likewise.
+
+2008-05-08 Sa Liu <saliu@de.ibm.com>
+
+ * config/spu/spu.md: Fixed subti3 pattern.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36154
+ * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
+ sure to create a representative for trailing arrays for PTA.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36172
+ * fold-const.c (operand_equal_p): Two objects which types
+ differ in pointerness are not equal.
+
+2008-05-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * calls.c (compute_argument_block_size): Add argument tree fndecl.
+ (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
+ (emit_library_call_value_1): Add new variable fndecl initialized by
+ NULL_TREE. It should be the decl type of orgfun, but this information
+ seems not to be available here, so it uses the default calling abi.
+ * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
+ * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
+ by TARGET_RETURN_IN_MEMORY.
+ * config/i386/i386-interix.h: Likewise.
+ * config/i386/i386.h: Likewise.
+ * config/i386/i386elf.h: Likewise.
+ * config/i386/ptx4-i.h: Likewise.
+ * config/i386/sol2-10.h: Likewise.
+ * config/i386/sysv4.h: Likewise.
+ * config/i386/vx-common.h: Likewise.
+ * config/cris/cris.h: Removed #if 0 clause.
+ * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
+ * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
+ argument.
+ (ix86_sol10_return_in_memory): Likewise.
+ (ix86_i386elf_return_in_memory): New.
+ (ix86_i386interix_return_in_memory): New.
+ * config/mt/mt-protos.h (mt_return_in_memory): New.
+ * config/mt/mt.c: Likewise.
+ * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
+ (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
+ * config/bfin/bfin.h: Likewise.
+ * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
+ argument.
+ * config/bfin/bfin.c: Likewise.
+ * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
+ * config/alpha/unicosmk.h: Likewise.
+ * config/i386/cygming.h: Likewise.
+ * config/iq2000/iq2000.h: Likewise.
+ * config/mips/mips.h: Likewise.
+ * config/mn10300/mn10300.h: Likewise.
+ * config/rs6000/rs6000.h: Likewise.
+ * config/score/score.h: Likewise.
+ * config/spu/spu.h: Likewise.
+ * config/v850/v850.h: Likewise.
+ * defaults.h: Likewise.
+ * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
+ * expr.c (emit_block_move): Adjust use of
+ OUTGOING_REG_PARM_STACK_SPACE.
+ * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
+ OUTGOING_REG_PARM_STACK_SPACE.
+ * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
+
+2008-05-08 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
+ on OMP_RETURN for OMP_FOR.
+
+ PR debug/35896
+ * dwarf2out.c (dw_expand_expr, common_check): Removed.
+ (fortran_common): New function.
+ (gen_variable_die): Call fortran_common instead of common_check,
+ adjust for it returning tree instead of rtx. Formatting.
+
+2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl/7335
+ PR rtl/33826
+ * see.c (see_copy_insn): Copy new pure const attributes for new call.
+ * c-decl.c (merge_decls): Ditto.
+ * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
+ to RTL_CONST_OR_PURE_CALL_P.
+ * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
+ Initialized DECL_LOOPING_CONST_PURE.
+ (process_call_operands): Set tree_side_effects properly.
+ * tree.h (TREE_READONLY_DECL_P): Removed.
+ (DECL_IS_PURE): Renamed to DECL_PURE_P.
+ (DECL_LOOPING_OR_CONST_P): New macro.
+ (struct tree_function_decl): Added looping_const_or_pure_p.
+ (ECF_*) Renumbered.
+ (ECF_LOOPING_OR_CONST_P): New macro.
+ * rtlanal.c (pure_const_p): Removed.
+ * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
+ * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
+ to RTL_CONST_CALL_P.
+ * ipa-pure-const.c (pure_const_state_e): Added looping field.
+ (check_decl, check_tree, check_call, scan_function): Initialize
+ looping.
+ (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
+ (static_execute): Set looping true for recursive functions.
+ Undo setting state to IPA_NEITHER for recursive functions.
+ * cse.c (cse_insn):
+ * ifcvt.c (noce_can_store_speculate_p): Changed
+ CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
+ RTL_CONST_OR_PURE_CALL_P.
+ * dse.c (scan_insn): Ditto.
+ * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
+ * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
+ pure_call_p to RTL_CONST_CALL_P.
+ * gimplify.c (gimplify_call_expr): Clear side effects for
+ non-looping pure and constant calls.
+ * calls.c (emit_call_1): Set rtl flags from ecf flags.
+ (flags_from_decl_or_type): Set ecf flags from decl flags.
+ (initialize_argument_information): Turn off
+ ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
+ Change const to pure if callee_copies is true rather than just
+ turning off const.
+ (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
+ way of marking pure calls.
+ (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
+ Remove hack that was supposed to fix pr7335 and remove old
+ way of marking pure calls.
+ * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
+ RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
+ * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
+ * loop-invariant.c (find_exits, find_invariant_bb): Changed
+ CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
+ * sched-deps.c (schedule_analyze): Ditto.
+ * rtl.h (struct rtx_def): Use call field, unchanging field, and
+ return_val field of calls to represent pure and const function info.
+ (CONST_OR_PURE_CALL_P): Deleted macro.
+ (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+ RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
+ * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
+ TREE_READONLY.
+ * tree-optimize.c (execute_fixup_cfg): Added test for
+ ECF_LOOPING_CONST_OR_PURE.
+ * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
+ DECL_PURE_P.
+ * tree-cfg.c (update_call_expr_flags): Do not clear tree side
+ effects for looping pure or const calls.
+ (verify_gimple_expr): Added verification code.
+ * config/alpha/alpha.c (alpha_legitimize_address,
+ alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_CALL_P.
+ * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
+ * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
+ * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
+ RTL_CONST_OR_PURE_CALL_P.
+ * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
+ and const calls to be deleted.
+
+2008-05-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35714
+ * config/i386/mmx.md (mmx_subv2sf3): New expander.
+ (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
+ (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
+ (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
+ to handle nonimmediate operands.
+ (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
+ (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
+ to handle nonimmediate operands.
+ (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
+ (mmx_pmulhrwv4hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
+ (sse2_umulv1siv1di3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
+ (mmx_eq<mode>3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
+ (mmx_uavgv8qi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
+ (mmx_uavgv4hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+ * config/i386/sse.md
+ (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (sse2_unpckhpd_exp): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (sse2_unpcklpd_exp): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
+ to handle nonimmediate operands.
+ (*sse2_<plusminus_insn><mode>3): Rename from
+ sse2_<plusminus_insn><mode>3 insn pattern.
+ (sse2_<plusminus_insn><mode>3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
+ (sse2_umulv2siv2di3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
+ (sse4_1_mulv2siv2di3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
+ (sse2_pmaddwd): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
+ (sse2_eq<mode>3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
+ (sse4_1_eqv2di3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
+ (sse2_uavgv16qi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
+ (sse2_uavgv16qi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
+ (sse2_uavgv8hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
+ (ssse3_pmulhrswv8hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
+ (ssse3_pmulhrswv4hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+ (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
+ (<sse>_vmmul<mode>3): Ditto.
+ (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
+ (divv2df3): Ditto.
+ (ssse3_pmaddubsw128): Use register_operand for operand 1.
+ (ssse3_pmaddubsw): Ditto.
+
+ * config/i386/i386.c (struct_builtin_description)
+ [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
+ [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
+ [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
+ [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
+ [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
+ [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
+ [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
+ [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
+ (ix86_fixup_binary_operands): Assert that src1
+ and src2 must have the same mode when swapped.
+ (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
+ and ix86_binary_operator_ok. Do not force operands in registers
+ when optimizing.
+
+2008-05-07 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (dump_cgraph_node): Update.
+ * cgraph.h (cgraph_local_info): Break out inline summary.
+ * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
+ hook.
+ * ipa-inline (inline_summary): New accestor function.
+ (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
+ cgraph_decide_inlining, compute_inline_parameters): Update.
+ * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
+
+2008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ Cleanup ColdFire scheduling support and add V4 pipeline model.
+
+ * config/m68k/m68k.md (UNSPEC_TIE): New constant.
+ (define_attr cpu): Add cfv4 value.
+ (define_attr type, define_attr type1): Merge into a single 'type'
+ attribute. Update all uses.
+ (define_attr opx_type, define_attr opy_type, define_attr opx_access):
+ Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
+ Update all uses.
+ (define_attr opx_mem, define_attr opy_mem): Remove.
+ (define_attr op_mem): Clean up, update comment.
+ (define_attr size): Use specific values instead of general int.
+ (define_attr guess, define_attr split): Remove. Update all uses.
+ (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
+ tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
+ movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
+ zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
+ 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
+ floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
+ fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
+ adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
+ add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
+ add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
+ sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
+ sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
+ mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
+ umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
+ mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
+ div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
+ one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
+ bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
+ beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
+ bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
+ symbolic_call_value_jsr, symbolic_call_value_bsr, link):
+ Update or set attributes.
+ (stack_tie): New fake instruction.
+
+ * config/m68k/m68k.h (TUNE_CFV4): New macro.
+ (m68k_sched_attr_size): Update declaration.
+ (m68k_sched_attr_type2): Remove.
+ (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
+ Declare new bypass predicates.
+
+ * config/m68k/m68k.c (m68k_sched_issue_rate,
+ m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
+ implementations.
+ (TARGET_SCHED_ISSUE_RATE,
+ TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
+ (override_options): Handle scheduling for ColdFire V4 core.
+ (m68k_expand_prologue): Emit stack_tie.
+ (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
+ 'OP_TYPE_FPN'. Update all uses.
+ (sched_guess_p): Remove.
+ (sched_address_type): Handle symbolic addresses.
+ (sched_get_operand): New static function.
+ (sched_operand_type): Merge into sched_attr_op_type.
+ (sched_attr_op_type): Handle FP registers, handle quick constants,
+ update.
+ (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
+ (m68k_sched_attr_size): Update. Move logic to ...
+ (sched_get_attr_size_int): New static function.
+ (sched_get_opxy_mem_type): New static function.
+ (m68k_sched_attr_op_mem): Update.
+ (m68k_sched_attr_type2): Remove.
+ (sched_cfv4_bypass_data): New static variable.
+ (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
+ (m68k_sched_issue_rate): Implement scheduler hook.
+ (struct _sched_ib: enabled_p): New field.
+ (m68k_sched_variable_issue): Update. Handle V4.
+ (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
+ sched_dump_class_func_t, sched_dump_split_class,
+ sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
+ sched_dump_dfa_class, m68k_sched_dump): Remove.
+ (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
+ hook.
+ (m68k_sched_init_global): Remove statisctics dumping, introduce
+ sanity check that all instructions have pipeline reservations. Handle
+ ColdFire V4 core.
+ (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
+ Handle ColdFire V4 core.
+ (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
+ New static functions.
+ (m68k_sched_address_bypass_p): New bypass predicate.
+ (sched_get_indexed_address_scale): New static function.
+ (m68k_sched_indexed_address_bypass_p): New bypass predicate.
+
+ * cf.md: Update comments.
+ (define_attr type2): Remove. Use 'type' attribute instead.
+ Update all uses.
+ (cf_ib): Rename to cfv123_ib. Update all uses.
+ (cf_oep): Rename to cfv123_oep. Update all uses.
+ (cf_chr): Rename to cfv123_chr. Update all uses.
+ (cf_mem): Rename to cfv123_mem. Update all uses.
+ (cf_mac): Move to more appropriate place.
+ (cfv123_guess): New automaton and cpu_unit.
+ (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
+ Update uses of 'size' attribute. Handle before reload scheduling.
+ (cfv123_guess): New dummy reservation for unhandled instructions.
+ (cfv4_*): Pipeline description of ColdFire V4 core.
+ (ignore): New reservation to handle 'ignore' type.
+
+2008-05-07 Ian Lance Taylor <iant@google.com>
+
+ PR middle-end/36013
+ * gimplify.c (find_single_pointer_decl_1): Don't look through
+ indirections.
+ (find_single_pointer_decl): Adjust comments.
+
+2008-05-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36137
+ * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
+ STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
+
+ PR middle-end/36106
+ * omp-low.c (expand_omp_atomic_pipeline): Load value using the
+ integral type rather than floating point, then VIEW_CONVERT_EXPR
+ to the floating point type.
+
+2008-05-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
+ TFmode op0 to register.
+
+2008-05-07 Alan Modra <amodra@bigpond.net.au>
+
+ * c-decl.c (grokdeclarator): Comment typo.
+
+2008-05-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-flow.h: Remove prototype for computed_goto_p.
+ * tree-cfg.c (computed_goto_p): Make static.
+
+2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35657
+ * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
+ (contains_aligned_value_p): This. Handle _Decimal128.
+ (ix86_function_arg_boundary): Only align _Decimal128 to its
+ natural boundary and handle it properly.
+
+2008-05-06 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
+ (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
+ (ipcp_method_set_orig_node): Removed.
+ (ipcp_cval_get_cvalue_type): Removed.
+ (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
+ (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
+ (ipcp_cval_set_cvalue_type): Removed.
+ (ipcp_cval_get_cvalue): Removed.
+ (ipcp_cval_set_cvalue): Removed.
+ (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
+ (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
+ (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
+ (ipcp_cval_meet): Renamed to ipa_lattice_meet
+ (ipcp_cval_changed): Changed to use ipcp_lat_is_const
+ (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
+ (ipcp_get_ith_lattice): Changed parameters.
+ (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
+ (ipcp_lattice_from_jfunc): Changed parameters.
+ (ipcp_redirect): Local lattice pointer instead of lattice type variable.
+ (ipcp_method_cval_print): Added temporary variable info.
+ (ipcp_redirect): Removed already unused local variable caller.
+ (ipcp_redirect): New temporary variable orig_callee_info
+ (ipcp_redirect): Removed newly unused local variable callee.
+ (ipcp_redirect): Removed (a bit confusing) local variable type.
+ (ipcp_insert_stage): Added local variable info.
+ (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
+ renamed too
+ (ipcp_formal_create): Removed.
+ (ipcp_method_cval_set): Removed.
+ (ipcp_propagate_stage): Renamed lattice variables.
+ (ipcp_method_cval_set_cvalue_type): Removed.
+ (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
+ (ipcp_print_all_lattices): Changed printed strings to refer to
+ lattices rather than cvals.
+ (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
+ (ipcp_propagate_const): Changed formal parameters.
+ (build_const_val): Changed formal parameters.
+ (ipcp_insert_stage): Removed useless variable cvalue
+ (build_const_val): Changed formal parameters.
+ (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
+ (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
+ (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
+ (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
+ (ipcp_print_func_profile_counts): Changed string from "method" to
+ "function"
+ (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
+ (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
+ (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
+ (ipcp_structures_print): Renamed to ipcp_print_all_structures
+ (ipcp_profile_print): Renamed to ipcp_print_profile_data
+ (ipcp_lat_is_const): Changed parameters and made inline.
+ (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
+ (ipcp_redirect): Renamed to ipcp_need_redirect_p
+ (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
+ the predicate condition directly
+ (ipcp_propagate_stage): Added local variable args. Removed local
+ variable callee. (Both are mere code simplifications.)
+ (ipcp_method_dont_insert_const): Renamed to
+ ipcp_node_not_modifiable_p.
+ (ipcp_node_not_modifiable_p): Made inline.
+ (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
+ (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
+ (ipcp_print_all_lattices): Removed variable cvalue
+ (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
+ Updated comments.
+
+2008-05-06 Olivier Hainque <hainque@adacore.com>
+
+ * tree-sra.c (try_instantiate_multiple_fields): Early return
+ if field has POINTER_TYPE.
+
+2008-05-06 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
+ by using 'q' specifier for instruction.
+ (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
+
+2008-05-06 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
+ Change mode of zero_extract from QImode to HImode.
+ (sign bit tests peepholes): (Ditto.).
+
+2008-05-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/mmx.md: Remove double backslashes from asm templates.
+ (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
+ (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
+ to handle nonimmediate operands.
+ (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
+ (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
+ to handle nonimmediate operands.
+ (*mmx_<code>v2sf3_finite): New insn pattern.
+ (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
+ (mmx_<code>v2sf3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (mmx_<plusminus_insn><mode>3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_<plusminus_insn><mode>3): New insn pattern.
+ (mmx_add<mode>3): Removed.
+ (mmx_ssadd<mode>3): Ditto.
+ (mmx_usadd<mode>3): Ditto.
+ (mmx_sub<mode>3): Ditto.
+ (mmx_sssub<mode>3): Ditto.
+ (mmx_ussub<mode>3): Ditto.
+ (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
+ (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
+ to handle nonimmediate operands.
+ (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
+ insn pattern.
+ (mmx_smulv4hi3_highpart): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
+ insn pattern.
+ (mmx_umulv4hi3_highpart): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
+ (mmx_<code>v4hi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
+ (mmx_<code>v8qi3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+ (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
+ (mmx_<code><mode>3): New expander. Use
+ ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+2008-05-05 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/36118
+ * passes.c (pass_init_dump_file): Fix dump header.
+
+2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36141
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
+ VCE for function decls.
+
+2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
+
+2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (sat_plusminus): New.
+ (plusminus_insn): Likewise.
+ (plusminus_mnemonic): Likewise.
+ (addsub): Removed.
+ (comm): Add ss_plus, us_plus, ss_minus and us_minus.
+ (*<addsub><mode>3_cc_overflow): Renamed to ...
+ (*<plusminus_insn><mode>3_cc_overflow): This.
+ (*<addsub>si3_zext_cc_overflow): Renamed to ...
+ (*<plusminus_insn>si3_zext_cc_overflow): This.
+
+ * config/i386/sse.md (<addsub><mode>3): Renamed to ...
+ (<plusminus_insn><mode>3): This.
+ (*<addsub><mode>3): Renamed to ...
+ (*<plusminus_insn><mode>3): This.
+ (<sse>_vm<addsub><mode>3): Renamed to ...
+ (<sse>_vm<plusminus_insn><mode>3): This.
+ (sse3_h<addsub>v4sf3): Renamed to ...
+ (sse3_h<plusminus_insn>v4sf3): This.
+ (sse3_h<addsub>v2df3): Renamed to ...
+ (sse3_h<plusminus_insn>v2df3): This.
+ (<plusminus_insn><mode>3): New.
+ (*<plusminus_insn><mode>3): Likewise.
+ (sse2_<plusminus_insn><mode>3): Likewise.
+ (add<mode>): Removed.
+ (*add<mode>3): Likewise.
+ (sse2_ssadd<mode>3): Likewise.
+ (sse2_usadd<mode>3): Likewise.
+ (sub<mode>3): Likewise.
+ (*sub<mode>3): Likewise.
+ (sse2_sssub<mode>3): Likewise.
+ (sse2_ussub<mode>3): Likewise.
+
+2008-05-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * gthr-single.h: Add in required interface elements as per gthr.h.
+ Add stub types for __gthread_key_t, __gthread_once_t. Add defines
+ for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
+ Generalize UNUSED macro.
+ (__gthread_once): Add.
+ (__gthread_key_create): Add.
+ (__gthread_key_delete): Add.
+ (__gthread_getspecific): Add.
+ (__gthread_setspecific): Add.
+
+2008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
+ the same size types for the indirect reference on the rhs, then
+ create a VCE.
+
+2008-05-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md
+ (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
+ one insn template instead of template series.
+ (*xordi_1_rex64): Ditto.
+ (*xordi_2_rex64): Ditto.
+
+2008-05-05 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36119
+ * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
+ in case of SLP.
+
+2008-06-04 Jan Hubicka <jh@suse.cz>
+
+ tree-optimization/36100
+ * tree-pass.h (pass_O0_always_inline): Declare.
+ * ipa-inline.c (inline_transform): Remove dead code.
+ (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
+ pass_O0_always_inline): New.
+ * passes.c (init_optimization_passes): Add pass_O0_always_inline.
+
+2008-05-04 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
+ mnemonic in this_param move for TARGET_64BIT.
+
+2008-05-04 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
+ (*strmovsi_rex_1): Ditto.
+ (*strsetsi_1): Ditto.
+ (*strsetsi_rex_1): Ditto.
+
+ (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
+ adddicc expanders using SWI mode iterator.
+
+2008-05-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36121
+ * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
+ argument handling.
+
+2008-05-04 David S. Miller <davem@davemloft.net>
+
+ * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
+ (sparc*-*-linux*): Use linux.h in tm_file.
+ (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
+ compiler defaulting to 32-bit.
+ (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
+ no longer needed.
+ * config/sparc/linux.h: Remove definitions now obtained
+ properly from linux.h
+ * config/sparc/linux64.h: Likewise.
+ (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
+ don't want this setting for 32-bit builds in a biarch compiler.
+ * doc/install.texi: Add sparc-linux to list of targets
+ supporting --enable-targets=all.
+
+2008-05-03 Andrew Pinski <pinskia@gmail.com>
+
+ * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
+
+2008-05-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
+ after V4SI_FTYPE_V8HI.
+ (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
+ case V4SI_FTYPE_V2DF.
+
+2008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/invoke.texi (max-flow-memory-locations): Removed.
+ * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
+
+2008-05-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34973
+ * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
+
+2008-05-02 David S. Miller <davem@davemloft.net>
+
+ * config.gcc (need_64bit_hwint): Document libcpp dependency.
+
+2008-05-02 Simon Baldwin <simonb@google.com>
+
+ PR bootstrap/36108
+ * c-common.h (warn_array_subscript_range): Removed.
+ * c-common.c (warn_array_subscript_range): Ditto.
+ * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
+ * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
+
+2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_special_builtin_type): New.
+ (bdesc_special_args): Likewise.
+ (ix86_expand_special_args_builtin): Likewise.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_builtin): Updated.
+ (ix86_expand_store_builtin): Removed.
+ (ix86_expand_unop_builtin): Likewise.
+
+ * config/i386/mm3dnow.h (__v2sf): Moved to ...
+ * config/i386/mmintrin.h (__v2sf): Here.
+
+ * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
+ const __v2sf.
+ (_mm_loadl_pi): Likewise.
+ (_mm_storeh_pi): Replace __v2si with __v2sf.
+ (_mm_storel_pi): Likewise.
+
+ * doc/extend.texi: Correct __builtin_ia32_loadhps,
+ __builtin_ia32_loadlps, __builtin_ia32_storehps,
+ __builtin_ia32_storelps, __builtin_ia32_loadhpd and
+ __builtin_ia32_loadlpd.
+
+2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
+ V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
+ (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+ (ix86_expand_unop1_builtin): Renamed to ...
+ (ix86_expand_unop_vec_merge_builtin): This.
+
+2008-05-01 Jan Hubicka <jh@suse.cz>
+
+ PR bootstrap/36100
+ * ipa-inline.c (inline_generate_summary): Make static.
+ (inline_transform): Do not call inlining at -O0; make static.
+ * passes.c (execute_todo): Add sanity check.
+ (execute_one_ipa_transform_pass): Execute proper flags.
+
+2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
+ (DECL_NONADDRESSABLE_P): Likewise.
+ * alias.c (record_component_aliases): Fix comment.
+
+2008-05-01 Simon Baldwin <simonb@google.com>
+
+ * c-common.h (warn_array_subscript_range): New function.
+ * c-common.c (warn_array_subscript_range): Ditto.
+ * tree-vrp.c (check_array_ref): Corrected code to agree with
+ comment, ignoring only arrays of size 0 or size 1.
+ * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Replace
+ DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
+ (bdesc_args): Updated.
+ (ix86_init_mmx_sse_builtins): Likewise.
+ (ix86_expand_args_builtin): Likewise.
+
+ * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
+ with __v1di.
+
+ * doc/extend.texi: Correct __builtin_ia32_palignr.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36095
+ * config/i386/i386.c (bdesc_crc32): Removed.
+ (ix86_expand_crc32): Likewise.
+ (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
+ V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
+ V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
+ UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
+ UINT_FTYPE_UINT_UCHAR.
+ (bdesc_args): Updated. Add crc32 builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Updated to support subreg.
+
+ * doc/extend.texi: Correct __builtin_ia32_crc32di.
+
+2008-05-01 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (opt_pass): Add IPA_PASS.
+ (varpool_node, cgraph_node): Forward declare.
+ (ipa_opt_pass): Define.
+ (pass_ipa_inline): Turn into ipa_opt_pass.
+ (pass_apply_inline): Remove.
+ * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
+ (apply_inline): Turn into ....
+ (inline_transform): ... this one.
+ (inline_generate_summary): New function.
+ (pass_apply_inline): Remove.
+ * function.h (ipa_opt_pass): Forward declare structure; typedef;
+ vector.
+ (struct function): Add ipa_transforms_to_apply.
+ * passes.c (register_one_dump_file): Work on IPA_PASS.
+ (init_optimization_passes): Remove pass_inline_parameters and
+ pass_apply_inline.
+ (pass_init_dump_file, pass_fini_dump_file): Break out from ....
+ (execute_one_pass) ... here; apply transforms when possible.
+ (add_ipa_transform_pass, execute_ipa_summary_asses,
+ execute_one_ipa_transform_pass): New.
+ (execute_ipa_pass_list): Update for IPA_PASS type.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add
+ V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
+ V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
+ (bdesc_args): Add SSE4a builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add
+ V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
+ V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
+ V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
+ V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
+ V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
+ V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
+ V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
+ V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
+ and DI_FTYPE_DI_DI_INT.
+ (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+ (ix86_expand_binop_imm_builtin): Removed.
+
+ * doc/extend.texi: Correct __builtin_ia32_palignr128.
+
+2008-04-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32921
+ * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
+
+2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/arm/arm.c (arm_unwind_emit): Use
+ crtl->all_throwers_are_sibcalls instead of
+ cfun->all_throwers_are_sibcalls.
+ (arm_output_fn_unwind): Likewise.
+ * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
+ instead of cfun->uses_pic_offset_table.
+ (frv_expand_prologue): Likewise.
+ (frv_frame_pointer_required): Likewise.
+ (frv_expand_fdpic_call): Likewise.
+ (frv_emit_movsi): Likewise.
+ * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
+ cfun->returns_pcc_struct instead of
+ current_function_returns_pcc_struct.
+ * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
+ instead of cfun->calls_eh_return.
+ (m32c_pushm_popm): Likewise.
+ * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
+ "extern" declaration.
+
+2008-04-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/21636
+ * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
+ constant address.
+ (evaluate_stmt): Print the likely value.
+ (ccp_visit_stmt): Avoid excessive vertical spacing.
+
+2008-04-30 Rafael Espíndola <espindola@google.com>
+
+ * builtins.c (fold_call_expr): Return realret.
+ * tree-ssa-threadedge.c
+ (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
+ __builtin_object_size.
+
+2008-04-30 Seongbae Park <seongbae.park@gmail.com>
+
+ * gcc.c (wrapper_string): New variable.
+ (insert_wrapper): New function.
+ (execute): New option -wrapper.
+ * doc/invoke.texi (Overall Options): New driver option -wrapper.
+
+2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
+ config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
+ config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
+ from...
+ * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
+ * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
+ config/rs6000/e500crtres64gprctr.asm,
+ config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
+ config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
+ config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
+ config/rs6000/e500crtsav64gprctr.asm,
+ config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
+ config/rs6000/e500crtsavg64gprctr.asm: New files.
+ * config/rs6000/t-ppccomm: Add build rules for new files.
+ (LIB2FUNCS_STATIC_EXTRA): Add new files.
+ * config/rs6000/t-netbsd: Add build rules for new files.
+ (LIB2FUNCS_STATIC_EXTRA): New variable.
+ * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
+ (CRTSAVRES_DEFAULT_SPEC): Likewise.
+ * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
+
+2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add
+ FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
+ V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
+ V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
+ V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
+ V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
+ V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
+ V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
+ V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
+ V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
+ V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
+ V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
+ V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
+ V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
+ V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
+ V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
+ V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
+ V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
+ V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
+ V1DI_FTYPE_V2SI_V2SI.
+ (bdesc_2arg): Moved to ...
+ (bdesc_args): Here.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Updated. Take a pointer
+ to const struct builtin_description. Handle comparison
+ builtin functions.
+ (ix86_expand_sse_compare): Take a new argument for swapping operands.
+ (ix86_expand_builtin): Updated.
+
+ * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
+ (ssse3_pmaddubsw128): This.
+ (ssse3_pmaddubswv4hi3): Renamed to ...
+ (ssse3_pmaddubsw): This.
+
+ * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
+ (__builtin_ia32_packssdw128): Likewise.
+ (__builtin_ia32_packuswb128): Likewise.
+ (__builtin_ia32_pmaddubsw): Likewise.
+ (__builtin_ia32_pmaddubsw128): Likewise.
+
+2008-04-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14847
+ * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
+ (recognize_bits_test): Use it.
+ (recognize_single_bit_test): Likewise.
+
+2008-04-30 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
+ instead of setting number of formal parameters to zero.
+ (ipcp_init_stage): Do not set the number of actual parameters to zero
+ either.
+ (ipcp_propagate_stage): Explicitly skipping all calls to nodes
+ which are called with variable number of arguments.
+ (ipcp_insert_stage): Explicitely skipping all nodes which are
+ called with variable number of arguments.
+ (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
+ number of parameters.
+
+ * ipa-prop.h (struct ipa_node_params): Added flag
+ called_with_var_arguments
+ (ipa_set_param_count): Added. Changed sole setter to use it.
+ (ipa_get_param_count): Added. All readers of param_count
+ converted to use it instead.
+ (ipa_set_called_with_variable_arg): Added.
+ (ipa_is_called_with_var_arguments): Added.
+ (ipa_get_ith_param): Added. All readers of param_decls converted
+ to use it instead.
+ (ipa_set_cs_argument_count): Added, sole writer to argument_count
+ changed to use it.
+ (ipa_get_cs_argument_count): Added, all readers of argument_count
+ changed to cal it.
+ (ipa_get_ith_jump_func): Added. Accessors of jump values changed
+ to use it.
+
+ * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
+ (struct ipcp_lattice): Renamed cval_type to type
+ (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
+
+ * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
+ (ipcp_cval_set_cvalue): Changed type of parameter value to tree
+ (ipcp_insert_stage): Changed the type of variable cvalue to tree
+ (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
+ (build_const_val): Changed the type of parameter cvalue to tree
+ (ipcp_propagate_const): Changed the type of parameter cvalue to tree
+ (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
+
+ * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
+ constant
+
+ * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
+ (ipa_methodlist_not_empty): Removed, the sole user now checks directly
+ (ipa_add_method): Renamed to ipa_push_func_to_list
+ (ipa_remove_method): Renamed to ipa_pop_func_from_list
+ (ipa_callsite_param_count): Removed.
+ (ipa_callsite_param_count_set): Removed.
+ (ipa_callsite_param): Removed.
+ (ipa_callsite_callee): Removed.
+ (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
+ (ipa_callsite_compute_count): Renamed to ipa_count_arguments
+ (ipa_method_formal_count): Removed.
+ (ipa_method_formal_count_set): Removed.
+ (ipa_method_get_tree): Removed.
+ (ipa_method_tree_map_create): Removed.
+ (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
+ (ipa_create_param_decls_array): Creates the array itself
+ (ipa_create_param_decls_array): Temporary variable info instead of
+ a few dereferences.
+ (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
+ (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
+ (get_type): Removed.
+ (ipa_jf_get_info_type): Removed.
+ (ipa_node_create): Renamed to ipa_create_node_params
+ (ipa_free): Renamed to ipa_free_all_node_params
+ (ipa_nodes_create): Renamed to ipa_create_all_node_params
+ (ipa_edges_create): Renamed to ipa_create_all_edge_args
+ (ipa_edges_free): Renamed to ipa_free_all_edge_args
+ (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
+ (ipa_free_all_node_params): Deallocation to jump_functions moved to
+ ipa_free_all_edge_args
+ (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
+ (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
+ (ipa_create_methodlist_node): Removed.
+ (ipa_methodlist_method): Removed.
+ (ipa_methodlist_method_set): Removed.
+ (ipa_methodlist_next_method): Removed.
+ (ipa_methodlist_next_method_set): Removed.
+ (ipa_method_is_modified): Removed.
+ (ipa_method_modify_create): Removed.
+ (ipa_method_modify_init): Temporary variable info instead of a few
+ dereferences.
+ (ipa_detect_param_modifications): Temporary variable info instead of
+ a few dereferences.
+ (ipa_compute_jump_functions): Temporary variable info instead of
+ a few dereferences.
+ (ipa_method_modify_set): Removed.
+ (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
+ (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
+ than craph_node as the first parameter.
+ (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
+ (ipa_method_modify_init): Removed.
+ (ipa_compute_jump_functions): Added a temp variable instead of
+ repeatadly dereferencing the cgraph_edge.aux pointer
+ (ipa_callsite_param_set_type): Removed.
+ (ipa_compute_jump_functions): i renamed to index and moved to
+ an inner block
+ (ipa_callsite_param_set_info_type_formal): Removed.
+ (ipa_callsite_param_set_info_type): Removed.
+ (ipa_callsite_param_map_create): Removed.
+ (ipa_callsite_tree): Removed.
+ (ipa_callsite_caller): Removed.
+ (ipa_pop_func_from_list): return_method removed to return_func
+
+ * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
+ prefixed all values with IPA_. Changed all users.
+ (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
+ CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
+ and FORMAL_IPATYPE IPA_PASS_THROUGH.
+ (union parameter_info): Renamed to jump_func_value.
+ (union jump_func_value): Renamed value to constant
+ (struct ipa_jump_func): Renamed info_type to value
+ (struct ipa_node): Renamed to ipa_node_params
+ (struct ipa_node_params): Renamed ipa_arg_num to param_count
+ (struct ipa_node_params): Renamed ipa_param_tree to param_decls
+ (struct ipa_node_params): Renamed ipa_mod to modified_flags
+ (struct ipa_edge): Renamed to ipa_edge_args
+ (struct ipa_edge_args): Renamed ipa_param_num to argument_count
+ (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
+ (struct ipa_methodlist): Renamed to ipa_func_list
+ (struct ipa_func_list): method_p renamed to node, next_method
+ renamed to next
+ (ipa_methodlist_p): Removed, switched all users to struct pointer
+ (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
+
+2008-04-30 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
+ (rs6000_emit_epilogue): Use backchain to restore only when we
+ have a large frame. Make use of frame pointer to restore if we
+ have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
+
+2008-04-29 Paolo Bonzini <bonzini@gnu.org>
+
+ * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
+ Add mode to zero_extract.
+ (sign bit tests peepholes): (Ditto.).
+
+2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtins): Replace Prescott New
+ Instructions in comments with SSE3.
+ (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
+ INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
+ INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
+ V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
+ V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
+ V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
+ V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
+ V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
+ V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
+ V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
+ V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
+ V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
+ (bdesc_sse_args): Renamed to ...
+ (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
+ IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
+ IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
+ IX86_BUILTIN_FABSQ.
+ (bdesc_1arg): Moved to ...
+ (bdesc_args): Here.
+ (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
+ Instructions in comments with SSE3.
+ (ix86_expand_sse_operands_builtin): Renamed to ...
+ (ix86_expand_args_builtin): This. Updated.
+ (ix86_expand_unop1_builtin): Update comments.
+ (ix86_expand_builtin): Updated.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36078
+ * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
+ Update virtual SSA form after cleaning up the CFG.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/15255
+ * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
+ (compute_may_aliases): Do not call finalize_ref_all_pointers.
+ (compute_flow_insensitive_aliasing): Do not treat
+ PTR_IS_REF_ALL pointers special.
+ (get_smt_for): Likewise.
+ (may_alias_p): Re-structure.
+ (is_escape_site): A ref-all pointer conversion is not an escape site.
+ * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
+ PTR_IS_REF_ALL pointers special.
+ * tree-ssa-structalias.h (struct alias_info): Remove
+ ref_all_symbol_mem_tag field.
+ (PTR_IS_REF_ALL): Remove.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36077
+ * fold-const.c (extract_muldiv_1): In combining division constants
+ make sure to never overflow.
+
+2008-04-29 Nick Clifton <nickc@redhat.com>
+
+ * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
+
+2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/35169
+ * optc-gen.awk: Work around HP-UX/IA awk bug.
+
+2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
+ 2008-04-25 commit.
+
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36073
+ * config/i386/i386.md
+ (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
+ Change operand 1 predicate to nonimmediate_operand.
+
+2008-04-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/36060
+ * dwarf2out.c (struct die_struct): Mark as chain_circular through
+ die_sub field.
+ * gengtype.c (walk_type, write_func_for_structure): Handle
+ chain_circular.
+ * doc/gty.texi: Document chain_circular.
+
+2008-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36066
+ * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
+ SCEV and loop.
+
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36064
+ * config/i386/i386.md
+ (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
+ Use match_scratch instead of match_operand for operands 3 and 4.
+
+2008-04-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/18754
+ PR tree-optimization/34223
+ * tree-pass.h (pass_complete_unrolli): Declare.
+ * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
+ loop size before and after unconditionally of UL_NO_GROWTH in effect.
+ Rewrite loop into loop closed SSA form if it is not already.
+ (tree_unroll_loops_completely): Re-structure to iterate over
+ innermost loops with intermediate CFG cleanups.
+ Unroll outermost loops only if requested or the code does not grow
+ doing so.
+ * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
+ loops are available.
+ (tree_vectorize): Instead do so here.
+ (tree_complete_unroll): Also unroll outermost loops.
+ (tree_complete_unroll_inner): New function.
+ (gate_tree_complete_unroll_inner): Likewise.
+ (pass_complete_unrolli): New pass.
+ * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
+ uses outside of the loop.
+ (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
+ form if it is available.
+ * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
+ * passes.c (init_optimization_passes): Schedule complete inner
+ loop unrolling pass before the first CCP pass after final inlining.
+
+2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * targhooks.h (default_emutls_var_fields,
+ default_emutls_var_init): Declare.
+ * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
+ * target.h (struct gcc_target): Add struct emutls member.
+ * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
+ TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
+ TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
+ TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
+ TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
+ TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
+ (TARGET_INITIALIZER): Add TARGET_EMUTLS.
+ * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
+ BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
+ emit debug information.
+ * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
+ * varasm.c: Include targhooks.h.
+ (emutls_object_section, emutls_tmpl_section): New.
+ (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
+ (EMUTLS_SEPARATOR): New.
+ (prefix_name): New.
+ (get_emutls_object_name): New.
+ (default_emutls_var_fields): New, broken out of ...
+ (get_emutls_object_type): ... here. Adjust to use target hooks.
+ (get_emutls_init_templ_addr): Adjust to use target hooks.
+ (emutls_decl): Adjust to use target hooks.
+ (emutls_finish): Likewise.
+ (default_emutls_var_init): New, broken out of ...
+ (assemble_variable): ... here. Adjust to use target hooks.
+ * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
+ SECCAT_EMUTLS_TMPL.
+ * c-common.c (handle_section_attribute): Prevent overriding
+ sections for emulated tls with special sections.
+ * config/i386/i386.c (x86_64_elf_select_section): Add
+ SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
+ (x86_64_elf_unique_section): Likewise.
+ * config/vxworks.c: Include tree.h.
+ (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
+ (vxworks_override_options): Set TLS scheme.
+ * doc/tm.texi (Emulated TLS): New node.
+
+2008-04-26 Simon Baldwin <simonb@google.com>
+
+ PR c/35652
+ * builtins.c (c_strlen): Suppressed multiple warnings that can occur
+ with propagated string constants.
+
+2008-04-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
+ constraint for operand 2 when operand 0 is memory operand.
+ (fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when
+ operand 0 is memory operand.
+ (fix_trunc<mode>_i387_with_temp): Ditto.
+ (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
+ operand 2 when operand 1 is memory operand.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
+ (*floatsi<mode>2_vector_sse_with_temp): Ditto.
+ (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
+ (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
+ (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
+ operands 2,3 and 4 when operand 1 is memory operand.
+ (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
+ is memory operand.
+ (fistdi2_floor_with_temp): Ditto.
+ (fist<mode>2_floor_with_temp): Ditto.
+ (fistdi2_ceil_with_temp): Ditto.
+ (fist<mode>2_ceil_with_temp): Ditto.
+ (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
+
+2008-04-26 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
+ unspec_volitile.
+ (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
+ UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
+ UNSPEC_UPDATE_GOT_VERSION): Renumber.
+ (sync_compare_and_swap<mode>): New expand for QI and HI modes.
+ (compare_and_swap_12): New insn.
+ * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
+ * config/mips/mips.c (mips_force_binary): New function.
+ (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
+ (mips_expand_compare_and_swap_12): New function.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
+
+2008-04-25 Jan Hubicka <jh@suse.cz>
+
+ PR testsuite/35843
+ * cfgexpand.c (pass_expand): Turn into RTL pass.
+ * passes.c (execute_one_pass): Do pass typechecking after execution.
+ * tree-pass.h (pass_expand): Turn into RTL pass.
+
+ * function.h (struct rtl_data): Move here fields
+ accesses_prior_frames, calls_eh_return, saves_all_registers,
+ has_nonlocal_goto, has_asm_statement, is_thunk,
+ all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
+ uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
+ arg_pointer_save_area_init from struct function; turn into bool.
+ (struct function): Move
+ calls_eh_return, saves_all_registers, has_nonlocal_goto,
+ has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
+ profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
+ tail_call_emit, arg_pointer_save_area_init
+ into struct rtl_data. Remove recursive_call_emit and gimplified flags.
+ (current_function_returns_struct, current_function_returns_pcc_struct,
+ current_function_calls_setjmp, current_function_calls_alloca,
+ current_function_accesses_prior_frames,
+ current_function_calls_eh_return, current_function_is_thunk,
+ current_function_stdarg, current_function_profile,
+ current_function_limit_stack, current_function_uses_pic_offset_table,
+ current_function_uses_const_pool, current_function_has_nonlocal_label,
+ current_function_saves_all_registers,
+ current_function_has_nonlocal_goto,
+ current_function_has_asm_statement): Remove accesor macros.
+ * ra-conflict.c (global_conflicts): Update.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Update.
+ (suitable_for_tail_call_opt_p): Update.
+ * builtins.c (expand_builtin_return_addr): Update.
+ (expand_builtin_setjmp_setup): Update.
+ (expand_builtin_nonlocal_goto): Update.
+ * final.c (final_start_function): Update.
+ (profile_function): Update.
+ (leaf_function_p): Update.
+ (only_leaf_regs_used): Update.
+ * df-scan.c (df_get_exit_block_use_set): Update.
+ * dojump.c (clear_pending_stack_adjust): Update.
+ * tree-stdarg.c (gate_optimize_stdarg): Update.
+ * gimple-low.c (lower_function_body): Update.
+ * global.c (compute_regsets): Update.
+ (global_alloc): Update.
+ * dwarf2out.c (dwarf2out_begin_prologue): Update.
+ * expr.c (expand_assignment): Update.
+ * dse.c (dse_step0): Update.
+ (dse_step1): Update.
+ * c-decl.c (store_parm_decls): Update.
+ * local-alloc.c (combine_regs): Update.
+ (find_free_reg): Update.
+ * function.c (assign_parms_augmented_arg_list): Update.
+ (assign_parm_find_data_types): Update.
+ (assign_parms): Update.
+ (allocate_struct_function): Update.
+ (expand_function_start): Update.
+ (expand_function_end): Update.
+ (get_arg_pointer_save_area): Update.
+ (thread_prologue_and_epilogue_insns): Update.
+ (rest_of_match_asm_constraints): Update.
+ * stor-layout.c (variable_size): Update.
+ * gcse.c (gcse_main): Update.
+ (bypass_jumps): Update.
+ * gimplify.c (gimplify_function_tree): Update.
+ * calls.c (emit_call_1): Update.
+ (expand_call): Update.
+ * bt-load.c (compute_defs_uses_and_gen): Update.
+ * except.c (sjlj_assign_call_site_values): Update.
+ (sjlj_emit_function_enter): Update.
+ (can_throw_external): Update.
+ (set_nothrow_function_flags): Update.
+ (expand_builtin_unwind_init): Update.
+ (expand_eh_return): Update.
+ (convert_to_eh_region_ranges): Update.
+ (output_function_exception_table): Update.
+ * emit-rtl.c (gen_tmp_stack_mem): Update.
+ * cfgexpand.c (expand_used_vars): Update.
+ (tree_expand_cfg): Update.
+ * cfgcleanup.c (rest_of_handle_jump): Update.
+ * explow.c (allocate_dynamic_stack_space): Update.
+ * varasm.c (assemble_start_function): Update.
+ (force_const_mem): Update.
+ (mark_constant_pool): Update.
+ * tree-optimize.c (tree_rest_of_compilation): Update.
+ * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
+ * tree-cfg.c (notice_special_calls): Update.
+ (is_ctrl_altering_stmt): Update.
+ (tree_can_make_abnormal_goto): Update.
+ (tree_purge_dead_abnormal_call_edges): Update.
+ * config/alpha/predicates.md: Update.
+ * config/alpha/alpha.c (alpha_sa_mask): Update.
+ (alpha_sa_size): Update.
+ (alpha_does_function_need_gp): Update.
+ (alpha_expand_prologue): Update.
+ (alpha_start_function): Update.
+ (alpha_output_function_end_prologue): Update.
+ (alpha_expand_epilogue): Update.
+ * config/frv/frv.c (frv_stack_info): Update.
+ (frv_expand_epilogue): Update.
+ * config/s390/s390.c (s390_regs_ever_clobbered): Update.
+ (s390_register_info): Update.
+ (s390_frame_info): Update.
+ (s390_init_frame_layout): Update.
+ (s390_can_eliminate): Update.
+ (save_gprs): Update.
+ * config/spu/spu.c (spu_split_immediate): Update.
+ (need_to_save_reg): Update.
+ (spu_expand_prologue): Update.
+ (spu_expand_epilogue): Update.
+ * config/sparc/sparc.md: Update.
+ * config/sparc/sparc.c (eligible_for_return_delay): Update.
+ (sparc_tls_got): Update.
+ (legitimize_pic_address): Update.
+ (sparc_emit_call_insn): Update.
+ (sparc_expand_prologue): Update.
+ (output_return): Update.
+ (print_operand): Update.
+ (sparc_function_ok_for_sibcall): Update.
+ * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
+ * config/m32r/m32r.md: Update.
+ * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
+ (m32r_compute_frame_size): Update.
+ (m32r_expand_prologue): Update.
+ (m32r_expand_epilogue): Update.
+ (m32r_legitimize_pic_address): Update.
+ * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
+ * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
+ * config/i386/i386.c (ix86_frame_pointer_required): Update.
+ (gen_push): Update.
+ (ix86_save_reg): Update.
+ (ix86_compute_frame_layout): Update.
+ (ix86_expand_prologue): Update.
+ (ix86_expand_epilogue): Update.
+ * config/sh/sh.c (output_stack_adjust): Update.
+ (calc_live_regs): Update.
+ (sh5_schedule_saves): Update.
+ (sh_expand_prologue): Update.
+ (sh_expand_epilogue): Update.
+ (sh_setup_incoming_varargs): Update.
+ (sh_allocate_initial_value): Update.
+ (sh_get_pr_initial_val): Update.
+ * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
+ * config/sh/sh.md (label:): Update.
+ * config/avr/avr.c (out_movhi_mr_r): Update.
+ * config/crx/crx.h (enum): Update.
+ * config/xtensa/xtensa.h (along): Update.
+ * config/stormy16/stormy16.c Update.
+ (xstormy16_compute_stack_layout): Update.
+ * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
+ (fr30_expand_prologue): Update.
+ * config/cris/cris.c (cris_conditional_register_usage): Update.
+ (cris_reg_saved_in_regsave_area): Update.
+ (cris_initial_frame_pointer_offset): Update.
+ (cris_simple_epilogue): Update.
+ (cris_expand_prologue): Update.
+ (cris_expand_epilogue): Update.
+ (cris_expand_pic_call_address): Update.
+ (cris_asm_output_symbol_ref): Update.
+ (cris_asm_output_label_ref): Update.
+ * config/cris/cris.md Update.
+ * config/iq2000/iq2000.c (compute_frame_size): Update.
+ (iq2000_expand_epilogue): Update.
+ * config/mt/mt.h (save_direction): Update.
+ * config/mn10300/mn10300.c (mn10300_function_value): Update.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Update.
+ (ia64_secondary_reload_class): Update.
+ * config/m68k/m68k.c (m68k_save_reg): Update.
+ (m68k_expand_prologue): Update.
+ (m68k_expand_epilogue): Update.
+ (legitimize_pic_address): Update.
+ * config/rs6000/rs6000.c (rs6000_got_register): Update.
+ (first_reg_to_save): Update.
+ (first_altivec_reg_to_save): Update.
+ (compute_vrsave_mask): Update.
+ (compute_save_world_info): Update.
+ (rs6000_stack_info): Update.
+ (spe_func_has_64bit_regs_p): Update.
+ (rs6000_ra_ever_killed): Update.
+ (rs6000_emit_eh_reg_restore): Update.
+ (rs6000_emit_allocate_stack): Update.
+ (rs6000_emit_prologue): Update.
+ (rs6000_emit_epilogue): Update.
+ (rs6000_output_function_epilogue): Update.
+ (output_profile_hook): Update.
+ (rs6000_elf_declare_function_name): Update.
+ * config/rs6000/rs6000.h (rs6000_args): Update.
+ * config/rs6000/rs6000.md: Update.
+ * config/mcore/mcore.c (mcore_expand_prolog): Update.
+ * config/arc/arc.c (arc_output_function_epilogue): Update.
+ * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
+ * config/darwin.c (machopic_function_base_name): Update.
+ * config/score/score3.c (score3_compute_frame_size): Update.
+ (rpush): Update.
+ (rpop): Update.
+ (score3_epilogue): Update.
+ * config/score/score7.c (score7_compute_frame_size): Update.
+ (score7_prologue): Update.
+ (score7_epilogue): Update.
+ * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
+ * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
+ * config/arm/arm.c (use_return_insn): Update.
+ (require_pic_register): Update.
+ (arm_load_pic_register): Update.
+ (arm_compute_save_reg0_reg12_mask): Update.
+ (arm_compute_save_reg_mask): Update.
+ (thumb1_compute_save_reg_mask): Update.
+ (output_return_instruction): Update.
+ (arm_output_function_prologue): Update.
+ (arm_output_epilogue): Update.
+ (arm_get_frame_offsets): Update.
+ (arm_expand_prologue): Update.
+ (thumb_pushpop): Update.
+ (thumb_exit): Update.
+ (thumb1_expand_prologue): Update.
+ (thumb1_expand_epilogue): Update.
+ (arm_unwind_emit): Update.
+ (arm_output_fn_unwind): Update.
+ * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
+ * config/arm/arm.md: Update.
+ * config/pa/pa.md: Update.
+ * config/pa/pa.c (legitimize_pic_address): Update.
+ (compute_frame_size): Update.
+ (hppa_expand_prologue): Update.
+ (hppa_expand_epilogue): Update.
+ (borx_reg_operand): Update.
+ * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
+ (HARD_REGNO_RENAME_OK): Update.
+ * config/mips/mips.c (mips_global_pointer): Update.
+ (mips_save_reg_p): Update.
+ (mips_compute_frame_info): Update.
+ (mips_frame_pointer_required): Update.
+ (mips_expand_prologue): Update.
+ (mips_expand_epilogue): Update.
+ (mips_can_use_return_insn): Update.
+ (mips_reorg_process_insns): Update.
+ * config/v850/v850.c (compute_register_save_size): Update.
+ * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
+ * config/mmix/mmix.c (along): Update.
+ (mmix_expand_epilogue): Update.
+ * config/bfin/bfin.c (legitimize_pic_address): Update.
+ (must_save_p): Update.
+ (stack_frame_needed_p): Update.
+ (add_to_reg): Update.
+ (bfin_expand_prologue): Update.
+ * stmt.c (expand_asm_operands): Update.
+ * reload1.c (reload): Update.
+ (init_elim_table): Update.
+
+2008-04-25 Bob Wilson <bob.wilson@acm.org>
+
+ * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
+
+2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
+ (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
+ (mov<mode>): Removed.
+ (*movv4sf_internal): Likewise.
+ (*movv2df_internal): Likewise.
+
+2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
+
+ * config.gcc (crx-*-elf): Remove deprecation.
+
+2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming-crtend.c (register_frame_ctor): Register
+ __gcc_deregister_frame with atexit.
+ (deregister_frame_dtor): Remove.
+
+2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/rs6000/rs6000.opt (mspe): Remove Var property.
+ (misel): Likewise.
+ * config/rs6000/rs6000.h (rs6000_spe): Declare.
+ (rs6000_isel): Likewise.
+ * config/rs6000/rs6000.c (rs6000_spe): New variable.
+ (rs6000_isel): New variable.
+ (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35758
+ * c-common.c (handle_vector_size_attribute): Call
+ lang_hooks.types.reconstruct_complex_type instead of
+ reconstruct_complex_type.
+ * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
+ * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
+ * langhooks.h (struct lang_hooks_for_types): Add
+ reconstruct_complex_type hook.
+ * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
+ (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
+
+2008-04-24 Richard Guenther <rguenther@suse.de>
+
+ * c-common.h (check_builtin_function_arguments): Declare.
+ * c-common.c (validate_nargs): New function.
+ (check_builtin_function_arguments): Likewise.
+ * c-typeck.c (build_function_call): Call
+ check_builtin_function_arguments.
+ * builtins.c (fold_builtin_classify): Remove error reporting code.
+ (fold_builtin_unordered_cmp): Likewise.
+ (fold_builtin_1): Likewise.
+ (fold_builtin_n): Likewise.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36008
+ * fold-const.c (try_move_mult_to_index): If s == NULL, divide
+ the original op1, rather than delta by step.
+
+2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-parloops.c (take_address_of, eliminate_local_variables_1,
+ eliminate_local_variables_stmt, eliminate_local_variables,
+ separate_decls_in_loop_name, separate_decls_in_loop_stmt,
+ separate_decls_in_loop, gen_parallel_loop): Make them work on a region
+ of code delimited by two edges in the CFG.
+ (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
+ (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
+ (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
+ the case of parallelisation of reductions.
+ (expr_invariant_in_region_p): New.
+
+ * tree-flow.h (gather_blocks_in_sese_region): Declared.
+ * tree-cfg.c (gather_blocks_in_sese_region): Extern.
+
+2008-04-24 Ira Rosen <irar@il.ibm.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36034
+ * tree-vect-analyze.c (vect_analyze_group_access): SLP is
+ incapable of dealing with loads with gaps.
+
+2008-04-24 Rafael Espíndola <espindola@google.com>
+
+ * tree-flow.h (vrp_evaluate_conditional): Change signature.
+ * tree-ssa-propagate.c (fold_predicate_in): Update call to
+ vrp_evaluate_conditional.
+ * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
+ (vrp_evaluate_conditional): Split the cond argument.
+ (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
+ (simplify_stmt_for_jump_threading): Update call to
+ vrp_evaluate_conditional.
+
+2008-04-24 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35982
+ * tree-vect-analyze.c (vect_check_interleaving): Check that the
+ interleaved data-refs are of the same type.
+
+2008-04-24 Danny Smith <dannysmith@users.net>
+
+ * c-format.c (check_format_info_main): Use strncmp rather than a
+ magic prefix to handle multichar length specs.
+ * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
+ Don't prefix "I64" and "I32" with '\0'.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36015
+ * config/i386/i386.c (init_cumulative_args): Don't pass anything
+ in registers for -m32 only if stdarg_p (fntype).
+
+2008-04-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36006
+ * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
+ temp to op0 in order to avoid invalid rtx sharing.
+
+2008-04-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
+ check TREE_INVARIANT.
+ * tree-gimple.c (is_gimple_address): New.
+ (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
+ * tree-gimple.h (is_gimple_address): New.
+ * tree.h (decl_address_invariant_p): New.
+ * tree.c (make_node_stat): Don't set TREE_INVARIANT.
+ (build_string): Likewise.
+ (decl_address_invariant_p): New, from is_gimple_invariant_address.
+ (tree_invariant_p_1): Likewise.
+ (save_expr): Use it.
+ (tree_invariant_p): New.
+ (skip_simple_arithmetic): Use it.
+ (stabilize_reference_1): Use it.
+ (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
+ simplify.
+ (build1_stat): Drop code to compute TREE_INVARIANT.
+ (build2_stat): Drop code to compute TREE_INVARIANT.
+ (build3_stat): Drop code to compute TREE_INVARIANT.
+ (build4_stat): Drop code to compute TREE_INVARIANT.
+ (build5_stat): Drop code to compute TREE_INVARIANT.
+ (build7_stat): Drop code to compute TREE_INVARIANT.
+ (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
+ * tree.h (struct tree_base): Remove invariant_flag.
+ (TREE_INVARIANT): Remove.
+ * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
+ (fold_builtin_expect): Check TREE_CONSTANT.
+ * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
+ * c-tree.h (c_expr_to_decl): Drop third parameter.
+ * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
+ (build_c_cast): Don't set TREE_INVARIANT.
+ (pop_init_level): Don't set TREE_INVARIANT.
+ (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
+ * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
+ TREE_CONSTANT.
+ (gimplify_init_constructor): Don't set TREE_INVARIANT.
+ (gimplify_addr_expr): Adjust comment.
+ * tree-mudflap.c (mf_build_string):
+ * print-tree.c (print_node): Don't print TREE_INVARIANT.
+ * tree-nested.c (convert_nonlocal_reference): Adjust comment.
+ * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
+ * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
+ * langhooks.c (lhd_expr_to_decl): Drop third parameter.
+ * langhooks.h (struct lang_hooks): Drop third parameter from
+ expr_to_decl.
+
+2008-04-23 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27799
+ PR tree-optimization/32921
+ PR tree-optimization/32624
+ * tree-ssa-structalias.c (merge_smts_into): Only merge the
+ SMTs aliases and the tag itself into the solution.
+ * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
+ merge the points-to solution back into the SMT aliases.
+ (may_alias_p): Use alias_set_subset_of instead of
+ aliases_conflict_p. A pointer which points to
+ memory with alias set zero may access any variable.
+
+2008-04-23 Richard Guenther <rguenther@suse.de>
+
+ * alias.c (alias_set_subset_of): Correctly handle asking
+ if zero is a subset of an alias set with zero child.
+ * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
+ (compute_flow_insensitive_aliasing): Correctly walk all
+ pointers. Do not unnecessarily union sets.
+
+2008-04-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36021
+ * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
+
+2008-04-22 Tomas Bily <tbily@suse.cz>
+
+ * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
+ unreachable case.
+ * tree-vrp.c (extract_range_from_unary_expr): Removed unused
+ NON_LVALUE_EXPR.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+ * tree-ssa-structalias.c (get_constraint_for): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * varasm.c (const_hash_1, compare_constant, copy_constant)
+ (compute_reloc_for_constant, output_addressed_constants): Likewise.
+ * emit-rtl.c (component_ref_for_mem_expr)
+ (set_mem_attributes_minus_bitpos): Likewise.
+ * expr.c (highest_pow2_factor, expand_expr_real_1)
+ (is_aligning_offset): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * builtins.c (get_pointer_alignment, get_memory_rtx)
+ (integer_valued_real_p, fold_builtin_next_arg): Likewise.
+ * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
+
+2008-04-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36017
+ * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
+ expanding the library call.
+
+2008-04-22 Ian Lance Taylor <iant@google.com>
+
+ * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
+ than size_in_bytes.
+
+2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
+ of LR/CTR moves for Power6.
+
+2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/36003
+ * passes.c (init_optimization_passes): Remove
+ pass_fast_rtl_byte_dce.
+
+2008-04-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/29096
+ * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
+ builtin functions to generate faster code.
+ (_mm_cvtpu16_ps): Ditto.
+ (_mm_cvtpi32x2_ps): Ditto.
+
+2008-04-22 Nick Clifton <nickc@redhat.com>
+
+ * common.opt (ftree-loop-distribution): Add Optimization
+ attribute.
+
+ * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
+ (frv_expand_builtin_va_start): Likewise.
+
+ * config/arm/arm.c (thumb_find_work_register): Fix location of
+ argument register count.
+
+2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ Support scheduling for ColdFire V1 and V3 microarchitecture.
+ Improve scheduling of multiplication instructions.
+
+ * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
+ (mac): New instruction attribute.
+ * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
+ (m68k_sched_mac): New variable.
+ (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
+ Handle cfv1 and cfv3.
+ (max_insn_size): New static variable.
+ (struct _sched_ib): New type.
+ (sched_ib): New static variable.
+ (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
+ to fields of 'struct _sched_ib sched_ib'. Update all uses.
+ (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
+ Update.
+ (m68k_sched_md_init_global, m68k_sched_md_finish_global,
+ m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
+ new variables. Update.
+ (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
+ Add modeling of cfv3 instruction buffer. Update.
+ * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
+ * config/m68k/m68k.h (TUNE_CFV3): New macro.
+ * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
+ (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
+ a particular reservation applies to.
+ (type2): Reorganize attribute values. Rename alu to alu_reg,
+ alu_l to alu, move_l to omove. Join move to alu. Split mul
+ to mul_l and mul_w.
+ (cf_ib_*): Simplify description of instruction buffer.
+ (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
+ (cf_mem): Split into cf_mem1 and cf_mem2.
+ (cf_v2_move_??): Rename to cfv12_alu_??.
+ (cf_v2_move_l_??): Rename to cfv12_omove_??.
+ (cf_v2_mul_??): Remove reservations.
+ (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
+ cfv12_emac_??, cfv12_emac_w_i0): New reservations.
+ (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
+ appropriate place.
+ (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
+ cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
+ cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
+ cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
+ cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
+ cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
+ (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
+ expansions of the above reservations for instructions of sizes
+ 1, 2 and 3 words.
+
+2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
+
+2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
+
+ * coverage.c: Include tree-pass.h.
+ (coverage_counter_alloc): Print da_file_name to the dump file.
+
+2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * sbitmap.c (sbitmap_range_empty_p): New function.
+ * sbitmap.h (sbitmap_range_empty_p): New function.
+ * bitmap.h: Now includes obstack.h.
+
+2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
+ Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * dbgcnt.def (ra_byte_scan): Added.
+ * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
+ when the last hit happens for a counter.
+ * timevar.def (TV_DF_BYTE_LR): New variable.
+ * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
+ * passes.c (pass_fast_rtl_byte_dce): New pass.
+ * fwprop.c (update_df): Added mode to call df_ref_create.
+ Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+ DF_REF_EXTRACT_OFFSET.
+ * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
+ DF_BYTE_LR_OUT, df_byte_lr): New macro.
+ (df_mm): New enum.
+ (df_ref_extract): Added mode field.
+ (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
+ DF_REF_EXTRACT_OFFSET.
+ (DF_REF_EXTRACT_MODE): New macro.
+ (df_byte_lr_bb_info): New structure.
+ (df_print_byte_regset, df_compute_accessed_bytes,
+ df_byte_lr_add_problem, df_byte_lr_get_regno_start,
+ df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
+ df_byte_lr_simulate_uses,
+ df_byte_lr_simulate_artificial_refs_at_top,
+ df_byte_lr_simulate_artificial_refs_at_end,
+ df_compute_accessed_bytes): New function.
+ (df_ref_create): Add parameter.
+ (df_byte_lr_get_bb_info): New inline function.
+ * df-scan.c (df_ref_record, df_uses_record,
+ df_ref_create_structure): Added mode parameter.
+ (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
+ df_defs_record, df_uses_record, df_get_conditional_uses,
+ df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
+ df_entry_block_defs_collect, df_exit_block_uses_collect):
+ Added mode parameter to calls to df_ref_record, df_uses_record,
+ df_ref_create_structure.
+ (df_ref_equal_p, df_ref_compare): Added test for modes.
+ (df_ref_create_structure): Added code to set mode. Renamed
+ DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+ DF_REF_EXTRACT_OFFSET.
+ * df-core.c (df_print_byte_regset): New function.
+ * df-byte-scan.c: New file.
+ * df-problems.c (df_rd_transfer_function): Removed unnecessary
+ calls to BITMAP_FREE.
+ (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
+ (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
+ df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
+ df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
+ df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
+ df_byte_lr_local_compute, df_byte_lr_init,
+ df_byte_lr_confluence_0, df_byte_lr_confluence_n,
+ df_byte_lr_transfer_function, df_byte_lr_free,
+ df_byte_lr_top_dump, df_byte_lr_bottom_dump,
+ df_byte_lr_add_problem, df_byte_lr_simulate_defs,
+ df_byte_lr_simulate_uses,
+ df_byte_lr_simulate_artificial_refs_at_top,
+ df_byte_lr_simulate_artificial_refs_at_end): New function.
+ * dce.c (byte_dce_process_block): New function.
+ (dce_process_block): au is now passed in rather than computed
+ locally. Changed loops that look at artificial defs to not look
+ for conditional or partial ones, because there never are any.
+ (fast_dce): Now is able to drive byte_dce_process_block or
+ dce_process_block depending on the kind of dce being done.
+ (rest_of_handle_fast_dce): Add parameter to fast_dce.
+ (rest_of_handle_fast_byte_dce): New function.
+ (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
+ * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
+
+2008-04-21 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35019
+ * gcc.h: Added fortran options that take arguments to
+ DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
+ macros.
+
+2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
+ scalarization if on the LHS and not a full access.
+
+2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
+
+2008-04-18 Rafael Espíndola <espindola@google.com>
+
+ * tree-vrp.c (find_case_label_index): Fix the binary search.
+ (find_case_label_range): New.
+ (vrp_visit_switch_stmt): Use find_case_label_range.
+ (simplify_switch_using_ranges): Use find_case_label_range.
+
+2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
+ using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
+
+2008-04-18 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/15500:
+ * doc/cpp.texi (Implementation-defined behavior): Mention
+ -finput-charset.
+
+2008-04-18 Ian Lance Taylor <iant@google.com>
+
+ * fold-const.c (pointer_may_wrap_p): New static function.
+ (fold_comparison): Add another test for pointer overflow. Use
+ pointer_may_wrap_p to disable some false positives.
+
+2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
+ (fname_as_string): Match updated cpp_interpret_string prototype.
+ (fix_string_type): Support char16_t* and char32_t*.
+ (c_common_nodes_and_builtins): Add char16_t and char32_t (and
+ derivative) nodes. Register as builtin if C++0x.
+ (c_parse_error): Support CPP_CHAR{16,32}.
+ * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
+ (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
+ CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
+ CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
+ CTI_CHAR32_ARRAY_TYPE>: New elements.
+ (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
+ char32_type_node, signed_char32_type_node, char16_array_type_node,
+ char32_array_type_node): New defines.
+ * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
+ (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
+ (lex_string): Support CPP_STRING{16,32}, match updated
+ cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
+ (lex_charconst): Support CPP_CHAR{16,32}.
+ * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
+ and CPP_STRING{16,32}.
+
+2008-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35457
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-18 Jan Hubicka <jh@suse.cz>
+
+ * except.c (dw2_size_of_call_site_table,
+ sjlj_size_of_call_site_table): Use vector API for call_site_record.
+
+ * cgraphbuild.c (build_cgraph_edges): Update.
+ * tree-pass.h: Update comment.
+ * final.c (leaf_function_p): Update.
+ (leaf_renumber_regs): Update.
+ (rest_of_clean_state): Update.
+ * omp-low.c (expand_omp_parallel): Update.
+ * ipa-reference.c (analyze_function): Update.
+ * reorg.c (find_end_label): Update.
+ (optimize_skip): Update.
+ (fill_simple_delay_slots): Update.
+ (fill_simple_delay_slots): Update.
+ (make_return_insns): Update.
+ (dbr_schedule): Update.
+ * gimple-low.c (record_vars_into): Update.
+ * cfgbuild.c (make_edges): Update.
+ * function.c (assign_stack_local): Update.
+ (assign_parm_adjust_stack_rtl): Update.
+ (locate_and_pad_parm): Update.
+ (allocate_struct_function): Do not initialize stack_alignment_needed
+ and preferred_stack_boundary here.
+ (stack_protect_prologue): Update.
+ (stack_protect_epilogue): Update.
+ (expand_function_start): Initialize stack_alignment_needed,
+ preferred_stack_boundary and max_jumptable_ents.
+ (expand_function_end): Update.
+ (free_after_compilation): Do not NULLify epilogue_delay_list.
+ * function.h (struct rtl_data): Add stack_protect_guard,
+ stack_alignment_needed,
+ preferred_stack_boundary, epilogue_delay_list.
+ (struct function): Remove value_histograms, stack_alignment_needed,
+ preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
+ last_label_uid,
+ unexpanded_var_list, stack_protect_guard.
+ (current_function_epilogue_delay_list): Remove.
+ * ipa-type-escape.c (analyze_function): Update.
+ * gimplify.c (pop_gimplify_context): Update comment.
+ * calls.c (expand_call): Update.
+ (emit_library_call_value_1): Update.
+ * except.c (set_nothrow_function_flags): Update.
+ * cfgexpand.c (get_decl_align_unit): Update.
+ (create_stack_guard): Update.
+ (estimated_stack_frame_size): Update.
+ (expand_used_vars): Update.
+ (tree_expand_cfg): Free histogram earliers, init expansion variables.
+ * explow.c (allocate_dynamic_stack_space): Update.
+ * tree-ssa-live.c (remove_unused_locals): Update.
+ * varasm.c (mark_constant_pool): Update.
+ * tree-inline.c (remap_decls): Update.
+ (initialize_cfun): Update.
+ (declare_return_variable): Update.
+ (inline_forbidden_p): Update.
+ (expand_call_inline): Update.
+ (declare_inline_vars): Update.
+ (tree_function_versioning): Update.
+ * tree-flow.h (value_histograms): New.
+ (VALUE_HISTOGRAMS): New macro.
+ * basic-block.h (control_flow_graph): Add max_jumptable_ents,
+ last_label_uid.
+ * tree-cfg.c (set_bb_for_stmt): Update.
+ (replace_by_duplicate_decl): Update.
+ (move_block_to_fn): Update.
+ (new_label_mapper): Update.
+ (dump_function_to_file): Update.
+ * ipa-struct-reorg.c (build_data_structure): Update.
+ * cfgrtl.c (print_rtl_with_bb): Update.
+ * reload1.c (reload): Update.
+ (reload): Update.
+ * config/i386/i386.c (setup_incoming_varargs_64,
+ ix86_compute_frame_layout): Update.
+ * config/arc/arc.c (arc_output_function_epilogue): Update.
+
+2008-04-18 Marius Strobl <marius@FreeBSD.org>
+
+ * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
+ for FreeBSD as well.
+ * gthr-posix95.h: Likewise.
+
+2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/35838
+ * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
+ out the byte offset of the first subreg.
+
+2008-04-17 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
+ to split_ti instead of three separate calls with single member arrays.
+ (subti3 splitter): Ditto.
+ (adddi3 splitter): Ditto with split_di.
+ (subdi3 splitter): Ditto.
+ (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
+ two separate calls with single member arrays. Swap match_dup
+ operands 1 and 2 to better fit into the array.
+ (negdi2 splitter): Ditto with split_di.
+ (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
+ two separate calls with single member arrays. Swap match_dup operands
+ 6 and 7 to better fit into the array.
+
+2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (sse_builtin_type): New.
+ (bdesc_sse_args): Likewise.
+ (bdesc_sse_3arg): Removed.
+ (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+ (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
+ IX86_BUILTIN_ROUNDPS.
+ (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
+ bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
+ IX86_BUILTIN_ROUNDPS.
+ (ix86_expand_sse_4_operands_builtin): Removed.
+ (ix86_expand_sse_operands_builtin): New.
+ (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
+ and CODE_FOR_sse4_1_roundps.
+ (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+ Handle bdesc_sse_args. Remove bdesc_sse_3arg.
+
+2008-04-17 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/35907
+ * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
+ regs before frame pop when needed. If use_backchain_to_restore_sp
+ then load backchain into a temp reg to restore vr and vrsave. Add
+ code to restore vr after frame pop if possible.
+
+2008-04-17 Richard Guenther <rguenther@suse.de>
+
+ * tree-vn.c (expressions_equal_p): Do not check type
+ equality or compatibility before calling operand_equal_p.
+ * fold-const.c (operand_equal_p): Check equivalence of
+ integer constants before bailing out due to signedness or
+ precision differences.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
+ spurious differences in type qualification. Ignore types
+ for COMPONENT_REFs at all.
+
+2008-04-17 Christian Bruel <christian.bruel@st.com>
+
+ * config/sh/sh.c (expand_cbranchdi4): Use original operands for
+ msw_skip comparison.
+
+2008-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35739
+ * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
+ reg type.
+
+ PR tree-optimization/35899
+ * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
+ rather than TREE_OPERAND.
+
+2008-04-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35944
+ * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
+ temporary registers. Change operand predicate to general_operand.
+ (remainderxf3): Ditto.
+
+2008-04-16 Richard Guenther <rguenther@suse.de>
+
+ * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
+ * tree-affine.c (aff_combination_expand): Look through some
+ conversions.
+
+2008-04-15 Doug Kwan <dougkwan@google.com>
+
+ * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
+ for hex printing.
+ * tree-pretty-print.c (dump_generic_node): Ditto.
+ * final.c (output_addr_const): Ditto.
+ * dwarf2out.c (output_cfi): Ditto.
+ * c-pretty-print.c (pp_c_integer_constant): Ditto.
+ * print-rtl.c (print_rtx): Ditto.
+ * print-tree.c (print_node_brief, print_node): Ditto.
+ * c-common.c (match_case_to_enum_1): Ditto.
+ * sched-vis.c (print_value): Ditto.
+ * config/i386/i386.c (print_operand): Cast to long unsigned int
+ for hex printing.
+
+2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
+ * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
+ MS Windows VirtualProtect function.
+
+2008-04-15 Jan Hubicka <jh@suse.cz>
+
+ * gengtype.c (write_root): Param_is argument is OK.
+ * expr.c (expand_expr_real_1): Update call of get_exception_*.
+ * function.h: Include varray.h
+ (rtl_eh): New stucture based on except.c one.
+ (call_site_record): New forward declaration and vector type.
+ * calls.c (emit_call_1): Do not call
+ note_current_region_may_contain_throw.
+ * except.c (eh_status): Remove cur_region, try_region since they are
+ unused.
+ Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
+ exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
+ sjlj_fc, sjlj_exit_after to rth_eh in function.h.
+ Remove call_site_data_used, call_site_data_size.
+ Turn call_site_record into vector in function.h.
+ (note_current_region_may_contain_throw): Remove.
+ (get_exception_pointer, get_exception_filter): Do not take struct
+ function argument; update.
+ (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
+ add_ttypes_entry, add_ehspec_entry, assign_filter_values,
+ build_post_landing_pads, dw2_build_landing_pads,
+ sjlj_assign_call_site_values, sjlj_mark_call_sites,
+ sjlj_emit_function_enter, sjlj_emit_function_enter,
+ sjlj_emit_function_exit, sjlj_emit_dispatch_table,
+ sjlj_build_landing_pads, finish_eh_generation,
+ remove_exception_handler_label, remove_eh_handler,
+ maybe_remove_eh_handler, add_reachable_handler,
+ reachable_handlers, expand_builtin_eh_return, expand_eh_return,
+ add_action_record, collect_one_action_chain, add_call_site,
+ convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
+ sjlj_output_call_site_table, output_function_exception_table,
+ * except.h (note_current_region_may_contain_throw): Remove
+ (get_exception_pointer, get_exception_filter): Do not take struct
+ function argument.
+ * Makefile.in (GTFILES): Put varargs before struct function.
+
+2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
+ punt for STRING_CST.
+ (get_constraint_for): Deal with STRING_CST here instead.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-propagate.c (substitute_and_fold): Substitute
+ statements in a basic-block with a backward walk. Do not
+ substitute into dead statements but instead remove those.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
+ to zero, thus disable creation of SFTs.
+
+2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-predcom.c (suitable_reference_p): Return false if the
+ reference can throw.
+
+2008-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35751
+ * c-decl.c (finish_decl): If extern or static var has variable
+ size, set TREE_TYPE (decl) to error_mark_node.
+
+2008-04-15 Rafael Espíndola <espindola@google.com>
+
+ * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
+ variable arg1.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
+ * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
+ (visit_reference_op_load): Do walk vuse-vdef chains on
+ vn_reference_lookup.
+ (visit_reference_op_store): But do not here.
+ * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
+ vn_reference_lookup.
+ (vn_lookup_with_vuses): But do so here.
+
+2008-04-14 Ian Lance Taylor <iant@google.com>
+
+ * fold-const.c (fold_overflow_warning): Remove assertion.
+
+2008-04-15 Ben Elliston <bje@au.ibm.com>
+
+ * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
+ temp1 local variables.
+
+2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
+
+ PR target/35661
+ * config/i386/winnt.c (i386_pe_section_type_flags): Mark
+ ".text.unlikely" section as executable.
+
+2008-04-14 James E. Wilson <wilson@tuliptree.org>
+
+ * config/ia64/ia64.c (rtx_needs_barrier): Handle
+ UNSPEC_FR_SQRT_RECIP_APPROX_RES.
+ * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
+ (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
+ divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
+ divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
+ divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
+
+2008-04-14 Ian Lance Taylor <iant@google.com>
+
+ * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
+ * fold-const.c (fold_comparison): If appropriate, test
+ POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
+ (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
+ reassociating a pointer type.
+ * doc/invoke.texi (Optimize Options): Document that
+ -fstrict-overflow applies to pointer wraparound.
+
+2008-04-13 Jan Hubicka <jh@suse.cz>
+
+ * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
+
+2008-04-12 Andrew Pinski <pinskia@gmail.com>
+
+ * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
+ we are going to "save the world".
+
+2008-04-13 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
+ ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
+ operand 0 constraint, not "=".
+
+2008-04-11 James E. Wilson <wilson@tuliptree.org>
+
+ * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
+
+2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
+ of size of positions_needed * CHAR_BIT.
+
+2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/35897
+ * dse.c (store_info): Change positions_needed to unsigned
+ HOST_WIDE_INT.
+ (lowpart_bitmask): New.
+ (record_store): Cast to unsigned HOST_WIDE_INT for
+ positions_needed. Assert width <= size of positions_needed *
+ CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
+ (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
+ lowpart_bitmask to set mask.
+
+2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/constraints.md: New file.
+ * config/bfin/bfin.md: Include it.
+ (adddi3): Use satisfies_constraint functions instead of the old macros.
+ * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
+ CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
+ CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
+ CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
+ CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
+ CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
+ EXTRA_CONSTRAINT): Delete.
+ * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
+ reg_or_neg7bit_operand): Use satisfies_constraint functions instead
+ of the old macros.
+ * config/bfin/bfin.c: Include "tm-constrs.h".
+ (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
+ Use satisfies_constraint functions instead of the old macros.
+ * doc/md.texi (Blackfin Constraints): Update file name reference.
+
+2008-04-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35869
+ * tree-vrp.c (execute_vrp): Move switch statement update after
+ jump threading. Schedule another cfg cleanup run.
+
+2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35744
+ * attribs.c (decl_attributes): Return early on errorneous node.
+
+2008-04-10 Oleg Ryjkov <olegr@google.com>
+
+ * tree.h (struct tree_base): Added a new flag default_def_flag.
+ (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
+
+2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
+
+2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/35768
+ * pa.md: Define mode iterator P. Define mode attribute dwc.
+ (dcacheflush): Update pattern to use iterator P and attribute dwc.
+ (icacheflush): Likewise.
+ * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
+ !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
+
+2008-04-11 Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
+
+2008-04-10 Rafael Espíndola <espindola@google.com>
+
+ * tree-vrp.c (extract_range_from_binary_expr): Don't handle
+ TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
+ (extract_range_from_expr): The same.
+
+2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (GPR2): New mode iterator.
+ (seq): Add comment.
+ (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
+ *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
+ *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
+ Rewrite these to take two modes, the mode of comparison and the
+ mode of the destination.
+ * config/mips/mips.c (mips_expand_scc): Instead of having
+ paradoxical subreg as destination, expand "narrowing" scc if mode
+ of comparison is SI and target is requested in DI mode.
+ (mips_emit_int_order_test): Update comment. Make mode of
+ comparison match CMP0 rather than TARGET. When creating inverse
+ target use mode of TARGET.
+
+2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcov-dump.c (tag_summary): Only print summaries for the first
+ GCOV_COUNTERS_SUMMABLE counters.
+
+2008-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (absneg): New code iterator.
+ (absnegprefix): New code attribute.
+ (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
+ patterns using absneg code iterator.
+ (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
+ using absneg code iterator.
+ (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
+ *neg<mode>2 patterns using absneg code iterator.
+ (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+ *negextendsfdf2 patterns using absneg code iterator.
+ (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
+ *negextendsfxf2 patterns using absneg code iterator.
+ (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+ *negextendsfdf2 patterns using absneg code iterator.
+ * config/i386/sse.md (<code><mode>2): Macroize expander from
+ abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
+
+2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.h: Remove the remains of the recent search
+ & replace action of current_function_outgoing_args_size.
+
+2008-04-10 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35821
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
+ NEW_STMT_LIST is not NULL.
+
+2008-04-09 David Edelsohn <edelsohn@gnu.org>
+
+ PR libstdc++/35597
+ * toplev.c (process_options): Remove -ffunction-sections debugging
+ warning.
+
+2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
+ than gen_rtx_fmt_ee to perform more canonicalizations.
+
+2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR driver/35665
+ * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
+
+2008-04-09 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_stmt): Print complete bogus stmt.
+ (dump_function_to_file): Dump function arguments with types.
+
+2008-04-08 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (fold_widened_comparison): Do not allow
+ sign-changes that change the result.
+
+2008-04-08 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35839
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
+ kinds of indirect references.
+
+2008-04-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
+ GNU Fortran language string.
+
+2008-04-08 Rafael Espíndola <espindola@google.com>
+
+ * fold-canst.c (tree_call_nonnegative_warnv_p): New.
+ (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
+ * tree.h (tree_call_nonnegative_warnv_p): New.
+
+2008-04-08 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Clear out regno_reg_rtx
+ pointer.
+
+2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
+
+ Revert
+ 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the
+ same precedence as REG_POINTER and MEM_POINTER operands.
+
+2008-04-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35834
+ * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
+ for adding index to base.
+
+2008-04-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
+ (MINGW_ENABLE_EXECUTE_STACK): New.
+ (IN_LIBGCC2): For libgcc include windows.h file for
+ function declarations.
+
+2008-04-08 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
+ and tem2 if tem1 is not a REG or MULT.
+
+2008-04-08 Jan Hubicka <jh@suse.cz>
+
+ * function.h (incomming_args): Break out of struct function.
+ (function_subsections): Break out of struct function.
+ (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
+ return_rtx and hard_reg_initial_vals from struct function.
+ Kill inl_max_label_num.
+ (current_function_pops_args, current_function_args_info,
+ current_function_args_size, current_function_args_size,
+ current_function_pretend_args_size,
+ current_function_outgoing_args_size,
+ current_function_internal_arg_pointer, current_function_return_rtx):
+ Kill compatibility accestor macros.
+ * builtins.c (expand_builtin_apply_args_1): Update.
+ (expand_builtin_next_arg): Update.
+ * df-scan.c (df_get_call_refs): Update.
+ * dbxout.c (dbxout_function_end): Update.
+ * dwarf2out.c (dwarf2out_switch_text_section): Update.
+ (output_line_info): Update.
+ (secname_for_decl): Update.
+ (dwarf2out_var_location): Update.
+ * function.c (free_after_compilation): Update.
+ (assign_parm_find_stack_rtl): Update.
+ (assign_parms): Update.
+ (expand_dummy_function_end): Update.
+ (expand_function_end): Update.
+ * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
+ (expand_call): Update.
+ (emit_library_call_value_1): Update.
+ (store_one_arg): Update.
+ * varasm.c (initialize_cold_section_name): Update.
+ (unlikely_text_section): Update.
+ (unlikely_text_section_p): Update.
+ (assemble_start_function): Update.
+ (assemble_end_function): Update.
+ (default_section_type_flags): Update.
+ (switch_to_section): Update.
+ * integrate.c (set_decl_abstract_flags): Update.
+ (get_hard_reg_initial_val): Update.
+ (has_hard_reg_initial_val): Update.
+ (allocate_initial_values): Update.
+ * resource.c (init_resource_info): Update.
+ * config/alpha/alpha.c (NUM_ARGS): Update.
+ (direct_return): Update.
+ (alpha_va_start): Update.
+ (alpha_sa_size): Update.
+ (alpha_initial_elimination_offset): Update.
+ (alpha_expand_prologue): Update.
+ (alpha_start_function): Update.
+ (alpha_expand_epilogue): Update.
+ (unicosmk_initial_elimination_offset):
+ * config/alpha/alpha.md (call expander): Update.
+ * config/s390/s390.c (s390_register_info): Update.
+ (s390_register_info): Update.
+ (s390_frame_info): Update.
+ (s390_initial_elimination_offset): Update.
+ (s390_build_builtin_va_list): Update.
+ (s390_va_start): Update.
+ * config/spu/spu.c (direct_return): Update.
+ (spu_expand_prologue): Update.
+ (spu_initial_elimination_offset): Update.
+ (spu_build_builtin_va_list): Update.
+ (spu_va_start): Update.
+ * config/sparc/sparc.c (sparc_init_modes): Update.
+ (sparc_compute_frame_size): Update.
+ (function_value): Update.
+ * config/m32r/m32r.c (m32r_compute_frame_size): Update.
+ * config/i386/i386.md (return expander): Update.
+ * config/i386/i386.c (ix86_va_start): Update.
+ (ix86_can_use_return_insn_p): Update.
+ (ix86_compute_frame_layout): Update.
+ (ix86_expand_epilogue): Update.
+ * config/sh/sh.c (output_stack_adjust): Update.
+ (calc_live_regs): Update.
+ (sh_expand_prologue): Update.
+ (sh_builtin_saveregs): Update.
+ (sh_va_start): Update.
+ (initial_elimination_offset): Update.
+ (sh_allocate_initial_value): Update.
+ (sh_function_ok_for_sibcall): Update.
+ (sh_get_pr_initial_val): Update.
+ * config/sh/sh.md (return expander): Update.
+ * config/avr/avr.c (frame_pointer_required_p): UPdate.
+ * config/crx/crx.c (crx_compute_frame): UPdate.
+ (crx_initial_elimination_offset): UPdate.
+ * config/xtensa/xtensa.c (compute_frame_size): Update
+ (xtensa_builtin_saveregs): Update.
+ (xtensa_va_start): Update.
+ (order_regs_for_local_alloc): Update.
+ * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
+ (xstormy16_expand_builtin_va_start): Update.
+ * config/fr30/fr30.c (fr30_compute_frame_size): Update.
+ * config/m68hc11/m68hc11.md (return expanders): Update.
+ * config/m68hc11/m68hc11.c (expand_prologue): Update.
+ (expand_epilogue): Update.
+ * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
+ (cris_simple_epilogue): Update.
+ (cris_expand_prologue): Update.
+ (cris_expand_epilogue): Update.
+ * config/iq2000/iq2000.c (iq2000_va_start): Update.
+ (compute_frame_size): Update.
+ * config/mt/mt.c (mt_compute_frame_size): Update.
+ * config/mn10300/mn10300.c (expand_prologue): Update.
+ (expand_epilogue): Update.
+ (initial_offset): Update.
+ (mn10300_builtin_saveregs):
+ * config/mn10300/mn10300.md (return expander): Update.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Update.
+ (ia64_initial_elimination_offset): Update.
+ (ia64_initial_elimination_offset): Update.
+ (ia64_expand_prologue): Update.
+ * config/m68k/m68k.md (return expander): Update.
+ * config/rs6000/rs6000.c (rs6000_va_start): Update.
+ (rs6000_stack_info): Update.
+ * config/mcore/mcore.c (layout_mcore_frame): Update.
+ (mcore_expand_prolog): Update.
+ * config/arc/arc.c (arc_compute_frame_size): Update.
+ * config/score/score3.c (score3_compute_frame_size): Update.
+ * config/score/score7.c (score7_compute_frame_size): Update.
+ * config/arm/arm.c (use_return_insn): Update.
+ (thumb_find_work_register): Update.
+ (arm_compute_save_reg_mask): Update.
+ (arm_output_function_prologue): Update.
+ (arm_output_epilogue): Update.
+ (arm_size_return_regs): Update.
+ (arm_get_frame_offsets): Update.
+ (arm_expand_prologue): Update.
+ (thumb_exit): Update.
+ (thumb_unexpanded_epilogue): Update.
+ (thumb1_output_function_prologue): Update.
+ * config/pa/pa.md (return expander): Update.
+ * config/pa/pa.c (compute_frame_size): Update.
+ (hppa_builtin_saveregs): Update.
+ * config/mips/mips.c (mips_va_start): Update.
+ (mips16_build_function_stub): Update.
+ (mips_compute_frame_info): Update.
+ (mips_restore_gp): Update.
+ (mips_output_function_prologue): Update.
+ (mips_expand_prologue): Update.
+ * config/v850/v850.c (compute_frame_size): Update.
+ (expand_prologue): * config/mmix/mmix.c (along): update.
+ (mmix_initial_elimination_offset): update.
+ (mmix_reorg): update.
+ (mmix_use_simple_return): update.
+ (mmix_expand_prologue): update.
+ (mmix_expand_epilogue): Update.
+ * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
+ (emit_link_insn): Update.
+
+2008-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
+ __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
+ instructions.
+ * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
+ atmega103 device.
+
+2008-04-07 Jan Hubicka <jh@suse.cz>
+
+ * function.h (rtl): Rename to x_rtl.
+ (crtl): New define.
+ (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
+ frame_offset, stack_check_probe_note, arg_pointer_save_area,
+ used_temp_slots avail_temp_slots, temp_slot_level,
+ nonlocal_goto_handler_labels): Update accesstors.
+ (rtl): New global variable.
+ (struct function): Move some fileds to rtl_data.
+ (get_arg_pointer_save_area): Update prototype.
+ * builtins.c (expand_builtin_setjmp_receiver): Update call of
+ get_arg_pointer_save_area.
+ * expr.c (init_expr): Update
+ * function.c (get_frame_size): Update
+ (assign_stack_local): Update
+ (expand_function_end): Update.
+ (get_art_pointer_save_area): Update
+ * function.h
+ * emit-rtl.c (rtl): Declare.
+ (regno_reg_rtx): Declare.
+ (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
+ Update.
+ (gen_reg_rtx): Update.
+ * varasm.c (n_deferred_constatns): Update accestor.
+ (init_varasm_status): Do not allocate varasm_status.
+ (force_const_mem, get_pool_size, output_constant_pool): Update.
+ * stmt.c (force_label_rtx): Do not use x_ prefixes.
+ (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
+ * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
+ * sparc/sparc.h (INIT_EXPANDERS): Update.
+ * ia64/ia64.h (INIT_EXPANDERS): Update.
+
+2008-04-07 James E. Wilson <wilson@tuliptree.org>
+
+ * reload.c (push_secondary_reload): Add missing break to for loop.
+
+2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/PR28690
+ * rtlanal.c: Update copyright years.
+ (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
+ as REG_POINTER and MEM_POINTER operands.
+ * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
+ (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
+ * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
+ * gcse.c: Update copyright years.
+ (pre_delete): Call gen_reg_rtx_and_attrs.
+ (hoist_code): Likewise.
+ (build_store_vectors): Likewise.
+ (delete_store): Likewise.
+ * loop-invariant.c (move_invariant_reg): Likewise.
+ Update copyright years.
+
+2008-04-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
+ control string instead of quoted.
+
+2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi: Rewrite of subreg section.
+
+2008-04-07 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/35842
+ * config/i386/i386.c (legitimize_pic_address): Add treating
+ of dllimport SYM_REF's.
+ (legitimize_dllimport_symbol): Add prototype.
+
+2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
+ reference in constructor with non self-referential type.
+
+2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ Removal of Return with Depressed Stack Pointer support
+ * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
+ (ECF_SP_DEPRESSED): Likewise.
+ (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
+ * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
+ (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+ (expand_call): Do not test ECF_SP_DEPRESSED.
+ * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+ * function.c (keep_stack_depressed): Delete.
+ (handle_epilogue_set): Likewise.
+ (update_epilogue_consts): Likewise.
+ (emit_equiv_load): Likewise.
+ (thread_prologue_and_epilogue_insns): Remove support for Return with
+ Depressed Stack Pointer.
+ * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+
+2008-04-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35400
+ * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
+ information from SSA_NAMEs.
+
+2008-04-06 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (avr_mega_p): Remove declaration.
+ (AVR_MEGA): Remove macro.
+ * config/avr/avr.c (avr_mega_p): Remove variable.
+ (avr_override_options): Remove inicializion of avr_mega_p.
+ Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+ (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+ (avr_jump_mode): (Ditto.).
+ (avr_output_progmem_section_asm_op): (Ditto.).
+ (avr_asm_init_sections): (Ditto.).
+ (avr_asm_init_sections): (Ditto.).
+ (avr_rtx_costs): (Ditto.).
+ * config/avr/avr.md: (Ditto.).
+ * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
+ '__AVR_MEGA__'.
+
+2008-04-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35842
+ * tree-ssa-address.c (fixed_address_object_p): Adjust to match
+ is_gimple_invariant_address.
+
+2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gcc.c (default_compilers): Sync Fortran extensions list with
+ that in fortran/lang-specs.h.
+ * doc/invoke.texi: Likewise.
+ * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
+ * dwarf2out.c (gen_compile_unit_die): Likewise.
+
+2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
+
+ * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
+
+2008-04-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/12329
+ * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
+ attribute is used for nested functions.
+
+2008-04-05 Jan Hubicka <jh@suse.cz>
+
+ * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
+
+ * tree-dump.c (dump_enable_all): Remove prototype; do not accept
+ letter argument.
+ (dump_files): Update.
+ (enable_rtl_dump_file): Do not accept letter argument.
+ * tree-pass.h (dump_file_info): Remove letter argument.
+ * toplev.c (decode_d_option): Update -da handling.
+ * toplev.h (enable_rtl_dump_file): Update prototype.
+ * passes.c (register_one_dump_file): Do not accept IPA argument; work
+ it out based on pass type.
+ (register_dump_files_1): Likewise.
+ (init_optimization_passes): Update register_one_dump_file calls.
+ (execute_one_pass): Sanity check that IPA passes are called at IPA
+ level and RTL passes at RTL level.
+ (execute_pass_list): IPA pass can not be after or subpass of
+ GIMPLE/RTL pass.
+ (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
+ disallov RTL subpasses of IPA subpasses.
+
+2008-04-05 Ben Elliston <bje@au.ibm.com>
+
+ * tree-cfg.c (need_fake_edge_p): Return false for calls to
+ builtins that return exactly once and do not throw. Cache call to
+ call_expr_flags.
+
+2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR rtl-optimization/34916
+ PR middle-end/35519
+ * combine.c (create_log_links): Do not create duplicate LOG_LINKS
+ between instruction pairs.
+
+2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * doc/invoke.texi: Document -mbitops for SH.
+ * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
+ * config/sh/predicates.md (bitwise_memory_operand): New predicate.
+ * config/sh/sh.c (print_operand): Add %t operand code.
+ * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
+ * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
+ (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
+ (extendqihi2): Likewise.
+ (movqi_i): Likewise.
+ (insv): Use bset, bclr and bst instructions for SH2A if possible.
+ (extv): Use bld instruction for SH2A if possible.
+ (extzv): Likewise.
+ (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
+ bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
+ bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
+ (bset.b, bclr.b): Define peepholes.
+ * config/sh/sh.opt (mbitops): New option.
+
+2008-04-04 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35620
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
+ and view convert expression.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35364
+ * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
+
+2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
+
+ * config/i386/cpuid.h (bit_AES): New.
+ (bit_PCLMUL): Likewise.
+
+ * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
+ (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
+ SSE2 if AES or PCLMUL is enabled.
+ (ix86_builtins): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
+ IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
+ (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
+ (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
+ __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
+ __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
+ __builtin_ia32_aeskeygenassist128 and
+ __builtin_ia32_pclmulqdq128.
+ * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
+ (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
+ IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
+
+ * config/i386/i386.h (TARGET_AES): New.
+ (TARGET_PCLMUL): Likewise.
+ (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
+
+ * config/i386/i386.md (UNSPEC_AESENC): New.
+ (UNSPEC_AESENCLAST): Likewise.
+ (UNSPEC_AESDEC): Likewise.
+ (UNSPEC_AESDECLAST): Likewise.
+ (UNSPEC_AESIMC): Likewise.
+ (UNSPEC_AESKEYGENASSIST): Likewise.
+ (UNSPEC_PCLMUL): Likewise.
+
+ * config/i386/i386.opt (maes): New.
+ (mpclmul): Likewise.
+
+ * config/i386/sse.md (aesenc): New pattern.
+ (aesenclast): Likewise.
+ (aesdec): Likewise.
+ (aesdeclast): Likewise.
+ (aesimc): Likewise.
+ (aeskeygenassist): Likewise.
+ (pclmulqdq): Likewise.
+
+ * config/i386/wmmintrin.h: New.
+
+ * doc/extend.texi: Document AES and PCLMUL built-in function.
+
+ * doc/invoke.texi: Document -maes and -mpclmul.
+
+2008-04-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * function.c (free_after_parsing): Replace with
+ cxx_push_function_context from C++ front-end.
+ (allocate_struct_function): Don't call langhook.
+ * langhooks.h (struct lang_hooks_for_functions): Delete.
+ (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
+ member "function".
+ * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
+ (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
+ LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+ LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
+ (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
+ remove LANG_HOOKS_FUNCTION_INITIALIZER.
+ * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
+
+ * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
+ Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35440
+ * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
+ for all types.
+
+2008-04-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35823
+ * fold-const.c (optimize_minmax_comparison): Use the correct
+ type for the constant in the simplified comparison.
+
+2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
+
+ * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
+ Pass L2 size as "--param l2-cache-size" to the compiler.
+ (decode_l2_cache): New function to decode L2 cache parameters using
+ 0x8000006 extended cpuid function.
+ (detect_caches_amd): Determine parameters of L2 cache using
+ decode_l2_caches function.
+ (decode_caches_intel): Decode L2 cache parameters.
+ (detect_caches_intel): Determine L2 cache parameters using
+ decode_caches_intel and decode_l2_caches functions.
+
+2008-04-03 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
+ secondary input reload for subword loads from the constant pool.
+
+2008-04-03 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35713
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
+ constants of the appropriate size for runtime calculations.
+
+ PR c/35712
+ * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
+ decimal-float literal constant zero.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35738
+ * c-parser.c (c_parser_omp_atomic): Call
+ default_function_array_conversion on the RHS.
+
+ PR middle-end/35818
+ * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
+ call is_variable_sized if decl has incomplete type.
+
+2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-protos.h (ix86_aligned_p): Removed.
+
+2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
+ iterators.
+ (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
+ (sgt<u>): Merge sgt and sgtu into new expander.
+ (sgt, sgtu): Remove expanders.
+ (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
+ (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
+ (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
+ *sgtu_<mode>_mips16 into new pattern.
+ (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
+ (sge<u>): Merge sge and sgeu into new expander.
+ (sge, sgeu): Remove expanders.
+ (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
+ new pattern.
+ (*sge_<mode>, second *sge_<mode>): Remove patterns.
+ (slt<u>): Merge slt and sltu into new expander.
+ (slt, sltu): Remove expanders.
+ (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
+ (*slt_<mode>, *sltu_<mode>): Remove patterns.
+ (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
+ *sltu_<mode>_mips16 into new pattern.
+ (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
+ (sle<u>): Merge sle and sleu into new expander.
+ (sle, sleu): Remove expanders.
+ (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
+ (*sle_<mode>, *sleu_<mode>): Remove patterns.
+ (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
+ *sleu_<mode>_mips16 into new pattern.
+ (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
+
+2008-04-03 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/35795
+ * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
+ * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+ * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
+ * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
+ * score/score3.c (score3_output_mi_thunk): Likewise.
+ * score/score7.c (score7_output_mi_thunk): Likewise.
+ * mips/mips.c (mips_output_mi_thunk): Likewise.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (extract_range_from_unary_expr): Handle all
+ conversions. Simplify code.
+
+2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
+
+2008-04-03 Tom Tromey <tromey@redhat.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
+ * config/bfin/t-bfin-linux (generated_files): Add
+ linux-sysroot-suffix.h.
+ * doc/install.texi (Prerequisites): Require make 3.80.
+ * doc/sourcebuild.texi (Front End Directory): Document new
+ variable.
+ * Makefile.in (generated_files): New variable.
+ (ALL_HOST_OBJS): New variable.
+ ($(ALL_HOST_OBJS)): New target.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
+ (remap_block): Call id->transform_lang_insert_block instead
+ of langhook.
+ (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
+ Set id.transform_lang_insert_block to NULL.
+ (clone_body): Move to cp/optimize.c
+ * tree-inline.h (struct copy_body_data): Change
+ transform_lang_insert_block to function pointer.
+ (copy_generic_body, copy_decl_no_change): Export.
+ * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
+ * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
+ (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
+
+ * c-tree.h (insert_block): Kill.
+ * c-decl.c (insert_block): Kill.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+ LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+ * c-tree.h (c_push_function_context, c_pop_function_context): Remove
+ argument.
+ * c-decl.c (c_push_function_context, c_pop_function_context): Remove
+ argument, call {push,pop}_function_context from here.
+ * c-parser.c: Use c_{push,pop}_function_context.
+
+ * function.c (push_function_context_to): Move meat ...
+ (push_function_context): ... here. Simplify.
+ * function.c (pop_function_context_from): Move meat ...
+ (pop_function_context): ... here. Simplify.
+ * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
+ leave_nested).
+ * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+ LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+ (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
+ * tree.h (push_function_context_to, pop_function_context_from): Remove.
+
+2008-04-03 Ben Elliston <bje@au.ibm.com>
+
+ * expmed.c (extract_force_align_mem_bit_field): Remove.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35800
+ * expr.h (try_casesi): Adjust prototype.
+ * expr.c (try_casesi): Take fallback label as extra parameter.
+ Use that for gen_casesi if default_label is NULL.
+ * stmt.c (expand_case): Pass fallback label to try_casesi,
+ make sure to fill gaps with a fallback label if default_label
+ is not present.
+
+2008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
+
+ PR target/35801
+ * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
+
+2008-04-03 Ben Elliston <bje@au.ibm.com>
+
+ * expmed.c (extract_split_bit_field): Remove if (0) code.
+ * tree-ssa-structalias.c (do_sd_constraint): Likewise.
+ (do_ds_constraint): Likewise.
+
+2008-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/cppopts.texi (-dU): Document.
+ * c-common.h (flag_dump_macros): Update comment.
+ * c-opts.c (handle_OPT_d): Handle -dU.
+ * c-ppoutput.c (macro_queue, define_queue, undef_queue,
+ dump_queued_macros, cb_used_define, cb_used_undef): New.
+ (init_pp_output): Handle -dU.
+ (cb_line_change): Call dump_queued_macros.
+ * toplev.c (decode_d_option): Accept -dU as preprocessor option.
+
+2008-04-02 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/predicates.md (io_address_operand): New predicate.
+ * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
+ * config/avr/avr.c (avr_io_address_p): Remove function.
+ (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
+ 'avr_io_address_p' function.
+ (out_movhi_r_mr): (Ditto.).
+ (out_movqi_mr_r): (Ditto.).
+ (out_movhi_mr_r): (Ditto.).
+ (avr_address_cost): (Ditto.).
+
+2008-04-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
+ Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
+ in 32bit mode when XMM registers are available to avoid store
+ forwarding stalls.
+ (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
+ corresponding post-reload splitters.
+
+2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
+ and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
+ __builtin_ia32_roundss.
+ (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
+ __builtin_ia32_shufpd, __builtin_ia32_roundsd and
+ __builtin_ia32_roundss.
+ (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
+ IX86_BUILTIN_SHUFPD here.
+
+2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (plogic): New.
+ (plogicprefix): Likewise.
+
+ * config/i386/mmx.md (mmx_<code><mode>3): New.
+ (mmx_and<mode>3): Removed.
+ (mmx_ior<mode>3): Likewise.
+ (mmx_xor<mode>3): Likewise.
+
+ * config/i386/sse.md (<code><mode>3): New.
+ (*<code><mode>3): Likewise.
+ (*<code><mode>3): Likewise.
+ (<code><mode>3): Likewise.
+ (*sse_<code><mode>3): Likewise.
+ (*sse2_<code><mode>3): Likewise.
+ (<code>tf3): Likewise.
+ (*<code>tf3): Likewise.
+ (and<mode>3): Likewise.
+ (*and<mode>3): Likewise.
+ (ior<mode>3): Removed.
+ (*ior<mode>3): Likewise.
+ (xor<mode>3): Likewise.
+ (*xor<mode>3): Likewise.
+ (*and<mode>3): Likewise.
+ (*ior<mode>3): Likewise.
+ (*xor<mode>3): Likewise.
+ (and<mode>3): Likewise.
+ (*sse_and<mode>3): Likewise.
+ (*sse2_and<mode>3): Likewise.
+ (andtf3): Likewise.
+ (*andtf3): Likewise.
+ (ior<mode>3): Likewise.
+ (*sse_ior<mode>3): Likewise.
+ (*sse2_ior<mode>3): Likewise.
+ (iortf3): Likewise.
+ (*iortf3): Likewise.
+ (xor<mode>3): Likewise.
+ (*sse_xor<mode>3): Likewise.
+ (*sse2_xor<mode>3): Likewise.
+ (xortf3): Likewise.
+ (*xortf3): Likewise.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ PR tree-optimization/34793
+ * tree-vrp.c (struct switch_update): New structure.
+ (to_remove_edges, to_update_switch_stmts): New VECs.
+ (simplify_switch_using_ranges): New function. Remove not taken
+ case labels and edges.
+ (simplify_stmt_using_ranges): Call it.
+ (identify_jump_threads): Mark edges we have queued for removal
+ so we don't thread them.
+ (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
+ case label vector.
+ * tree-cfg.c (group_case_labels): Deal with missing default label.
+ (tree_verify_flow_info): Allow missing default label.
+ * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
+ (emit_case_nodes): Likewise.
+ (expand_case): Do not rely on the default label to be present.
+ * expr.c (try_casesi): Deal with NULL default_label.
+ (do_tablejump): Likewise.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
+ SWITCH_EXPR here ...
+ (vrp_visit_switch_stmt): ... but here (new function).
+ (find_case_label_index): New helper function.
+ (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * fwprop.c: Fix ISO-C99ism.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35752
+ * Makefile.in (objdir): Set it here.
+ * configure.ac: Not here. Find dynamic linker characteristics.
+ * exec-tool.in: Use them.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (expand_var): Delete it.
+ * expr.h (expand_var): Delete prototype.
+ * function.c (expand_function_start): Use expand_decl instead.
+ * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
+ langhook.
+
+2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
+
+ PR rtl-optimization/35542
+ * fwprop.c (forward_propagate_and_simplify): Replace
+ loc_reg_mentioned_in_p with reg_mentioned_p.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/35281
+ * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
+ (propagate_rtx_1): Handle PR_HANDLE_MEM.
+ (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
+ (varying_mem_p): Move above propagate_rtx.
+ (all_uses_available_at): Do not check MEMs.
+
+2008-04-02 Rafael Espíndola <espindola@google.com>
+
+ * tree-vrp.c (extract_code_and_val_from_cond): Remove.
+ (register_edge_assert_for_2): Split the cond argument.
+ (register_edge_assert_for_1): Adjust for the change in
+ register_edge_assert_for_2.
+ (register_edge_assert_for): Split the cond argument.
+ (find_switch_asserts): Adjust for the change in
+ register_edge_assert_for.
+
+2008-04-02 Kai Tietz <kai.tietz@onevision.com>
+
+ * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
+ * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
+ offsets for 64-bit mingw.
+ * config/i386/i386.c (ix86_pass_by_reference): Correct calling
+ abi for x86_64-pc-mingw.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (extract_range_from_assert): Make sure to not
+ produce range min/max with TREE_OVERFOW set.
+ If merging a anti-range and a range keep the anti-range if
+ the range covers all values of the type.
+ (register_edge_assert_for_2): Only allow sign-changing
+ conversions in detecting canonical range checks. Also
+ register an assert for the unsigned name if useful.
+
+ PR tree-optimization/35787
+ * tree-vrp.c (vrp_val_max): New function.
+ (vrp_val_min): Likewise.
+ (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
+ (vrp_val_is_min): Likewise.
+ (supports_overflow_infinity): Use vrp_val_{min,max}.
+ (negative_overflow_infinity): Likewise.
+ (positive_overflow_infinity): Likewise.
+ (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
+ (is_positive_overflow_infinity): Likewise.
+ (is_overflow_infinity): Likewise.
+ (avoid_overflow_infinity): Use vrp_val_{min,max} and
+ vrp_val_is_{min,max}.
+ (set_and_canonicalize_value_range): Canonicalize anti-ranges
+ to ranges if possible. Avoid empty ranges.
+
+2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/35705
+ * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
+ the expression is a function address.
+
+2008-04-01 George Helffrich <george@gcc.gnu.org>
+
+ PR fortran/35154, fortran/23057
+ * dbxout.c: Emit .stabs debug info for Fortran COMMON block
+ variables as base symbol name + offset using N_BCOMM/N_ECOMM.
+ (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
+ (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
+ in common.
+ (dbxout_syms): Check for COMMON-based symbol and wrap in
+ N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
+ in bracket for efficiency.
+
+ * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
+ using DW_TAG_common_block + member offset.
+ (add_pubname_string): New function.
+ (dw_expand_expr): New function to find block name and offset for
+ COMMON var.
+ (common_check): New function to check whether symbol in Fortran COMMON.
+ (gen_variable_die): If COMMON, use DW_TAG_common_block.
+
+2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35436
+ * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
+
+2008-04-02 Ben Elliston <bje@au.ibm.com>
+
+ * config/v850/v850.md (casesi): Remove if (0) code.
+ * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
+
+2008-04-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (rex64suffix): New mode attribute.
+ (floathi<mode>2): Disable expander for SSE math.
+ (*floathi<mode>2_1): New insn insn_and_split pattern.
+ (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
+ corresponding post-reload splitters.
+ (*floathi<mode>2_i387): New macroized insn pattern.
+ (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
+ (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
+ insn_and_split pattern.
+ (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
+ New macroized instruction patterns and corresponding post-reload
+ splitters.
+ (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
+ and corresponding post-reload splitters.
+ (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
+ New macroized instruction patterns.
+ (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
+ macroized instruction patterns and corresponding post-reload splitters.
+ (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
+ corresponding post-reload splitters.
+ (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
+ New macroized instruction patterns.
+ (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
+ corresponding post-reload splitters.
+ (*floatsi<mode>2_i387): New macroized instruction patterns.
+
+2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (smaxmin): New.
+ (umaxmin): Likewise.
+ (maxminiprefix): Likewise.
+ (maxminfprefix): Likewise.
+ (<code><mode>3): Likewise.
+ (smin<mode>3): Removed.
+ (smax<mode>3): Likewise.
+
+ * config/i386/mmx.md (mmx_<code>v2sf3): New.
+ (mmx_<code>v4hi3): Likewise.
+ (mmx_<code>v8qi3): Likewise.
+ (mmx_smaxv2sf3): Removed.
+ (mmx_sminv2sf3): Likewise.
+ (mmx_umaxv8qi3): Likewise.
+ (mmx_smaxv4hi3): Likewise.
+ (mmx_uminv8qi3): Likewise.
+ (mmx_sminv4hi3): Likewise.
+
+ * config/i386/sse.md (<addsub><mode>3): New.
+ (*<addsub><mode>3): Likewise.
+ (<sse>_vm<addsub><mode>3): Likewise.
+ (<maxmin><mode>3): Likewise.
+ (*<maxmin><mode>3_finite): Likewise.
+ (*<maxmin><mode>3): Likewise.
+ (<sse>_vm<maxmin><mode>3): Likewise.
+ (sse3_h<addsub>v4sf3): Likewise.
+ (sse3_h<addsub>v2df3): Likewise.
+ (<maxmin>v16qi3): Likewise.
+ (*<maxmin>v16qi3): Likewise.
+ (<maxmin>v8hi3): Likewise.
+ (*<maxmin>v8hi3): Likewise.
+ (*sse4_1_<maxmin><mode>3): Likewise.
+ (*sse4_1_<maxmin><mode>3): Likewise.
+ (add<mode>3): Removed.
+ (*add<mode>3): Likewise.
+ (<sse>_vmadd<mode>3): Likewise.
+ (sub<mode>3): Likewise.
+ (*sub<mode>3): Likewise.
+ (<sse>_vmsub<mode>3): Likewise.
+ (smin<mode>3): Likewise.
+ (*smin<mode>3_finite): Likewise.
+ (*smin<mode>3): Likewise.
+ (<sse>_vmsmin<mode>3): Likewise.
+ (smax<mode>3): Likewise.
+ (*smax<mode>3_finite): Likewise.
+ (*smax<mode>3): Likewise.
+ (<sse>_vmsmax<mode>3): Likewise.
+ (sse3_haddv4sf3): Likewise.
+ (sse3_haddv2df3): Likewise.
+ (sse3_hsubv4sf3): Likewise.
+ (sse3_hsubv2df3): Likewise.
+ (umaxv16qi3): Likewise.
+ (*umaxv16qi3): Likewise.
+ (smaxv8hi3): Likewise.
+ (*smaxv8hi3): Likewise.
+ (*sse4_1_smax<mode>3): Likewise.
+ (*sse4_1_umax<mode>3): Likewise.
+ (uminv16qi3): Likewise.
+ (*uminv16qi3): Likewise.
+ (sminv8hi3): Likewise.
+ (*sminv8hi3): Likewise.
+ (*sse4_1_smin<mode>3): Likewise.
+ (*sse4_1_umin<mode>3): Likewise.
+
+2008-04-01 Rafael Espíndola <espindola@google.com>
+
+ * tree-cfg.c (verify_expr): remove in_phi.
+ (verify_stmt): Don't call walk_tree with verify_expr. Use
+ is_gimple_min_invariant instead of is_gimple_val.
+
+2008-04-01 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/include/gpl_v3.texi: Update for manpage generation.
+ * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
+ gpl.texi.
+ * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
+ * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
+ gpl_v3.texi instead of gpl.texi.
+ (gpl.pod): New.
+
+2008-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR pch/13675
+ * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
+
+2008-04-01 Rafael Espíndola <espindola@google.com>
+
+ * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
+ (extract_code_and_val_from_cond): Use
+ extract_code_and_val_from_cond_with_ops.
+
+2008-04-01 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Free epilogue_delay_list.
+ (prepare_function_start): Assert that previous compilation was freed.
+
+2008-04-01 Jan Hubicka <jh@suse.cz>
+ Jim Wilson <wilson@tuliptree.org>
+ Andreas Tobler <andreast@gcc.gnu.org>
+
+ PR middle-end/35781
+ * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
+ rtl.emit instead cfun->emit.
+ * sparc/sparc.h (INIT_EXPANDERS): Likewise.
+ * ia64/ia64.h (INIT_EXPANDERS): Likewise.
+
+2008-04-01 Ben Elliston <bje@au.ibm.com>
+
+ * doc/c-tree.texi (Function Basics): Fix grammatical error.
+
+2008-03-31 Seongbae Park <seongbae.park@gmail.com>
+
+ * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
+ New options
+ (fprofile-use): Add var flag_profile_use
+ * coverage.c (coverage_begin_output): Do not open a gcno file for
+ output only if -ftest-coverage is set.
+ Do not add getpwd() to gcda file path.
+ (build_gcov_info): Check the new flag
+ flag_profile_datafile_relative_path.
+ (coverage_init): Use profile_data_prefix.
+ Read profile counter only if flag_profile_use is set.
+ * opts.c (common_handle_option): New option fprofile-use=,
+ fprofile-dir=, fprofile-generate=.
+ * toplev.c (profile_data_prefix): New variable definition.
+ * toplev.h (profile_data_prefix): New declaration.
+ * doc/invoke.tex (Option Summary, Optimization Options):
+ Add new options.
+
+2008-03-31 James E. Wilson <wilson@tuliptree.org>
+
+ * varasm.c (output_constant_pool_1): In LABEL_REF check,
+ use tmp consistently.
+
+ PR target/35695
+ * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
+ * config/ia64/ia64.c (rtx_needs_barrier): Handle
+ UNSPEC_FR_RECIP_APPROX_RES.
+ * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
+
+2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35750
+ * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
+
+2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30186
+ * fold-const.c (fold_indirect_ref_1): Support accessing non first
+ element of the vector via a pointer.
+
+2008-03-31 Ian Lance Taylor <iant@google.com>
+
+ * tlink.c (scan_linker_output): Look for symbol name in single quotes.
+
+2008-03-31 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_setjmp_receiver): Update call of
+ get_arg_pointer_save_area.
+ * expr.c (init_expr): Just clear out rtl.expr.
+ * function.c (free_after_compilation): Clear out whole RTL structure.
+ (get_func_frame_size): Merge into ...
+ (get_frame_size): ... this one.
+ (assign_stack_local_1): Merge into ...
+ (assign_stack_local): ... this one.
+ (expand_function_end): Update call of get_arg_pointer_save_area.
+ (get_art_pointer_save_area): Remove cfun argument.
+ * function.h (emit_status): regno_pointer_align does not need length
+ attribute. Move x_regno_reg_rtx to ...
+ (regno_reg_rtx): ... new global array.
+ (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
+ (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
+ apply_args_value, forced_labels, stack_pointer_delta):
+ Update accestors.
+ (struct varasm_status): Move here from varasm.c
+ (struct rtl_data): New. Move here some fields from struct function.
+ (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
+ frame_offset, stack_check_probe_note, arg_pointer_save_area,
+ used_temp_slots avail_temp_slots, temp_slot_level,
+ nonlocal_goto_handler_labels): Update accesstors.
+ (rtl): New global variable.
+ (struct function): Move some fileds to rtl_data.
+ (get_arg_pointer_save_area): Update prototype.
+ * emit-rtl.c (rtl): Declare.
+ (regno_reg_rtx): Declare.
+ (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
+ Update.
+ (gen_reg_rtx): Update.
+ (init_virtual_regs): Do not tate emit_status argument.
+ (init_emit): Do not allocate emit.
+ * varasm.c (varasm_statuc): Move to function.h.
+ (n_deferred_constatns): Update accestor.
+ (init_varasm_status): Do not allocate varasm_status.
+ (force_const_mem, get_pool_size, output_constant_pool): Update.
+ * stmt.c (force_label_rtx): Do not use x_ prefixes.
+ (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
+
+2008-03-31 Zdenek Dvorak <ook@ucw.cz>
+
+ PR rtl-optimization/35729
+ * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
+ references.
+
+2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/32000
+ * config/i386/i386.md (*movti_internal): Emit unaligned SSE
+ load/store if memory is unaligned.
+ (*movti_rex64): Likewise.
+
+ * config/i386/predicates.md (misaligned_operand): New.
+
+2008-03-31 Andrew Pinski <pinskia@gmail.com>
+
+ PR tree-opt/35431
+ * tree-ssa-phiopt.c (conditional_replacement): Return early for
+ complex types.
+
+2008-03-31 Jan Beulich <jbeulich@novell.com>
+
+ * config/ia64/constraints.md: Add 'j' constraint.
+ * config/ia64/ia64.md (movsi_internal): Add addp4 case.
+ (movdi_internal): Likewise.
+
+2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35748
+ * c-typeck.c (build_c_cast): Skip invalid fields in unions.
+
+2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35757
+ * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
+ proper error message for the third argument on blendpd and
+ blendps.
+
+ * config/i386/sse.md (blendbits): New.
+ (sse4_1_blendp<ssemodesuffixf2c>): Use it.
+
+2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
+
+2008-03-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31023
+ * fold-const.c (fold_sign_changed_comparison): Do leave
+ conversions to base-types alone.
+
+2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
+ the link register if one altivec register is be saved.
+
+2008-03-30 Ben Elliston <bje@au.ibm.com>
+
+ * final.c (final_scan_insn): Remove if (0) code.
+
+2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * c-parser.c (c_parser_next_token_is_keyword): Simplify.
+
+2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
+ of V4SFmode to ix86_binary_operator_ok.
+
+2008-03-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (override_options): Initialize
+ ix86_veclib_handler to ix86_veclibabi_svml when
+ -mveclibabi=svml is used.
+ (ix86_veclibabi_svml): New function for SVML ABI style
+ vectorization support.
+ * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
+
+2008-03-28 Rafael Espíndola <espindola@google.com>
+
+ * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
+ (tree_binary_nonnegative_warnv_p): Make it public.
+ (tree_single_nonnegative_warnv_p): Make it public.
+ (tree_invalid_nonnegative_warnv_p): Make it public.
+ (tree_unary_nonzero_warnv_p): Make it public.
+ (tree_binary_nonzero_warnv_p): Make it public
+ (tree_single_nonzero_warnv_p): Make it public.
+ * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
+ (extract_range_from_binary_expr): Split the expr argument.
+ (extract_range_from_unary_expr): Split the expr argument.
+ (extract_range_from_comparison): Split the expr argument.
+ (extract_range_from_expr): Use the new aux functions.
+ (vrp_evaluate_conditional_warnv): Use
+ vrp_evaluate_conditional_warnv_with_ops.
+ * tree.h (tree_unary_nonzero_warnv_p): Declare.
+ (tree_binary_nonzero_warnv_p): Declare.
+ (tree_single_nonzero_warnv_p): Declare.
+ (tree_expr_nonzero_warnv_p): Declare.
+ (tree_unary_nonnegative_warnv_p): Declare.
+ (tree_binary_nonnegative_warnv_p): Declare.
+ (tree_single_nonnegative_warnv_p): Declare.
+ (tree_invalid_nonnegative_warnv_p): Declare.
+
+2008-03-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/30317
+ PR tree-optimization/30911
+ PR tree-optimization/34793
+ * tree-vrp.c (set_and_canonicalize_value_range): New function.
+ (struct assert_locus_d): New member EXPR.
+ (register_new_assert_for): Add EXPR parameter to support
+ ASSERT_EXPR <name, expr OP limit>.
+ (register_edge_assert_for_1): Adjust callers.
+ (find_assert_locations): Likewise.
+ (process_assert_insertions_for): Build condition from expression.
+ (extract_range_from_assert): Handle ASSERT_EXPRs
+ of the form ASSERT_EXPR <name, expr OP limit>.
+ (register_edge_assert_for_2): New helper registering
+ asserts for comparisons. Recognize range tests of the form
+ (unsigned)i - CST1 OP CST2.
+ (register_edge_assert_for_1): Use it.
+ (register_edge_assert_for): Likewise.
+ (needs_overflow_infinity): Integer sub-types
+ do not need overflow infinities.
+ (vrp_val_is_max): The extreme values of integer sub-types
+ are those of the base type.
+ (vrp_val_is_min): Likewise.
+ * tree.def (ASSERT_EXPR): Document extra allowed conditional
+ expressions.
+
+2008-03-28 Nick Clifton <nickc@redhat.com>
+
+ PR target/31110
+ * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
+ Return GENERAL_REGS for stack adjustment reloads.
+
+2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31334
+ * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
+ const_vector when all the vectors are constant.
+
+2008-03-27 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
+ comparisons.
+ * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
+ (any_scc_sf): Add uneq, unlt, unle and unordered operators.
+ (scc_sf): New.
+ (s<code>_sf): Use new scc_sf attribute for opcode names.
+
+2008-03-27 Tom Tromey <tromey@redhat.com>
+
+ * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
+ configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
+ config/spu/t-spu-elf, config/i386/t-interix,
+ config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
+ config/i386/x-darwin, config/i386/x-mingw32,
+ config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
+ config/sh/t-sh, config/sh/t-symbian, config/x-linux,
+ config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
+ config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
+ config/rs6000/x-rs6000, config/rs6000/x-darwin64,
+ config/rs6000/x-darwin, config/rs6000/t-rs6000,
+ config/score/t-score-elf, config/arm/t-strongarm-pe,
+ config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
+ config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
+ Revert automatic dependency patch.
+
+2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35657
+ * config/i386/i386.c (ix86_function_arg_boundary): Align
+ decimal floating point to its natural boundary.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35716
+ * fold-const.c (fold_comparison): Restrict distinct decl
+ comparison folding to VAR_DECLs and PARM_DECLs. Do not
+ solely rely on operand_equal_p.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ PR c/32511
+ * c-common.c (handle_weak_attribute): Reject combination of
+ weak and inline.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32810
+ * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
+ conversions from DECL_INITIAL.
+ (fold_const_aggregate_ref): Likewise from constructor elements.
+
+2008-03-27 Zdenek Dvorak <ook@ucw.cz>
+
+ * tree-affine.h (aff_combination_expand): Declare.
+ (get_inner_reference_aff): Likewise.
+ * tree-affine.c (aff_combination_expand): Split out from
+ tree_to_aff_combination_expand.
+ (get_inner_reference_aff): New function.
+ * tree-parloops.c (loop_parallel_p): Free vectorizer info.
+ * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
+ (struct lim_aux_data): sm_done field removed.
+ (mem_ref_loc_p, mem_ref_locs_p): New types.
+ (struct mem_ref): Added id, stored, accesses_in_loop,
+ indep_loop, dep_loop, indep_ref, dep_ref fields.
+ Removed is_stored, locs and next fields.
+ (memory_accesses): New variable.
+ (movement_possibility): Do not allow moving statements
+ that store to memory.
+ (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
+ New functions.
+ (determine_max_movement): For statements with memory references,
+ find the outermost loop in that the reference is independent.
+ (move_computations_stmt): Mark the virtual operands for renaming.
+ (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
+ gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
+ vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
+ add_vop_ref_mapping, create_vop_ref_mapping_loop,
+ create_vop_ref_mapping, analyze_memory_references,
+ cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
+ get_all_locs_in_loop, ref_always_accessed_p,
+ refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
+ ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
+ store_motion_loop, store_motion): New functions.
+ (struct vop_to_refs_elt): New type.
+ (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
+ memref_hash, memref_eq, hoist_memory_references): Rewritten.
+ (schedule_sm): Replaced by...
+ (execute_sm): ... this.
+ (determine_lsm_ref, hoist_memory_references,
+ loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
+ find_more_ref_vops, free_mem_ref, free_mem_refs,
+ determine_lsm_loop, determine_lsm): Removed.
+ (tree_ssa_lim_finalize): Free data structures used by store motion.
+ (tree_ssa_lim): Call analyze_memory_references. Use
+ store_motion instead of determine_lsm.
+
+2008-03-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
+ rename tmake_file to m68hc11/t-m68hc11.
+ (mcore): Set inhibit_libc to true.
+ * config.host (alpha*-dec-*vms*): Set extra_programs.
+ (interix3*): Don't use host_xmake_file.
+ * configure.ac: Let config.gcc override inhibit_libc.
+ * configure: Regenerate.
+
+ * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
+ * config/t-openbsd-thread: Remove commented out lines.
+
+ * config/x-interix: Remove.
+
+ * config/m68hc11/t-m68hc11-gas: Rename to...
+ * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
+
+ * config/mcore/t-mcore: Remove T_CFLAGS.
+ * config/mcore/t-mcore-pe: Likewise.
+
+2008-03-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Replace custom __GNU_SOURCE test with
+ AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (target.h): Include.
+ (fold_comparison): Fold comparison of addresses of decls
+ that bind locally or of constants. Consolidate address folding code.
+ * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
+ results from fold_binary_to_constant.
+ (compare_values_warnv): Likewise.
+
+2008-03-27 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/35429
+ * fold-const.c (fold_truthop): Check for integeral types when folding
+ a == 0 && b == 0 and a != 0 || b != 0 .
+
+2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
+
+2008-03-26 Andreas Schwab <schwab@suse.de>
+
+ * doc/invoke.texi: Fix use of @item vs. @itemx.
+
+2008-03-26 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (build/gensupport.o, build/print-rtl.o,
+ build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
+ build/genattrtab.o, build/genautomata.o, build/gencheck.o,
+ build/gencodes.o, build/genconditions.o, build/genconfig.o,
+ build/genconstants.o, build/genemit.o, build/genextract.o,
+ build/genflags.o, build/genmddeps.o, build/genopinit.o,
+ build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
+ options.h.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ Revert
+ 2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (target.h): Include.
+ (fold_comparison): Fold comparison of addresses of two decls
+ that bind locally. Consolidate address folding code.
+
+2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (expand_builtin_pow, fold_builtin_cabs,
+ fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
+ fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
+ dconstsqrt2, dconstthird, dconste and/or dconst10.
+ * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
+ * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
+ dconstsqrt2, dconste): Delete.
+ (init_emit_once): Likewise. Simplify initializing dconstm1.
+ Constify variable.
+ * real.c (get_real_const): New.
+ * real.h (dconst3, dconst10, dconstm2, dconstthird,
+ dconstsqrt2, dconste): Delete.
+ (real_value_const, get_real_const): New.
+
+2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
+
+ * config/i386/i386.c (ix86_function_arg_boundary): Check
+ BIGGEST_ALIGNMENT instead of 128.
+ (setup_incoming_varargs_64): Likewise.
+
+2008-03-26 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (DEPFILES): Add missing '/'.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (target.h): Include.
+ (fold_comparison): Fold comparison of addresses of two decls
+ that bind locally. Consolidate address folding code.
+
+2008-03-26 Nick Clifton <nickc@redhat.com>
+
+ PR target/31232
+ * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
+ not allow INT+INT as a legitimate addressing mode.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (widen_bitfield): Remove declaration.
+ * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
+ (widen_bitfield): Remove function.
+ * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
+ code.
+
+2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31558
+ * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
+ error_mark_node's.
+
+2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/35232
+ * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
+ (forget_old_reloads_1, forget_marked_reloads): Don't clear
+ reg_reloaded_call_part_clobbered here.
+ (reload_regs_reach_end_p): New function.
+ (reload_reg_rtx_for_input): New variable.
+ (reload_reg_rtx_for_output): Likewise.
+ (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
+ when reassigning a pseudo register. Load reloadreg from
+ reload_reg_rtx_for_input, moving the mode and register
+ calculation to...
+ (do_input_reload): ...here. Use the mode-adjusted reg_rtx
+ instead of the original when deciding whether an input reload
+ would be a no-op or whether an output reload can be deleted.
+ (emit_output_reload_insns): Use the mode-adjusted reg_rtx
+ when setting up new_spill_reg_store. Load it from
+ reload_reg_rtx_for_output, moving the mode and register
+ calculation to...
+ (do_output_reload): ...here. Use the mode-adjusted reg_rtx
+ instead of the original when deciding whether an output reload
+ would be a no-op. Do the same when modifying insn notes.
+ Use rtx_equal_p instead of == to compare the registers.
+ (inherit_piecemeal_p): Take a mode and two register numbers
+ as argument.
+ (emit_reload_insns): Clear new_spill_reg_store for every hard
+ register in the reload register. Remove spill registers
+ from reg_reloaded_valid before considering whether to record
+ inheritance information for them. Use reload_reg_rtx_for_output
+ instead of reg_rtx when recording output reloads. Use
+ reload_reg_rtx_for_input instead of reg_rtx when recording
+ input reloads. Set or clear reg_reloaded_call_part_clobbered
+ at the same time as setting reg_reloaded_valid.
+ (delete_output_reload): Add a new_reload_reg parameter and use it
+ instead of rld[j].reg_rtx.
+ (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
+ calls accordingly.
+
+2008-03-25 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
+ (build/genattr.o): Likewise.
+ (build/genattrtab.o): Likewise.
+ (build/gencodes.o): Likewise.
+ (build/genconfig.o): Likewise.
+ (build/genconstants.o): Likewise.
+ (build/genemit.o): Likewise.
+ (build/genextract.o): Likewise.
+ (build/genflags.o): Likewise.
+
+2008-03-25 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
+ instead of size_int for integer types.
+ (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
+ to match type of MINUS_EXPR.
+
+2008-03-25 Tom Tromey <tromey@redhat.com>
+
+ * configure: Rebuilt.
+ * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
+ Makefile.
+
+2008-03-25 Tom Tromey <tromey@redhat.com>
+
+ * config/x-solaris (host-solaris.o): Update.
+ * config/x-linux (host-linux.o): Update.
+ * config/x-hpux (host-hpux.o): Update.
+ * config/x-darwin (host-darwin.o): Update.
+ * config/v850/t-v850e (v850-c.o): Update.
+ * config/v850/t-v850 (v850-c.o): Update.
+ * config/t-vxworks (vxworks.o): Update.
+ * config/t-sol2 (sol2-c.o, sol2.o): Update.
+ * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
+ * config/spu/t-spu-elf (spu-c.o): Update.
+ (spu.o): Remove.
+ * config/sh/t-symbian (sh-c.o): Update.
+ (symbian.o): Update.
+ * config/sh/t-sh (sh-c.o): Update.
+ * config/score/t-score-elf (score7.o, score3.o): Update.
+ * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
+ * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
+ * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
+ * config/rs6000/t-rs6000 (rs6000-c.o): Update.
+ (rs6000.o): Remove.
+ * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
+ * config/m32c/t-m32c (m32c-pragma.o): Update.
+ * config/ia64/t-ia64 (ia64-c.o): Update.
+ * config/i386/x-mingw32 (host-mingw32.o): Update.
+ * config/i386/x-i386 (driver-i386.o): Update.
+ * config/i386/x-darwin (host-i386-darwin.o): Update.
+ * config/i386/x-cygwin (host-cygwin.o): Update.
+ * config/i386/t-nwld (nwld.o): Update.
+ * config/i386/t-netware (netware.o): Update.
+ * config/i386/t-interix (winnt.o): Update.
+ * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
+ * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
+ msformat-c.o): Update.
+ * config/bfin/t-bfin-linux (generated_files): Add
+ linux-sysroot-suffix.h.
+ * config/arm/t-wince-pe (pe.o): Update.
+ * config/arm/t-strongarm-pe (pe.o): Update.
+ * config/arm/t-pe (pe.o): Update.
+ * config/arm/t-arm (arm-c.o): Update.
+ * doc/install.texi (Prerequisites): Require make 3.80.
+ * Makefile.in: Remove .o targets.
+ (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
+ (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
+ (simple_generated_h, simple_generated_c): Move earlier.
+ (generated_files): New variable.
+ (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
+ TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
+ BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
+ ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
+ REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
+ CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
+ CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
+ INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
+ PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
+ TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
+ DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
+ VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
+ (.c.o): Remove.
+ (COMPILE.base, COMPILE): New variables.
+ (%.o): New pattern rule.
+ (ALL_HOST_OBJS): New variable.
+ (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
+ (dummy-checksum.o, cc1-checksum.o): Remove.
+ (DRIVER_SHLIB): New variable.
+ (DRIVER_DEFINES): Use it.
+ (gencondmd.c): Move out of build/.
+ (s-conditions): Update.
+ (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
+ (ALL_BUILD_OBJS): Likewise.
+ (build/%.o): Use BUILDCOMPILE.
+ (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
+ build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
+ build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
+ build/gencheck.o, build/gencodes.o, build/genconditions.o,
+ build/genconfig.o, build/genconstants.o, build/genemit.o,
+ build/genextract.o, build/genflags.o, build/genmddeps.o,
+ build/genopinit.o, build/genoutput.o, build/genpeep.o,
+ build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
+ build/gen-protos.o, build/scan.o, build/fix-header.o,
+ build/scan-decls.o): Simplify.
+ (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
+ cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
+ prefix.o, toplev.o): Reduce to variable setting.
+ (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
+ ($(out_object_file), gcc-options.o): New targets.
+ ($(ALL_HOST_OBJS)): New target. Include dependency files.
+ * configure: Rebuilt.
+ * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
+ * doc/sourcebuild.texi (Front End Directory): Document new variable.
+
+2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
+
+ * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
+ complain when we hit an error, return ERROR_MARK_NODE.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * config/sh/constraints.md (Pso, Psz): New constraints.
+ * config/sh/sh.c (print_operand): Add %V and %W operand codes.
+ * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
+ * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * config/sh/sh.md (prefetch): Add condition for SH2A target.
+ (prefetch_sh2a): New.
+
+2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
+ Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * config/sh/constraints.md (I28): New constraint.
+ * config/sh/sh.c (broken_move): Add support for movi20s.
+ * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
+
+2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
+ Jayant Sonar <Jayant.sonar@kpitcummins.com>
+ Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * config/sh/sh.c (SH_ATTRIBUTES): Define.
+ (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
+ (print_operand): Handle resbank in %@ operand code.
+ (sh_encode_section_info): New.
+ (push_regs): Add conditions for resbank.
+ (sh_expand_epilogue): Likewise.
+ (sh_insert_attributes): Likewise.
+ (sh_attribute_table): Likewise.
+ (sh_handle_resbank_handler_attribute): New.
+ (sh2a_handle_function_vector_handler_attribute): New.
+ (sh2a_is_function_vector_call): New.
+ (sh2a_get_function_vector_number): New.
+ (sh2a_function_vector_p): New.
+ (sh_cfun_resbank_handler_p): New.
+ * config/sh/sh.md (calli): Emit jsr/n if possible.
+ (calli_tbr_rel): New.
+ (calli_pcrel): Emit jsr/n if possible.
+ (return_i): Emit rts/n if possible.
+ (call_valuei_tbr_rel): New.
+ (call_valuei_pcrel): Add condition for SH2A target.
+ (call_value): Likewise.
+ * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
+ (sh2a_get_function_vector_number): Likewise.
+ (sh2a_is_function_vector_call): Likewise.
+ * doc/extend.texi: Document TBR relative addressing of SH2A.
+ (resbank): Add description for SH2A.
+
+2008-03-24 Richard Guenther <rguenther@suse.de>
+
+ PR c/22371
+ * gimplify.c (gimplify_modify_expr): For frontend type-correct
+ pointer assignments change conversions according to middle-end rules.
+ (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
+ * configure.ac: Include type checking in yes.
+ * configure: Regenerate.
+
+2008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostic.c (diagnostic_count_diagnostic): Delete.
+ (diagnostic_report_diagnostic): Update. Handle ICEs here.
+
+2008-03-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gthr-vxworks.h (UNUSED): Define.
+
+2008-03-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
+
+2008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
+
+ * doc/extend.texi (Function Attributes): Add missing comma in the
+ example of the "alloc_size" attribute.
+
+2008-03-23 Uros Bizjak <ubizjak@gmail.com>
+
+ Revert:
+ 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-modes.def: Use 4 byte alignment on DI for
+ 32bit host.
+
+ 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35496
+ * stor-layout.c (update_alignment_for_field): Set minimum alignment
+ of the underlying type of a MS bitfield layout to the natural
+ alignment of the type.
+
+ 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (assign_386_stack_local): Align DImode slots
+ to their natural alignment to avoid store forwarding stalls.
+
+2008-03-22 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
+ For PHI nodes verify the address is invariant.
+ * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
+ (get_symbol_constant_value): Use is_gimple_min_invariant.
+ (maybe_fold_stmt_indirect): Likewise.
+
+2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/33927
+ * Makefile.in (dse.o): Depend on $(TM_P_H).
+ * expr.h (extract_low_bits): Declare.
+ * expmed.c (extract_low_bits): New function.
+ * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
+ * dse.c: Include tm_p.h.
+ (find_shift_sequence): Remove the read_reg argument and return the
+ read value. Emit the instructions instead of returning them.
+ Iterate on new_mode rather than calculating it each time.
+ Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
+ source to NEW_MODE and extract_low_bits to convert the shifted
+ value to READ_MODE.
+ (replace_read): Allow the load and store to have different mode
+ classes. Use extract_low_bits when SHIFT == 0. Create the shift
+ or extraction instructions before trying the replacement. Update
+ dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
+
+2008-03-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (assign_386_stack_local): Align DImode slots
+ to their natural alignment to avoid store forwarding stalls.
+
+2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/27946
+ * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
+ encouraging but not allowing gprs for input;
+ change the input constraint to !f#r.
+ (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
+ gprs for output;
+ change the output constraint to !f#r.
+
+2008-03-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/13958
+ * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
+ corresponding post-reload splitters.
+ ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
+ when x87 FP math is selected.
+ * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
+ New function prototype.
+ * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
+ unreachable function to ease macroization of insn patterns.
+
+2008-03-21 Martin Jambor <mjambor@suse.cz>
+
+ * tree-data-ref.c (dump_data_dependence_relation): Avoid data
+ reference dumps if ddr is NULL or dependence is unknown.
+
+2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
+ unsigned extension into account.
+ (ATOMIC_COMPARE_AND_SWAP): Likewise.
+ (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
+ Do computations on a scratch register.
+
+2008-03-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
+ Use is_gimple_min_invariant instead of TREE_INVARIANT.
+ * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
+ * tree-ssa-dom.c (record_equality): Likewise.
+ * tree-inline.c (copy_body_r): Likewise.
+ * tree-ssa-pre.c (make_values_for_stmt): Remove test for
+ TREE_INVARIANT.
+
+2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (split_branches): Pass zero to redirect_jump
+ as 'delete_unused' argument.
+
+2008-03-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
+ special casing of constant qualifiers.
+ * tree-ssa.c (useless_type_conversion_p_1): Instead do not
+ care about them in general.
+ * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
+ regardless of their type.
+ (fold_stmt_r): Forcefully fold *& if we end up with that.
+
+2008-03-20 Paul Brook <paul@codesourcery.com>
+
+ * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
+ * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
+ linker flags.
+ * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
+ definition.
+ (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
+ * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
+
+2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * common.opt (Wmudflap): New option.
+ * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
+ (mx_register_decls): Likewise.
+ (mudflap_finish_file): Likewise.
+ * doc/invoke.texi: Document -Wno-mudflap.
+
+2008-03-20 Kai Tietz <kai.tietz@onevision.com>
+
+ * c-format.c (replace_format_name_to_system_name): New.
+ (cmp_attribs): New.
+ (convert_format_name_to_system_name): New.
+ (decode_format_attr): Add use of convert_format_name_to_system_name.
+ (format_types_orig): Add gnu_ prefix to names.
+ (check_format_info_main): Special treating of \0 escaped names for
+ supporting multi-character format specifiers as I32, I64.
+ (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
+ (gnu_target_overrides_format_attributes): New.
+ * c-format.h: Add structure target_ovr_attr to hold
+ system specific formatter names.
+ * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
+ msformat-c.o file to c_target_objs and cxx_target_objs.
+ * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
+ (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
+ (TARGET_N_FORMAT_TYPES): New.
+ * config/i386/msformat-c.c: New.
+ * config/i386/t-cygming: Add build rule for msformat-c.o.
+ * doc/extend.texi: Add new format names gnu_* and ms_* and
+ further details.
+ * doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
+
+2008-03-20 Ira Rosen <irar@il.ibm.com>
+
+ * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
+ optimizations turned on under -O3.
+ (ftree-vectorize): Add that the flag is turned on with -O3.
+
+2008-03-20 Ben Elliston <bje@au.ibm.com>
+
+ * regmove.c (try_auto_increment): Fix spelling error in comment.
+ * final.c (final_scan_insn): Likewise.
+
+2008-03-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/14552
+ * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
+ allocator preferences for "y" and "r" class registers.
+ ("*mov<mode>_internal"): Ditto.
+ ("*movv2sf_internal_rex64"): Ditto.
+ ("*movv2sf_internal"): Ditto.
+
+2008-03-19 Michael Matz <matz@suse.de>
+
+ PR middle-end/35616
+ * calls.c (expand_call): Check overlap of arguments with call
+ address for sibcalls.
+
+2008-03-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35496
+ * stor-layout.c (update_alignment_for_field): Set minimum alignment
+ of the underlying type of a MS bitfield layout to the natural
+ alignment of the type.
+
+2008-03-19 Jan Hubicka <jh@suse.cz>
+
+ PR other/35094
+ * toplev.c (decode_d_option): Handle all CPP flags.
+ * tree-vrp.c: Update tree_pass descriptors.
+ * regrename.c: Update tree_pass descriptors.
+ * fwprop.c: Update tree_pass descriptors.
+ * doc/invoke.texi: Remove documentation of dropped -d? flags.
+ * tree-into-ssa.c: Update tree_pass descriptors.
+ * tree-dump.c: Update tree_pass descriptors.
+ * tree-complex.c: Update tree_pass descriptors.
+ * tree-dump.h: Update tree_pass descriptors.
+ * see.c: Update tree_pass descriptors.
+ * cgraphbuild.c: Update tree_pass descriptors.
+ * tracer.c: Update tree_pass descriptors.
+ * tree-loop-distribution.c: Update tree_pass descriptors.
+ * cgraph.c: Update tree_pass descriptors.
+ * postreload-gcse.c: Update tree_pass descriptors.
+ * postreload.c: Update tree_pass descriptors.
+ * tree-ssa-loop-ch.c: Update tree_pass descriptors.
+ * tree-tailcall.c: Update tree_pass descriptors.
+ * tree-pass.h (tree_opt_pass): Rename to ...
+ (opt_pass) ... this one; add "type" field and remove letter field.
+ (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
+ (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
+ all_lowering_passes): Update declaration.
+ * ipa-cp.c: Update tree_pass descriptors.
+ * final.c: Update tree_pass descriptors.
+ * omp-low.c: Update tree_pass descriptors.
+ * tree-ssa-dse.c: Update tree_pass descriptors.
+ * ipa-reference.c: Update tree_pass descriptors.
+ * tree-ssa-uncprop.c: Update tree_pass descriptors.
+ * auto-inc-dec.c: Update tree_pass descriptors.
+ * reorg.c: Update tree_pass descriptors.
+ * cgraphunit.c: Update tree_pass descriptors.
+ * tree-ssa-copyrename.c: Update tree_pass descriptors.
+ * tree-ssa-ccp.c: Update tree_pass descriptors.
+ * df-core.c: Update tree_pass descriptors.
+ * mode-switching.c: Update tree_pass descriptors.
+ * tree-nomudflap.c: Update tree_pass descriptors.
+ * modulo-sched.c: Update tree_pass descriptors.
+ * ipa-pure-const.c: Update tree_pass descriptors.
+ * cse.c: Update tree_pass descriptors.
+ * web.c: Update tree_pass descriptors.
+ * tree-stdarg.c: Update tree_pass descriptors.
+ * tree-ssa-math-opts.c: Update tree_pass descriptors.
+ * tree-ssa-dom.c: Update tree_pass descriptors.
+ * tree-nrv.c: Update tree_pass descriptors.
+ * tree-ssa-alias.c: Update tree_pass descriptors.
+ * loop-init.c: Update tree_pass descriptors.
+ * gimple-low.c: Update tree_pass descriptors.
+ * ipa-inline.c: Update tree_pass descriptors.
+ * tree-ssa-sink.c: Update tree_pass descriptors.
+ * global.c: Update tree_pass descriptors.
+ * ifcvt.c: Update tree_pass descriptors.
+ * jump.c: Update tree_pass descriptors.
+ * predict.c: Update tree_pass descriptors.
+ * tree-ssa-loop.c: Update tree_pass descriptors.
+ * recog.c: Update tree_pass descriptors.
+ * dse.c: Update tree_pass descriptors.
+ * tree-ssa-ifcombine.c: Update tree_pass descriptors.
+ * tree-eh.c: Update tree_pass descriptors.
+ * regmove.c: Update tree_pass descriptors.
+ * local-alloc.c
+ * function.c: Update tree_pass descriptors.
+ * tree-vectorizer.c: Update tree_pass descriptors.
+ * gcse.c: Update tree_pass descriptors.
+ * ipa-type-escape.c: Update tree_pass descriptors.
+ * tree-if-conv.c: Update tree_pass descriptors.
+ * init-regs.c: Update tree_pass descriptors.
+ * ipa.c: Update tree_pass descriptors.
+ * tree-ssa-phiopt.c: Update tree_pass descriptors.
+ * rtl-factoring.c: Update tree_pass descriptors.
+ * lower-subreg.c: Update tree_pass descriptors.
+ * bt-load.c: Update tree_pass descriptors.
+ * tree-dfa.c: Update tree_pass descriptors.
+ * except.c: Update tree_pass descriptors.
+ * emit-rtl.c: Update tree_pass descriptors.
+ * cfgexpand.c: Update tree_pass descriptors.
+ * tree-cfgcleanup.c: Update tree_pass descriptors.
+ * cfgcleanup.c: Update tree_pass descriptors.
+ * tree-ssa-pre.c: Update tree_pass descriptors.
+ * tree-sra.c: Update tree_pass descriptors.
+ * tree-mudflap.c: Update tree_pass descriptors.
+ * tree-ssa-copy.c: Update tree_pass descriptors.
+ * cfglayout.c: Update tree_pass descriptors.
+ * tree-ssa-forwprop.c: Update tree_pass descriptors.
+ * tree-ssa-dce.c: Update tree_pass descriptors.
+ * tree-ssa.c: Update tree_pass descriptors.
+ * regclass.c: Update tree_pass descriptors.
+ * integrate.c: Update tree_pass descriptors.
+ * tree-optimize.c: Update tree_pass descriptors.
+ * tree-ssa-phiprop.c: Update tree_pass descriptors.
+ * tree-object-size.c: Update tree_pass descriptors.
+ * combine.c: Update tree_pass descriptors.
+ * tree-outof-ssa.c: Update tree_pass descriptors.
+ * bb-reorder.c: Update tree_pass descriptors.
+ * stack-ptr-mod.c: Update tree_pass descriptors.
+ * var-tracking.c: Update tree_pass descriptors.
+ * tree-profile.c: Update tree_pass descriptors.
+ * tree-vect-generic.c: Update tree_pass descriptors.
+ * reg-stack.c: Update tree_pass descriptors.
+ * sched-rgn.c: Update tree_pass descriptors.
+ * tree-ssa-structalias.c: Update tree_pass descriptors.
+ * tree-cfg.c: Update tree_pass descriptors.
+ * passes.c (current_pass): Update declaration.
+ (finish_optimization_passes): Update.
+ (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
+ (register_one_dump_file, register_dump_files_1, next_pass_1):
+ Update arguments.
+ (init_optimization_passes): Update handling of new types.
+ (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
+ * ipa-struct-reorg.c: Update tree_pass descriptors.
+ * tree-ssa-reassoc.c: Update tree_pass descriptors.
+ * combine-stack-adj.c: Update tree_pass descriptors.
+ * cfgrtl.c: Update tree_pass descriptors.
+ * dce.c: Update tree_pass descriptors.
+ * tree-ssanames.c: Update tree_pass descriptors.
+
+2008-03-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35609
+ * tree-ssa.c (walk_data): New structure.
+ (warn_uninitialized_var): If not always_executed warn with "maybe"
+ instead of "is".
+ (execute_early_warn_uninitialized): Compute post-dominators.
+ Initialize always_executed before processing each basic block.
+
+2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
+
+ PR target/35504
+ * config/i386/i386.c (x86_this_parameter): Calculate correct location
+ of "this" pointer when "regparm = N" or "fastcall" is in effect.
+
+2008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/include/texinfo.tex: Update to version 2008-03-17.10.
+
+2008-03-18 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
+ is true.
+ (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
+ (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
+ is true. Add "&& !ignore" condition to reduce_bit_field. Modify
+ target after ignore has been set, and move there also the commputation
+ of subtarget and original_target.
+ * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
+ (LANG_HOOKS_INITIALIZER): Remove it.
+ * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
+
+2008-03-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
+ found an expression with constants, note that in the VN for the lhs.
+ * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
+ fold them to constants if possible. Run cleanup_cfg if done so.
+ (execute_pre): Return todo.
+ (do_pre): Likewise.
+ (execute_fre): Likewise.
+ * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
+ of constants.
+ (get_prop_source_stmt): Look through pointer conversions.
+
+2008-03-18 Jan Hubicka <jh@suse.cz>
+
+ * tree-pretty-print.c: Include predict.h.
+ (dump_generic_node): Dump predictor.
+ * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
+ * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
+ * gimple-low.c (lower_stmt): Likewise.
+ * expr.c (expand_expr_real): Likewise.
+ * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
+ them.
+ (build_predict_expr, build_predict_expr): New.
+ * predict.h (predictor_name, build_predict_expr): Update.
+ * c-typeck.c (c_finish_bc_stmt): Add prediction.
+ * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
+ * predict.def (PRED_CONTINUE): Update hitrate.
+ * tree.def (PREDICT_EXPR): Define.
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
+ do not handle BIND_EXPR.
+ * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
+ * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
+ * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
+ operands.
+
+2008-03-18 Michael Matz <matz@suse.de>
+
+ * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
+
+2008-03-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-gimple.h (is_gimple_invariant_address): Declare.
+ (is_gimple_constant): Likewise.
+ * tree-gimple.c (is_gimple_constant): New function.
+ (is_gimple_invariant_address): Likewise.
+ (is_gimple_min_invariant): Implement in terms of is_gimple_constant
+ and is_gimple_invariant_address.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Revert
+ previous change.
+ * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
+ an addressable base.
+
+2008-03-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35611
+ * gimplify.c (gimplify_expr): Gimplify second operand of
+ OMP_ATOMIC_LOAD.
+
+2008-03-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19637
+ * fold-const.c (fold_unary): Remove restrictions of removing
+ intermediate pointer-conversions (P2)(P1)P0.
+ * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
+ conversion to void pointer.
+ (get_maxval_strlen): Handle addresses of the form &(*p)[0].
+
+2008-03-16 James E. Wilson <wilson@tuliptree.org>
+
+ PR debug/31510
+ * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
+ emulated thread local variables.
+
+2008-03-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35607
+ * tree-ssa-loop-niter.c (expand_simple_operations): Do not
+ expand TREE_INVARIANT operations that are not gimple invariant.
+
+2008-03-16 Hans-Peter Nilsson <hp@axis.com>
+
+ * doc/extend.texi (Alignment): Say that the ABI controls
+ the __alignof__ for non-strict-alignment targets rather
+ than being a recommendation.
+
+2008-03-15 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
+ annotations.
+ (arm_output_fn_unwind): Mark functions that can not be unwound.
+
+2008-03-15 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
+ extension instructions.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (ccp_fold): Also read from constant values
+ and fold constant aggregate refs.
+ (fold_const_aggregate_ref): Handle string constants
+ and constructors in ARRAY_REFs. Handle INDIRECT_REF.
+ (evaluate_stmt): Simplify now that ccp_fold folds constant
+ aggregate refs.
+
+2008-03-15 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
+ (extzv): Use gen_extzv_t2.
+ (insv_t2, insv_zero, extv, extzv_t2): New patterns.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (get_symbol_constant_value): Export.
+ (fold_const_aggregate_ref): Likewise.
+ (get_value): Return NULL if we don't have any values.
+ (ccp_finalize): Set const_val to NULL after freeing it.
+ * tree-flow.h (get_symbol_constant_value): Declare.
+ (fold_const_aggregate_ref): Likewise.
+ * tree-ssa-sccvn.c (try_to_simplify): Use them.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35593
+ * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
+ to not produce negative array indices if not allowed. Add
+ parameter to indicate that.
+ (maybe_fold_offset_to_component_ref): Allow negative array
+ indices only for the first member of a structure.
+ (maybe_fold_offset_to_reference): Allow negative array indices.
+ (maybe_fold_stmt_addition): Likewise.
+
+2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
+ Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_arch_types): Add avr6 entry.
+ (avr_arch): Add ARCH_AVR6.
+ (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
+ (initial_elimination_offset): Initialize and use 'avr_pc_size'
+ instead of fixed value 2.
+ (print_operand_address): Use gs() asm specifier instead of pm().
+ (avr_assemble_integer): (Ditto.).
+ (avr_output_addr_vec_elt): (Ditto.).
+ (print_operand): Handle "!" code.
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
+ __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
+ (AVR_HAVE_EIJMP_EICALL): Define.
+ (AVR_3_BYTE_PC): Redefine.
+ (AVR_2_BYTE_PC): (Ditto.).
+ (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
+ (LINK_SPEC): Add atmega2560 and atmega2561.
+ (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
+ (crtm2561.o).
+ * config/avr/avr.md (call_insn): Use eicall instead of icall
+ for 3 byte PC devices.
+ (call_value_insn): (Ditto.).
+ (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
+ (indirect_jump): Use only for for 2 byte PC devices.
+ (*tablejump): (Ditto.).
+ (*indirect_jump_avr6): Add insn.
+ (*tablejump_rjmp): Don't use for 3 byte PC devices.
+ * config/avr/libgcc.S (__prologue_saves__): Use eijmp
+ instead of ijmp for 3 byte PC devices.
+ (__tablejump2__): (Ditto.).
+ * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
+ (MULITLIB_DIRNAMES): (Ditto.).
+ (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
+
+2008-03-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
+ "sse2_umulsidi3". Use V1DI mode for operand 0.
+ ("mmx_psadbw"): Use V1DI mode for operand 0.
+ * config/i386/i386-modes.def (V1SI): New vector mode.
+ * config/i386/i386.c (struct builtin_description)
+ [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
+ (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
+ (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
+ (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
+ v1di_ftype_v8qi_v8qi type.
+ [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
+
+ * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
+ __builtin_ia32_pmuludq]: Fix the mode of return value.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35595
+ * tree-ssa-pre.c (bitmap_find_leader): Handle expression
+ being a PHI_NODE.
+
+2008-03-14 Bob Wilson <bob.wilson@acm.org>
+
+ * doc/invoke.texi (Option Summary, Xtensa Options): Document
+ -mserialize-volatile and -mno-serialize-volatile Xtensa options.
+ * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
+ unless TARGET_SERIALIZE_VOLATILE is enabled.
+ * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
+ * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
+ * config/xtensa/xtensa.opt (mserialize_volatile): New option.
+
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34172
+ * tree-flow.h (refs_may_alias_p): Declare.
+ (get_single_def_stmt): Likewise.
+ (get_single_def_stmt_from_phi): Likewise.
+ (get_single_def_stmt_with_phi): Likewise.
+ * tree-dfa.c (refs_may_alias_p): New function.
+ (get_single_def_stmt): Likewise.
+ (get_single_def_stmt_from_phi): Likewise.
+ (get_single_def_stmt_with_phi): Likewise.
+ * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
+ (vn_reference_lookup_1): New helper function.
+ (vn_reference_lookup): Walk the virtual use-def chain to
+ continue searching for a match if the def does not alias the
+ reference we are looking for.
+
+2008-03-14 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
+ archive and Perzl. Update The Written Word listing.
+
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34043
+ PR tree-optimization/33989
+ * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
+ when doing FRE.
+ (bitmap_find_leader): Use extra argument to verify dominance
+ relationship inside a basic-block.
+ (can_PRE_operation): Add VIEW_CONVERT_EXPR.
+ (find_leader_in_sets): Adjust.
+ (create_component_ref_by_pieces): Take extra argument for
+ dominance check, handle lookup failures.
+ (find_or_generate_expression): Likewise.
+ (create_expression_by_pieces): Likewise.
+ (insert_into_preds_of_block): Adjust.
+ (create_value_expr_from): If asked for, verify all operands
+ are in the blocks AVAIL_OUT set.
+ (make_values_for_stmt): Check for SSA_NAMEs that are life
+ over an abnormal edge.
+ (compute_avail): Remove such check.
+ (do_SCCVN_insertion): New function.
+ (eliminate): If we do not find a leader suitable for replacement
+ insert a replacement expression from SCCVN if available.
+ * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
+ (struct vn_ssa_aux): Add needs_insertion flag.
+ * tree-ssa-sccvn.c (may_insert): New global flag.
+ (copy_reference_ops_from_ref): Value-number union member access
+ based on its size, not type and member if insertion is allowed.
+ (visit_reference_op_load): For a weak match from union type
+ punning lookup a view-converted value and insert a SSA_NAME
+ for that value if that is not found.
+ (visit_use): Make dumps shorter. Do not disallow value numbering
+ SSA_NAMEs that are life over an abnormal edge to constants.
+ (free_scc_vn): Release inserted SSA_NAMEs.
+ (run_scc_vn): New flag to specify whether insertion is allowed.
+ Process SSA_NAMEs in forward order.
+ * tree-ssa-loop-im.c (for_each_index): Handle invariant
+ ADDR_EXPRs inside VIEW_CONVERT_EXPR.
+ * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
+ pointer type to/from integral types that do not change the
+ precision to regular conversions.
+
+2008-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
+ __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
+ __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
+ __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
+ input arguments and the mode of return value. Built-in functions
+ that operate on whole 64-bit MMX register now use V1DI mode.
+
+2008-03-13 Alon Dayan <alond@il.ibm.com>
+ Olga Golovanevsky <olga@il.ibm.com>
+
+ PR tree-optimization/35041
+ * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
+ to locate the right position in a statement.
+
+2008-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34000
+ PR target/35553
+ * config/i386/xmmintrin.h: Change all static inline functions to
+ extern inline and add __gnu_inline__ attribute.
+ * config/i386/bmintrin.h: Ditto.
+ * config/i386/smmintrin.h: Ditto.
+ * config/i386/tmmintrin.h: Ditto.
+ * config/i386/mmintrin-common.h: Ditto.
+ * config/i386/ammintrin.h: Ditto.
+ * config/i386/emmintrin.h: Ditto.
+ * config/i386/pmmintrin.h: Ditto.
+ * config/i386/mmintrin.h: Ditto.
+ * config/i386/mm3dnow.h: Ditto.
+
+2008-03-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35185
+ * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
+ (lower_omp_2): New function.
+ (lower_omp_1, lower_omp): Rewritten.
+
+2008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR 35054
+ * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
+ with the phrase "Microsoft Windows compilers".
+ (Push/Pop Macro Pragmas): New subsection. Document
+ #pragma push_macro and pragma pop_macro.
+
+2008-03-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
+
+2008-03-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
+ (thumb2_alusi3_short): Exclude PLUS and MINUS.
+ (thumb2_addsi_shortim): Rename ...
+ (thumb2_addsi_short): ... to this. Allow register operands.
+ (thumb2_subsi_short): New pattern.
+ (thumb2_one_cmplsi2_short,
+ thumb2_negsi2_short): New patterns and peepholes.
+
+2008-03-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
+
+2008-03-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (int_cond): New code iterator.
+ (fp_cond): Ditto.
+ ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
+ sge, sgeu, sle and sleu expanders usign int_cond code iterator.
+ ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
+ sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
+ ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
+ bge, bgeu, ble and bleu expanders usign int_cond code iterator.
+ ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
+ bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
+
+2008-03-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
+ instead of {arm,thumb}_compute_save_reg_mask.
+ (output_return_instruction): Ditto.
+ (thumb_unexpanded_epilogue): Ditto.
+ (thumb1_expand_prologue): Ditto.
+ (thumb1_output_function_prologue): Ditto.
+ (arm_set_return_address): Ditto.
+ (thumb_set_return_address): Ditto.
+ (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
+ regs to achieve stack alignment.
+ (thumb1_compute_save_reg_mask): Fix compiler warning.
+ (arm_output_epilogue): Use offsets->saved_regs_mask.
+ Adjust stack pointer by poping call clobered registers.
+ (arm_expand_prologue): Use offsets->saved_regs_mask.
+ Adjust stack pointer by pushing extra registers.
+ * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
+
+2008-03-12 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-opt/35422
+ * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
+ conversion to the operands of a multiplication.
+
+2008-03-12 Richard Guenther <rguenther@suse.de>
+
+ * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
+ (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
+ * timevar.def (TV_TREE_PHIPROP): Add.
+ * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
+ pass description. Use TV_TREE_PHIPROP.
+ * tree-ssa-forwprop.c: Remove phiprop code.
+
+2008-03-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35549
+ * omp-low.c (maybe_lookup_decl): Constify first argument.
+ (use_pointer_for_field): Change last argument from bool to
+ omp_context *. Disallow shared copy-in/out in nested
+ parallel if decl is shared in outer parallel too.
+ (build_outer_var_ref, scan_sharing_clauses,
+ lower_rec_input_clauses, lower_copyprivate_clauses,
+ lower_send_clauses, lower_send_shared_vars): Adjust callers.
+
+2008-03-12 Victor Kaplansky <victork@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.c (free_stmt_vec_info): New function.
+ (destroy_loop_vec_info): Move code to free_stmt_vec_info().
+ Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
+ * tree-vectorizer.h (free_stmt_vec_info): Declare.
+ * tree-vect-transform.c (vectorizable_conversion): Free
+ vec_oprnds0 if it was allocated.
+ (vect_permute_store_chain): Remove unused VECs.
+ (vectorizable_store): Free VECs that are allocated in the..
+ function.
+ (vect_transform_strided_load, vectorizable_load): Likewise.
+ (vect_remove_stores): Simplify the code.
+ (vect_transform_loop): Move code to vect_remove_stores().
+ Call vect_remove_stores() and free_stmt_vec_info().
+
+2008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
+ TARGET_HPUX. Revise comment.
+ (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
+ * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
+ Use sr4 variant of `be' instruction when not generating PIC code.
+ (attr_length_call): Adjust for above change.
+
+2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * ipa-reference.c (static_execute): Remove module_statics_const and
+ associated setting code.
+
+2008-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35540
+ * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
+ predicate for operand 1.
+ (paritysi2_cmp): Use register_operand predicate for operand 2.
+ Use earlyclobber modifier for operand 1. Remove support for
+ memory operands.
+ (paritydi2_cmp): Use register_operand predicate for operand 3.
+ Use earlyclobber modifier for operand 1. Remove support for
+ memory operands.
+
+2008-03-11 Paul Brook <paul@codesourcery.com>
+ Vladimir Prus <vladimir@codesourcery.com>
+
+ * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
+ (arm_compute_save_reg0_reg12_mask): Always
+ check if register 11 must be saved. Always safe hard frame pointer
+ when frame_pointer_needeed.
+ (arm_compute_save_reg_mask): Save IP and PC
+ only with apcs frames.
+ (arm_output_epilogue): Adjust Thumb2 codepath to
+ be also invoked and work for ARM non-apcs frames.
+ (arm_expand_prologue): Don't bother saving IP
+ for non-apcs frame, since it's not clobbered by
+ prologue code. Implement non-apcs frame
+ layout.
+
+2008-03-11 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/35281
+ * expr.c (convert_move): Use a new pseudo for the intermediate
+ from_mode->word_mode result.
+
+2008-03-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
+ * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
+ * toplev.c (compile_file): Don't call it.
+
+2008-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/35526
+ * expr.c (store_expr): Call emit_block_move if the mode
+ of "temp" RTX is BLKmode.
+
+2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31358
+ * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
+ the step with a NULL_TREE.
+ * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
+ to sizetype if type is a pointer type.
+ (add_candidate_1): Don't convert the base and step to
+ the generic type if the orginal type is a pointer type.
+ (add_iv_value_candidates): Use sizetype for the step
+ if type is a pointer type.
+ (cand_value_at): Likewise.
+ * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
+ for pointer types.
+ * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
+ Don't convert the tem affine to the type.
+ (add_elt_to_tree): Use sizetype for the step if a pointer.
+ Use POINTER_PLUS_EXPR for pointers.
+ (aff_combination_to_tree): Use sizetype for the step if a
+ pointer.
+
+2008-03-10 Vladimir Makarov <vmakarov@redhat.com>
+
+ * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
+ Remove commutativity hint.
+
+2008-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35438
+ PR c/35439
+ * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
+ errorneous type. Check that v is a VAR_DECL.
+
+ PR middle-end/35099
+ * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
+
+2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR tree-optimization/35494
+ * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
+ may be overriden at link and run time.
+
+2008-03-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34677
+ * tree-ssa-pre.c (modify_expr_node_pool): Remove.
+ (poolify_tree): Likewise.
+ (modify_expr_template): Likewise.
+ (poolify_modify_stmt): Likewise.
+ (insert_fake_stores): Handle all component-ref style stores
+ in addition to INDIRECT_REF. Also handle complex types.
+ Do not poolify the inserted load.
+ (realify_fake_stores): Do not rebuild the tree but only
+ make it a SSA_NAME copy.
+ (init_pre): Remove initialzation of modify_expr_template.
+ Do not allocate modify_expr_node_pool.
+ (fini_pre): Do not free modify_expr_node_pool.
+
+2008-03-10 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
+ to avoid conflicts.
+
+2008-03-10 Paul Brook <paul@codesourcery.com>
+ Mark Shinwell <shinwell@codesourcery.com>
+
+ * config/arm/cortex-r4.md: New.
+ * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
+ insn attributes.
+ * config/arm/arm.md: Include cortex-r4.md.
+ (insn): Add smmls, sdiv and udiv values.
+ (generic_sched): Don't use generic scheduling for Cortex-R4.
+ (arm_issue_rate): New function.
+ (TARGET_SCHED_ISSUE_RATE): Define.
+
+2008-03-10 Sebastian Pop <sebastian.pop@amd.com>
+
+ * doc/invoke.texi (-ftree-loop-distribution): Add an example.
+
+2008-03-10 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (get_sccvn_value): Simplify.
+ (compute_avail): Do not add stmt uses to AVAIL_OUT.
+
+2008-03-10 Paolo Bonzini <bonzini@gnu.org>
+
+ * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
+ Set default to true.
+
+2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * c.opt (Wsynth): Deprecate.
+ * doc/invoke.texi (Option Summary, Warning Options): Document
+ -Wno-format-contains-nul.
+
+2008-03-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35496
+ * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
+ ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
+
+2008-03-09 Ira Rosen <irar@il.ibm.com>
+
+ * config/rs6000/rs6000.c (builtin_description): Rename vector
+ left shift operations.
+ * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
+ (altivec_vsl<VI_char>): Rename to ...
+ (ashl<mode>3): ... new name.
+ (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
+ gen_ashlv4si3.
+ (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
+
+2008-03-08 Richard Guenther <rguenther@suse.de>
+
+ * coverage.h (tree_coverage_counter_addr): Declare.
+ * coverage.c (tree_coverage_counter_addr): New function.
+ * tree-profile.c (tree_gen_edge_profiler): Unshare counter
+ before using again.
+ (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
+ (tree_gen_one_value_profiler): Likewise.
+ (tree_gen_ic_profiler): Likewise.
+ (tree_gen_average_profiler): Likewise.
+ (tree_gen_ior_profiler): Likewise.
+
+2008-03-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
+ (vn_binary_op_insert): Likewise.
+ (vn_unary_op_lookup): Likewise.
+ (vn_unary_op_insert): Likewise.
+ (vn_nary_op_lookup): Declare.
+ (vn_nary_op_insert): Likewise.
+ * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
+ and binary hashes, use a single obstack for unary_op_pool
+ and binary_op_pool.
+ (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
+ a single struct vn_nary_op_s. Store tree code length and
+ a variable number of operands.
+ (struct vn_reference_op_struct): Remove unused op2.
+ (vn_reference_op_eq): Do not compare op2.
+ (vn_reference_op_compute_hash): Do not compute hash of op2.
+ (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
+ (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
+ with vn_nary_op_compute_hash.
+ (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
+ (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
+ vn_nary_op_lookup.
+ (vn_unary_op_insert, vn_binary_op_insert): Replace with
+ vn_nary_op_insert.
+ (visit_unary_op): Call nary functions.
+ (visit_binary_op): Likewise.
+ (process_scc): Adjust for struct vn_tables_s changes.
+ (allocate_vn_table): Likewise.
+ (free_vn_table): Likewise.
+ * tree-vn.c (vn_add): Call nary functions.
+ (vn_lookup): Likewise.
+
+2008-03-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35498
+ * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
+ wdst back after sync_compare_and_swapqhi_internal.
+
+2008-03-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/22152
+ * config/i386/i386-modes.def (V1DI): New vector mode.
+ * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
+ * config/i386/mmx.md (MMXMODEI8): New mode iterator.
+ (MMXMODE248): Ditto.
+ (MMXMODE): Add V1DI mode.
+ (mmxvecsize): Change DI mode to V1DI mode.
+ ("mov<mode>): Use MMXMODEI8 mode iterator.
+ ("*mov<mode>_internal_rex64"): Ditto.
+ ("*mov<mode>_internal"): Ditto.
+ ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
+ ("mmx_sub<mode>3"): Ditto.
+ ("mmx_adddi3"): Remove insn pattern.
+ ("mmx_subdi3"): Ditto.
+ ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
+ ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
+ ("mmx_ashl<mode>3"): Ditto.
+ ("mmx_lshrdi3"): Remove insn pattern.
+ ("mmx_ashldi3"): Ditto.
+ * config/i386/i386.c (classify_argument): Handle V1DImode.
+ (function_arg_advance_32): Ditto.
+ (function_arg_32): Ditto.
+ (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
+ mmx_addv1di3 insn pattern.
+ [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
+ [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
+ IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
+ IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
+ Remove definitions of built-in functions.
+ (V1DI_type_node): New node.
+ (v1di_ftype_v1di_int): Ditto.
+ (v1di_ftype_v1di_v1di): Ditto.
+ (v2si_ftype_v2si_si): Ditto.
+ (v4hi_ftype_v4hi_di): Remove node.
+ (v2si_ftype_v2si_di): Ditto.
+ (ix86_init_mmx_sse_builtins): Handle V1DImode.
+ (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
+ Redefine builtins using def_builtin_const with *_ftype_*_int node.
+ (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
+ Add new builtins using def_builtin_const.
+ (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
+ IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
+ IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
+ * config/i386/mmintrin.h (__v1di): New typedef.
+ (_mm_add_si64): Cast arguments to __v1di type.
+ (_mm_sub_si64): Ditto.
+ (_mm_sll_pi16): Cast __count to __v4hi type.
+ (_mm_sll_pi32): Cast __count to __v2si type.
+ (_mm_sll_si64): Cast arguments to __v1di type.
+ (_mm_srl_pi16): Cast __count to __v4hi type.
+ (_mm_srl_pi32): Cast __count to __v2si type.
+ (_mm_srl_si64): Cast arguments to __v1di type.
+ (_mm_sra_pi16): Cast __count to __v4hi type.
+ (_mm_sra_pi32): Cast __count to __v2si type.
+ (_mm_slli_pi16): Use __builtin_ia32_psllwi.
+ (_mm_slli_pi32): Use __builtin_ia32_pslldi.
+ (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
+ (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
+ (_mm_srli_pi32): Use __builtin_ia32_psrldi.
+ (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
+ (_mm_srai_pi16): Use __builtin_ia32_psrawi.
+ (_mm_srai_pi32): Use __builtin_ia32_psradi.
+ * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
+ * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
+ __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
+ __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
+
+2008-03-07 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/include/texinfo.tex: Update to version 2008-03-07.10.
+
+2008-03-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR target/35373
+ * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
+ reg+const addressing for Altivec modes. Don't generate reg+reg
+ addressing for TFmode or TDmode quantities.
+
+2008-03-07 Paolo Bonzini <bonzini@gnu.org>
+
+ * c-common.c (vector_types_convertible_p): Call langhook
+ instead of comptypes.
+
+2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/35402
+ * tree-ssa-ccp.c (get_symbol_constant_value): Handle
+ integral and scalar float variables which have a
+ NULL DECL_INITIAL.
+
+2008-03-06 Nathan Froyd <froydnj@codesourcery.com>
+
+ * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
+ dwarf_register_span hook when emitting unwind information for
+ register-to-memory saves.
+ * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
+ (rs6000_frame_related): Remove call to spe_synthesize_frame.
+
+2008-03-06 Jakub Jelinek <jakub@redhat.com>
+
+ * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
+ for the same VAR_DECL.
+
+2008-03-06 Tom Tromey <tromey@redhat.com>
+
+ * treelang: Delete.
+ * doc/standards.texi (Standards): Don't mention treelang.
+ * doc/invoke.texi (Overall Options): Don't mention treelang.
+ * doc/install.texi (Prerequisites): Don't mention bison or
+ treelang.
+ (Configuration): Don't mention treelang.
+ (Building): Likewise.
+ * doc/frontends.texi (G++ and GCC): Don't mention treelang.
+
+2008-03-06 Paolo Bonzini <bonzini@gnu.org>
+
+ * simplify-rtx.c (simplify_subreg): Remove useless shifts from
+ word-extractions out of a multi-word object.
+
+2008-03-06 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
+ * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
+ result type and precision.
+ * expr.c (get_inner_reference): Set unsignedp based on the result
+ type of BIT_FIELD_REF.
+ * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
+ * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
+ (try_instantiate_multiple_fields): Likewise. Use the correct type
+ for BIT_FIELD_REF.
+ (sra_build_assignment): Likewise.
+ (sra_build_elt_assignment): Likewise.
+ (sra_explode_bitfield_assignment): Likewise.
+ * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
+ set BIT_FIELD_REF_UNSIGNED.
+ (vectorizable_load): Likewise.
+
+2008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * cse.c (cse_extended_basic_block): Invalidate artificial defs
+ at bb start.
+
+2008-03-06 Richard Guenther <rguenther@suse.de>
+
+ * alias.c (struct alias_set_entry): Move has_zero_child field
+ to pack with alias_set.
+
+2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-modes.def: Use 4 byte alignment on DI for
+ 32bit host.
+
+2008-03-05 Ian Lance Taylor <iant@google.com>
+
+ * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
+
+2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * fwprop.c (update_df): Support width and offset parameters of
+ df_ref_create.
+ * ra-conflict.c (mark_reg_store, clear_reg_in_live,
+ global_conflicts): Change DF_REF_EXTRACT to either
+ DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
+ DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
+ * df-scan.c (df_ref_record, df_defs_record,
+ df_ref_create_structure, df_def_record_1, df_uses_record,
+ df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
+ df_bb_refs_collect, df_entry_block_defs_collect,
+ df_exit_block_uses_collect): Support new width and offset fields.
+ (ref_extract_pool): New storage pool.
+ (df_free_ref): New function.
+ (df_reg_chain_unlink, df_free_collection_rec,
+ df_sort_and_compress_refs): Call df_free_ref.
+ (df_ref_equal_p, df_ref_compare): Compare offset and width fields
+ of df_ref_extract.
+ (df_ref_create_structure): Allocate df_ref_extract if offset and
+ width fields are used.
+ (df_def_record_1): Get offset and width from ZERO_EXTRACT.
+ (df_uses_record): Get offset and width from ZERO_EXTRACT
+ and SIGN_EXTRACT.
+ * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
+ DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
+ DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
+ * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
+ DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
+ DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
+ (df_ref_extract): New structure.
+ (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
+ (df_ref_create): Add width and offset parameters.
+
+2008-03-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (get_constraint_for_component_ref):
+ Use ranges_overlap_p.
+ (offset_overlaps_with_access): Rename
+ to ranges_overlap_p and move ...
+ * tree-flow-inline.h (ranges_overlap_p): ... here.
+
+ * tree.h (get_inner_reference, handled_component_p): Update
+ comments.
+
+ * tree.h (record_component_aliases, get_alias_set,
+ alias_sets_conflict_p, alias_sets_must_conflict_p,
+ objects_must_conflict_p): Move declarations ...
+ * alias.h (record_component_aliases, get_alias_set,
+ alias_sets_conflict_p, alias_sets_must_conflict_p,
+ objects_must_conflict_p): ... here.
+ Include coretypes.h.
+ * Makefile.in (ALIAS_H): Add coretypes.h dependency.
+
+2008-03-05 Aldy Hernandez <aldyh@redhat.com>
+
+ * cfg.c: Include tree-flow.h.
+ (remove_edge_raw): Call redirect_edge_var_map_clear.
+ (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
+ * tree-flow-inline.h (redirect_edge_var_map_def): New.
+ (redirect_edge_var_map_result): New.
+ * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
+ PENDING_STMT use with redirect_edge_var_map_*.
+ * tree-ssa.c (edge_var_maps): New definition.
+ (redirect_edge_var_map_add): New.
+ (redirect_edge_var_map_clear): New.
+ (redirect_edge_var_map_dup): New.
+ (redirect_edge_var_map_vector): New.
+ (redirect_edge_var_map_destroy): New.
+ (ssa_redirect_edge): Replace PENDING_STMT use with
+ redirect_edge_var_map_*.
+ (flush_pending_stmts): Same.
+ (delete_tree_ssa): Destroy edge var map.
+ * tree-flow.h (struct _edge_var_map): New.
+ Define edge_var_map vector type.
+ Declare redirect_edge_var_map_* prototypes.
+ * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
+ * tree-cfg.c (reinstall_phi_args): Replace
+ PENDING_STMT use with redirect_edge_var_map_*.
+
+2008-03-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35472
+ * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
+ whose single use_stmt has a overlapping set of loaded and
+ stored symbols as that use_stmt might be a noop assignment then.
+
+2008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * gthr-rtems.h: Implement __gthread_mutex_destroy.
+
+2008-03-05 Richard Guenther <rguenther@suse.de>
+
+ PR c++/35336
+ * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
+ should be constants.
+ * tree-cfg.c (verify_expr): Verify it.
+ * fold-const.c (fold_truthop): Remove code generating
+ BIT_FIELD_REFs of structure bases.
+ (fold_binary): Likewise.
+ (fold_ternary): Position and size of BIT_FIELD_REFs are
+ always host integers.
+ (make_bit_field_ref): Remove.
+ (optimize_bit_field_compare): Remove.
+ (all_ones_mask_p): Remove.
+
+2008-03-05 Gabor Loki <loki@gcc.gnu.org>
+
+ PR gcc/33009
+ * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
+ (split_block_and_df_analyze): New. Split basic block and rebuild
+ dataflow.
+ (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
+ SPLIT_BLOCK.
+ (split_pattern_seq): Likewise.
+ (erase_matching_seqs): Likewise.
+ (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
+
+2008-03-04 Geoff Keating <geoffk@apple.com>
+
+ * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
+ declaration and code.
+ (tree_invalid_nonnegative_warnv_p): Likewise.
+
+2008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
+
+ * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
+ examples. Truncate option-names then causing overfull hbox.
+
+2008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/35222
+ * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
+ on hpux10.
+ * configure: Rebuilt.
+
+2008-03-04 Rafael Espíndola <espindola@google.com>
+
+ * fold-const.c (tree_simple_nonnegative_warnv_p): New.
+ (tree_unary_nonnegative_warnv_p): New.
+ (tree_binary_nonnegative_warnv_p): New.
+ (tree_single_nonnegative_warnv_p): New.
+ (tree_invalid_nonnegative_warnv_p): New.
+ (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
+
+2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28322
+ * opts.c (handle_option): Postpone 'unknown option' errors only for
+ warning options.
+
+2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35453
+ * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
+ (_SIDD_XXX): This.
+
+2008-03-04 Rafael Espíndola <espindola@google.com>
+
+ * fold-const.c (tree_unary_nonzero_warnv_p): New.
+ (tree_binary_nonzero_warnv_p): New.
+ (tree_single_nonzero_warnv_p): New.
+ (tree_expr_nonzero_warnv_p): Redefine using the new functions.
+
+2008-03-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/35456
+ * fold-const.c (fold_cond_expr_with_comparison): Prevent
+ transformations for modes that have signed zeros.
+ * ifcvt.c (noce_try_abs): Ditto.
+
+2008-03-04 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/i386.c (override_options): Force
+ -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
+
+2008-03-04 Jan Hubicka <jh@suse.cz>
+
+ PR c++/35262
+ * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
+ in last commit.
+
+2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
+ label to probe the stack.
+
+2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
+ (__gthr_win32_mutex_destroy): Declare.
+ [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
+ __gthr_win32_mutex_destroy.
+ * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
+
+2008-03-03 Jan Hubicka <jh@suse.cz>
+
+ PR c++/35262
+ * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
+ aggressive on inlining cold calls.
+
+2008-03-03 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
+ struct copies into the expression table.
+ (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
+ (try_to_simplify): Likewise.
+ * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
+ integral and pointer arguments which do not change the
+ precision to NOP_EXPRs.
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
+ VIEW_CONVERT_EXPR case.
+
+2008-03-02 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
+ defined in a loop at depth 0 is invariant.
+ * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
+ * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
+ be called at loop depth 0.
+
+2008-03-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR driver/35420
+ * gcc.c (process_command): Update copyright notice dates.
+ * gcov.c (print_version): Likewise.
+ * gcov-dump.c (print_version): Likewise.
+ * mips-tfile.c (main): Likewise.
+ * mips-tdump.c (main): Likewise.
+
+2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 24924
+ * c-common.c (flag_permissive): Delete.
+ (constant_expression_warnings): Check flags first.
+ (constant_expression_error): New.
+ * c-common.h (flag_permissive): Delete.
+ (constant_expression_error): Declare.
+ * flags.h (flag_permissive): Declare. Update description.
+ * diagnostic.c (pedwarn): Update.
+ (permerror): New.
+ * diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind.
+ (permissive_error_kind): New.
+ * toplev.c (flag_permissive): Define. Update description.
+ * toplev.h (permissive_error_kind): Declare.
+ * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
+ (pedwarn_c90): Use pedantic_warning_kind.
+ * c-opts.c (c_common_post_options): flag_permissive does not affect
+ flag_pedantic_errors.
+
+2008-03-02 Joseph Myers <joseph@codesourcery.com>
+
+ * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
+ __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
+ __absvsi2, __absvDI2): Use unsigned arithmetic.
+
+2008-03-02 Andi Kleen <ak@suse.de>
+ Richard Guenther <rguenther@suse.de>
+
+ * struct-equiv.c: Remove file.
+ * cfg_cleanup.c (condjump_equiv_p): Remove.
+ * Makefile.in (OBJS-common): Remove struct-equiv.o.
+ (struct-equiv.o): Remove rule.
+ * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
+ insns_match_p, struct_equiv_block_eq, struct_equiv_init,
+ rtx_equiv_p, condjump_equiv_p): Remove prototypes.
+
+2008-03-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * ifcvt.c (noce_process_if_block): Try to handle only the then
+ block if the else block exists but isn't suitable.
+
+2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR gcc/35063
+ * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
+ * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
+ regression from previous patch.
+
+2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR gcc/35063
+ * gthr.h: Add __gthread_mutex_destroy as a function that must be
+ implemented.
+ * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
+ * gthr-single.h (__gthread_mutex_destroy): Likewise.
+ * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
+ * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
+ * gthr-nks.h (__gthread_mutex_destroy): Likewise.
+ * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
+ * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
+ (__gthread_mutex_destroy_function): Rename to
+ __gthread_mutex_destroy.
+ * gthr-dce.h (__gthread_mutex_destroy): Call
+ pthread_mutex_destroy.
+ * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
+ * gthr-posix.h (__gthread_mutex_destroy): Likewise.
+ * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
+
+2008-03-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * df-scan.c (df_ref_chain_change_bb): Simplify.
+ (df_insn_change_bb): Add new_bb argument. Simplify. Call
+ set_block_for_insn if there's any change.
+ * df.h ((df_insn_change_bb): Fix prototype.
+ * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
+ df_insn_change_bb, don't call set_block_for_insn.
+ * emit-rtl.c (reorder_insns): Likewise.
+ * haifa-sched.c (move_insn): Likewise.
+
+2008-03-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
+
+2008-03-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-flow-inline.h (next_readonly_imm_use): Return
+ NULL_USE_OPERAND_P after the end.
+
+2008-03-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35411
+ * tree-sra.c (sra_build_assignment): Split conversion to
+ final type to a separate statement if we are not assigning
+ to a register.
+
+2008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * fold-const.c (fold_convertible_p): Correct the logic to follow
+ that in fold_convert().
+
+2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/35315
+ * tree-inline.c (build_duplicate_type): When we make a
+ duplicate type, make it unique in the canonical types system.
+
+2008-02-29 Tom Tromey <tromey@redhat.com>
+
+ * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
+ input_file_stack_history, input_file_stack_restored): Remove.
+ (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
+ * input.h (struct file_stack): Remove.
+ (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
+ (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
+ Likewise.
+ * diagnostic.h (struct diagnostic_context) <last_module>: Change
+ type.
+ (diagnostic_last_module_changed): Add 'map' argument.
+ (diagnostic_set_last_function): Likewise.
+ * diagnostic.c (undiagnostic_report_current_module): Iterate using
+ line map, not input_file_stack.
+ * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
+
+2008-02-29 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
+
+2008-02-29 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/ieee754-df.S (muldf3): Use RET macros.
+
+2008-02-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
+ vn_lookup_or_add.
+ * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
+ value for comparing for a store match.
+ (simplify_unary_expression): Do nothing for SSA_NAMEs.
+ (try_to_simplify): Do not do a full-blown reference lookup.
+
+2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
+ (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
+
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
+
+2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-loop-linear.c (try_interchange_loops): Compare memory access
+ strides against cache sizes.
+
+2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_secondary_reload): Handle loading a float
+ constant to fpul.
+
+2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
+ of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
+ is smaller than the original promoted value.
+ (simplify_subreg): If OP is a SUBREG, try to preserve its
+ SUBREG_PROMOTED_VAR_P information.
+
+2008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
+ (VN_INFO_GET): Allocate new objects on the obstack.
+ (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
+ for rpo_numbers_temp, for consistency.
+ (free_scc_vn): Free the obstack.
+
+2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
+
+ * doc/invoke.texi: Document -ftree-loop-distribution.
+ * tree-loop-distribution.c: New.
+ * tree-pass.h (pass_loop_distribution): New.
+ * graphds.h (struct graph): Add htab_t indices.
+ * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
+ * tree-vectorizer.c (rename_variables_in_loop): Extern.
+ (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
+ * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
+ * tree-data-ref.c (debug_data_dependence_relations): New.
+ (dump_data_dependence_relation): Also print data references.
+ (free_data_ref): Extern.
+ (same_access_functions): Moved...
+ (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
+ (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
+ debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
+ struct rdg_vertex_info, rdg_vertex_for_stmt): New.
+ (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
+ (stmts_from_loop): Skip LABEL_EXPR.
+ (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
+ New.
+ (build_rdg): Initialize rdg->indices htab.
+ (free_rdg, stores_from_loop, ref_base_address,
+ rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
+ have_similar_memory_accesses_1, ref_base_address_1,
+ remove_similar_memory_refs): New.
+ * tree-data-ref.h: Depend on tree-chrec.h.
+ (debug_data_dependence_relations, free_data_ref): Declared.
+ (same_access_functions): ... here.
+ (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
+ New.
+ (struct rdg_vertex): Add has_mem_write and has_mem_reads.
+ (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
+ RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
+ (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
+ debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
+ rdg_vertex_for_stmt): Declared.
+ (struct rdg_edge): Add level.
+ (RDGE_LEVEL): New.
+ (free_rdg, stores_from_loop, remove_similar_memory_refs,
+ rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
+ Declared.
+ (rdg_has_similar_memory_accesses): New.
+ * tree-vect-analyze.c: Remove unused static decls.
+ * lambda.h (dependence_level): New.
+ * common.opt (ftree-loop-distribution): New.
+ * tree-flow.h (mark_virtual_ops_in_bb,
+ slpeel_tree_duplicate_loop_to_edge_cfg,
+ rename_variables_in_loop): Declared.
+ * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
+ (OBJS-common): Add tree-loop-distribution.o.
+ (tree-loop-distribution.o): New rule.
+ * tree-cfg.c (mark_virtual_ops_in_bb): New.
+ (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
+ * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
+
+2008-02-28 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/33963
+ * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
+ other than structures and unions.
+
+2008-02-28 Richard Guenther <rguenther@suse.de>
+
+ Revert:
+ 2008-02-26 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
+ * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
+ (lookup_decl_from_uid): Declare.
+ (remove_decl_from_map): Likewise.
+ * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
+ * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
+ (decl_for_uid_map): New global hashtable mapping DECL_UID
+ to the decl tree.
+ (init_ttree): Allocate it.
+ (insert_decl_to_uid_decl_map): New helper function.
+ (make_node_stat): Insert new decls into the map.
+ (copy_node_stat): Likewise.
+ (lookup_decl_from_uid): New function.
+ (remove_decl_from_map): Likewise.
+ (print_decl_for_uid_map_statistics): New helper.
+ (dump_tree_statistics): Call it.
+
+ * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
+ (referenced_var_iterator): Adjust.
+ (FOR_EACH_REFERENCED_VAR): Adjust.
+ (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
+ (num_referenced_vars): Adjust.
+ * tree-flow-inline.h (gimple_referenced_vars): Adjust.
+ (first_referenced_var): Remove.
+ (end_referenced_vars_p): Likewise.
+ (next_referenced_var): Likewise.
+ (referenced_var_iterator_set): New helper function.
+ * tree-dfa.c (referenced_var_lookup): Adjust.
+ (referenced_var_check_and_insert): Likewise.
+ (remove_referenced_var): Likewise.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (verify_call_clobbering): Likewise.
+ (verify_memory_partitions): Likewise.
+ (init_tree_ssa): Allocate bitmap instead of hashtable for
+ referenced_vars.
+ (delete_tree_ssa): Adjust.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (find_partition_for): Likewise.
+ (update_reference_counts): Likewise.
+ (dump_may_aliases_for): Likewise.
+ * tree-ssa-operands.c (add_virtual_operand): Likewise.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ * tree-into-ssa.c (dump_decl_set): Likewise.
+ (update_ssa): Likewise.
+ * tree-sra.c (scan_function): Likewise.
+ (decide_instantiations): Likewise.
+ (scalarize_parms): Likewise.
+ * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
+ (dsa_named_for): Likewise.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ (merge_smts_into): Likewise.
+
+2008-02-27 David Daney <ddaney@avtrex.com>
+
+ PR target/34409
+ * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
+ * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
+ * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
+ * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
+ * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
+
+2008-02-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/25477
+ * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
+ (BUILT_IN_NEXTTOWARD): Remove.
+ (BUILT_IN_NEXTTOWARDF): Ditto.
+ * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
+ alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
+
+2008-02-27 Tom Tromey <tromey@redhat.com>
+
+ * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
+ DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
+
+2008-02-27 Jan Beulich <jbeulich@novell.com>
+
+ * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
+ update the respective field on newdecl.
+
+2008-02-27 Revital Eres <eres@il.ibm.com>
+
+ PR rtl-optimization/34999
+ * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
+ crossing edges that ends with a call insn.
+ (fix_up_fall_thru_edges): Handle crossing edges that ends with a
+ call insn and clear the EDGE_CROSSING flag of the crossing edge
+ when fixing fallthru edges.
+
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35390
+ * fold-const.c (fold_unary): Return the correct argument,
+ converted to the result type.
+
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34971
+ * expr.c (expand_expr_real_1): Assert on rotates that operate
+ on partial modes.
+ * fold-const.c (fold_binary): Use the types precision, not the
+ bitsize of the mode if folding rotate expressions. Build rotates
+ only for full modes.
+
+2008-02-27 Jakub Jelinek <jakub@redhat.com>
+
+ * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
+ and CPP_PRAGMA_EOL.
+ * c-pragma.c (pragma_ns_name): New typedef.
+ (registered_pp_pragmas): New variable.
+ (c_pp_lookup_pragma): New function.
+ (c_register_pragma_1): If flag_preprocess_only, do nothing
+ for non-expanded pragmas, for expanded ones push pragma's
+ namespace and name into registered_pp_pragmas vector.
+ (c_invoke_pragma_handler): Register OpenMP pragmas even when
+ flag_preprocess_only, don't register GCC pch_preprocess
+ pragma if flag_preprocess_only.
+ * c-opts.c (c_common_init): Call init_pragma even if
+ flag_preprocess_only.
+ * c-pragma.c (c_pp_lookup_pragma): New prototype.
+ * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
+ cpp_register_pragma if flag_preprocess_only.
+
+2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR c/28800
+ * c-parser.c (c_parser_translation_unit): Warn for empty
+ translation unit, not empty source file.
+
+2008-02-26 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
+ operand for Thumb-2.
+ * config/arm/arm.h (reg_class): Add CORE_REGS.
+ (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
+ (BASE_REG_CLASS): Use CORE_REGS.
+ (PREFERRED_RELOAD_CLASS): Add STACK_REG.
+ (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
+ (REGNO_OK_FOR_INDEX_P): Exclude SP.
+ (ARM_REG_OK_FOR_INDEX_P): Always define. Use
+ ARM_REGNO_OK_FOR_INDEX_P.
+ (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
+ * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
+ arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
+ (ldm/stm peepholes): Ditto.
+ * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
+ * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
+ * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
+ * config/arm/constraints.md: Enable "k" constraint on ARM.
+
+2008-02-27 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000.c: Annotate cache line size field in all
+ instances of struct processor_costs.
+
+2008-02-26 David Edelsohn <edelsohn@gnu.org>
+
+ * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
+ dse2, gcse, if_conversion, if_after_combine, if_after_reload,
+ jump_bypass): New counters.
+ * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
+ * dce.c (gate_ud_dce): Same.
+ (gate_fast_dce): Same.
+ * dse.c (gate_dse1): New function.
+ (gate_dse2): New function.
+ (gate_dse): Merge results of new gate functions.
+ * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
+ (gate_handle_jump_bypass): Add dbg_cnt.
+ (gate_handle_gcse): Add dbg_cnt.
+ * ifcvt.c (gate_handle_if_conversion): Same.
+ (gate_handle_if_after_combine): Same.
+ (gate_handle_if_after_reload): Same.
+ * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
+
+2008-02-26 Edmar Wienskoski <edmar@freescale.com>
+
+ * config/rs6000/rs6000.c (processor_costs): Update e300 cache
+ line sizes.
+ * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
+
+2008-02-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/35315
+ * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
+ alone if it's the naming decl for the type's main variant.
+
+2008-02-26 Tom Tromey <tromey@redhat.com>
+
+ * system.h (USE_MAPPED_LOCATION): Poison.
+ * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
+ * tree-cfg.c (make_cond_expr_edges): Remove old location code.
+ (make_goto_expr_edges): Likewise.
+ (remove_bb): Likewise.
+ (execute_warn_function_return): Likewise.
+ * basic-block.h (struct edge_def) <goto_locus>: Change type to
+ location_t.
+ * c-common.c (fname_decl): Remove old location code.
+ * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
+ location code.
+ * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
+ variant.
+ (ASM_INPUT_SOURCE_LOCATION): Likewise.
+ (gen_rtx_ASM_INPUT): Likewise.
+ (gen_rtx_ASM_INPUT_loc): Likewise.
+ (get_rtx_asm_OPERANDS): Remove.
+ * cfglayout.c (insn_locators_alloc): Remove old location code.
+ (set_curr_insn_source_location): Likewise.
+ (curr_insn_locator): Likewise.
+ * print-tree.c (print_node): Remove old location code.
+ * tree-mudflap.c (mf_varname_tree): Remove old location code.
+ (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
+ * cfgexpand.c (expand_gimple_cond_expr): Don't use
+ location_from_locus.
+ (construct_exit_block): Remove old location code.
+ * emit-rtl.c (force_next_line_note): Remove old location code.
+ * profile.c (branch_prob): Remove old location code.
+ * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
+ LOC_LINE): Remove old-location variants.
+ * langhooks.c (lhd_print_error_function): Remove old location
+ code.
+ * configure, config.in: Rebuilt.
+ * configure.ac (--enable-mapped-location): Remove.
+ * c-decl.c (c_init_decl_processing): Remove old location code.
+ (finish_function): Likewise.
+ * recog.c (decode_asm_operands): Remove old location code.
+ * c-pch.c (c_common_read_pch): Remove old location code.
+ * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
+ variants.
+ * gimple-low.c (lower_function_body): Remove old location code.
+ * toplev.c (unknown_location): Remove.
+ (push_srcloc): Remove old-location variant.
+ (process_options): Remove old location code.
+ (lang_dependent_init): Likewise.
+ * input.h (UNKNOWN_LOCATION): Move definition.
+ (location_t): Undeprecate.
+ (source_locus): Remove.
+ (location_from_locus): Remove.
+ (struct location_s): Remove.
+ Remove all old-location code.
+ (input_line, input_filename): Remove.
+ * final.c (final_scan_insn): Remove old location code.
+ * diagnostic.c (diagnostic_build_prefix): Remove
+ USE_MAPPED_LOCATION test.
+ * tree.h (gimple_stmt) <locus>: Now a location_t.
+ (tree_exp) <locus>: Likewise.
+ (DECL_IS_BUILTIN): Remove old-location variant.
+ (annotate_with_file_line, annotate_with_locus): Likewise.
+ (expr_locus, set_expr_locus): Update.
+ * tree.c (build1_stat): Remove old location code.
+ (last_annotated_node): Remove.
+ (annotate_with_file_line): Remove old-location variant.
+ (annotate_with_locus): Likewise.
+ (expr_location): Remove old location code.
+ (set_expr_location): Likewise.
+ (expr_has_location): Likewise.
+ (expr_locus): Likewise.
+ (set_expr_locus): Likewise.
+ (expr_filename): Don't use location_from_locus.
+ (expr_lineno): Likewise.
+ * rtl-error.c (location_for_asm): Remove old location code.
+ * c-lex.c (cb_line_change): Remove old location code.
+ (fe_file_change): Likewise.
+ (cb_def_pragma): Likewise.
+ (c_lex_with_flags): Likewise.
+ * gengtype.c (do_typedef): Don't special-case location types.
+ (define_location_structures): Remove.
+ (main): Don't call define_location_structures.
+ * tree-pretty-print.c (dump_implicit_edges): Remove old location
+ code.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 26264
+ * builtins.def (BUILT_IN_STDARG_START): Remove.
+ * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
+ * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+ * tree-inline.c (inline_forbidden_p_1): Likewise.
+
+2008-02-26 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
+ * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
+ (lookup_decl_from_uid): Declare.
+ (remove_decl_from_map): Likewise.
+ * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
+ * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
+ (decl_for_uid_map): New global hashtable mapping DECL_UID
+ to the decl tree.
+ (init_ttree): Allocate it.
+ (insert_decl_to_uid_decl_map): New helper function.
+ (make_node_stat): Insert new decls into the map.
+ (copy_node_stat): Likewise.
+ (lookup_decl_from_uid): New function.
+ (remove_decl_from_map): Likewise.
+ (print_decl_for_uid_map_statistics): New helper.
+ (dump_tree_statistics): Call it.
+
+ * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
+ (referenced_var_iterator): Adjust.
+ (FOR_EACH_REFERENCED_VAR): Adjust.
+ (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
+ (num_referenced_vars): Adjust.
+ * tree-flow-inline.h (gimple_referenced_vars): Adjust.
+ (first_referenced_var): Remove.
+ (end_referenced_vars_p): Likewise.
+ (next_referenced_var): Likewise.
+ (referenced_var_iterator_set): New helper function.
+ * tree-dfa.c (referenced_var_lookup): Adjust.
+ (referenced_var_check_and_insert): Likewise.
+ (remove_referenced_var): Likewise.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (verify_call_clobbering): Likewise.
+ (verify_memory_partitions): Likewise.
+ (init_tree_ssa): Allocate bitmap instead of hashtable for
+ referenced_vars.
+ (delete_tree_ssa): Adjust.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (find_partition_for): Likewise.
+ (update_reference_counts): Likewise.
+ (dump_may_aliases_for): Likewise.
+ * tree-ssa-operands.c (add_virtual_operand): Likewise.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ * tree-into-ssa.c (dump_decl_set): Likewise.
+ (update_ssa): Likewise.
+ * tree-sra.c (scan_function): Likewise.
+ (decide_instantiations): Likewise.
+ (scalarize_parms): Likewise.
+ * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
+ (dsa_named_for): Likewise.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ (merge_smts_into): Likewise.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34351
+ * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
+ * c-opts.c (c_common_handle_option): Wall enables
+ Wvolatile-register-var.
+ * common.opt: Move Wvolatile-register-var to...
+ * c.opt: ...here.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * common.opt (Wlarger-than=): New.
+ * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
+ -Wlarger-than=.
+ * opts.c (common_handle_option): Handle -Wlarger-than=.
+ * optc-gen.awk: Likewise.
+ * opth-gen.awk: Likewise.
+ * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
+ * tree-optimize.c (tree_rest_of_compilation): Likewise.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-common.c (match_case_to_enum_1): Add appropriate
+ OPT_W* parameter to warning.
+ (c_do_switch_warnings): Likewise.
+ * c-typeck.c (warning_init): Add one more parameter following
+ 'warning' function.
+ (push_init_level): Update call to warning_init.
+ (pop_init_level): Likewise.
+ (add_pending_init): Likewise.
+ (output_init_element: Likewise.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28322
+ * toplev.c (toplev_main): If there are warnings or error, print
+ errors for ignored options.
+ * opts.c (ignored_options): New static variable.
+ (postpone_unknown_option_error): New.
+ (print_ignored_options): New.
+ (handle_option): Postpone errors for unknown -Wno-* options.
+ * opts.h (print_ignored_options): Declare.
+
+2008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.md (loadgp_blockage, blockage): Change type
+ to "ghost".
+
+2008-02-25 Richard Guenther <rguenther@suse.de>
+
+ Revert:
+ 2008-02-25 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
+ * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
+ (lookup_decl_from_uid): Declare.
+ * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
+ * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
+ (decl_for_uid_map): New global hashtable mapping DECL_UID
+ to the decl tree.
+ (init_ttree): Allocate it.
+ (insert_decl_to_uid_decl_map): New helper function.
+ (make_node_stat): Insert new decls into the map.
+ (copy_node_stat): Likewise.
+ (lookup_decl_from_uid): New function.
+ (print_decl_for_uid_map_statistics): New helper.
+ (dump_tree_statistics): Call it.
+
+ * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
+ (referenced_var_iterator): Adjust.
+ (FOR_EACH_REFERENCED_VAR): Adjust.
+ (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
+ (num_referenced_vars): Adjust.
+ * tree-flow-inline.h (gimple_referenced_vars): Adjust.
+ (first_referenced_var): Remove.
+ (end_referenced_vars_p): Likewise.
+ (next_referenced_var): Likewise.
+ (referenced_var_iterator_set): New helper function.
+ * tree-dfa.c (referenced_var_lookup): Adjust.
+ (referenced_var_check_and_insert): Likewise.
+ (remove_referenced_var): Likewise.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (verify_call_clobbering): Likewise.
+ (verify_memory_partitions): Likewise.
+ (init_tree_ssa): Allocate bitmap instead of hashtable for
+ referenced_vars.
+ (delete_tree_ssa): Adjust.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (find_partition_for): Likewise.
+ (update_reference_counts): Likewise.
+ (dump_may_aliases_for): Likewise.
+ * tree-ssa-operands.c (add_virtual_operand): Likewise.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ * tree-into-ssa.c (dump_decl_set): Likewise.
+ (update_ssa): Likewise.
+ * tree-sra.c (scan_function): Likewise.
+ (decide_instantiations): Likewise.
+ (scalarize_parms): Likewise.
+ * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
+ (dsa_named_for): Likewise.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ (merge_smts_into): Likewise.
+
+2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR fortran/29549
+ * doc/invoke.texi (-fcx-limited-range): Document new option.
+ * toplev.c (process_options): Handle -fcx-fortran-rules.
+ * common.opt: Add documentation for -fcx-fortran-rules.
+
+2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR c/35162
+ * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
+ actual behaviour and C99.
+
+2008-02-26 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
+ (ASM_CPU_POWER6_SPEC): Likewise.
+ (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
+ Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
+ (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
+
+2008-02-25 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
+ * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
+ (lookup_decl_from_uid): Declare.
+ * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
+ * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
+ (decl_for_uid_map): New global hashtable mapping DECL_UID
+ to the decl tree.
+ (init_ttree): Allocate it.
+ (insert_decl_to_uid_decl_map): New helper function.
+ (make_node_stat): Insert new decls into the map.
+ (copy_node_stat): Likewise.
+ (lookup_decl_from_uid): New function.
+ (print_decl_for_uid_map_statistics): New helper.
+ (dump_tree_statistics): Call it.
+
+ * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
+ (referenced_var_iterator): Adjust.
+ (FOR_EACH_REFERENCED_VAR): Adjust.
+ (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
+ (num_referenced_vars): Adjust.
+ * tree-flow-inline.h (gimple_referenced_vars): Adjust.
+ (first_referenced_var): Remove.
+ (end_referenced_vars_p): Likewise.
+ (next_referenced_var): Likewise.
+ (referenced_var_iterator_set): New helper function.
+ * tree-dfa.c (referenced_var_lookup): Adjust.
+ (referenced_var_check_and_insert): Likewise.
+ (remove_referenced_var): Likewise.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (verify_call_clobbering): Likewise.
+ (verify_memory_partitions): Likewise.
+ (init_tree_ssa): Allocate bitmap instead of hashtable for
+ referenced_vars.
+ (delete_tree_ssa): Adjust.
+ * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
+ FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+ (compute_tag_properties): Likewise.
+ (set_initial_properties): Likewise.
+ (find_partition_for): Likewise.
+ (update_reference_counts): Likewise.
+ (dump_may_aliases_for): Likewise.
+ * tree-ssa-operands.c (add_virtual_operand): Likewise.
+ (add_call_clobber_ops): Likewise.
+ (add_call_read_ops): Likewise.
+ (get_asm_expr_operands): Likewise.
+ * tree-into-ssa.c (dump_decl_set): Likewise.
+ (update_ssa): Likewise.
+ * tree-sra.c (scan_function): Likewise.
+ (decide_instantiations): Likewise.
+ (scalarize_parms): Likewise.
+ * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
+ (dsa_named_for): Likewise.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ (merge_smts_into): Likewise.
+
+2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/35258
+ * cse.c (cse_insn): Avoid creation of overlapping MEMs.
+ * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
+ * alias.h (nonoverlapping_memrefs_p): Likewise.
+
+2008-02-25 Jan Beulich <jbeulich@novell.com>
+
+ * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
+ * config/i386/netware-libgcc.exp: Add __bswap?i2,
+ __emultls_get_address, __emultls_register_common,
+ __floatundi?f, and _Unwind_GetIPInfo.
+ * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
+ Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
+ (gen_regparm_prefix): Likewise.
+ (i386_nlm_encode_section_info): Sync with
+ config/i386/winnt.c:i386_pe_encode_section_info().
+ (i386_nlm_maybe_mangle_decl_assembler_name): New.
+ i386_nlm_mangle_decl_assembler_name): New.
+ (netware_override_options): New.
+ * config/i386/netware.h (netware_override_options): Declare.
+ (OVERRIDE_OPTIONS): Re-define to netware_override_options.
+ (i386_nlm_mangle_decl_assembler_name): Declare.
+ (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
+
+2008-02-25 Ben Elliston <bje@au.ibm.com>
+
+ PR other/32948
+ * c-decl.c (grokdeclarator): Remove unused local variables
+ `typedef_type' and `type_as_written'.
+ * bb-reorder.c
+ (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
+ unused local variable `has_hot_blocks'.
+ (fix_crossing_conditional_branches): Remove unused local variable
+ `prev_bb'.
+
+2008-02-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/19984
+ * builtins.def (BUILT_IN_NAN): Define as c99 builtin
+ using DEF_C99_BUILTIN.
+ (BUILT_IN_NANF): Ditto.
+ (BUILT_IN_NANL): Ditto.
+
+2008-02-25 Ayal Zaks <zaks@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * modulo-sched.c (calculate_must_precede_follow): Address TODO
+ regarding the order of two dependent insns in the same row.
+
+2008-02-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * stor-layout.c (layout_decl): Do not bump the alignment of a
+ bit-field to more than byte alignment if it is packed.
+
+2008-02-24 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (processor_costs): Add cache costs for
+ e300c2 and e300c3.
+
+2008-02-24 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
+
+ PR 33738
+ * tree-vrp.c (vrp_evaluate_conditional): With
+ -Wtype-limits, emit a warning when comparing against a
+ constant outside the natural range of OP0's type.
+ * c.opt (Wtype-limits): Move ...
+ * common.opt (Wtype-limits): ... here.
+
+2008-02-24 Edmar Wienskoski <edmar@freescale.com>
+
+ * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
+ * config/rs6000/e300c2c3.md: New file.
+ * config/rs6000/rs6000.c (processor_costs): Add new costs for
+ e300c2 and e300c3.
+ (rs6000_override_options): Add e300c2 and e300c3 cases to
+ processor_target_table. Do not allow usage of Altivec or Spe
+ with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
+ (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
+ * config/rs6000/rs6000.h (processor_type): Add
+ PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
+ (ASM_CPU_SPEC): Add e300c2 and e300c3.
+ * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
+ and ppce300c3. Include e300c2c3.md.
+
+2008-02-23 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
+ instead of TARGET_STRICT_ALIGN.
+
+2008-02-23 Joseph Myers <joseph@codesourcery.com>
+
+ * explow.c (memory_address): Assert that the generated address is
+ valid.
+
+2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR target/25477
+ * config/darwin-protos.h: Add darwin_patch_builtins prototype.
+ * config/darwin-ppc-ldouble-patch.def: New file.
+ * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
+ * config/rs6000/rs6000.c (rs6000_init_builtins): Call
+ SUBTARGET_INIT_BUILTINS if defined.
+ * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
+ New functions.
+
+2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/33512
+ * simplify-rtx.c (simplify_binary_operation_1): Add simplification
+ of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
+
+2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR pch/35027
+ * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
+ file" warning condtional on -Winvalid-PCH.
+
+2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * expmed.c (extract_bit_field): Always use adjust_address for MEM.
+
+2008-02-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/22076
+ PR target/34256
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
+ prevent reload from using MMX registers.
+ (*mov<mode>_internal): Ditto.
+ (*movv2sf_internal_rex64): Ditto.
+ (*movv2sf_internal): Ditto.
+
+2008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR documentation/31569
+ * doc/install.texi2html: Use makeinfo --no-number-sections.
+
+2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
+ ensure that we can address an entire entity > 8 bytes. Don't
+ generate reg+reg addressing for such data.
+
+2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
+ strings when optimizing for size, unless the target cares about
+ alignment.
+
+2008-02-22 Tom Tromey <tromey@redhat.com>
+
+ * regclass.c (current_pass): Remove declaration.
+
+2008-02-22 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/libgcc.S (__RAMPZ__): Define.
+ (__do_copy_data): Add for devices with 128KB code memory.
+
+2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+ Use spe_abi.
+ * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
+
+2008-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
+ GENNONACR_REGS.
+
+2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR c/19999
+ * c-typeck.c (build_binary_op): Warn about floating point
+ comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
+
+2008-02-21 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/34526
+ * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
+ (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
+ add vrsave.
+ (rs6000_override_options): Set altivec_abi as default, not override,
+ for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
+ TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
+ is used; use new member spe_abi.
+ (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
+ spe_abi and altivec_abi.
+
+2008-02-22 Tomas Bily <tbily@suse.cz>
+
+ * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
+
+2008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/35273
+ * config.build (build_file_translate): Set to `CMD //c' only if
+ it works.
+ * Makefile.in (build_file_translate): Improve comment.
+
+2008-02-21 Jan Hubicka <jh@suse.cz>
+
+ * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
+ PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
+ PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
+
+2008-02-21 Michael Matz <matz@suse.de>
+
+ PR target/35264
+ * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
+
+2008-02-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
+ movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
+ as insn constraint.
+ * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
+ from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
+ SSE_VEC_FLOAT_MODE_P as insn constraint.
+ (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
+ (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
+ sse4a_movntdf using MODEF mode iterator.
+ (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
+ sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
+ (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
+ (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
+ (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
+ (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
+ (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
+
+2008-02-21 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (PAREN_EXPR): New tree code.
+ * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
+ and PAREN_EXPR.
+ * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * tree-complex.c (expand_complex_move): Likewise.
+ * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
+ as plain x.
+
+2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/35225
+ * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
+
+2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/35190
+ * config/sh/sh.md (jump_compact): Disable for crossing jumps.
+
+ * config/sh/sh.c (find_barrier): Don't go past
+ NOTE_INSN_SWITCH_TEXT_SECTIONS note.
+
+2008-02-20 DJ Delorie <dj@redhat.com>
+
+ * config/h8300/h8300.md (insv): Force source operand to be a register.
+
+ * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
+ as a jump, not as a plain insn.
+
+2008-02-20 Seongbae Park <seongbae.park@gmail.com>
+
+ * doc/invoke.texi (Warning Options): Add new option
+ -Wframe-larger-than=.
+ (-Wframe-larger-than): Document.
+
+ * flags.h (warn_frame_larger_than, frame_larger_than_size):
+ Add declarations for new option variables.
+
+ * final.c (final_start_function): Check the frame size
+ before emission and issue a Wframe-larger-than warning.
+
+ * opts.c (warn_frame_larger_than, frame_larger_than_size):
+ Add definitions for new option variables.
+ (common_handle_option): Handle new option OPT_Wframe_larger_than_.
+
+ * common.opt (Wframe-larger-than=): New option.
+
+2008-02-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
+ (<sse>_div<mode>3): Ditto.
+ (<sse>_vmdiv<mode>3): Ditto.
+ (<sse>_vmsqrt<mode>2): Ditto.
+ (*smax<mode>3): Ditto.
+ (sse5_frcz<mode>2): Ditto.
+ (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
+ as insn constraint.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35265
+ * builtins.c (validate_arg): If we want an INTEGER_TYPE,
+ be happy with INTEGRAL_TYPE_P.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (split_tree): Associate floatig-point expressions
+ if flag_associative_math is set.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ * tree.h (fold_real_zero_addition_p): Declare.
+ * fold-const.c (fold_real_zero_addition_p): Export.
+ * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
+ floating-point operations with zero and one.
+
+2008-02-20 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/install.texi: Correct references to CFLAGS, replacing them
+ with BOOT_CFLAGS. Document flags used during bootstrap for
+ target libraries.
+
+2008-02-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
+ * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
+ and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
+ insn constraint.
+ (smin<mode>3): Ditto from similar patterns.
+ (smax<mode>3): Ditto.
+ (*ieee_smin<mode>3): Ditto.
+ (*ieee_smax<mode>3): Ditto.
+ * config/i386/sse.md (sse): New mode attribute.
+ (mov<mode>): Macroize expander from movv4sf and movv2df using
+ SSEMODEF2P mode iterator.
+ (<sse>_movnt<mode>): Ditto from similar patterns. Use
+ SSE_VEC_FLOAT_MODE_P as insn constraint.
+ (storent<mode>): Ditto.
+ (storent<mode>): Macroize expander from storentsf and storentdf using
+ MODEF mode iterator.
+ (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
+ mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
+ (abs<mode>2): Ditto from similar patterns.
+ (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
+ (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
+ (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
+ (<sse>_vmsqrt<mode>2): Ditto.
+ (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
+ (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
+ (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
+ (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
+ (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
+ sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
+ mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
+ insn constraint.
+ (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
+ iterator and SSE_FLOAT_MODE_P as insn constraint.
+ (<sse>_ucomi): Ditto from similar patterns.
+ (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
+ sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
+ SSE_VEC_FLOAT_MODE_P as insn constraint.
+ (vcond<mode>): Ditto from similar patterns.
+ (and<mode>3, *and<mode>3): Ditto.
+ (<sse>_nand<mode>3): Ditto.
+ (ior<mode>3, *ior<mode>3): Ditto.
+ (xor<mode>3, *xor<mode>3): Ditto.
+ (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
+ iterator and SSE_FLOAT_MODE_P as insn constraint.
+ (*nand<mode>3): Ditto from similar patterns.
+ (*ior<mode>3): Ditto.
+ (*xor<mode>3): Ditto.
+
+2008-02-20 Ira Rosen <irar@il.ibm.com>
+
+ * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
+ vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
+ vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
+
+2008-02-19 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (tree_bb_level_predictions): Remove variable next
+ mistakely introduced by previous commit.
+
+2008-02-19 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (predict_paths_leading_to): Rewrite.
+ (predict_paths_for_bb): New.
+ (tree_bb_level_predictions): Update call of predict_paths_leading_to.
+
+2008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/35218
+ * Makefile.in (build_file_translate): New.
+ (gcc-vers.texi): Use it for translating $(abs_srcdir).
+ * config.build (build_file_translate): Set to `CMD //c' on MinGW.
+ * configure.ac (build_file_translate): Substitute it.
+ * configure: Regenerate.
+
+2008-02-19 Jan Hubicka <jh@suse.cz>
+
+ PR rtl-optimization/34408
+ * see.c (see_def_extension_not_merged): Copy subreg so we don't have
+ invalid sharing.
+
+2008-02-19 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/28779
+ * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
+ call_expr.
+
+2008-02-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR Ada/35186
+ * config/i386/i386-modes.def: Revert the last DI alignment
+ change until Ada people can look into it.
+
+2008-02-19 Nick Clifton <nickc@redhat.com>
+
+ * opts.c (print_specific_help): Fix typo in --help text.
+
+2008-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35239
+ * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
+ 32-bit inline asm without asm alternatives for host GCC < 3.0.
+
+2008-02-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34989
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
+ Allow propagation to INDIRECT_REF if we can simplify only.
+
+2008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-common.c (warn_for_collisions_1): Use appropriate option when
+ warning.
+
+2008-02-19 Nick Clifton <nickc@redhat.com>
+
+ PR other/31349
+ * opts.c (undocumented_msg): Leave blank unless checking is enabled.
+ (handle_options): Fix indentation.
+ (print_filtered_help): If no language-specific options were
+ displayed tell the user how to list all the options supported by
+ the language's front-end.
+ (print_specific_help): Fix indentation and remove duplicate line.
+ (common_handle_option): Handle the -v option.
+ For --help enable the display of undocumented options if the -v
+ switch has been included on the command line.
+ For --help= check for overlaps in the arguments between the option
+ classes and the language names and issue a warning when they
+ cannot be disambiguated.
+ * c.opt (v): Pass on to the common option handler.
+
+2008-02-19 Revital Eres <eres@il.ibm.com>
+
+ * modulo-sched.c (sms_schedule): Change dump message when
+ create_ddg function fails.
+ (try_scheduling_node_in_cycle): Rename row to cycle.
+ (print_partial_schedule): Rename CYCLE to ROW.
+
+2008-02-19 Christian Bruel <christian.bruel@st.com>
+ Zdenek Dvorak <ook@ucw.cz>
+
+ * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
+
+2008-02-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/33555
+ * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
+ (*x86_movdicc_0_m1_se): Ditto.
+
+2008-02-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
+ (CMPtype): Define as __gcc_CMPtype.
+ * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
+ (CMPtype): Define as __gcc_CMPtype.
+
+2008-02-19 Hans-Peter Nilsson <hp@axis.com>
+
+ Support valgrind 3.3 for --enable-checking=valgrind.
+ * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
+ here.
+ [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
+ [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
+ [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
+ * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
+ Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
+ VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
+ VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
+ respectively.
+ * ggc-zone.c: Similar.
+ * ggc-page.c: Similar.
+
+2008-02-19 Paul Brook <paul@codesourcery.com>
+
+ PR target/35071
+ * config/arm/ieee754-df.S: Fix do_it typo.
+ * config/arm/ieee754-sf.S: Fix do_it typo.
+
+2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35189
+ * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
+ (OPTION_MASK_ISA_3DNOW_SET): Likewise.
+ (OPTION_MASK_ISA_SSE_SET): Likewise.
+ (OPTION_MASK_ISA_SSE2_SET): Likewise.
+ (OPTION_MASK_ISA_SSE3_SET): Likewise.
+ (OPTION_MASK_ISA_SSSE3_SET): Likewise.
+ (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
+ (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
+ (OPTION_MASK_ISA_SSE4_SET): Likewise.
+ (OPTION_MASK_ISA_SSE4A_SET): Likewise.
+ (OPTION_MASK_ISA_SSE5_SET): Likewise.
+ (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
+ (OPTION_MASK_ISA_MMX_UNSET): Updated.
+ (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
+ (OPTION_MASK_ISA_SSE_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
+ (OPTION_MASK_ISA_SSE4): Removed.
+ (ix86_handle_option): Turn on bits in ix86_isa_flags and
+ ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
+ (override_options): Don't turn on implied SSE/MMX bits in
+ ix86_isa_flags.
+
+2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-modes.def: Use 4 byte alignment on DI for
+ 32bit host.
+
+2008-02-18 Joey Ye <joey.ye@intel.com>
+
+ PR middle-end/34921
+ * tree-nested.c (insert_field_into_struct): Set type alignment
+ to field alignment if the former is less than the latter.
+
+2008-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ * BASE-VER: Set to 4.4.0.
+
+2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
+ * doc/cfg.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/loop.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+
+2008-02-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35227
+ * tree-complex.c (init_parameter_lattice_values): Handle parameters
+ without default definition.
+
+2008-02-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35231
+ * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
+ if A | B != 1.
+
+2008-02-17 Uros Bizjak <ubizjak@gmail.com>
+
+ Revert:
+ 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+ * config/i386/sfp-machine.h (CMPtype): Define as typedef using
+ libgcc_cmp_return mode.
+
+2008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/28368
+ * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
+
+2008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
+ multilibs.
+
+2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/c-tree.texi: Use `@.' where appropriate.
+ * doc/extend.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/loop.texi: Likewise.
+ * doc/makefile.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * doc/tm.texi: Likewise.
+
+2008-02-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35196
+ * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
+ in entry_bb.
+ (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
+ rather than in entry_bb.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sfp-machine.h (CMPtype): Define as typedef using
+ libgcc_cmp_return mode.
+
+2008-02-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35130
+ * tree-nested.c (convert_call_expr): Put FRAME.* vars into
+ OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
+
+2008-02-15 Richard Guenther <rguenther@suse.de>
+ Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/35164
+ * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
+ * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
+ * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
+ Only propagate addresses which do not have abnormal SSA_NAMEs
+ in their operands.
+
+2008-02-15 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/35088
+ * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
+
+2008-02-15 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/35149
+ * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/34621
+ * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
+ when calculating alignment_pad.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
+ (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
+ * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
+ and STACK_BOUNDARY define.
+
+2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR preprocessor/35061
+ * c-pragma.c (handle_pragma_pop_macro): Check that
+ pushed_macro_table has been allocated.
+
+2008-02-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/35136
+ * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
+ (force_gimple_operand): Likewise.
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
+ for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
+ Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
+ (find_interesting_uses_address): Check addressability and alignment
+ of the base expression only after substituting bases of IVs into it.
+
+2008-02-14 Michael Matz <matz@suse.de>
+
+ PR target/34930
+ * function.c (instantiate_virtual_regs_in_insn): Reload address
+ before falling back to reloading the whole operand.
+
+2008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_mainpool_start): Emit the pool
+ before the first section switch note.
+
+2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/bugreport.texi: Update copyright years.
+ * doc/c-tree.texi: Likewise.
+ * doc/cfg.texi: Likewise.
+ * doc/cpp.texi: Likewise.
+ * doc/cppinternals.texi: Likewise.
+ * doc/fragments.texi: Likewise.
+ * doc/frontends.texi: Likewise.
+ * doc/gcc.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/hostconfig.texi: Likewise.
+ * doc/implement-c.texi: Likewise.
+ * doc/libgcc.texi: Likewise.
+ * doc/loop.texi: Likewise.
+ * doc/makefile.texi: Likewise.
+ * doc/options.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+ * doc/trouble.texi: Likewise.
+
+ * doc/extend.texi: Use @: or add comma where appropriate.
+ * doc/invoke.texi: Likewise.
+ * doc/tm.texi: Likewise.
+
+2008-02-14 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/34393
+ * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
+ to a reg.
+
+2008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
+
+ * doc/md.texi (clz, ctz): Add reference.
+ * doc/rtl.texi (clz, ctz): Likewise.
+
+2008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR other/35148
+ * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
+ srcdir.
+
+2008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (struct constant_pool): New field
+ emit_pool_after added.
+ (s390_mainpool_start): Set the emit_pool_after flag according
+ to the section switch notes.
+ (s390_mainpool_finish): Consider emit_pool_after when emitting
+ the literal pool at the end of the function.
+ (s390_chunkify_start): Force literal pool splits at section
+ switch notes.
+
+2008-02-13 Michael Matz <matz@suse.de>
+
+ PR debug/35065
+ * var-tracking.c (clobber_variable_part): Correctly traverse the
+ list.
+
+2008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 29673
+ * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
+ Add -fdump-ipa-inline.
+ * tree-dump.c (dump_files): Remove tree-inlined dump.
+ * tree-pass.h (tree_dump_index): Remove TDI_inlined.
+
+2008-02-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35171
+ * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
+ default defs.
+
+2008-02-12 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35163
+ * fold-const.c (fold_widened_comparison): Use get_unwidened in
+ value-preserving mode. Disallow final truncation.
+
+2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/35136
+ * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
+ code from here to...
+ (force_gimple_operand): ...here.
+
+2008-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35144
+ * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
+ non-compatible pointers.
+ (generate_element_copy): If SRC and DST are RECORD_TYPEs with
+ different FIELD_DECLs, try harder by comparing field offsets, sizes
+ and types.
+
+ PR inline-asm/35160
+ * function.c (match_asm_constraints_1): Don't replace the same input
+ multiple times.
+
+2008-02-12 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
+ * config/avr/avr.c (expand_prologue): Save RAMPZ register.
+ (expand_epilogue): Restore RAMPZ register.
+ * config/avr/avr.md (RAMPZ_ADDR): New constant.
+
+2008-02-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/cygwin.asm (__alloca): Correct calling
+ convention and alignment.
+ (__chkstk): Force 8 byte stack alignment.
+
+2008-02-11 Uros Bizjak <ubizjak@gmail.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/33992
+ * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
+ the zero we compare against.
+
+2008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR libfortran/35063
+ * gthr-win32.h (__gthread_mutex_destroy_function): New function
+ to CloseHandle after unlocking to prevent accumulation of handle
+ count.
+
+2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle_end/34150
+ * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
+ pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
+ and update LABEL_NUSES during and after reload.
+
+2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR middle-end/34627
+ * combine.c (simplify_if_then_else): Make sure the comparison is
+ against const0_rtx when simplifying to (abs x) or (neg (abs X)).
+
+2008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR bootstrap/35051
+ * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
+ (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
+ * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
+ (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
+ * tree.h (get_type_static_bounds): Likewise.
+
+2008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/invoke.texi (Option Summary, C++ Dialect Options)
+ (Objective-C and Objective-C++ Dialect Options, Warning Options):
+ Make -Wfoo language annotations match what the compiler outputs.
+
+2008-02-08 Sa Liu <saliu@de.ibm.com>
+
+ * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
+ intrinsics spu_convts, spu_convtu, spu_convtf.
+
+2008-02-08 Hans-Peter Nilsson <hp@axis.com>
+
+ * doc/extend.texi (Function Attributes) <noinline>: Mention
+ asm ("") as method to keep calls.
+
+2008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR other/32754
+ * doc/options.texi (Options): Replace references to opts.sh with
+ optc-gen.awk.
+ * opts-common.c: Likewise.
+ * optc-gen.awk: Likewise.
+
+2008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
+
+2008-02-07 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/33410
+ * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
+ EXPR_LIST for the REG_EQUAL instead of a comparison with a
+ funny mode.
+
+2008-02-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/35085
+ * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
+ for operand entry oe2 in addition to operand entry oe3 in order to
+ expose more opportunities for vectorizer sum reduction.
+
+2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR other/35107
+ * Makefile.in (LIBS): Remove $(GMPLIBS).
+ (cc1-dummy, cc1): Add $(GMPLIBS).
+
+2008-02-06 Jan Hubicka <jh@suse.cz>
+
+ PR target/23322
+ * i386.md (moddf_integer): Do not produce partial memory stalls for
+ targets where it hurts.
+
+2008-02-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35083
+ * optabs.c (expand_float): Do not check for decimal modes when
+ expanding unsigned integer through signed conversion.
+
+2008-02-06 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
+ inside the clobber with a match_operand and duplicated operand
+ number in the constraint.
+ (ineqbranchsi): Delete redundant comment.
+
+2008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
+ builtin_define ("__USE_INIT_FINI__").
+ * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
+ -msx multilibs.
+ * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
+
+2008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR documentation/30330
+ * doc/invoke.texi (C++ Dialect Options)
+ (Objective-C and Objective-C++ Dialect Options, Warning Options):
+ For each warning option -Wfoo that allows -Wno-foo, ensure both
+ -Wfoo and -Wno-foo are listed in the option index. Fix index
+ entry of -Wswitch-default, index -Wnormalized= including the
+ `=', and -Wlarger-than-@var{len} including @var{len}.
+
+2008-02-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (floatunssisf2): Use
+ ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
+ (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
+ Macroize expander using MODEF mode iterator.
+
+2008-02-05 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
+
+ PR 33738
+ * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
+
+2008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR other/35070
+ * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
+
+2008-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35084
+ * config/i386/i386.c (ix86_function_sseregparm): Add an arg
+ to indicate if a message should be generated.
+ (init_cumulative_args): Updated.
+ (function_value_32): Likewise.
+
+2008-02-05 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/include/texinfo.tex: Update to version 2008-02-04.16.
+
+2008-02-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35083
+ * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
+ Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
+
+2008-02-04 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
+
+ PR 33738
+ * tree-vrp.c (vrp_evaluate_conditional): With
+ -Wtype-limits, emit a warning when comparing against a
+ constant outside the natural range of OP0's type.
+
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33631
+ * expr.c (count_type_elements): Give for unions instead of
+ guessing.
+
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35043
+ * gimplify.c (gimplify_init_ctor_eval): Convert array indices
+ to TYPE_DOMAINs base type instead of using bitsizetype here.
+
+2008-02-03 Jason Merrill <jason@redhat.com>
+
+ * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
+
+2008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR other/29972
+ * doc/invoke.texi (C++ Dialect Options, Optimize Options)
+ (HPPA Options, i386 and x86-64 Options, IA-64 Options)
+ (RS/6000 and PowerPC Options): Fix typos and markup.
+ * doc/passes.texi (Tree-SSA passes): Likewise.
+
+2008-02-02 Michael Matz <matz@suse.de>
+
+ PR target/35045
+ * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
+ from record_last_reg_set_info.
+ (record_last_reg_set_info): Take an RTX argument, iterate over all
+ constituent hardregs.
+ (record_last_set_info, record_opr_changes): Change calls to
+ new signature or to record_last_reg_set_info_regno.
+
+2008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/extend.texi (X86 Built-in Functions): Fix grammar.
+
+2008-02-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR rtl-optimization/34773
+ * reg-notes.def (EQUAL): Mention significance of combination of
+ REG_EQUAL and REG_RETVAL.
+ * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
+ insn that has a REG_RETVAL.
+
+2008-02-01 Roger Sayle <roger@eyesopen.com>
+
+ PR bootstrap/33781
+ * configure.ac (--enable-fixed-point): Disable unless explicitly
+ requested on IRIX.
+ * configure: Regenerate.
+
+2008-02-01 Richard Guenther <rguenther@suse.de>
+
+ PR other/35042
+ * invoke.texi (-finline-limit): Remove no longer true parts
+ of the documentation. Note that there is no default value.
+
+2008-02-01 Andrew Pinski <pinskia@gmail.com>
+ Mark Mitchell <mark@codesourcery.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ PR c/29326
+ * doc/extend.texi (Other Builtins): Document.
+
+2008-01-31 Tom Browder <tom.browder@gmail.com>
+
+ * doc/c-tree.texi (Types): Fix grammar.
+ (Expression trees): Ditto.
+ * doc/passes.texi (Tree-SSA passes): Ditto.
+
+ * doc/configterms.texi (Configure Terms): Fix typo.
+ * doc/cpp.texi (Common Predefined Macros): Ditto.
+ * doc/md.texi (Machine Constraints): Ditto.
+
+ * doc/makefile.texi (Makefile): Add comma.
+
+2008-01-31 Tom Browder <tom.browder@gmail.com>
+ Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/sourcebuild.texi (Front End): Remove references to CVS
+ and CVSROOT/modules.
+ (Texinfo Manuals): Replace reference to CVS by one to SVN.
+ (Back End): Remove reference to CVS.
+
+2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/34900
+ * config/mips/mips.c (gen_load_const_gp): New function, taking a
+ comment from...
+ (mips16_gp_pseudo_reg): ...here.
+ * config/mips/mips.md (load_const_gp): Replace with...
+ (load_const_gp_<mode>): ...this :P-based insn.
+
+2008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
+ options. Minor fixes.
+ (-std): Move reference to standards closer to where language
+ standards are first mentioned.
+
+2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/34995
+ * reload.c (alternative_allows_const_pool_ref): Take an rtx
+ parameter and return a bool. If the rtx parameter is nonnull,
+ check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
+ (find_reloads): Update call accordingly. Pass the new operand
+ if it needed no address reloads, otherwise pass null.
+
+2008-01-30 Richard Henderson <rth@redhat.com>
+
+ PR c/34993
+ * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
+ for unbounded arrays.
+
+2008-01-30 Silvius Rus <rus@google.com>
+
+ * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
+
+2008-01-30 Jan Hubicka <jh@suse.cz>
+
+ PR target/34982
+ * i386.c (init_cumulative_args): Use real function declaration when
+ calling locally.
+
+2008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/34998
+ * global.c (build_insn_chain): Treat non-subreg_lowpart
+ SUBREGs of pseudos as clobbering all the words covered by the
+ SUBREG, not just all the bytes.
+ * ra-conflict.c (clear_reg_in_live): Likewise. Take the
+ original df_ref rather than an extract parameter.
+ (global_conflicts): Update call accordingly.
+
+2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
+ the overflow check to make it easier to read.
+ (__fixtfdi): Change the type of the ll member in union
+ long_double to UDItype_x.
+
+2008-01-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34969
+ * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
+ * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
+ * tree-inline.c (fold_marked_statements): Call
+ cgraph_update_edges_for_call_stmt if folding a call statement.
+ * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
+ debug_generic_stmt calls, reset it back afterwards.
+
+ PR c/35017
+ * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
+ static decls.
+ * c-typeck.c (build_external_ref): Don't pedwarn about
+ static vars in current function's scope.
+
+2008-01-29 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
+
+2008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ PR c/35002
+ * ipa-struct-reorg.c: Fix spelling.
+ * params.def: Ditto.
+
+2008-01-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35006
+ * tree-inline.h (struct copy_body_data): Add remapping_type_depth
+ field.
+ * tree-inline.c (remap_type): Increment remapping_type_depth
+ around remapping types.
+ (copy_body_r): Only add referenced variables if they are referenced
+ from code, not types.
+
+2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34055
+ PR c++/34103
+ PR c++/34219
+ PR c++/34606
+ PR c++/34753
+ PR c++/34754
+ PR c++/34755
+ PR c++/34919
+ PR c++/34961
+ * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
+ qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
+
+2008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
+
+ PR target/34412
+ * config/avr/avr.c (expand_prologue): Use correct QI mode frame
+ pointer for tiny stack.
+
+2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
+
+2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * config/vx-common.h: Fix typo in comment.
+
+2008-01-28 Ian Lance Taylor <iant@google.com>
+
+ PR c++/34862
+ PR c++/33407
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
+ coalesce pointers if they have different DECL_NO_TBAA_P values.
+ * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
+ between variables with different DECL_NO_TBAA_P values.
+
+2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR 31535
+ * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
+ are not legitimate small data references on SPE targets.
+
+2008-01-28 David Daney <ddaney@avtrex.com>
+
+ * doc/install.texi (mips-*-*): Recommend binutils 2.18.
+
+2008-01-28 David Daney <ddaney@avtrex.com>
+
+ * doc/install.texi (--disable-libgcj-bc): Reword documentation.
+
+2008-01-27 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
+ m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
+ *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
+ *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
+ hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
+ i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
+ i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
+ vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
+
+2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * basic-block.h (condjump_equiv_p): Fix comment.
+
+2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
+ print_generic_stmt_indented): Fix comment.
+
+2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * configure.ac (__stack_chk_fail): Add detecion for availability
+ of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
+ * configure: Regenerate.
+
+2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ PR middle-end/34688
+ * final.c (output_addr_const): Handle TRUNCATE.
+
+2008-01-26 Zdenek Dvorak <ook@ucw.cz>
+
+ PR target/34711
+ * tree-ssa-loop-ivopts.c (comp_cost): New type.
+ (zero_cost, infinite_cost): New constants.
+ (struct cost_pair): Change type of cost to comp_cost.
+ (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
+ (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
+ New functions.
+ (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
+ split_address_cost, ptr_difference_cost, difference_cost,
+ get_computation_cost_at, get_computation_cost,
+ determine_use_iv_cost_generic, determine_use_iv_cost_address,
+ determine_use_iv_cost_condition, determine_use_iv_costs,
+ cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
+ iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
+ iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
+ Change type of cost to comp_cost.
+ (determine_iv_cost): Increase cost of non-original ivs, instead
+ of decreasing the cost of original ones.
+ (get_address_cost): Indicate the complexity of the addressing mode
+ in comp_cost.
+ (try_add_cand_for): Prefer using ivs not specific to some object.
+ * tree-flow.h (force_expr_to_var_cost): Declaration removed.
+
+2008-01-26 Peter Bergner <bergner@vnet.ibm.com>
+ Janis Johnson <janis187@us.ibm.com>
+
+ PR target/34814
+ * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
+ (TARGET_INSTANTIATE_DECLS): Likewise.
+ * target.h (expand_to_rtl_hook): New target hook.
+ (instantiate_decls): Likewise.
+ * function.c (instantiate_decl): Make non-static. Rename to...
+ (instantiate_decl_rtl): ... this.
+ (instantiate_expr): Use instantiate_decl_rtl.
+ (instantiate_decls_1): Likewise.
+ (instantiate_decls): Likewise.
+ (instantiate_virtual_regs: Call new instantiate_decls taget hook.
+ * function.h (instantiate_decl_rtl): Add prototype.
+ * cfgexpand.c (target.h): New include.
+ (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
+ * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
+ (TARGET_INSTANTIATE_DECLS): Likewise.
+ (TARGET_INITIALIZER): New target hooks added.
+ * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
+ New prototype.
+ * config/rs6000/rs6000.c (tree-flow.h): New include.
+ (machine_function): Add sdmode_stack_slot field.
+ (rs6000_alloc_sdmode_stack_slot): New function.
+ (rs6000_instantiate_decls): Likewise.
+ (rs6000_secondary_memory_needed_rtx): Likewise.
+ (rs6000_check_sdmode): Likewise.
+ (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
+ (TARGET_INSTANTIATE_DECLS): Likewise.
+ (rs6000_hard_regno_mode_ok): Allow SDmode.
+ (num_insns_constant): Likewise. Handle _Decimal32 constants.
+ (rs6000_emit_move): Handle SDmode.
+ (function_arg_advance): Likewise.
+ (function_arg): Likewise.
+ (rs6000_gimplify_va_arg): Likewise. Add special handling of
+ SDmode var args for 32-bit compiles.
+ (rs6000_secondary_reload_class): Handle SDmode.
+ (rs6000_output_function_epilogue): Likewise.
+ (rs6000_function_value): Simplify if statement.
+ (rs6000_libcall_value): Likewise.
+ * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
+ (SECONDARY_MEMORY_NEEDED_RTX): Add define.
+ * config/rs6000/dfp.md (movsd): New define_expand and splitter.
+ (movsd_hardfloat): New define_insn.
+ (movsd_softfloat): Likewise.
+ (movsd_store): Likewise.
+ (movsd_load): Likewise.
+ (extendsddd2): Likewise.
+ (extendsdtd2): Likewise.
+ (truncddsd2): Likewise.
+ (movdd_hardfloat64): Fixup comment.
+ (UNSPEC_MOVSD_LOAD): New constant.
+ (UNSPEC_MOVSD_STORE): Likewise.
+
+2008-01-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34965
+ * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
+ TRUTH_XOR_EXPR.
+ (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
+ (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
+ (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
+ and TRUTH_XOR_EXPR.
+
+2008-01-26 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/34794
+ * config.gcc: Separate AIX 5.3 from AIX 6.1.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ __LONGDOUBLE128 too.
+ * config/rs6000/aix61.h: New file.
+
+2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/34959
+ * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
+ popcount and parity rtxes the same mode as their operand.
+ Truncate or extend the result to the return value's mode
+ if necessary.
+
+2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/34981
+ * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
+ * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
+ to GOT_VERSION_REGNUM.
+ (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
+ (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
+ * config/mips/mips.c (mips_emit_call_insn): New function.
+ (mips_call_tls_get_addr): Call mips_expand_call directly.
+ (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
+ emit_call_insn.
+ (mips16_build_call_stub): Likewise. Return the call insn or null.
+ (mips_expand_call): Update the call to mips16_build_call_stub
+ accordingly and a remove redundant condition. Assert that MIPS16
+ stubs do not use lazy binding. Use mips_emit_call_insn and return
+ the call insn.
+ (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
+ TARGET_USE_GOT.
+ (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
+ (mips_avoid_hazard): Remove hazard_set handling.
+ * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
+ (UNSPEC_RESTORE_GP): ...this.
+ (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
+ (FAKE_CALL_REGNO): Rename to...
+ (GOT_VERSION_REGNUM): ...this.
+ (type): Add "ghost" value. Add an associated insn reservation.
+ (hazard_set): Remove.
+ (exception_receiver): Rename to...
+ (restore_gp): ...this and update the unspec identifier accordingly.
+ (exception_receiver, nonlocal_got_receiver): New expanders.
+ (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
+ FAKE_CALL_REGNO. Remove hazard_set attribute.
+ (set_got_version, update_got_version): New patterns.
+
+2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR target/34970
+ * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
+
+2008-01-25 Joseph Myers <joseph@codesourcery.com>
+
+ PR other/31955
+ * doc/install.texi2html: Generate gcc-vers.texi.
+
+2008-01-25 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+
+2008-01-25 Joseph Myers <joseph@codesourcery.com>
+
+ * config/c4x: Remove directory.
+ * config.gcc (crx-*, mt-*): Mark obsolete.
+ (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
+ h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
+ sh-*-rtemscoff*): Remove cases.
+ * defaults.h (C4X_FLOAT_FORMAT): Remove.
+ * real.c (encode_c4x_single, decode_c4x_single,
+ encode_c4x_extended, decode_c4x_extended, c4x_single_format,
+ c4x_extended_format): Remove.
+ * real.h (c4x_single_format, c4x_extended_format): Remove.
+ * doc/extend.texi (interrupt, naked): Remove mention of attributes
+ on C4x.
+ (Pragmas): Remove comment about c4x pragmas.
+ * doc/install.texi (c4x): Remove target-specific instructions.
+ * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
+ * doc/md.texi (Machine Constraints): Remove C4x documentation.
+ * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
+ refer to C4x source files as examples.
+ (C4X_FLOAT_FORMAT): Remove documentation.
+
+2008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (override_options): Reorder tests so that
+ flag_pic gets enabled for -msep-data.
+
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32244
+ * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
+ to its bitfield precision if required.
+
+2008-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/33880
+ * tree-nested.c (walk_omp_for): New function.
+ (convert_nonlocal_reference, convert_local_reference): Call
+ walk_omp_for on OMP_FOR.
+ (convert_call_expr): Call walk_body on OMP_FOR's
+ OMP_FOR_PRE_INIT_BODY.
+
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34966
+ * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
+ default defs and PHI_NODEs we have to insert after the
+ defining statement.
+
+2008-01-24 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
+ Provide a default definition.
+ (LIBGCC2_UNITS_PER_WORD): Likewise.
+
+ * config/stormy16/stormy16.c: Include df.h for the prototype
+ for df_regs_ever_live_p.
+ (xstormy16_expand_builtin_va_start): Convert the stack offset
+ into a component_ref and then use POINTER_PLUS_EXPR to add it
+ to the incoming_virtual_args_rtx.
+ (xstormy16_gimplify_va_arg_expr): Rename to
+ xstormy16_gimplify_va_arg_expr.
+ Use POINTER_PLUS_EXPR when performing pointer arithmetic.
+ (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
+ xstormy16_gimplify_va_arg_expr.
+ Fix up some formatting issues.
+
+ * config/stormy16/stormy16.c (xstormy16_carry_plus_operand):
+ Move to predicates.md.
+ (xs_hi_general_operand): Likewise.
+ (xs_hi_nonmemory_operand): Likewise.
+ * config/stormy16/predicates.md:
+ (xstormy16_carry_plus_operand): New predicate.
+ (xs_hi_general_operand): New predicate.
+ (xs_hi_nonmemory_operand): New predicate.
+ * config/stormy16/stormy16-protos.h:
+ (xstormy16_carry_plus_operand): Delete prototype.
+ (xs_hi_general_operand): Likewise.
+ (xs_hi_nonmemory_operand): Likewise.
+
+ * config/storm16/stormy16.md (addhi3): Remove earlyclobber
+ modifiers as they are no longer needed and they can trigger
+ reload spill failures.
+
+ * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
+ with a match_operand in order to help reload.
+
+ * config/storm16/stormy16.md (movhi_internal): Replace 'r'
+ constraint with 'e' for the 8th alternative as this version of
+ the mov.w instruction only accepts the lower 8 registers.
+
+2008-01-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
+ Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
+ vector elements.
+
+2008-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/33333
+ * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
+
+2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
+
+ * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
+ New functions.
+ (remove_structure): Update allocations list before removing structure.
+
+2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
+
+ * ipa-struct-reorg.c (is_safe_cond_expr,
+ create_new_stmts_for_cond_expr): Use integer_zerop function,
+ that recognize not only zero-pointer, but zero-integer too.
+
+2008-01-25 Ben Elliston <bje@au.ibm.com>
+
+ PR other/22232
+ * fixproto: Escape "." in sed expression that strips leading "./".
+
+2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR driver/34904
+ * gcc.c (SWITCH_OK): Removed.
+ (SWITCH_LIVE): Changed to bit.
+ (SWITCH_FALSE): Likewise.
+ (SWITCH_IGNORE): Likewise.
+ (switchstr): Change live_cond to unsigned int.
+ (process_command): Replace SWITCH_OK with 0.
+ (do_self_spec): Likewise.
+ (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
+ (give_switch): Likewise.
+ (used_arg): Likewise.
+ (do_spec_1): Set the SWITCH_IGNORE bit.
+ (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
+ bits. Set the SWITCH_LIVE bit.
+
+2008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.h (MOVE_RATIO): Define new target macro.
+
+2008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR tree-optimization/34472
+ * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
+ parameter to a "bool *" and set *DATA to false if there is
+ an unsafe access. Do not delete the structure here.
+ (check_cond_exprs): Delete it here instead.
+ (check_cond_exprs, exclude_cold_structs): Do not increase
+ I when removing a structure.
+
+2008-01-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * config/i386/i386.c (ix86_expand_vector_init): Consider only
+ CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
+
+2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34934
+ * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
+ a fixed vector for stack.
+
+2008-01-24 Ben Elliston <bje@au.ibm.com>
+
+ PR c++/25701
+ * doc/gcc.texi (Software development): Add a direntry for g++.
+
+2008-01-23 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
+ stale and straggling -fforce-addr comments above.
+
+ * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
+ define.
+ * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
+ * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
+
+2008-01-23 Michael Matz <matz@suse.de>
+
+ PR debug/34895
+ * dwarf2out.c (force_type_die): Use modified_type_die instead of
+ gen_type_die.
+
+2008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
+ malloc result type.
+
+2008-01-23 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_current_arch): New variable.
+ (avr_arch_types): Add 'avr31' and 'avr51' entries.
+ (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
+ (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
+ (avr_override_options): Init 'avr_current_arch'.
+ (base_arch_s): Move from here...
+ * config/avr/avr.h (base_arch_s): ... here. Add new members
+ 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
+ 'mega' to 'have_jmp_call'.
+ (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
+ "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
+ macros.
+ (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
+ architectures.
+ * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES): Ditto.
+
+2008-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31529
+ * cgraphunit.c (cgraph_reset_node): Always mark the node
+ not reachable if it is not queued already.
+
+2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
+ * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
+ (cputype_selected): New static variable.
+ (bfin_handle_option): Set it if -mcpu is used.
+ (override_option): Select default set of workarounds if no cpu type
+ selected on the command line.
+ (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
+
+ From Michael Frysinger <michael.frysinger@analog.com>
+ * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
+ BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
+
+ * config/bfin/elf.h (LIB_SPEC): Use proper linker script
+ for bf547, bf523, bf524, and bf526.
+ * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
+ bf526.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
+ __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
+ __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
+ __ADSPBF547__ and __ADSPBF54x__ for bf547.
+ * doc/invoke.texi (Blackfin Options): Document that
+ -mcpu now accept bf547, bf523, bf524, and bf526.
+
+2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/34628
+ * combine.c (try_combine): Stop and undo after the first combination
+ if an autoincrement side-effect on the first insn has effectively
+ been lost.
+
+2008-01-22 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/34529
+ * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
+ Offset addresses are not valid for Altivec or paired float modes.
+
+2008-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34607
+ * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
+ if DECL_INITIAL (decl) is error_mark_node.
+
+ PR c++/34914
+ * c-common.c (handle_vector_size_attribute): Only allow
+ integral, scalar float and fixed point types. Handle OFFSET_TYPE
+ the same way as pointer, array etc. types.
+ * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
+
+ PR c++/34917
+ * tree.c (build_type_attribute_qual_variant): Call
+ build_qualified_type if attributes are equal, but quals are not.
+
+2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 32102
+ * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
+ * flags.h (warn_strict_aliasing): Remove.
+ (warn_strict_overflow): Remove.
+ * opts.c (warn_strict_aliasing): Remove.
+ (warn_strict_overflow): Remove.
+ * c-opts.c (c_common_handle_option): -Wall only sets
+ -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
+ (c_common_post_options): Give default values to -Wstrict-aliasing
+ and -Wstrict-overflow if they are uninitialized.
+ * common.opt (Wstrict-aliasing): Specify Var and Init.
+ (Wstrict-overflow): Likewise.
+
+2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/26854
+ PR rtl-optimization/34400
+ PR rtl-optimization/34884
+ * ddg.c (create_ddg_dep_from_intra_loop_link): Use
+ DF_RD->gen.
+ * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
+ (df_rd_bb_info.expanded_lr_out): Deleted
+ * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
+ * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
+ (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
+ df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
+ Removed code to allocate, initialize or free expanded_lr_out.
+ (df_rd_bb_local_compute_process_def): Restructured to make more
+ understandable.
+ (df_rd_confluence_n): Removed code to no apply invalidate_by_call
+ sets if the sets are being trimmed.
+
+2008-01-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/32287
+ * configure.ac (ld_vers): Support GNU linker version xx.xx.*
+ (as_vers): Likewise.
+ * configure: Regenerated.
+
+2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/33092
+ * tree-pass.h (pass_build_alias): New pass.
+ * tree-ssa-alias.c (gate_build_alias): New.
+ (pass_build_alias): New.
+ * passes.c (init_optimization_passes): Add pass_build_alias after
+ pass_create_structure_vars.
+
+2008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
+
+ * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
+ Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
+ (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
+ S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
+ (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
+ S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
+ (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
+ S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
+ (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
+ (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
+ (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
+ (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
+ * config/s390/s390.md (FP_ALL): New mode iterator.
+ (_d): New mode attribute.
+ ("*signbit<mode>2>"): Changed mode of first operand.
+ ("isinf<mode>2"): Changed mode of first operand.
+ ("*TDC_insn"): Adaptation for DFP modes.
+
+2008-01-22 Ben Elliston <bje@au.ibm.com>
+
+ * tree.c (check_qualified_type): Improve function description.
+
+2008-01-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/34196
+ * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
+ * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
+ if it is set.
+
+2008-01-21 DJ Delorie <dj@redhat.com>
+
+ * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
+ return zero.
+
+2008-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34856
+ * tree-cfg.c (verify_expr): Allow all invariant expressions
+ instead of just constant class ones as reference argument.
+ * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
+ like any other constant.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
+
+2008-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * regmove.c (fixup_match_1): Update call crossed frequencies.
+
+2008-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR c/34885
+ * tree-inline.c (setup_one_parameter): Deal with mismatched
+ types using a VIEW_CONVERT_EXPR.
+
+2008-01-21 Alon Dayan <alond@il.ibm.com>
+ Olga Golovanevsky <olga@il.ibm.com>
+
+ PR tree-optimization/34701
+ * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
+ when the structure size is not a power of 2.
+
+2008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/install.texi: Add doc for --enable-checking=df.
+
+2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/34808
+ * emit-rtl.c (try_split): Handle REG_RETVAL notes.
+
+2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
+ input.
+
+2008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/26854
+ PR rtl-optimization/34400
+ * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
+ DF_RD->gen.
+ * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
+ (df_rd_bb_info.expanded_lr_out): New.
+ * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
+ * loop_iv.c (iv_analysis_loop_init): Ditto.
+ * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
+ df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
+ Added code to allocate, initialize or free expanded_lr_out.
+ (df_rd_bb_local_compute_process_def): Restructured to make
+ more understandable.
+ (df_rd_confluence_n): Add code to do nothing with fake edges and
+ code to no apply invalidate_by_call sets if the sets are being trimmed.
+ (df_lr_local_finalize): Renamed to df_lr_finalize.
+ (df_live_local_finalize): Renamed to df_live_finalize.
+
+2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/34831
+ * config/mips/mips.md (div<mode>3): Use <recip_condition> when
+ deciding whether to use reciprocal instructions.
+
+2008-01-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * dwarf2out.c (dwarf2out_switch_text_section): Do not call
+ dwarf2out_note_section_used if cold_text_section is NULL.
+
+2008-01-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR gcov-profile/34610
+ * tree-cfg.c (make_edges): Mark both outgoing edges from
+ OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
+ * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
+ from OMP_FOR and OMP_CONTINUE outgoing edges.
+
+ * tree-profile.c (tree_profiling): Return early if
+ cfun->after_tree_profile != 0. Set cfun->after_tree_profile
+ at the end.
+ * omp-low.c (expand_omp_parallel): Copy after_tree_profile
+ from cfun to child_cfun.
+ * function.h (struct function): Add after_tree_profile bit.
+
+2008-01-19 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.S (_exit): Disable interrupt.
+
+2008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
+ Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR rtl-optimization/26854
+ PR rtl-optimization/34400
+ * df-problems.c (df_live_scratch): New scratch bitmap.
+ (df_live_alloc): Allocate df_live_scratch when doing df_live.
+ (df_live_reset): Clear the proper bitmaps.
+ (df_live_bb_local_compute): Only process the artificial defs once
+ since the order is not important.
+ (df_live_init): Init the df_live sets only with the variables
+ found live by df_lr.
+ (df_live_transfer_function): Use the df_lr sets to prune the
+ df_live sets as they are being computed.
+ (df_live_free): Free df_live_scratch.
+
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ * common.opt: Add fmerge-debug-strings.
+ * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
+ flag_merge_debug_strings rather than flag_merge_constants.
+ * doc/invoke.texi (Option Summary): Mention
+ -fmerge-debug-strings.
+ (Debugging Options): Document -fmerge-debug-strings.
+
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ PR c++/33407
+ * tree.h (DECL_IS_OPERATOR_NEW): Define.
+ (struct tree_function_decl): Add new field operator_new_flag.
+ * tree-inline.c (expand_call_inline): When inlining a call to
+ operator new, force the return value to go into a variable, and
+ set DECL_NO_TBAA_P on that variable.
+ * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
+
+2008-01-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR debug/34484
+ * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
+ DWARF2_DEBUGGING_INFO.
+ (dwarf2out_note_section_used): Ditto. Add prototype.
+ (have_multiple_function_sections, text_section_used,
+ cold_text_section_used, *cold_text_sections): Move declarations
+ before their uses.
+
+2008-01-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
+ field and add signal_ra.
+ * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
+ assignments to frame state pc. Move end of stack check after
+ MD_FALLBACK_FRAME_STATE_FOR.
+ (uw_update_context_1): Use frame state signal_regs if set, instead
+ of checking signal_frame flag.
+ (uw_update_context): Use frame state signal_ra if set.
+ * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
+ * config/xtensa/linux-unwind.h: New file.
+
+2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * modulo-sched.c (get_sched_window): Fix comment typo.
+
+2008-01-17 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/34648
+ * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
+
+2008-01-17 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
+ * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
+
+2008-01-17 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/34400
+ * df-core.c (df_worklist_dataflow_overeager,
+ df_worklist_dataflow_doublequeue): New functions.
+ (df_worklist_dataflow): Two different worklist solvers.
+ * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
+ New param.
+
+2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR testsuite/34821
+ * doc/invoke.texi: Document the dependence on pthread for fopenmp
+ and ftree-parallelize-loops.
+
+2008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
+
+ PR rtl-optimization/34826
+ * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
+
+2008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * global.c (find_reg): Mark the eh regs as used if necessary.
+ * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
+ * ra.h (struct allocno): no_eh_reg field added. Changed
+ no_stack_reg type to bitfield.
+
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (substitute_in_expr): Add missing 'break'.
+
+2008-01-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34825
+ * tree-ssa-math-opts.c (is_division_by): Do not recognize
+ x / x as division to handle.
+
+2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
+ "-pthread" is specified.
+ * pa-hpux11.h (LIB_SPEC): Likewise.
+
+2008-01-16 Janis Johnson <janis187@us.ibm.com>
+ Peter Bergner <bergner@vnet.ibm.com>
+
+ PR rtl-optimization/33796
+ * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
+
+2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR libgfortran/34699
+ * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
+ static links.
+ * pa-hpux10.h (LINK_SPEC): Likewise.
+ * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32628
+ * fold-const.c (fold_convert_const_int_from_int): Do not
+ set overflow if that occured only because of a sign extension
+ change when converting from/to a sizetype with the same
+ precision and signedness.
+
+2008-01-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR debug/34249
+ * dwarf2out.c (output_call_frame_info): Move output of FDE initial
+ location address to the correct place. Update copyright year.
+
+2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
+
+ * lambda-code.c (lambda_transform_legal_p): Handle the case of
+ no dependences in the dependence_relations vector.
+
+2008-01-16 Jan Hubicka <jh@suse.cz>
+
+ PR rtl-optimization/31396
+ * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
+ * cfg.c (dump_reg_info): Print it.
+ * regs.h (struct reg_info_t): add freq_calls_crossed.
+ (REG_FREQ_CALLS_CROSSED): New macro.
+ * global.c (global_alloc): Compute freq_calls_crossed for allocno.
+ (find_reg): Update call of CALLER_SAVE_PROFITABLE.
+ * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
+ regmove_optimize): Update call crossed frequencies.
+ * local-alloc.c (struct qty): Add freq_calls_crossed.
+ (alloc_qty): Copute freq_calls_crossed.
+ (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
+ (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
+ * ra.h (struct allocno): Add freq_calls_crossed.
+
+2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
+ libgomp when compiling with ftree-parallelize-loops.
+ (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34769
+ * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
+ * tree.c (int_cst_value): Instead make this function more
+ permissive in what it accepts as valid input. Document this
+ function always sign-extends the value.
+
+2008-01-16 Jakub Jelinek <jakub@redhat.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR c/34668
+ * gimplify.c (fold_indirect_ref_rhs): Rename to ...
+ (gimple_fold_indirect_ref_rhs): ... this.
+ (gimple_fold_indirect_ref): New function with foldings
+ that preserve lvalueness.
+ (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
+ * tree-flow.h (gimple_fold_indirect_ref): Declare.
+ * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
+ to fold an INDIRECT_REF, fall back to the old use of
+ fold_indirect_ref_1.
+
+2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-data-ref.c (subscript_dependence_tester_1): Call
+ free_conflict_function.
+ (compute_self_dependence): Same.
+
+2008-01-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR debug/34249
+ * debug.h (dwarf2out_switch_text_section): Move declaration from ...
+ * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
+ function global.
+ * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
+ Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
+ for DWARF2_UNWIND_INFO targets.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR c/34768
+ * c-typeck.c (common_pointer_type): Do not merge inconsistent
+ type qualifiers for function types.
+
+2008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
+ loop_iterator li from previous commit.
+
+2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
+
+2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
+ (parallelize_loops): Don't parallelize irreducible components.
+
+2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24924
+ * c-opts (c_common_post_options): Do not enable CPP
+ flag_pedantic_errors by default.
+
+2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/31944
+ * cse.c (remove_pseudo_from_table): New function.
+ (merge_equiv_classes): Use above function to remove pseudo-registers.
+ (invalidate): Likewise.
+
+2008-01-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34601
+ * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
+ instead of TYPE_MODE to deal with calls from expand_one_error_var.
+
+2008-01-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcse.c (cprop_jump): Call validate_unshare_change instead of
+ validate_change to unshare the source of the PC set.
+
+2008-01-12 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/32135
+ * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
+ references above array bounds. This might trigger bounds checks for
+ pointers to arrays.
+
+2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
+ new_replaceable_dependencies.
+
+2008-01-12 Doug Kwan <dougkwan@google.com>
+
+ * c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers
+ instead of OPT_Wreturn_type in warning due to ignored return type
+ qualifiers.
+ * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
+ options included in -Wextra.
+ * c.opt: New option -Wignored_qualifiers.
+ * doc/invoke.texi (Warning Options, -Wextra): Add new option
+ -Wignore_qualifiers.
+ (-Wignored-qualifiers): Document.
+ (-Wreturn-type): Remove description of functionality now handled
+ by -Wignored-qualifiers.
+
+2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/33788
+ * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
+ NOP_EXPR if it is between integral types with the same precision.
+
+2008-01-12 Jan Hubicka <jh@suse.cz>
+
+ PR other/28023
+ * invoke.texi (max-inline-recursive-depth): Fix default value.
+
+2008-01-12 Zdenek Dvorak <ook@ucw.cz>
+
+ * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
+ correct type.
+
+2008-01-11 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (override_options): Set flag_shlib.
+
+2008-01-11 James E. Wilson <wilson@specifix.com>
+
+ PR target/26015
+ * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
+
+2008-01-11 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
+ save/restore frame pointer register and don't use 'call-prologues'
+ optimization in function with "OS_task" attribute.
+
+2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/31309
+ * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
+ when copying to memory.
+
+2008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR rtl-optimization/30905
+ * cfgcleanup.c: Include dce.h
+ (crossjumps_occured): New global variable.
+ (try_crossjump_bb): Exit loop after finding a fallthru edge.
+ If something changed, set crossjumps_occured to true.
+ (try_optimize_cfg): Clear crossjumps_occured at the beginning.
+ Don't add/remove fake edges to exit here...
+ (cleanup_cfg): ...but do it here, when crossjumping.
+ Run a fast DCE when successful crossjumps occured in the latest
+ iteration of try_optimize_cfg.
+
+2008-01-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
+ (struct vn_unary_op_s): Likewise.
+ (vn_reference_insert): Free old reference on hash collision.
+
+2008-01-10 Raksit Ashok <raksit@google.com>
+
+ PR rtl-optimization/27971
+ * combine.c (find_split_point): Split PLUS expressions which are
+ inside a MEM rtx, and whose first operand is complex.
+
+2008-01-10 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
+ (m32c_hard_regno_nregs): ...this, which is now a wrapper.
+ (m32c_hard_regno_ok): Call the underlying function.
+
+2008-01-10 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34683
+ * tree-cfg.c (tree_merge_blocks): Do not go through the
+ full-blown folding and stmt updating path if we just deal
+ with virtual operands.
+ * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
+ test for abnormal SSA_NAMEs.
+
+2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR middle-end/34641
+ * reload.c (push_reload): Add assertions. All constants from
+ reg_equiv_constant should have been used for replacing the respective
+ pseudo earlier.
+ (find_reloads_address): Invoke find_reloads_address_part for
+ constant taken from the reg_equiv_constant array.
+
+2008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
+ field (valnum) the first in the struct. Replace bools with
+ unit bit fields.
+
+2008-01-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34651
+ * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
+ types and ordering for masking and converting.
+
+2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/34017
+ * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
+ also for PHI_NODE expressions.
+
+2008-01-09 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/34708
+ * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
+ based on number of case labels.
+ (init_inline_once): Remove switch_cost.
+ * tree-inline.h (eni_weights_d): Remove switch_cost.
+
+2008-01-09 Richard Guenther <rguenther@suse.de>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30132
+ * gimplify.c (gimplify_cond_expr): Do not create an addressable
+ temporary if an rvalue is ok or an lvalue is not required.
+
+2008-01-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34458
+ * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
+ adjust return type.
+
+2008-01-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34679
+ * tree.c (host_integerp): Check for sizetype only if the
+ type is an integer type.
+
+2008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR debug/26364
+ * opts.c (decode_options): Disable inlining of functions called
+ once if not in unit-at-a-time mode.
+
+2008-01-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
+
+2008-01-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31863
+ * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
+ out early if the result will be unused.
+
+2008-01-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34709
+ Revert:
+
+ 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
+ * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
+ for TARGET_RECIP.
+
+2008-01-08 Jan Sjodin <jan.sjodin@amd.com>
+
+ * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
+ for vectorization tuned.
+
+2008-01-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34683
+ * tree-ssa-operands.c (operand_build_cmp): Export.
+ * tree-ssa-operands.h (operand_build_cmp): Declare.
+ * tree-vn.c (vuses_compare): Remove.
+ (sort_vuses): Use operand_build_cmp.
+ (sort_vuses_heap): Likewise.
+ * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
+ to re-use old VEC if available. Do not sort already sorted VUSEs.
+ (vdefs_to_vec): Do not sort already sorted VDEFs.
+
+2008-01-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34694
+ * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
+
+2008-01-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34702
+ * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
+ limitations of reciprocal sequences on x86 targets.
+
+2008-01-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34683
+ * tree-flow-inline.h (var_ann): Remove overzealous asserts.
+
+2008-01-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/34622
+ * config/darwin.c (darwin_mergeable_string_section): Don't use
+ .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
+
+2008-01-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34682
+ * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
+ negxf2. Macroize expander using X87MODEF mode iterator. Change
+ predicates of op0 and op1 to register_operand.
+ (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
+ expander using X87MODEF mode iterator. Change predicates of
+ op0 and op1 to register_operand.
+ ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
+ corresponding patterns and macroize using MODEF macro. Change
+ predicates of op0 and op1 to register_operand and remove
+ "m" constraint. Disparage "r" alternative with "!".
+ ("*absneg<mode>2_i387"): Rename from corresponding patterns and
+ macroize using X87MODEF macro. Change predicates of op0 and op1
+ to register_operand and remove "m" constraint. Disparage "r"
+ alternative with "!".
+ (absneg splitter with memory operands): Remove.
+ ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
+ patterns and macroize using X87MODEF mode iterator.
+ * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
+ Change predicate of op1 to register_operand.
+ * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
+ for memory operands.
+
+2008-01-07 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
+
+2008-01-07 Richard Guenther <rguenther@suse.de>
+
+ * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
+ fields.
+
+2008-01-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34683
+ * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
+ VOPs of the needed size to save memory. Use VEC_quick_push
+ to save compile-time.
+ (vdefs_to_vec): Likewise.
+
+2008-01-07 Sa Liu <saliu@de.ibm.com>
+
+ * config/spu/spu.md (divdf3): Genetate inline code for double
+ division. The implementation doesn't handle INF or NAN, therefore it
+ only applies when -ffinite-math-only is given.
+
+2008-01-06 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/34680
+ * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
+ * doc/cpp.texi ([Common Predefined Macros]): Document.
+
+2008-01-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
+ order to use commutative addition instead of subtraction.
+
+2008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Mircea Namolaru <namolaru@il.ibm.com>
+ Vladimir Yanovsky <yanov@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ PR tree-optimization/34263
+ * tree-outof-ssa.c (process_single_block_loop_latch,
+ contains_tree_r): New functions.
+ (analyze_edges_for_bb): Call process_single_block_loop_latch
+ function to empty single-basic-block latch block if possible.
+
+2008-01-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
+ for TARGET_RECIP.
+ (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
+
+2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
+
+2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
+
+2008-01-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/34618
+ * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
+ flag from T.
+
+2008-01-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34673
+ * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
+ in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
+ Update copyright year.
+
+ * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
+ Update copyright year.
+ * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
+ using NR fixup.
+
+2008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
+
+ * tree-vrp.c (find_conditional_asserts): Remove redundant check that
+ edge does not point to current bb before changing need_assert.
+
+2008-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34029
+ * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
+ for verifying purposes if they are is_gimple_min_invariant.
+
+2008-01-04 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/34448
+ PR tree-optimization/34465
+ * gimplify.c (gimplify_init_constructor): Add new parameter
+ notify_temp_creation. Use it.
+ (gimplify_modify_expr_rhs): Take volatiles into account when
+ optimizing constructors.
+ Do not optimize constructors if gimplify_init_constructor will dump to
+ memory.
+ * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
+ * gcc.c-torture/compile/pr34448.c: New.
+
+2008-01-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR gcov-profile/34609
+ * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
+ return_slot if result is TREE_ADDRESSABLE.
+
+2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.md (sqrt_condition): Tweak comment.
+ (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
+
+2008-01-03 Tom Tromey <tromey@redhat.com>
+
+ PR c/34457
+ * c-common.c (c_type_hash): Handle VLAs.
+
+2008-01-03 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/31081
+ * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
+ 0 when inlining and not inlining to first basic block.
+ (remap_decl): When var is initialized to 0, don't set default_def.
+ (expand_call_inline): Set entry_bb.
+ * tree-inline.h (copy_body_data): Add entry_bb.
+
+2008-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34619
+ * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
+ before returning.
+
+ PR tree-optimization/29484
+ * tree-inline.c (inline_forbidden_p_2): New function.
+ (inline_forbidden_p): Disallow inlining if some static var
+ has an address of a local LABEL_DECL in its initializer.
+ * doc/extend.texi (Labels as Values): Document &&foo behaviour
+ vs. inlining.
+
+2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/34635
+ * tree-data-ref.c (add_other_self_distances): Make sure that the
+ evolution step is constant.
+
+2008-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34608
+ * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
+
+2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * tree-sra.c (scalarize_init): Insert the generate_element_init
+ statements after the generate_element_zero statements.
+
+2008-01-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34093
+ PR middle-end/31976
+ * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
+ for very large number of operands instead of ICEing.
+
+2008-01-02 Arthur Norman <acn1@cam.ac.uk>
+
+ PR target/34013
+ * config/i386/i386.c (ix86_expand_prologue): Save red-zone
+ while stack probing.
+
+2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
+
+ * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
+ in C++0x mode.
+
+2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR libmudflap/26442
+ * tree-mudflap.c (mx_register_decls): Guard warning by
+ !DECL_ARTIFICIAL check.
+
+2008-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
+ sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
+ sse5_perm<mode>): Fix constraints.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 973af7ceb24..a188b88a9ef 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20081210
+20090114
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 9279b48e47d..66770eaf19e 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -183,8 +183,6 @@ dfp.o-warn = -Wno-error
bitmap.o-warn = -Wno-error
# dominance.c contains a -Wc++compat warning.
dominance.o-warn = -Wno-error
-# graphite.c contains code calling cloog that has problems.
-graphite.o-warn = -Wno-error
# mips-tfile.c contains -Wcast-qual warnings.
mips-tfile.o-warn = -Wno-error
@@ -2371,7 +2369,8 @@ tree-data-ref.o: tree-data-ref.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
graphite.o: graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TOPLEV_H) \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) $(GIMPLE_H) domwalk.h \
- $(TREE_DATA_REF_H) $(SCEV_H) tree-pass.h tree-chrec.h graphite.h pointer-set.h
+ $(TREE_DATA_REF_H) $(SCEV_H) tree-pass.h tree-chrec.h graphite.h pointer-set.h \
+ value-prof.h
tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(RECOG_H) $(BASIC_BLOCK_H) \
$(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
@@ -2676,11 +2675,11 @@ cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
$(DF_H) $(DBGCNT_H)
dce.o : dce.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(DF_H) cselib.h \
- $(DBGCNT_H) dce.h $(TIMEVAR_H) tree-pass.h $(DBGCNT_H)
+ $(DBGCNT_H) dce.h $(TIMEVAR_H) tree-pass.h $(DBGCNT_H) $(TM_P_H)
dse.o : dse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(TM_P_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
$(RECOG_H) $(EXPR_H) $(DF_H) cselib.h $(DBGCNT_H) $(TIMEVAR_H) tree-pass.h \
- alloc-pool.h $(ALIAS_H) dse.h $(OPTABS_H)
+ alloc-pool.h $(ALIAS_H) dse.h $(OPTABS_H) $(TARGET_H)
fwprop.o : fwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TOPLEV_H) insn-config.h $(RECOG_H) $(FLAGS_H) $(OBSTACK_H) $(BASIC_BLOCK_H) \
output.h $(DF_H) alloc-pool.h $(TIMEVAR_H) tree-pass.h $(TARGET_H) $(TM_P_H) \
@@ -2864,7 +2863,7 @@ bitmap.o : bitmap.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
global.o : global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(FLAGS_H) reload.h $(FUNCTION_H) $(RECOG_H) $(REGS_H) hard-reg-set.h \
insn-config.h output.h $(TOPLEV_H) $(TM_P_H) $(MACHMODE_H) tree-pass.h \
- $(TIMEVAR_H) vecprim.h $(DF_H) $(DBGCNT_H) $(RA_H)
+ $(TIMEVAR_H) vecprim.h $(DF_H) $(DBGCNT_H) $(RA_H) ira.h
ra-conflict.o : ra-conflict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(FLAGS_H) reload.h $(FUNCTION_H) $(RECOG_H) $(REGS_H) hard-reg-set.h \
insn-config.h output.h $(TOPLEV_H) $(TM_P_H) $(MACHMODE_H) tree-pass.h \
@@ -2930,7 +2929,7 @@ ira-costs.o: ira-costs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
ira-conflicts.o: ira-conflicts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TARGET_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
- $(DF_H) sparseset.h $(IRA_INT_H)
+ $(DF_H) sparseset.h addresses.h $(IRA_INT_H)
ira-color.o: ira-color.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TARGET_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
$(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
@@ -2940,7 +2939,7 @@ ira-emit.o: ira-emit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
$(IRA_INT_H)
ira-lives.o: ira-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
- $(TARGET_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
+ $(TARGET_H) $(RTL_H) $(REGS_H) except.h hard-reg-set.h $(FLAGS_H) \
insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
$(DF_H) sparseset.h $(IRA_INT_H)
ira.o: ira.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
@@ -3308,6 +3307,7 @@ GTFILES = $(CPP_ID_DATA_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
$(srcdir)/tree-vect-generic.c \
$(srcdir)/dojump.c \
$(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
+ $(srcdir)/expr.h \
$(srcdir)/function.c $(srcdir)/except.h \
$(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
$(srcdir)/profile.c $(srcdir)/regclass.c $(srcdir)/mcf.c \
@@ -4753,7 +4753,7 @@ update-po: $(CATALOGS:.gmo=.pox)
# N.B. We do not attempt to copy these into $(srcdir). The snapshot
# script does that.
.po.gmo:
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(GMSGFMT) --statistics -o $@ $<
# The new .po has to be gone over by hand, so we deposit it into
@@ -4761,7 +4761,7 @@ update-po: $(CATALOGS:.gmo=.pox)
# If build/po/gcc.pot exists, use it (it was just created),
# else use the one in srcdir.
.po.pox:
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(MSGMERGE) $< `if test -f po/gcc.pot; \
then echo po/gcc.pot; \
else echo $(srcdir)/po/gcc.pot; fi` -o $@
@@ -4794,7 +4794,7 @@ install-po:
# The .pot file is left in the build directory.
gcc.pot: po/gcc.pot
po/gcc.pot: force
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(MAKE) srcextra
AWK=$(AWK) $(SHELL) $(srcdir)/po/exgettext \
$(XGETTEXT) gcc $(srcdir)
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 166baa82dcd..33eb9882392 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,14 @@
+2009-01-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
+ only useless conversions around renamed objects.
+
+2009-01-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
+ the _Tag field before any discriminants in the field list.
+ (components_to_record): Remove obsolete comment.
+
2008-12-09 Jakub Jelinek <jakub@redhat.com>
PR ada/38450
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 20c5fb4686f..25c4d816b43 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -843,7 +843,10 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
== RECORD_TYPE
&& TYPE_IS_PADDING_P (TREE_TYPE (TREE_OPERAND (gnu_expr, 0))))
/* Strip useless conversions around the object. */
- || TREE_CODE (gnu_expr) == NOP_EXPR)
+ || (TREE_CODE (gnu_expr) == NOP_EXPR
+ && gnat_types_compatible_p
+ (TREE_TYPE (gnu_expr),
+ TREE_TYPE (TREE_OPERAND (gnu_expr, 0)))))
{
gnu_expr = TREE_OPERAND (gnu_expr, 0);
gnu_type = TREE_TYPE (gnu_expr);
@@ -3139,8 +3142,18 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
= DECL_DISCRIMINANT_NUMBER (gnu_old_field);
TREE_THIS_VOLATILE (gnu_field)
= TREE_THIS_VOLATILE (gnu_old_field);
- TREE_CHAIN (gnu_field) = gnu_field_list;
- gnu_field_list = gnu_field;
+
+ /* To match the layout crafted in components_to_record, if
+ this is the _Tag field, put it before any discriminants
+ instead of after them as for all other fields. */
+ if (Chars (gnat_field) == Name_uTag)
+ gnu_field_list = chainon (gnu_field_list, gnu_field);
+ else
+ {
+ TREE_CHAIN (gnu_field) = gnu_field_list;
+ gnu_field_list = gnu_field;
+ }
+
save_gnu_tree (gnat_field, gnu_field, false);
}
@@ -6436,8 +6449,7 @@ components_to_record (tree gnu_record_type, Node_Id component_list,
packed, definition);
/* If this is the _Tag field, put it before any discriminants,
- instead of after them as is the case for all other fields.
- Ignore field of void type if only annotating. */
+ instead of after them as is the case for all other fields. */
if (Chars (gnat_field) == Name_uTag)
gnu_field_list = chainon (gnu_field_list, gnu_field);
else
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index f954c9ffa5d..bd741b52275 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -106,6 +106,11 @@ typedef bitmap_iterator reg_set_iterator;
#define EXECUTE_IF_AND_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, RSI) \
EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) \
+/* Same information as REGS_INVALIDATED_BY_CALL but in regset form to be used
+ in dataflow more conveniently. */
+
+extern regset regs_invalidated_by_call_regset;
+
/* Type we use to hold basic block counters. Should be at least
64bit. Although a counter cannot be negative, we use a signed
type, because erroneous negative counts can be generated when the
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 278d06f4683..6723fc4875b 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -1,6 +1,6 @@
/* Expand builtin functions.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -1094,8 +1094,17 @@ expand_builtin_prefetch (tree exp)
static rtx
get_memory_rtx (tree exp, tree len)
{
- rtx addr = expand_expr (exp, NULL_RTX, ptr_mode, EXPAND_NORMAL);
- rtx mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
+ tree orig_exp = exp;
+ rtx addr, mem;
+ HOST_WIDE_INT off;
+
+ /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived
+ from its expression, for expr->a.b only <variable>.a.b is recorded. */
+ if (TREE_CODE (exp) == SAVE_EXPR && !SAVE_EXPR_RESOLVED_P (exp))
+ exp = TREE_OPERAND (exp, 0);
+
+ addr = expand_expr (orig_exp, NULL_RTX, ptr_mode, EXPAND_NORMAL);
+ mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
/* Get an expression we can use to find the attributes to assign to MEM.
If it is an ADDR_EXPR, use the operand. Otherwise, dereference it if
@@ -1104,7 +1113,13 @@ get_memory_rtx (tree exp, tree len)
&& POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (exp, 0))))
exp = TREE_OPERAND (exp, 0);
- if (TREE_CODE (exp) == ADDR_EXPR)
+ off = 0;
+ if (TREE_CODE (exp) == POINTER_PLUS_EXPR
+ && TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
+ && host_integerp (TREE_OPERAND (exp, 1), 0)
+ && (off = tree_low_cst (TREE_OPERAND (exp, 1), 0)) > 0)
+ exp = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
+ else if (TREE_CODE (exp) == ADDR_EXPR)
exp = TREE_OPERAND (exp, 0);
else if (POINTER_TYPE_P (TREE_TYPE (exp)))
exp = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (exp)), exp);
@@ -1118,6 +1133,9 @@ get_memory_rtx (tree exp, tree len)
{
set_mem_attributes (mem, exp, 0);
+ if (off)
+ mem = adjust_automodify_address_nv (mem, BLKmode, NULL, off);
+
/* Allow the string and memory builtins to overflow from one
field into another, see http://gcc.gnu.org/PR23561.
Thus avoid COMPONENT_REFs in MEM_EXPR unless we know the whole
@@ -7306,7 +7324,9 @@ fold_builtin_expect (tree arg0, tree arg1)
}
while (TREE_CODE (inner) == COMPONENT_REF
|| TREE_CODE (inner) == ARRAY_REF);
- if (DECL_P (inner) && DECL_WEAK (inner))
+ if ((TREE_CODE (inner) == VAR_DECL
+ || TREE_CODE (inner) == FUNCTION_DECL)
+ && DECL_WEAK (inner))
return NULL_TREE;
}
@@ -7682,7 +7702,7 @@ fold_builtin_sqrt (tree arg, tree type)
tree tree_root;
/* The inner root was either sqrt or cbrt. */
/* This was a conditional expression but it triggered a bug
- in the Solaris 8 compiler. */
+ in Sun C 5.5. */
REAL_VALUE_TYPE dconstroot;
if (BUILTIN_SQRT_P (fcode))
dconstroot = dconsthalf;
@@ -8887,7 +8907,9 @@ fold_builtin_memory_op (tree dest, tree src, tree len, tree type, bool ignore, i
|| !TYPE_SIZE_UNIT (srctype)
|| !TYPE_SIZE_UNIT (desttype)
|| TREE_CODE (TYPE_SIZE_UNIT (srctype)) != INTEGER_CST
- || TREE_CODE (TYPE_SIZE_UNIT (desttype)) != INTEGER_CST)
+ || TREE_CODE (TYPE_SIZE_UNIT (desttype)) != INTEGER_CST
+ || TYPE_VOLATILE (srctype)
+ || TYPE_VOLATILE (desttype))
return NULL_TREE;
src_align = get_pointer_alignment (src, BIGGEST_ALIGNMENT);
@@ -8904,7 +8926,7 @@ fold_builtin_memory_op (tree dest, tree src, tree len, tree type, bool ignore, i
{
srcvar = build_fold_indirect_ref (src);
if (TREE_THIS_VOLATILE (srcvar))
- srcvar = NULL_TREE;
+ return NULL_TREE;
else if (!tree_int_cst_equal (lang_hooks.expr_size (srcvar), len))
srcvar = NULL_TREE;
/* With memcpy, it is possible to bypass aliasing rules, so without
@@ -8922,7 +8944,7 @@ fold_builtin_memory_op (tree dest, tree src, tree len, tree type, bool ignore, i
{
destvar = build_fold_indirect_ref (dest);
if (TREE_THIS_VOLATILE (destvar))
- destvar = NULL_TREE;
+ return NULL_TREE;
else if (!tree_int_cst_equal (lang_hooks.expr_size (destvar), len))
destvar = NULL_TREE;
else if (!var_decl_component_p (destvar))
@@ -8938,7 +8960,7 @@ fold_builtin_memory_op (tree dest, tree src, tree len, tree type, bool ignore, i
if (TREE_ADDRESSABLE (TREE_TYPE (destvar)))
return NULL_TREE;
- srctype = desttype;
+ srctype = build_qualified_type (desttype, 0);
if (src_align < (int) TYPE_ALIGN (srctype))
{
if (AGGREGATE_TYPE_P (srctype)
@@ -8960,7 +8982,7 @@ fold_builtin_memory_op (tree dest, tree src, tree len, tree type, bool ignore, i
if (TREE_ADDRESSABLE (TREE_TYPE (srcvar)))
return NULL_TREE;
- desttype = srctype;
+ desttype = build_qualified_type (srctype, 0);
if (dest_align < (int) TYPE_ALIGN (desttype))
{
if (AGGREGATE_TYPE_P (desttype)
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 479048a9e4e..bf3e59c5a35 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -7244,7 +7244,8 @@ handle_vector_size_attribute (tree *node, tree name, tree args,
|| (!SCALAR_FLOAT_MODE_P (orig_mode)
&& GET_MODE_CLASS (orig_mode) != MODE_INT
&& !ALL_SCALAR_FIXED_POINT_MODE_P (orig_mode))
- || !host_integerp (TYPE_SIZE_UNIT (type), 1))
+ || !host_integerp (TYPE_SIZE_UNIT (type), 1)
+ || TREE_CODE (type) == BOOLEAN_TYPE)
{
error ("invalid vector type for attribute %qE", name);
return NULL_TREE;
@@ -8759,7 +8760,7 @@ warn_array_subscript_with_type_char (tree index)
void
warn_about_parentheses (enum tree_code code,
- enum tree_code code_left, tree ARG_UNUSED (arg_left),
+ enum tree_code code_left, tree arg_left,
enum tree_code code_right, tree arg_right)
{
if (!warn_parentheses)
@@ -8869,9 +8870,11 @@ warn_about_parentheses (enum tree_code code,
default:
if (TREE_CODE_CLASS (code) == tcc_comparison
&& ((TREE_CODE_CLASS (code_left) == tcc_comparison
- && code_left != NE_EXPR && code_left != EQ_EXPR)
+ && code_left != NE_EXPR && code_left != EQ_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg_left)))
|| (TREE_CODE_CLASS (code_right) == tcc_comparison
- && code_right != NE_EXPR && code_right != EQ_EXPR)))
+ && code_right != NE_EXPR && code_right != EQ_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg_right)))))
warning (OPT_Wparentheses, "comparisons like %<X<=Y<=Z%> do not "
"have their mathematical meaning");
return;
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c
index 1619279cc64..3e01dc191fa 100644
--- a/gcc/c-cppbuiltin.c
+++ b/gcc/c-cppbuiltin.c
@@ -1,5 +1,5 @@
/* Define builtin-in macros for the C family front ends.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -285,7 +285,7 @@ builtin_define_decimal_float_constants (const char *name_prefix,
/* Compute the minimum representable value. */
sprintf (name, "__%s_MIN__", name_prefix);
- sprintf (buf, "1E%d%s", fmt->emin, suffix);
+ sprintf (buf, "1E%d%s", fmt->emin - 1, suffix);
builtin_define_with_value (name, buf, 0);
/* Compute the maximum representable value. */
@@ -298,8 +298,9 @@ builtin_define_decimal_float_constants (const char *name_prefix,
*p++ = '.';
}
*p = 0;
- /* fmt->p plus 1, to account for the decimal point. */
- sprintf (&buf[fmt->p + 1], "E%d%s", fmt->emax, suffix);
+ /* fmt->p plus 1, to account for the decimal point and fmt->emax
+ minus 1 because the digits are nines, not 1.0. */
+ sprintf (&buf[fmt->p + 1], "E%d%s", fmt->emax - 1, suffix);
builtin_define_with_value (name, buf, 0);
/* Compute epsilon (the difference between 1 and least value greater
@@ -308,8 +309,8 @@ builtin_define_decimal_float_constants (const char *name_prefix,
sprintf (buf, "1E-%d%s", fmt->p - 1, suffix);
builtin_define_with_value (name, buf, 0);
- /* Minimum denormalized positive decimal value. */
- sprintf (name, "__%s_DEN__", name_prefix);
+ /* Minimum subnormal positive decimal value. */
+ sprintf (name, "__%s_SUBNORMAL_MIN__", name_prefix);
p = buf;
for (digits = fmt->p; digits > 1; digits--)
{
@@ -318,7 +319,7 @@ builtin_define_decimal_float_constants (const char *name_prefix,
*p++ = '.';
}
*p = 0;
- sprintf (&buf[fmt->p], "1E%d%s", fmt->emin, suffix);
+ sprintf (&buf[fmt->p], "1E%d%s", fmt->emin - 1, suffix);
builtin_define_with_value (name, buf, 0);
}
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index cc29837bb4b..b1e6fa6e19e 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -1,6 +1,6 @@
/* Parser for C and Objective-C.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc.
Parser actions based on the old Bison parser; structure somewhat
@@ -3097,7 +3097,7 @@ c_parser_initelt (c_parser *parser)
init.original_code = ERROR_MARK;
c_parser_error (parser, "expected identifier");
c_parser_skip_until_found (parser, CPP_COMMA, NULL);
- process_init_element (init);
+ process_init_element (init, false);
return;
}
}
@@ -3220,7 +3220,7 @@ c_parser_initelt (c_parser *parser)
init.original_code = ERROR_MARK;
c_parser_error (parser, "expected %<=%>");
c_parser_skip_until_found (parser, CPP_COMMA, NULL);
- process_init_element (init);
+ process_init_element (init, false);
return;
}
}
@@ -3250,7 +3250,7 @@ c_parser_initval (c_parser *parser, struct c_expr *after)
&& TREE_CODE (init.value) != COMPOUND_LITERAL_EXPR)
init = default_function_array_conversion (init);
}
- process_init_element (init);
+ process_init_element (init, false);
}
/* Parse a compound statement (possibly a function body) (C90 6.6.2,
@@ -5305,10 +5305,21 @@ c_parser_postfix_expression (c_parser *parser)
c_parser_consume_token (parser);
while (c_parser_next_token_is (parser, CPP_DOT)
|| c_parser_next_token_is (parser,
- CPP_OPEN_SQUARE))
+ CPP_OPEN_SQUARE)
+ || c_parser_next_token_is (parser,
+ CPP_DEREF))
{
- if (c_parser_next_token_is (parser, CPP_DOT))
+ if (c_parser_next_token_is (parser, CPP_DEREF))
+ {
+ loc = c_parser_peek_token (parser)->location;
+ offsetof_ref = build_array_ref (offsetof_ref,
+ integer_zero_node,
+ loc);
+ goto do_dot;
+ }
+ else if (c_parser_next_token_is (parser, CPP_DOT))
{
+ do_dot:
c_parser_consume_token (parser);
if (c_parser_next_token_is_not (parser,
CPP_NAME))
diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c
index 8676205052b..ebfb8851ccf 100644
--- a/gcc/c-pretty-print.c
+++ b/gcc/c-pretty-print.c
@@ -1,5 +1,5 @@
/* Subroutines common to both C and C++ pretty-printers.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
@@ -2104,6 +2104,7 @@ pp_c_expression (c_pretty_printer *pp, tree e)
break;
case BIND_EXPR:
+ case GOTO_EXPR:
/* We don't yet have a way of dumping statements in a
human-readable format. */
pp_string (pp, "({...})");
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index ccdc58d95dc..39b5bf94870 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -1,6 +1,7 @@
/* Definitions for C parsing and type checking.
Copyright (C) 1987, 1993, 1994, 1995, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -600,7 +601,7 @@ extern void push_init_level (int);
extern struct c_expr pop_init_level (int);
extern void set_init_index (tree, tree);
extern void set_init_label (tree);
-extern void process_init_element (struct c_expr);
+extern void process_init_element (struct c_expr, bool);
extern tree build_compound_literal (tree, tree, bool);
extern tree c_start_case (tree);
extern void c_finish_case (tree);
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index cca3dee102e..04799d0b39f 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -1,6 +1,6 @@
/* Build expressions with type checking for C compiler.
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -98,11 +98,11 @@ static int spelling_length (void);
static char *print_spelling (char *);
static void warning_init (int, const char *);
static tree digest_init (tree, tree, bool, bool, int);
-static void output_init_element (tree, bool, tree, tree, int);
+static void output_init_element (tree, bool, tree, tree, int, bool);
static void output_pending_init_elements (int);
static int set_designator (int);
static void push_range_stack (tree);
-static void add_pending_init (tree, tree);
+static void add_pending_init (tree, tree, bool);
static void set_nonincremental_init (void);
static void set_nonincremental_init_from_string (tree);
static tree find_init_member (tree);
@@ -5726,12 +5726,12 @@ push_init_level (int implicit)
if ((TREE_CODE (constructor_type) == RECORD_TYPE
|| TREE_CODE (constructor_type) == UNION_TYPE)
&& constructor_fields == 0)
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
else if (TREE_CODE (constructor_type) == ARRAY_TYPE
&& constructor_max_index
&& tree_int_cst_lt (constructor_max_index,
constructor_index))
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
else
break;
}
@@ -5928,7 +5928,7 @@ pop_init_level (int implicit)
/* When we come to an explicit close brace,
pop any inner levels that didn't have explicit braces. */
while (constructor_stack->implicit)
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
gcc_assert (!constructor_range_stack);
}
@@ -6098,7 +6098,7 @@ set_designator (int array)
/* Designator list starts at the level of closest explicit
braces. */
while (constructor_stack->implicit)
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
constructor_designated = 1;
return 0;
}
@@ -6262,10 +6262,15 @@ set_init_label (tree fieldname)
/* Add a new initializer to the tree of pending initializers. PURPOSE
identifies the initializer, either array index or field in a structure.
- VALUE is the value of that index or field. */
+ VALUE is the value of that index or field.
+
+ IMPLICIT is true if value comes from pop_init_level (1),
+ the new initializer has been merged with the existing one
+ and thus no warnings should be emitted about overriding an
+ existing initializer. */
static void
-add_pending_init (tree purpose, tree value)
+add_pending_init (tree purpose, tree value, bool implicit)
{
struct init_node *p, **q, *r;
@@ -6283,10 +6288,13 @@ add_pending_init (tree purpose, tree value)
q = &p->right;
else
{
- if (TREE_SIDE_EFFECTS (p->value))
- warning_init (0, "initialized field with side-effects overwritten");
- else if (warn_override_init)
- warning_init (OPT_Woverride_init, "initialized field overwritten");
+ if (!implicit)
+ {
+ if (TREE_SIDE_EFFECTS (p->value))
+ warning_init (0, "initialized field with side-effects overwritten");
+ else if (warn_override_init)
+ warning_init (OPT_Woverride_init, "initialized field overwritten");
+ }
p->value = value;
return;
}
@@ -6306,10 +6314,13 @@ add_pending_init (tree purpose, tree value)
q = &p->right;
else
{
- if (TREE_SIDE_EFFECTS (p->value))
- warning_init (0, "initialized field with side-effects overwritten");
- else if (warn_override_init)
- warning_init (OPT_Woverride_init, "initialized field overwritten");
+ if (!implicit)
+ {
+ if (TREE_SIDE_EFFECTS (p->value))
+ warning_init (0, "initialized field with side-effects overwritten");
+ else if (warn_override_init)
+ warning_init (OPT_Woverride_init, "initialized field overwritten");
+ }
p->value = value;
return;
}
@@ -6494,7 +6505,7 @@ set_nonincremental_init (void)
return;
FOR_EACH_CONSTRUCTOR_ELT (constructor_elements, ix, index, value)
- add_pending_init (index, value);
+ add_pending_init (index, value, false);
constructor_elements = 0;
if (TREE_CODE (constructor_type) == RECORD_TYPE)
{
@@ -6584,7 +6595,7 @@ set_nonincremental_init_from_string (tree str)
}
value = build_int_cst_wide (type, val[1], val[0]);
- add_pending_init (purpose, value);
+ add_pending_init (purpose, value, false);
}
constructor_incremental = 0;
@@ -6657,11 +6668,16 @@ find_init_member (tree field)
PENDING if non-nil means output pending elements that belong
right after this element. (PENDING is normally 1;
- it is 0 while outputting pending elements, to avoid recursion.) */
+ it is 0 while outputting pending elements, to avoid recursion.)
+
+ IMPLICIT is true if value comes from pop_init_level (1),
+ the new initializer has been merged with the existing one
+ and thus no warnings should be emitted about overriding an
+ existing initializer. */
static void
output_init_element (tree value, bool strict_string, tree type, tree field,
- int pending)
+ int pending, bool implicit)
{
tree semantic_type = NULL_TREE;
constructor_elt *celt;
@@ -6762,7 +6778,7 @@ output_init_element (tree value, bool strict_string, tree type, tree field,
&& tree_int_cst_lt (field, constructor_unfilled_index))
set_nonincremental_init ();
- add_pending_init (field, value);
+ add_pending_init (field, value, implicit);
return;
}
else if (TREE_CODE (constructor_type) == RECORD_TYPE
@@ -6788,17 +6804,21 @@ output_init_element (tree value, bool strict_string, tree type, tree field,
}
}
- add_pending_init (field, value);
+ add_pending_init (field, value, implicit);
return;
}
else if (TREE_CODE (constructor_type) == UNION_TYPE
&& !VEC_empty (constructor_elt, constructor_elements))
{
- if (TREE_SIDE_EFFECTS (VEC_last (constructor_elt,
- constructor_elements)->value))
- warning_init (0, "initialized field with side-effects overwritten");
- else if (warn_override_init)
- warning_init (OPT_Woverride_init, "initialized field overwritten");
+ if (!implicit)
+ {
+ if (TREE_SIDE_EFFECTS (VEC_last (constructor_elt,
+ constructor_elements)->value))
+ warning_init (0,
+ "initialized field with side-effects overwritten");
+ else if (warn_override_init)
+ warning_init (OPT_Woverride_init, "initialized field overwritten");
+ }
/* We can have just one union field set. */
constructor_elements = 0;
@@ -6869,7 +6889,7 @@ output_pending_init_elements (int all)
constructor_unfilled_index))
output_init_element (elt->value, true,
TREE_TYPE (constructor_type),
- constructor_unfilled_index, 0);
+ constructor_unfilled_index, 0, false);
else if (tree_int_cst_lt (constructor_unfilled_index,
elt->purpose))
{
@@ -6922,7 +6942,7 @@ output_pending_init_elements (int all)
{
constructor_unfilled_fields = elt->purpose;
output_init_element (elt->value, true, TREE_TYPE (elt->purpose),
- elt->purpose, 0);
+ elt->purpose, 0, false);
}
else if (tree_int_cst_lt (ctor_unfilled_bitpos, elt_bitpos))
{
@@ -6985,10 +7005,15 @@ output_pending_init_elements (int all)
to handle a partly-braced initializer.
Once this has found the correct level for the new element,
- it calls output_init_element. */
+ it calls output_init_element.
+
+ IMPLICIT is true if value comes from pop_init_level (1),
+ the new initializer has been merged with the existing one
+ and thus no warnings should be emitted about overriding an
+ existing initializer. */
void
-process_init_element (struct c_expr value)
+process_init_element (struct c_expr value, bool implicit)
{
tree orig_value = value.value;
int string_flag = orig_value != 0 && TREE_CODE (orig_value) == STRING_CST;
@@ -7029,12 +7054,12 @@ process_init_element (struct c_expr value)
if ((TREE_CODE (constructor_type) == RECORD_TYPE
|| TREE_CODE (constructor_type) == UNION_TYPE)
&& constructor_fields == 0)
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
else if (TREE_CODE (constructor_type) == ARRAY_TYPE
&& (constructor_max_index == 0
|| tree_int_cst_lt (constructor_max_index,
constructor_index)))
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
else
break;
}
@@ -7112,7 +7137,7 @@ process_init_element (struct c_expr value)
{
push_member_name (constructor_fields);
output_init_element (value.value, strict_string,
- fieldtype, constructor_fields, 1);
+ fieldtype, constructor_fields, 1, implicit);
RESTORE_SPELLING_DEPTH (constructor_depth);
}
else
@@ -7202,7 +7227,7 @@ process_init_element (struct c_expr value)
{
push_member_name (constructor_fields);
output_init_element (value.value, strict_string,
- fieldtype, constructor_fields, 1);
+ fieldtype, constructor_fields, 1, implicit);
RESTORE_SPELLING_DEPTH (constructor_depth);
}
else
@@ -7252,7 +7277,7 @@ process_init_element (struct c_expr value)
{
push_array_bounds (tree_low_cst (constructor_index, 1));
output_init_element (value.value, strict_string,
- elttype, constructor_index, 1);
+ elttype, constructor_index, 1, implicit);
RESTORE_SPELLING_DEPTH (constructor_depth);
}
@@ -7281,7 +7306,7 @@ process_init_element (struct c_expr value)
/* Now output the actual element. */
if (value.value)
output_init_element (value.value, strict_string,
- elttype, constructor_index, 1);
+ elttype, constructor_index, 1, implicit);
constructor_index
= size_binop (PLUS_EXPR, constructor_index, bitsize_one_node);
@@ -7306,7 +7331,7 @@ process_init_element (struct c_expr value)
{
if (value.value)
output_init_element (value.value, strict_string,
- constructor_type, NULL_TREE, 1);
+ constructor_type, NULL_TREE, 1, implicit);
constructor_fields = 0;
}
@@ -7322,14 +7347,14 @@ process_init_element (struct c_expr value)
while (constructor_stack != range_stack->stack)
{
gcc_assert (constructor_stack->implicit);
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
}
for (p = range_stack;
!p->range_end || tree_int_cst_equal (p->index, p->range_end);
p = p->prev)
{
gcc_assert (constructor_stack->implicit);
- process_init_element (pop_init_level (1));
+ process_init_element (pop_init_level (1), true);
}
p->index = size_binop (PLUS_EXPR, p->index, bitsize_one_node);
diff --git a/gcc/calls.c b/gcc/calls.c
index 03994d4ecf5..a75e3b36569 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1,6 +1,6 @@
/* Convert function calls to rtl insns, for GNU C compiler.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -2298,6 +2298,12 @@ expand_call (tree exp, rtx target, int ignore)
It does not seem worth the effort since few optimizable
sibling calls will return a structure. */
|| structure_value_addr != NULL_RTX
+#ifdef REG_PARM_STACK_SPACE
+ /* If outgoing reg parm stack space changes, we can not do sibcall. */
+ || (OUTGOING_REG_PARM_STACK_SPACE (funtype)
+ != OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl)))
+ || (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl))
+#endif
/* Check whether the target is able to optimize the call
into a sibcall. */
|| !targetm.function_ok_for_sibcall (fndecl, exp)
@@ -2699,26 +2705,28 @@ expand_call (tree exp, rtx target, int ignore)
but we do preallocate space here if they want that. */
for (i = 0; i < num_actuals; i++)
- if (args[i].reg == 0 || args[i].pass_on_stack)
- {
- rtx before_arg = get_last_insn ();
-
- if (store_one_arg (&args[i], argblock, flags,
- adjusted_args_size.var != 0,
- reg_parm_stack_space)
- || (pass == 0
- && check_sibcall_argument_overlap (before_arg,
- &args[i], 1)))
- sibcall_failure = 1;
-
- if (flags & ECF_CONST
- && args[i].stack
- && args[i].value == args[i].stack)
- call_fusage = gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_USE (VOIDmode,
- args[i].value),
- call_fusage);
- }
+ {
+ if (args[i].reg == 0 || args[i].pass_on_stack)
+ {
+ rtx before_arg = get_last_insn ();
+
+ if (store_one_arg (&args[i], argblock, flags,
+ adjusted_args_size.var != 0,
+ reg_parm_stack_space)
+ || (pass == 0
+ && check_sibcall_argument_overlap (before_arg,
+ &args[i], 1)))
+ sibcall_failure = 1;
+ }
+
+ if (((flags & ECF_CONST)
+ || ((flags & ECF_PURE) && ACCUMULATE_OUTGOING_ARGS))
+ && args[i].stack)
+ call_fusage = gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_USE (VOIDmode,
+ args[i].stack),
+ call_fusage);
+ }
/* If we have a parm that is passed in registers but not in memory
and whose alignment does not permit a direct copy into registers,
@@ -3666,7 +3674,8 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
NO_DEFER_POP;
- if (flags & ECF_CONST)
+ if ((flags & ECF_CONST)
+ || ((flags & ECF_PURE) && ACCUMULATE_OUTGOING_ARGS))
{
rtx use;
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 6eaec30c98f..6d7fe772fe7 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -1392,16 +1392,23 @@ fini_vars_expansion (void)
stack_vars_conflict_alloc = 0;
}
+/* Make a fair guess for the size of the stack frame of the current
+ function. This doesn't have to be exact, the result is only used
+ in the inline heuristics. So we don't want to run the full stack
+ var packing algorithm (which is quadratic in the number of stack
+ vars). Instead, we calculate the total size of all stack vars.
+ This turns out to be a pretty fair estimate -- packing of stack
+ vars doesn't happen very often. */
+
HOST_WIDE_INT
estimated_stack_frame_size (void)
{
HOST_WIDE_INT size = 0;
+ size_t i;
tree t, outer_block = DECL_INITIAL (current_function_decl);
init_vars_expansion ();
- /* At this point all variables on the local_decls with TREE_USED
- set are not associated with any block scope. Lay them out. */
for (t = cfun->local_decls; t; t = TREE_CHAIN (t))
{
tree var = TREE_VALUE (t);
@@ -1411,27 +1418,17 @@ estimated_stack_frame_size (void)
TREE_USED (var) = 1;
}
size += account_used_vars_for_block (outer_block, true);
+
if (stack_vars_num > 0)
{
- /* Due to the way alias sets work, no variables with non-conflicting
- alias sets may be assigned the same address. Add conflicts to
- reflect this. */
- add_alias_set_conflicts ();
-
- /* If stack protection is enabled, we don't share space between
- vulnerable data and non-vulnerable data. */
- if (flag_stack_protect)
- add_stack_protection_conflicts ();
-
- /* Now that we have collected all stack variables, and have computed a
- minimal interference graph, attempt to save some stack space. */
- partition_stack_vars ();
- if (dump_file)
- dump_stack_var_partition ();
-
+ /* Fake sorting the stack vars for account_stack_vars (). */
+ stack_vars_sorted = XNEWVEC (size_t, stack_vars_num);
+ for (i = 0; i < stack_vars_num; ++i)
+ stack_vars_sorted[i] = i;
size += account_stack_vars ();
fini_vars_expansion ();
}
+
return size;
}
@@ -2218,7 +2215,7 @@ static void
expand_stack_alignment (void)
{
rtx drap_rtx;
- unsigned int preferred_stack_boundary, incoming_stack_boundary;
+ unsigned int preferred_stack_boundary;
if (! SUPPORTS_STACK_ALIGNMENT)
return;
@@ -2231,10 +2228,6 @@ expand_stack_alignment (void)
gcc_assert (crtl->stack_alignment_needed
<= crtl->stack_alignment_estimated);
- /* Update stack boundary if needed. */
- if (targetm.calls.update_stack_boundary)
- targetm.calls.update_stack_boundary ();
-
/* Update crtl->stack_alignment_estimated and use it later to align
stack. We check PREFERRED_STACK_BOUNDARY if there may be non-call
exceptions since callgraph doesn't collect incoming stack alignment
@@ -2249,15 +2242,8 @@ expand_stack_alignment (void)
if (preferred_stack_boundary > crtl->stack_alignment_needed)
crtl->stack_alignment_needed = preferred_stack_boundary;
- /* The incoming stack frame has to be aligned at least at
- parm_stack_boundary. */
- if (crtl->parm_stack_boundary > INCOMING_STACK_BOUNDARY)
- incoming_stack_boundary = crtl->parm_stack_boundary;
- else
- incoming_stack_boundary = INCOMING_STACK_BOUNDARY;
-
crtl->stack_realign_needed
- = incoming_stack_boundary < crtl->stack_alignment_estimated;
+ = INCOMING_STACK_BOUNDARY < crtl->stack_alignment_estimated;
crtl->stack_realign_tried = crtl->stack_realign_needed;
crtl->stack_realign_processed = true;
@@ -2362,6 +2348,23 @@ gimple_expand_cfg (void)
if (crtl->stack_protect_guard)
stack_protect_prologue ();
+ /* Update stack boundary if needed. */
+ if (SUPPORTS_STACK_ALIGNMENT)
+ {
+ /* Call update_stack_boundary here to update incoming stack
+ boundary before TARGET_FUNCTION_OK_FOR_SIBCALL is called.
+ TARGET_FUNCTION_OK_FOR_SIBCALL needs to know the accurate
+ incoming stack alignment to check if it is OK to perform
+ sibcall optimization since sibcall optimization will only
+ align the outgoing stack to incoming stack boundary. */
+ if (targetm.calls.update_stack_boundary)
+ targetm.calls.update_stack_boundary ();
+
+ /* The incoming stack frame has to be aligned at least at
+ parm_stack_boundary. */
+ gcc_assert (crtl->parm_stack_boundary <= INCOMING_STACK_BOUNDARY);
+ }
+
/* Register rtl specific functions for cfg. */
rtl_register_cfg_hooks ();
diff --git a/gcc/combine.c b/gcc/combine.c
index d6f7480223a..3aca075aae1 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1,6 +1,6 @@
/* Optimize by combining instructions for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -1112,6 +1112,7 @@ combine_instructions (rtx f, unsigned int nregs)
FOR_EACH_BB (this_basic_block)
{
+ optimize_this_for_speed_p = optimize_bb_for_speed_p (this_basic_block);
last_call_luid = 0;
mem_last_set = -1;
label_tick++;
@@ -2208,6 +2209,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
/* Notes that I1, I2 or I3 is a MULT operation. */
int have_mult = 0;
int swap_i2i3 = 0;
+ int changed_i3_dest = 0;
int maxreg;
rtx temp;
@@ -2895,14 +2897,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
if (insn_code_number >= 0)
- {
- /* If we will be able to accept this, we have made a
- change to the destination of I3. This requires us to
- do a few adjustments. */
-
- PATTERN (i3) = newpat;
- adjust_for_new_dest (i3);
- }
+ changed_i3_dest = 1;
}
}
@@ -3375,6 +3370,16 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
return 0;
}
+ /* If we will be able to accept this, we have made a
+ change to the destination of I3. This requires us to
+ do a few adjustments. */
+
+ if (changed_i3_dest)
+ {
+ PATTERN (i3) = newpat;
+ adjust_for_new_dest (i3);
+ }
+
/* We now know that we can do this combination. Merge the insns and
update the status of registers and LOG_LINKS. */
@@ -5701,6 +5706,7 @@ simplify_set (rtx x)
{
int other_changed_previously = other_changed;
unsigned HOST_WIDE_INT mask;
+ rtx old_cc_use = *cc_use;
SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use),
dest, const0_rtx));
@@ -5723,7 +5729,7 @@ simplify_set (rtx x)
if ((recog_for_combine (&pat, other_insn, &note) < 0
&& ! check_asm_operands (pat)))
{
- PUT_CODE (*cc_use, old_code);
+ *cc_use = old_cc_use;
other_changed = 0;
op0 = simplify_gen_binary (XOR, GET_MODE (op0),
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 0044d074e0b..4bae31c6ed8 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -305,7 +305,8 @@ i[34567]86-*-*)
extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
nmmintrin.h bmmintrin.h mmintrin-common.h
- wmmintrin.h immintrin.h avxintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h
+ cross-stdarg.h"
;;
x86_64-*-*)
cpu_type=i386
@@ -314,7 +315,8 @@ x86_64-*-*)
extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
nmmintrin.h bmmintrin.h mmintrin-common.h
- wmmintrin.h immintrin.h avxintrin.h cross-stdarg.h"
+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h
+ cross-stdarg.h"
need_64bit_hwint=yes
;;
ia64-*-*)
@@ -1377,6 +1379,11 @@ m32rle-*-elf*)
tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h m32r/little.h ${tm_file}"
extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o"
;;
+m32r-*-rtems*)
+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
+ tmake_file="m32r/t-m32r t-rtems"
+ extra_parts="crtinit.o crtfini.o"
+ ;;
m32r-*-linux*)
tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
# We override the tmake_file for linux -- why?
diff --git a/gcc/config.host b/gcc/config.host
index 2cfcd6bf13a..939cc1536ca 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -124,6 +124,27 @@ case ${host} in
host_xmake_file="${host_xmake_file} rs6000/x-rs6000"
;;
esac
+ case ${host} in
+ *-*-linux* )
+ if test "${GCC}:${ac_cv_sizeof_long}" = yes:4; then
+ # On powerpc*-*-linux* use -Wl,--relax to link cc1,
+ # if ld is new enough, otherwise force -O1 in CFLAGS.
+ host_ppc_relax_xmake_file=
+ host_ld_ver=`${CC} -Wl,--version 2>/dev/null | sed 1q`
+ if echo "$host_ld_ver" | grep GNU > /dev/null; then
+ host_ld_date=`echo $host_ld_ver \
+ | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
+ if test 0"$host_ld_date" -gt 20080806; then
+ host_ppc_relax_xmake_file=rs6000/x-linux-relax
+ fi
+ fi
+ if test -z "${host_ppc_relax_xmake_file}"; then
+ host_ppc_relax_xmake_file=x-cflags-O1
+ fi
+ host_xmake_file="${host_xmake_file} ${host_ppc_relax_xmake_file}"
+ fi
+ ;;
+ esac
;;
esac
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 52ae122f6ed..7bafb0ae84b 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1,6 +1,7 @@
/* Subroutines used for code generation on the DEC Alpha.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -863,9 +864,11 @@ alpha_legitimate_address_p (enum machine_mode mode, rtx x, int strict)
}
}
- /* If we're managing explicit relocations, LO_SUM is valid, as
- are small data symbols. */
- else if (TARGET_EXPLICIT_RELOCS)
+ /* If we're managing explicit relocations, LO_SUM is valid, as are small
+ data symbols. Avoid explicit relocations of modes larger than word
+ mode since i.e. $LC0+8($1) can fold around +/- 32k offset. */
+ else if (TARGET_EXPLICIT_RELOCS
+ && GET_MODE_SIZE (mode) <= UNITS_PER_WORD)
{
if (small_symbolic_operand (x, Pmode))
return true;
@@ -915,8 +918,7 @@ get_tls_get_addr (void)
to be legitimate. If we find one, return the new, valid address. */
rtx
-alpha_legitimize_address (rtx x, rtx scratch,
- enum machine_mode mode ATTRIBUTE_UNUSED)
+alpha_legitimize_address (rtx x, rtx scratch, enum machine_mode mode)
{
HOST_WIDE_INT addend;
@@ -964,8 +966,12 @@ alpha_legitimize_address (rtx x, rtx scratch,
goto split_addend;
}
- /* If this is a local symbol, split the address into HIGH/LO_SUM parts. */
- if (TARGET_EXPLICIT_RELOCS && symbolic_operand (x, Pmode))
+ /* If this is a local symbol, split the address into HIGH/LO_SUM parts.
+ Avoid modes larger than word mode since i.e. $LC0+8($1) can fold
+ around +/- 32k offset. */
+ if (TARGET_EXPLICIT_RELOCS
+ && GET_MODE_SIZE (mode) <= UNITS_PER_WORD
+ && symbolic_operand (x, Pmode))
{
rtx r0, r16, eqv, tga, tp, insn, dest, seq;
@@ -8272,6 +8278,11 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
if (GET_CODE (insn) == CALL_INSN)
output_asm_insn (get_insn_template (CODE_FOR_nop, NULL), NULL);
+#if TARGET_ABI_OSF
+ if (crtl->is_thunk)
+ free_after_compilation (cfun);
+#endif
+
#if TARGET_ABI_OPEN_VMS
alpha_write_linkage (file, fnname, decl);
#endif
@@ -8311,6 +8322,8 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
HOST_WIDE_INT hi, lo;
rtx this_rtx, insn, funexp;
+ gcc_assert (crtl->is_thunk);
+
/* We always require a valid GP. */
emit_insn (gen_prologue_ldgp ());
emit_note (NOTE_INSN_PROLOGUE_END);
@@ -8392,7 +8405,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
final_start_function (insn, file, 1);
final (insn, file, 1);
final_end_function ();
- free_after_compilation (cfun);
}
#endif /* TARGET_ABI_OSF */
@@ -9299,12 +9311,66 @@ alpha_align_insns (unsigned int max_align,
i = next;
}
}
+
+/* Insert an unop between a noreturn function call and GP load. */
+
+static void
+alpha_pad_noreturn (void)
+{
+ rtx insn, next;
+
+ for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
+ {
+ if (!CALL_P (insn)
+ || !find_reg_note (insn, REG_NORETURN, NULL_RTX))
+ continue;
+
+ next = next_active_insn (insn);
+
+ if (next)
+ {
+ rtx pat = PATTERN (next);
+
+ if (GET_CODE (pat) == SET
+ && GET_CODE (SET_SRC (pat)) == UNSPEC_VOLATILE
+ && XINT (SET_SRC (pat), 1) == UNSPECV_LDGP1)
+ emit_insn_after (gen_unop (), insn);
+ }
+ }
+}
/* Machine dependent reorg pass. */
static void
alpha_reorg (void)
{
+ /* Workaround for a linker error that triggers when an
+ exception handler immediatelly follows a noreturn function.
+
+ The instruction stream from an object file:
+
+ 54: 00 40 5b 6b jsr ra,(t12),58 <__func+0x58>
+ 58: 00 00 ba 27 ldah gp,0(ra)
+ 5c: 00 00 bd 23 lda gp,0(gp)
+ 60: 00 00 7d a7 ldq t12,0(gp)
+ 64: 00 40 5b 6b jsr ra,(t12),68 <__func+0x68>
+
+ was converted in the final link pass to:
+
+ fdb24: a0 03 40 d3 bsr ra,fe9a8 <_called_func+0x8>
+ fdb28: 00 00 fe 2f unop
+ fdb2c: 00 00 fe 2f unop
+ fdb30: 30 82 7d a7 ldq t12,-32208(gp)
+ fdb34: 00 40 5b 6b jsr ra,(t12),fdb38 <__func+0x68>
+
+ GP load instructions were wrongly cleared by the linker relaxation
+ pass. This workaround prevents removal of GP loads by inserting
+ an unop instruction between a noreturn function call and
+ exception handler prologue. */
+
+ if (current_function_has_exception_handlers ())
+ alpha_pad_noreturn ();
+
if (alpha_tp != ALPHA_TP_PROG || flag_exceptions)
alpha_handle_trap_shadows ();
diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h
index f831196f003..6588f7509f8 100644
--- a/gcc/config/alpha/elf.h
+++ b/gcc/config/alpha/elf.h
@@ -423,3 +423,13 @@ extern int alpha_this_gpdisp_sequence_number;
#if defined(HAVE_LD_EH_FRAME_HDR)
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif
+
+/* A C statement (sans semicolon) to output to the stdio stream STREAM
+ any text necessary for declaring the name of an external symbol
+ named NAME which is referenced in this compilation but not defined.
+ It is needed to properly support non-default visibility. */
+
+#ifndef ASM_OUTPUT_EXTERNAL
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ default_elf_asm_output_external (FILE, DECL, NAME)
+#endif
diff --git a/gcc/config/alpha/predicates.md b/gcc/config/alpha/predicates.md
index bc6fc842980..4aa06f4c33a 100644
--- a/gcc/config/alpha/predicates.md
+++ b/gcc/config/alpha/predicates.md
@@ -390,7 +390,8 @@
(ior (match_code "symbol_ref,label_ref")
(and (match_code "const")
(match_test "GET_CODE (XEXP (op,0)) == PLUS
- && GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF
+ && (GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF
+ || GET_CODE (XEXP (XEXP (op,0), 0)) == LABEL_REF)
&& GET_CODE (XEXP (XEXP (op,0), 1)) == CONST_INT"))))
;; Return true if OP is valid for 16-bit DTP relative relocations.
diff --git a/gcc/config/alpha/sync.md b/gcc/config/alpha/sync.md
index fe8301f344b..88087f19101 100644
--- a/gcc/config/alpha/sync.md
+++ b/gcc/config/alpha/sync.md
@@ -28,17 +28,17 @@
(define_expand "memory_barrier"
- [(set (mem:BLK (match_dup 0))
- (unspec:BLK [(mem:BLK (match_dup 0))] UNSPEC_MB))]
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MB))]
""
{
- operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (DImode));
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
MEM_VOLATILE_P (operands[0]) = 1;
})
-(define_insn "*mb_internal"
+(define_insn "*memory_barrier"
[(set (match_operand:BLK 0 "" "")
- (unspec:BLK [(match_operand:BLK 1 "" "")] UNSPEC_MB))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_MB))]
""
"mb"
[(set_attr "type" "mb")])
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a1cef0bd103..209682bb0fe 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1,6 +1,7 @@
/* Output routines for GCC for ARM.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rearnsha@arm.com).
@@ -125,12 +126,12 @@ static bool arm_function_ok_for_sibcall (tree, tree);
static void arm_internal_label (FILE *, const char *, unsigned long);
static void arm_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT,
tree);
-static int arm_rtx_costs_1 (rtx, enum rtx_code, enum rtx_code);
-static bool arm_size_rtx_costs (rtx, int, int, int *);
-static bool arm_slowmul_rtx_costs (rtx, int, int, int *);
-static bool arm_fastmul_rtx_costs (rtx, int, int, int *);
-static bool arm_xscale_rtx_costs (rtx, int, int, int *);
-static bool arm_9e_rtx_costs (rtx, int, int, int *);
+static bool arm_rtx_costs_1 (rtx, enum rtx_code, int*, bool);
+static bool arm_size_rtx_costs (rtx, enum rtx_code, enum rtx_code, int *);
+static bool arm_slowmul_rtx_costs (rtx, enum rtx_code, enum rtx_code, int *, bool);
+static bool arm_fastmul_rtx_costs (rtx, enum rtx_code, enum rtx_code, int *, bool);
+static bool arm_xscale_rtx_costs (rtx, enum rtx_code, enum rtx_code, int *, bool);
+static bool arm_9e_rtx_costs (rtx, enum rtx_code, enum rtx_code, int *, bool);
static bool arm_rtx_costs (rtx, int, int, int *, bool);
static int arm_address_cost (rtx, bool);
static bool arm_memory_load_p (rtx);
@@ -618,7 +619,7 @@ struct processors
enum processor_type core;
const char *arch;
const unsigned long flags;
- bool (* rtx_costs) (rtx, int, int, int *);
+ bool (* rtx_costs) (rtx, enum rtx_code, enum rtx_code, int *, bool);
};
/* Not all of these give usefully different compilation alternatives,
@@ -1882,6 +1883,24 @@ const_ok_for_op (HOST_WIDE_INT i, enum rtx_code code)
switch (code)
{
case PLUS:
+ case COMPARE:
+ case EQ:
+ case NE:
+ case GT:
+ case LE:
+ case LT:
+ case GE:
+ case GEU:
+ case LTU:
+ case GTU:
+ case LEU:
+ case UNORDERED:
+ case ORDERED:
+ case UNEQ:
+ case UNGE:
+ case UNLT:
+ case UNGT:
+ case UNLE:
return const_ok_for_arm (ARM_SIGN_EXTEND (-i));
case MINUS: /* Should only occur with (MINUS I reg) => rsb */
@@ -3360,6 +3379,7 @@ arm_is_long_call_p (tree decl)
/* For "f", be conservative, and only cater for cases in which the
whole of the current function is placed in the same section. */
if (!flag_reorder_blocks_and_partition
+ && TREE_CODE (decl) == FUNCTION_DECL
&& arm_function_in_section_p (decl, current_function_section ()))
return false;
@@ -3844,6 +3864,7 @@ arm_legitimate_address_p (enum machine_mode mode, rtx x, RTX_CODE outer,
rtx xop1 = XEXP (x, 1);
return ((arm_address_register_rtx_p (xop0, strict_p)
+ && GET_CODE(xop1) == CONST_INT
&& arm_legitimate_index_p (mode, xop1, outer, strict_p))
|| (arm_address_register_rtx_p (xop1, strict_p)
&& arm_legitimate_index_p (mode, xop0, outer, strict_p)));
@@ -4879,130 +4900,227 @@ thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
}
}
-
-/* Worker routine for arm_rtx_costs. */
-/* ??? This needs updating for thumb2. */
-static inline int
-arm_rtx_costs_1 (rtx x, enum rtx_code code, enum rtx_code outer)
+static inline bool
+arm_rtx_costs_1 (rtx x, enum rtx_code outer, int* total, bool speed)
{
enum machine_mode mode = GET_MODE (x);
enum rtx_code subcode;
+ rtx operand;
+ enum rtx_code code = GET_CODE (x);
int extra_cost;
+ *total = 0;
switch (code)
{
case MEM:
/* Memory costs quite a lot for the first word, but subsequent words
load at the equivalent of a single insn each. */
- return (10 + 4 * ((GET_MODE_SIZE (mode) - 1) / UNITS_PER_WORD)
- + (GET_CODE (x) == SYMBOL_REF
- && CONSTANT_POOL_ADDRESS_P (x) ? 4 : 0));
+ *total = COSTS_N_INSNS (2 + ARM_NUM_REGS (mode));
+ return true;
case DIV:
case MOD:
case UDIV:
case UMOD:
- return optimize_size ? COSTS_N_INSNS (2) : 100;
+ if (TARGET_HARD_FLOAT && mode == SFmode)
+ *total = COSTS_N_INSNS (2);
+ else if (TARGET_HARD_FLOAT && mode == DFmode)
+ *total = COSTS_N_INSNS (4);
+ else
+ *total = COSTS_N_INSNS (20);
+ return false;
case ROTATE:
- if (mode == SImode && GET_CODE (XEXP (x, 1)) == REG)
- return 4;
+ if (GET_CODE (XEXP (x, 1)) == REG)
+ *total = COSTS_N_INSNS (1); /* Need to subtract from 32 */
+ else if (GET_CODE (XEXP (x, 1)) != CONST_INT)
+ *total = rtx_cost (XEXP (x, 1), code, speed);
+
/* Fall through */
case ROTATERT:
if (mode != SImode)
- return 8;
+ {
+ *total += COSTS_N_INSNS (4);
+ return true;
+ }
+
/* Fall through */
case ASHIFT: case LSHIFTRT: case ASHIFTRT:
+ *total += rtx_cost (XEXP (x, 0), code, speed);
if (mode == DImode)
- return (8 + (GET_CODE (XEXP (x, 1)) == CONST_INT ? 0 : 8)
- + ((GET_CODE (XEXP (x, 0)) == REG
- || (GET_CODE (XEXP (x, 0)) == SUBREG
- && GET_CODE (SUBREG_REG (XEXP (x, 0))) == REG))
- ? 0 : 8));
+ {
+ *total += COSTS_N_INSNS (3);
+ return true;
+ }
- extra_cost = 1;
+ *total += COSTS_N_INSNS (1);
/* Increase the cost of complex shifts because they aren't any faster,
and reduce dual issue opportunities. */
if (arm_tune_cortex_a9
&& outer != SET && GET_CODE (XEXP (x, 1)) != CONST_INT)
- extra_cost++;
-
- return (extra_cost + ((GET_CODE (XEXP (x, 0)) == REG
- || (GET_CODE (XEXP (x, 0)) == SUBREG
- && GET_CODE (SUBREG_REG (XEXP (x, 0))) == REG))
- ? 0 : 4)
- + ((GET_CODE (XEXP (x, 1)) == REG
- || (GET_CODE (XEXP (x, 1)) == SUBREG
- && GET_CODE (SUBREG_REG (XEXP (x, 1))) == REG)
- || (GET_CODE (XEXP (x, 1)) == CONST_INT))
- ? 0 : 4));
+ ++*total;
+
+ return true;
case MINUS:
- if (GET_CODE (XEXP (x, 1)) == MULT && mode == SImode && arm_arch_thumb2)
+ if (TARGET_THUMB2)
{
- extra_cost = rtx_cost (XEXP (x, 1), code, true);
- if (!REG_OR_SUBREG_REG (XEXP (x, 0)))
- extra_cost += 4 * ARM_NUM_REGS (mode);
- return extra_cost;
+ if (GET_MODE_CLASS (mode) == MODE_FLOAT)
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ *total = COSTS_N_INSNS (1);
+ else
+ *total = COSTS_N_INSNS (20);
+ }
+ else
+ *total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
+ /* Thumb2 does not have RSB, so all arguments must be
+ registers (subtracting a constant is canonicalized as
+ addition of the negated constant). */
+ return false;
}
if (mode == DImode)
- return (4 + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : 8)
- + ((REG_OR_SUBREG_REG (XEXP (x, 0))
- || (GET_CODE (XEXP (x, 0)) == CONST_INT
- && const_ok_for_arm (INTVAL (XEXP (x, 0)))))
- ? 0 : 8));
+ {
+ *total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
+ if (GET_CODE (XEXP (x, 0)) == CONST_INT
+ && const_ok_for_arm (INTVAL (XEXP (x, 0))))
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ return true;
+ }
+
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+ && const_ok_for_arm (INTVAL (XEXP (x, 1))))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+
+ return false;
+ }
if (GET_MODE_CLASS (mode) == MODE_FLOAT)
- return (2 + ((REG_OR_SUBREG_REG (XEXP (x, 1))
- || (GET_CODE (XEXP (x, 1)) == CONST_DOUBLE
- && arm_const_double_rtx (XEXP (x, 1))))
- ? 0 : 8)
- + ((REG_OR_SUBREG_REG (XEXP (x, 0))
- || (GET_CODE (XEXP (x, 0)) == CONST_DOUBLE
- && arm_const_double_rtx (XEXP (x, 0))))
- ? 0 : 8));
-
- if (((GET_CODE (XEXP (x, 0)) == CONST_INT
- && const_ok_for_arm (INTVAL (XEXP (x, 0)))
- && REG_OR_SUBREG_REG (XEXP (x, 1))))
- || (((subcode = GET_CODE (XEXP (x, 1))) == ASHIFT
- || subcode == ASHIFTRT || subcode == LSHIFTRT
- || subcode == ROTATE || subcode == ROTATERT
- || (subcode == MULT
- && GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
- && ((INTVAL (XEXP (XEXP (x, 1), 1)) &
- (INTVAL (XEXP (XEXP (x, 1), 1)) - 1)) == 0)))
- && REG_OR_SUBREG_REG (XEXP (XEXP (x, 1), 0))
- && (REG_OR_SUBREG_REG (XEXP (XEXP (x, 1), 1))
- || GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT)
- && REG_OR_SUBREG_REG (XEXP (x, 0))))
- return 1;
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ if (GET_CODE (XEXP (x, 0)) == CONST_DOUBLE
+ && arm_const_double_rtx (XEXP (x, 0)))
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ return true;
+ }
+
+ if (GET_CODE (XEXP (x, 1)) == CONST_DOUBLE
+ && arm_const_double_rtx (XEXP (x, 1)))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+
+ return false;
+ }
+ *total = COSTS_N_INSNS (20);
+ return false;
+ }
+
+ *total = COSTS_N_INSNS (1);
+ if (GET_CODE (XEXP (x, 0)) == CONST_INT
+ && const_ok_for_arm (INTVAL (XEXP (x, 0))))
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ return true;
+ }
+
+ subcode = GET_CODE (XEXP (x, 1));
+ if (subcode == ASHIFT || subcode == ASHIFTRT
+ || subcode == LSHIFTRT
+ || subcode == ROTATE || subcode == ROTATERT)
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 1), 0), subcode, speed);
+ return true;
+ }
+
+ if (subcode == MULT
+ && GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
+ && ((INTVAL (XEXP (XEXP (x, 1), 1)) &
+ (INTVAL (XEXP (XEXP (x, 1), 1)) - 1)) == 0))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 1), 0), subcode, speed);
+ return true;
+ }
+
+ if (GET_RTX_CLASS (GET_CODE (XEXP (x, 1))) == RTX_COMPARE
+ || GET_RTX_CLASS (GET_CODE (XEXP (x, 1))) == RTX_COMM_COMPARE)
+ {
+ *total = COSTS_N_INSNS (1) + rtx_cost (XEXP (x, 0), code, speed);
+ if (GET_CODE (XEXP (XEXP (x, 1), 0)) == REG
+ && REGNO (XEXP (XEXP (x, 1), 0)) != CC_REGNUM)
+ *total += COSTS_N_INSNS (1);
+
+ return true;
+ }
+
/* Fall through */
case PLUS:
- if (arm_arch6 && mode == SImode
+ if (code == PLUS && arm_arch6 && mode == SImode
&& (GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
|| GET_CODE (XEXP (x, 0)) == SIGN_EXTEND))
- return 1 + (GET_CODE (XEXP (XEXP (x, 0), 0)) == MEM ? 10 : 0)
- + (GET_CODE (XEXP (x, 1)) == MEM ? 10 : 0);
+ {
+ *total = COSTS_N_INSNS (1);
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), GET_CODE (XEXP (x, 0)),
+ speed);
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ return true;
+ }
- if (GET_CODE (XEXP (x, 0)) == MULT)
+ /* MLA: All arguments must be registers. We filter out
+ multiplication by a power of two, so that we fall down into
+ the code below. */
+ if (GET_CODE (XEXP (x, 0)) == MULT
+ && ! (GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
+ && ((INTVAL (XEXP (XEXP (x, 0), 1)) &
+ (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0)))
{
- extra_cost = rtx_cost (XEXP (x, 0), code, true);
- if (!REG_OR_SUBREG_REG (XEXP (x, 1)))
- extra_cost += 4 * ARM_NUM_REGS (mode);
- return extra_cost;
+ /* The cost comes from the cost of the multiply. */
+ return false;
}
if (GET_MODE_CLASS (mode) == MODE_FLOAT)
- return (2 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 8)
- + ((REG_OR_SUBREG_REG (XEXP (x, 1))
- || (GET_CODE (XEXP (x, 1)) == CONST_DOUBLE
- && arm_const_double_rtx (XEXP (x, 1))))
- ? 0 : 8));
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ if (GET_CODE (XEXP (x, 1)) == CONST_DOUBLE
+ && arm_const_double_rtx (XEXP (x, 1)))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+
+ return false;
+ }
+
+ *total = COSTS_N_INSNS (20);
+ return false;
+ }
+
+ if (GET_RTX_CLASS (GET_CODE (XEXP (x, 0))) == RTX_COMPARE
+ || GET_RTX_CLASS (GET_CODE (XEXP (x, 0))) == RTX_COMM_COMPARE)
+ {
+ *total = COSTS_N_INSNS (1) + rtx_cost (XEXP (x, 1), code, speed);
+ if (GET_CODE (XEXP (XEXP (x, 0), 0)) == REG
+ && REGNO (XEXP (XEXP (x, 0), 0)) != CC_REGNUM)
+ *total += COSTS_N_INSNS (1);
+ return true;
+ }
/* Fall through */
+
case AND: case XOR: case IOR:
extra_cost = 0;
@@ -5016,38 +5134,56 @@ arm_rtx_costs_1 (rtx x, enum rtx_code code, enum rtx_code outer)
&& GET_CODE (XEXP (x, 1)) != CONST_INT)
|| (REG_OR_SUBREG_REG (XEXP (x, 0))
&& ARM_FRAME_RTX (REG_OR_SUBREG_RTX (XEXP (x, 0)))))
- extra_cost = 4;
+ *total = 4;
if (mode == DImode)
- return (4 + extra_cost + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 8)
- + ((REG_OR_SUBREG_REG (XEXP (x, 1))
- || (GET_CODE (XEXP (x, 1)) == CONST_INT
- && const_ok_for_op (INTVAL (XEXP (x, 1)), code)))
- ? 0 : 8));
-
- if (REG_OR_SUBREG_REG (XEXP (x, 0)))
- return (1 + (GET_CODE (XEXP (x, 1)) == CONST_INT ? 0 : extra_cost)
- + ((REG_OR_SUBREG_REG (XEXP (x, 1))
- || (GET_CODE (XEXP (x, 1)) == CONST_INT
- && const_ok_for_op (INTVAL (XEXP (x, 1)), code)))
- ? 0 : 4));
-
- else if (REG_OR_SUBREG_REG (XEXP (x, 1)))
- return (1 + extra_cost
- + ((((subcode = GET_CODE (XEXP (x, 0))) == ASHIFT
- || subcode == LSHIFTRT || subcode == ASHIFTRT
- || subcode == ROTATE || subcode == ROTATERT
- || (subcode == MULT
- && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
- && ((INTVAL (XEXP (XEXP (x, 0), 1)) &
- (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0)))
- && (REG_OR_SUBREG_REG (XEXP (XEXP (x, 0), 0)))
- && ((REG_OR_SUBREG_REG (XEXP (XEXP (x, 0), 1))
- && !arm_tune_cortex_a9)
- || GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT))
- ? 0 : 4));
+ {
+ *total += COSTS_N_INSNS (2);
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+ && const_ok_for_op (INTVAL (XEXP (x, 1)), code))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
- return 8;
+ return false;
+ }
+
+ *total += COSTS_N_INSNS (1);
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+ && const_ok_for_op (INTVAL (XEXP (x, 1)), code))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+ subcode = GET_CODE (XEXP (x, 0));
+ if (subcode == ASHIFT || subcode == ASHIFTRT
+ || subcode == LSHIFTRT
+ || subcode == ROTATE || subcode == ROTATERT)
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), subcode, speed);
+ return true;
+ }
+
+ if (subcode == MULT
+ && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
+ && ((INTVAL (XEXP (XEXP (x, 0), 1)) &
+ (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0))
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), subcode, speed);
+ return true;
+ }
+
+ if (subcode == UMIN || subcode == UMAX
+ || subcode == SMIN || subcode == SMAX)
+ {
+ *total = COSTS_N_INSNS (3);
+ return true;
+ }
+
+ return false;
case MULT:
/* This should have been handled by the CPU specific routines. */
@@ -5061,108 +5197,290 @@ arm_rtx_costs_1 (rtx x, enum rtx_code code, enum rtx_code outer)
== GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 1)))
&& (GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == ZERO_EXTEND
|| GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == SIGN_EXTEND))
- return 8;
- return 99;
+ {
+ *total = rtx_cost (XEXP (XEXP (x, 0), 0), LSHIFTRT, speed);
+ return true;
+ }
+ *total = COSTS_N_INSNS (2); /* Plus the cost of the MULT */
+ return false;
case NEG:
if (GET_MODE_CLASS (mode) == MODE_FLOAT)
- return 4 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 6);
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ return false;
+ }
+ *total = COSTS_N_INSNS (2);
+ return false;
+ }
+
/* Fall through */
case NOT:
- if (mode == DImode)
- return 4 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 4);
+ *total = COSTS_N_INSNS (ARM_NUM_REGS(mode));
+ if (mode == SImode && code == NOT)
+ {
+ subcode = GET_CODE (XEXP (x, 0));
+ if (subcode == ASHIFT || subcode == ASHIFTRT
+ || subcode == LSHIFTRT
+ || subcode == ROTATE || subcode == ROTATERT
+ || (subcode == MULT
+ && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
+ && ((INTVAL (XEXP (XEXP (x, 0), 1)) &
+ (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0)))
+ {
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), subcode, speed);
+ /* Register shifts cost an extra cycle. */
+ if (GET_CODE (XEXP (XEXP (x, 0), 1)) != CONST_INT)
+ *total += COSTS_N_INSNS (1) + rtx_cost (XEXP (XEXP (x, 0), 1),
+ subcode, speed);
+ return true;
+ }
+ }
- return 1 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 4);
+ return false;
case IF_THEN_ELSE:
if (GET_CODE (XEXP (x, 1)) == PC || GET_CODE (XEXP (x, 2)) == PC)
- return 14;
- return 2;
+ {
+ *total = COSTS_N_INSNS (4);
+ return true;
+ }
+
+ operand = XEXP (x, 0);
+
+ if (!((GET_RTX_CLASS (GET_CODE (operand)) == RTX_COMPARE
+ || GET_RTX_CLASS (GET_CODE (operand)) == RTX_COMM_COMPARE)
+ && GET_CODE (XEXP (operand, 0)) == REG
+ && REGNO (XEXP (operand, 0)) == CC_REGNUM))
+ *total += COSTS_N_INSNS (1);
+ *total += (rtx_cost (XEXP (x, 1), code, speed)
+ + rtx_cost (XEXP (x, 2), code, speed));
+ return true;
+ case NE:
+ if (mode == SImode && XEXP (x, 1) == const0_rtx)
+ {
+ *total = COSTS_N_INSNS (2) + rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+ goto scc_insn;
+
+ case GE:
+ if ((GET_CODE (XEXP (x, 0)) != REG || REGNO (XEXP (x, 0)) != CC_REGNUM)
+ && mode == SImode && XEXP (x, 1) == const0_rtx)
+ {
+ *total = COSTS_N_INSNS (2) + rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+ goto scc_insn;
+
+ case LT:
+ if ((GET_CODE (XEXP (x, 0)) != REG || REGNO (XEXP (x, 0)) != CC_REGNUM)
+ && mode == SImode && XEXP (x, 1) == const0_rtx)
+ {
+ *total = COSTS_N_INSNS (1) + rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+ goto scc_insn;
+
+ case EQ:
+ case GT:
+ case LE:
+ case GEU:
+ case LTU:
+ case GTU:
+ case LEU:
+ case UNORDERED:
+ case ORDERED:
+ case UNEQ:
+ case UNGE:
+ case UNLT:
+ case UNGT:
+ case UNLE:
+ scc_insn:
+ /* SCC insns. In the case where the comparison has already been
+ performed, then they cost 2 instructions. Otherwise they need
+ an additional comparison before them. */
+ *total = COSTS_N_INSNS (2);
+ if (GET_CODE (XEXP (x, 0)) == REG && REGNO (XEXP (x, 0)) == CC_REGNUM)
+ {
+ return true;
+ }
+
+ /* Fall through */
case COMPARE:
- return 1;
+ if (GET_CODE (XEXP (x, 0)) == REG && REGNO (XEXP (x, 0)) == CC_REGNUM)
+ {
+ *total = 0;
+ return true;
+ }
+
+ *total += COSTS_N_INSNS (1);
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+ && const_ok_for_op (INTVAL (XEXP (x, 1)), code))
+ {
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+ }
+
+ subcode = GET_CODE (XEXP (x, 0));
+ if (subcode == ASHIFT || subcode == ASHIFTRT
+ || subcode == LSHIFTRT
+ || subcode == ROTATE || subcode == ROTATERT)
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), subcode, speed);
+ return true;
+ }
+
+ if (subcode == MULT
+ && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
+ && ((INTVAL (XEXP (XEXP (x, 0), 1)) &
+ (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0))
+ {
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ *total += rtx_cost (XEXP (XEXP (x, 0), 0), subcode, speed);
+ return true;
+ }
+
+ return false;
+
+ case UMIN:
+ case UMAX:
+ case SMIN:
+ case SMAX:
+ *total = COSTS_N_INSNS (2) + rtx_cost (XEXP (x, 0), code, speed);
+ if (GET_CODE (XEXP (x, 1)) != CONST_INT
+ || !const_ok_for_arm (INTVAL (XEXP (x, 1))))
+ *total += rtx_cost (XEXP (x, 1), code, speed);
+ return true;
case ABS:
- return 4 + (mode == DImode ? 4 : 0);
+ if (GET_MODE_CLASS (mode == MODE_FLOAT))
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ return false;
+ }
+ *total = COSTS_N_INSNS (20);
+ return false;
+ }
+ *total = COSTS_N_INSNS (1);
+ if (mode == DImode)
+ *total += COSTS_N_INSNS (3);
+ return false;
case SIGN_EXTEND:
- if (arm_arch_thumb2 && mode == SImode)
- return 1 + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0);
+ if (GET_MODE_CLASS (mode) == MODE_INT)
+ {
+ *total = 0;
+ if (mode == DImode)
+ *total += COSTS_N_INSNS (1);
+
+ if (GET_MODE (XEXP (x, 0)) != SImode)
+ {
+ if (arm_arch6)
+ {
+ if (GET_CODE (XEXP (x, 0)) != MEM)
+ *total += COSTS_N_INSNS (1);
+ }
+ else if (!arm_arch4 || GET_CODE (XEXP (x, 0)) != MEM)
+ *total += COSTS_N_INSNS (2);
+ }
+
+ return false;
+ }
- if (GET_MODE (XEXP (x, 0)) == QImode)
- return (4 + (mode == DImode ? 4 : 0)
- + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0));
/* Fall through */
case ZERO_EXTEND:
- if (arm_arch6 && mode == SImode)
- return 1 + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0);
-
- switch (GET_MODE (XEXP (x, 0)))
+ *total = 0;
+ if (GET_MODE_CLASS (mode) == MODE_INT)
{
- case QImode:
- return (1 + (mode == DImode ? 4 : 0)
- + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0));
+ if (mode == DImode)
+ *total += COSTS_N_INSNS (1);
- case HImode:
- return (4 + (mode == DImode ? 4 : 0)
- + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0));
+ if (GET_MODE (XEXP (x, 0)) != SImode)
+ {
+ if (arm_arch6)
+ {
+ if (GET_CODE (XEXP (x, 0)) != MEM)
+ *total += COSTS_N_INSNS (1);
+ }
+ else if (!arm_arch4 || GET_CODE (XEXP (x, 0)) != MEM)
+ *total += COSTS_N_INSNS (GET_MODE (XEXP (x, 0)) == QImode ?
+ 1 : 2);
+ }
- case SImode:
- return (1 + (GET_CODE (XEXP (x, 0)) == MEM ? 10 : 0));
+ return false;
+ }
+ switch (GET_MODE (XEXP (x, 0)))
+ {
case V8QImode:
case V4HImode:
case V2SImode:
case V4QImode:
case V2HImode:
- return 1;
+ *total = COSTS_N_INSNS (1);
+ return false;
default:
gcc_unreachable ();
}
gcc_unreachable ();
+ case ZERO_EXTRACT:
+ case SIGN_EXTRACT:
+ *total = COSTS_N_INSNS (1) + rtx_cost (XEXP (x, 0), code, speed);
+ return true;
+
case CONST_INT:
- if (const_ok_for_arm (INTVAL (x)))
- return outer == SET ? 2 : -1;
- else if (outer == AND
- && const_ok_for_arm (~INTVAL (x)))
- return -1;
- else if ((outer == COMPARE
- || outer == PLUS || outer == MINUS)
- && const_ok_for_arm (-INTVAL (x)))
- return -1;
+ if (const_ok_for_arm (INTVAL (x))
+ || const_ok_for_arm (~INTVAL (x)))
+ *total = COSTS_N_INSNS (1);
else
- return 5;
+ *total = COSTS_N_INSNS (arm_gen_constant (SET, mode, NULL_RTX,
+ INTVAL (x), NULL_RTX,
+ NULL_RTX, 0, 0));
+ return true;
case CONST:
case LABEL_REF:
case SYMBOL_REF:
- return 6;
+ *total = COSTS_N_INSNS (3);
+ return true;
case HIGH:
+ *total = COSTS_N_INSNS (1);
+ return true;
+
case LO_SUM:
- return (outer == SET) ? 1 : -1;
+ *total = COSTS_N_INSNS (1);
+ *total += rtx_cost (XEXP (x, 0), code, speed);
+ return true;
case CONST_DOUBLE:
- if (arm_const_double_rtx (x) || vfp3_const_double_rtx (x))
- return outer == SET ? 2 : -1;
- else if ((outer == COMPARE || outer == PLUS)
- && neg_const_double_rtx_ok_for_fpa (x))
- return -1;
- return 7;
+ if (TARGET_HARD_FLOAT && vfp3_const_double_rtx (x))
+ *total = COSTS_N_INSNS (1);
+ else
+ *total = COSTS_N_INSNS (4);
+ return true;
default:
- return 99;
+ *total = COSTS_N_INSNS (4);
+ return false;
}
}
/* RTX costs when optimizing for size. */
static bool
-arm_size_rtx_costs (rtx x, int code, int outer_code, int *total)
+arm_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
+ int *total)
{
enum machine_mode mode = GET_MODE (x);
-
if (TARGET_THUMB1)
{
/* XXX TBD. For now, use the standard costs. */
@@ -5281,7 +5599,11 @@ arm_size_rtx_costs (rtx x, int code, int outer_code, int *total)
case NEG:
if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
- *total = COSTS_N_INSNS (1);
+ {
+ *total = COSTS_N_INSNS (1);
+ return false;
+ }
+
/* Fall through */
case NOT:
*total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
@@ -5388,19 +5710,22 @@ arm_size_rtx_costs (rtx x, int code, int outer_code, int *total)
/* RTX costs when optimizing for size. */
static bool
-arm_rtx_costs (rtx x, int code, int outer_code, int *total, bool speed)
+arm_rtx_costs (rtx x, int code, int outer_code, int *total,
+ bool speed)
{
if (!speed)
return arm_size_rtx_costs (x, code, outer_code, total);
else
- return all_cores[(int)arm_tune].rtx_costs (x, code, outer_code, total);
+ return all_cores[(int)arm_tune].rtx_costs (x, code, outer_code, total,
+ speed);
}
/* RTX costs for cores with a slow MUL implementation. Thumb-2 is not
supported on any "slowmul" cores, so it can be ignored. */
static bool
-arm_slowmul_rtx_costs (rtx x, int code, int outer_code, int *total)
+arm_slowmul_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
+ int *total, bool speed)
{
enum machine_mode mode = GET_MODE (x);
@@ -5416,8 +5741,8 @@ arm_slowmul_rtx_costs (rtx x, int code, int outer_code, int *total)
if (GET_MODE_CLASS (mode) == MODE_FLOAT
|| mode == DImode)
{
- *total = 30;
- return true;
+ *total = COSTS_N_INSNS (20);
+ return false;
}
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
@@ -5433,20 +5758,19 @@ arm_slowmul_rtx_costs (rtx x, int code, int outer_code, int *total)
for (j = 0; i && j < 32; j += booth_unit_size)
{
i >>= booth_unit_size;
- cost += 2;
+ cost++;
}
- *total = cost;
+ *total = COSTS_N_INSNS (cost);
+ *total += rtx_cost (XEXP (x, 0), code, speed);
return true;
}
- *total = 30 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 4)
- + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : 4);
- return true;
+ *total = COSTS_N_INSNS (20);
+ return false;
default:
- *total = arm_rtx_costs_1 (x, code, outer_code);
- return true;
+ return arm_rtx_costs_1 (x, outer_code, total, speed);;
}
}
@@ -5454,7 +5778,8 @@ arm_slowmul_rtx_costs (rtx x, int code, int outer_code, int *total)
/* RTX cost for cores with a fast multiply unit (M variants). */
static bool
-arm_fastmul_rtx_costs (rtx x, int code, int outer_code, int *total)
+arm_fastmul_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
+ int *total, bool speed)
{
enum machine_mode mode = GET_MODE (x);
@@ -5475,16 +5800,15 @@ arm_fastmul_rtx_costs (rtx x, int code, int outer_code, int *total)
&& (GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
|| GET_CODE (XEXP (x, 0)) == SIGN_EXTEND))
{
- *total = 8;
- return true;
+ *total = COSTS_N_INSNS(2);
+ return false;
}
- if (GET_MODE_CLASS (mode) == MODE_FLOAT
- || mode == DImode)
+ if (mode == DImode)
{
- *total = 30;
- return true;
+ *total = COSTS_N_INSNS (5);
+ return false;
}
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
@@ -5500,20 +5824,34 @@ arm_fastmul_rtx_costs (rtx x, int code, int outer_code, int *total)
for (j = 0; i && j < 32; j += booth_unit_size)
{
i >>= booth_unit_size;
- cost += 2;
+ cost++;
}
- *total = cost;
- return true;
+ *total = COSTS_N_INSNS(cost);
+ return false;
}
- *total = 8 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 4)
- + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : 4);
- return true;
+ if (mode == SImode)
+ {
+ *total = COSTS_N_INSNS (4);
+ return false;
+ }
+
+ if (GET_MODE_CLASS (mode) == MODE_FLOAT)
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ return false;
+ }
+ }
+
+ /* Requires a lib call */
+ *total = COSTS_N_INSNS (20);
+ return false;
default:
- *total = arm_rtx_costs_1 (x, code, outer_code);
- return true;
+ return arm_rtx_costs_1 (x, outer_code, total, speed);
}
}
@@ -5522,7 +5860,7 @@ arm_fastmul_rtx_costs (rtx x, int code, int outer_code, int *total)
so it can be ignored. */
static bool
-arm_xscale_rtx_costs (rtx x, int code, int outer_code, int *total)
+arm_xscale_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code, int *total, bool speed)
{
enum machine_mode mode = GET_MODE (x);
@@ -5534,6 +5872,15 @@ arm_xscale_rtx_costs (rtx x, int code, int outer_code, int *total)
switch (code)
{
+ case COMPARE:
+ if (GET_CODE (XEXP (x, 0)) != MULT)
+ return arm_rtx_costs_1 (x, outer_code, total, speed);
+
+ /* A COMPARE of a MULT is slow on XScale; the muls instruction
+ will stall until the multiplication is complete. */
+ *total = COSTS_N_INSNS (3);
+ return false;
+
case MULT:
/* There is no point basing this on the tuning, since it is always the
fast variant if it exists at all. */
@@ -5542,60 +5889,58 @@ arm_xscale_rtx_costs (rtx x, int code, int outer_code, int *total)
&& (GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
|| GET_CODE (XEXP (x, 0)) == SIGN_EXTEND))
{
- *total = 8;
- return true;
+ *total = COSTS_N_INSNS (2);
+ return false;
}
- if (GET_MODE_CLASS (mode) == MODE_FLOAT
- || mode == DImode)
+ if (mode == DImode)
{
- *total = 30;
- return true;
+ *total = COSTS_N_INSNS (5);
+ return false;
}
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
{
- unsigned HOST_WIDE_INT i = (INTVAL (XEXP (x, 1))
- & (unsigned HOST_WIDE_INT) 0xffffffff);
- int cost, const_ok = const_ok_for_arm (i);
+ /* If operand 1 is a constant we can more accurately
+ calculate the cost of the multiply. The multiplier can
+ retire 15 bits on the first cycle and a further 12 on the
+ second. We do, of course, have to load the constant into
+ a register first. */
+ unsigned HOST_WIDE_INT i = INTVAL (XEXP (x, 1));
+ /* There's a general overhead of one cycle. */
+ int cost = 1;
unsigned HOST_WIDE_INT masked_const;
- /* The cost will be related to two insns.
- First a load of the constant (MOV or LDR), then a multiply. */
- cost = 2;
- if (! const_ok)
- cost += 1; /* LDR is probably more expensive because
- of longer result latency. */
+ if (i & 0x80000000)
+ i = ~i;
+
+ i &= (unsigned HOST_WIDE_INT) 0xffffffff;
+
masked_const = i & 0xffff8000;
- if (masked_const != 0 && masked_const != 0xffff8000)
+ if (masked_const != 0)
{
+ cost++;
masked_const = i & 0xf8000000;
- if (masked_const == 0 || masked_const == 0xf8000000)
- cost += 1;
- else
- cost += 2;
+ if (masked_const != 0)
+ cost++;
}
- *total = cost;
- return true;
+ *total = COSTS_N_INSNS (cost);
+ return false;
}
- *total = 8 + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : 4)
- + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : 4);
- return true;
+ if (mode == SImode)
+ {
+ *total = COSTS_N_INSNS (3);
+ return false;
+ }
- case COMPARE:
- /* A COMPARE of a MULT is slow on XScale; the muls instruction
- will stall until the multiplication is complete. */
- if (GET_CODE (XEXP (x, 0)) == MULT)
- *total = 4 + rtx_cost (XEXP (x, 0), code, true);
- else
- *total = arm_rtx_costs_1 (x, code, outer_code);
- return true;
+ /* Requires a lib call */
+ *total = COSTS_N_INSNS (20);
+ return false;
default:
- *total = arm_rtx_costs_1 (x, code, outer_code);
- return true;
+ return arm_rtx_costs_1 (x, outer_code, total, speed);
}
}
@@ -5603,11 +5948,10 @@ arm_xscale_rtx_costs (rtx x, int code, int outer_code, int *total)
/* RTX costs for 9e (and later) cores. */
static bool
-arm_9e_rtx_costs (rtx x, int code, int outer_code, int *total)
+arm_9e_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
+ int *total, bool speed)
{
enum machine_mode mode = GET_MODE (x);
- int nonreg_cost;
- int cost;
if (TARGET_THUMB1)
{
@@ -5633,35 +5977,37 @@ arm_9e_rtx_costs (rtx x, int code, int outer_code, int *total)
&& (GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
|| GET_CODE (XEXP (x, 0)) == SIGN_EXTEND))
{
- *total = 3;
- return true;
+ *total = COSTS_N_INSNS (2);
+ return false;
}
- if (GET_MODE_CLASS (mode) == MODE_FLOAT)
- {
- *total = 30;
- return true;
- }
if (mode == DImode)
{
- cost = 7;
- nonreg_cost = 8;
+ *total = COSTS_N_INSNS (5);
+ return false;
}
- else
+
+ if (mode == SImode)
{
- cost = 2;
- nonreg_cost = 4;
+ *total = COSTS_N_INSNS (2);
+ return false;
}
+ if (GET_MODE_CLASS (mode) == MODE_FLOAT)
+ {
+ if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
+ {
+ *total = COSTS_N_INSNS (1);
+ return false;
+ }
+ }
- *total = cost + (REG_OR_SUBREG_REG (XEXP (x, 0)) ? 0 : nonreg_cost)
- + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : nonreg_cost);
- return true;
+ *total = COSTS_N_INSNS (20);
+ return false;
default:
- *total = arm_rtx_costs_1 (x, code, outer_code);
- return true;
+ return arm_rtx_costs_1 (x, outer_code, total, speed);
}
}
/* All address computations that can be done are free, but rtx cost returns
@@ -6031,7 +6377,7 @@ neon_valid_immediate (rtx op, enum machine_mode mode, int inverse,
break; \
}
- unsigned int i, elsize, idx = 0, n_elts = CONST_VECTOR_NUNITS (op);
+ unsigned int i, elsize = 0, idx = 0, n_elts = CONST_VECTOR_NUNITS (op);
unsigned int innersize = GET_MODE_SIZE (GET_MODE_INNER (mode));
unsigned char bytes[16];
int immtype = -1, matches;
@@ -6996,6 +7342,8 @@ load_multiple_sequence (rtx *operands, int nops, int *regs, int *base,
though could be easily extended if required. */
gcc_assert (nops >= 2 && nops <= 4);
+ memset (order, 0, 4 * sizeof (int));
+
/* Loop over the operands and check that the memory references are
suitable (i.e. immediate offsets from the same base register). At
the same time, extract the target register, and the memory
@@ -7223,6 +7571,8 @@ store_multiple_sequence (rtx *operands, int nops, int *regs, int *base,
extended if required. */
gcc_assert (nops >= 2 && nops <= 4);
+ memset (order, 0, 4 * sizeof (int));
+
/* Loop over the operands and check that the memory references are
suitable (i.e. immediate offsets from the same base register). At
the same time, extract the target register, and the memory
@@ -9981,7 +10331,7 @@ output_move_double (rtx *operands)
if (code0 == REG)
{
- int reg0 = REGNO (operands[0]);
+ unsigned int reg0 = REGNO (operands[0]);
otherops[0] = gen_rtx_REG (SImode, 1 + reg0);
@@ -10041,36 +10391,36 @@ output_move_double (rtx *operands)
}
else
{
- /* IWMMXT allows offsets larger than ldrd can handle,
- fix these up with a pair of ldr. */
- if (GET_CODE (otherops[2]) == CONST_INT
- && (INTVAL(otherops[2]) <= -256
- || INTVAL(otherops[2]) >= 256))
+ /* Use a single insn if we can.
+ FIXME: IWMMXT allows offsets larger than ldrd can
+ handle, fix these up with a pair of ldr. */
+ if (TARGET_THUMB2
+ || GET_CODE (otherops[2]) != CONST_INT
+ || (INTVAL (otherops[2]) > -256
+ && INTVAL (otherops[2]) < 256))
+ output_asm_insn ("ldr%(d%)\t%0, [%1, %2]!", otherops);
+ else
{
output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
- otherops[0] = gen_rtx_REG (SImode, 1 + reg0);
- output_asm_insn ("ldr%?\t%0, [%1, #4]", otherops);
+ output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
}
- else
- output_asm_insn ("ldr%(d%)\t%0, [%1, %2]!", otherops);
}
}
else
{
- /* IWMMXT allows offsets larger than ldrd can handle,
+ /* Use a single insn if we can.
+ FIXME: IWMMXT allows offsets larger than ldrd can handle,
fix these up with a pair of ldr. */
- if (GET_CODE (otherops[2]) == CONST_INT
- && (INTVAL(otherops[2]) <= -256
- || INTVAL(otherops[2]) >= 256))
+ if (TARGET_THUMB2
+ || GET_CODE (otherops[2]) != CONST_INT
+ || (INTVAL (otherops[2]) > -256
+ && INTVAL (otherops[2]) < 256))
+ output_asm_insn ("ldr%(d%)\t%0, [%1], %2", otherops);
+ else
{
- otherops[0] = gen_rtx_REG (SImode, 1 + reg0);
- output_asm_insn ("ldr%?\t%0, [%1, #4]", otherops);
- otherops[0] = operands[0];
+ output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
}
- else
- /* We only allow constant increments, so this is safe. */
- output_asm_insn ("ldr%(d%)\t%0, [%1], %2", otherops);
}
break;
@@ -10124,6 +10474,7 @@ output_move_double (rtx *operands)
operands[1] = otherops[0];
if (TARGET_LDRD
&& (GET_CODE (otherops[2]) == REG
+ || TARGET_THUMB2
|| (GET_CODE (otherops[2]) == CONST_INT
&& INTVAL (otherops[2]) > -256
&& INTVAL (otherops[2]) < 256)))
@@ -10236,23 +10587,19 @@ output_move_double (rtx *operands)
/* IWMMXT allows offsets larger than ldrd can handle,
fix these up with a pair of ldr. */
- if (GET_CODE (otherops[2]) == CONST_INT
+ if (!TARGET_THUMB2
+ && GET_CODE (otherops[2]) == CONST_INT
&& (INTVAL(otherops[2]) <= -256
|| INTVAL(otherops[2]) >= 256))
{
- rtx reg1;
- reg1 = gen_rtx_REG (SImode, 1 + REGNO (operands[1]));
if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
{
output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
- otherops[0] = reg1;
- output_asm_insn ("ldr%?\t%0, [%1, #4]", otherops);
+ output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
}
else
{
- otherops[0] = reg1;
- output_asm_insn ("ldr%?\t%0, [%1, #4]", otherops);
- otherops[0] = operands[1];
+ output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
}
}
@@ -10287,6 +10634,7 @@ output_move_double (rtx *operands)
}
if (TARGET_LDRD
&& (GET_CODE (otherops[2]) == REG
+ || TARGET_THUMB2
|| (GET_CODE (otherops[2]) == CONST_INT
&& INTVAL (otherops[2]) > -256
&& INTVAL (otherops[2]) < 256)))
@@ -10300,9 +10648,9 @@ output_move_double (rtx *operands)
default:
otherops[0] = adjust_address (operands[0], SImode, 4);
- otherops[1] = gen_rtx_REG (SImode, 1 + REGNO (operands[1]));
+ otherops[1] = operands[1];
output_asm_insn ("str%?\t%1, %0", operands);
- output_asm_insn ("str%?\t%1, %0", otherops);
+ output_asm_insn ("str%?\t%H1, %0", otherops);
}
}
@@ -11656,7 +12004,7 @@ arm_output_epilogue (rtx sibling)
(where frame pointer is required to point at first register)
and ARM-non-apcs-frame. Therefore, such change is postponed
until real need arise. */
- HOST_WIDE_INT amount;
+ unsigned HOST_WIDE_INT amount;
int rfe;
/* Restore stack pointer if necessary. */
if (TARGET_ARM && frame_pointer_needed)
@@ -12648,11 +12996,11 @@ arm_expand_prologue (void)
insn = emit_set_insn (gen_rtx_REG (SImode, 3), ip_rtx);
else if (args_to_push == 0)
{
+ rtx dwarf;
+
gcc_assert(arm_compute_static_chain_stack_bytes() == 4);
saved_regs += 4;
- rtx dwarf;
-
insn = gen_rtx_PRE_DEC (SImode, stack_pointer_rtx);
insn = emit_set_insn (gen_frame_mem (SImode, insn), ip_rtx);
fp_offset = 4;
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index b60ba831d15..96e2f3b1bb3 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -4299,7 +4299,7 @@
(define_expand "extendqihi2"
[(set (match_dup 2)
- (ashift:SI (match_operand:QI 1 "general_operand" "")
+ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
(const_int 24)))
(set (match_operand:HI 0 "s_register_operand" "")
(ashiftrt:SI (match_dup 2)
@@ -4324,7 +4324,7 @@
(define_insn "*arm_extendqihi_insn"
[(set (match_operand:HI 0 "s_register_operand" "=r")
- (sign_extend:HI (match_operand:QI 1 "memory_operand" "Uq")))]
+ (sign_extend:HI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
"TARGET_ARM && arm_arch4"
"ldr%(sb%)\\t%0, %1"
[(set_attr "type" "load_byte")
@@ -4335,7 +4335,7 @@
(define_expand "extendqisi2"
[(set (match_dup 2)
- (ashift:SI (match_operand:QI 1 "general_operand" "")
+ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
(const_int 24)))
(set (match_operand:SI 0 "s_register_operand" "")
(ashiftrt:SI (match_dup 2)
@@ -4367,7 +4367,7 @@
(define_insn "*arm_extendqisi"
[(set (match_operand:SI 0 "s_register_operand" "=r")
- (sign_extend:SI (match_operand:QI 1 "memory_operand" "Uq")))]
+ (sign_extend:SI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
"TARGET_ARM && arm_arch4 && !arm_arch6"
"ldr%(sb%)\\t%0, %1"
[(set_attr "type" "load_byte")
@@ -4378,7 +4378,8 @@
(define_insn "*arm_extendqisi_v6"
[(set (match_operand:SI 0 "s_register_operand" "=r,r")
- (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,Uq")))]
+ (sign_extend:SI
+ (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "r,Uq")))]
"TARGET_ARM && arm_arch6"
"@
sxtb%?\\t%0, %1
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
index fe315bcb69b..d26505716be 100644
--- a/gcc/config/arm/lib1funcs.asm
+++ b/gcc/config/arm/lib1funcs.asm
@@ -1280,7 +1280,7 @@ ARM_FUNC_START clzsi2
adr r2, 1f
ldrb r0, [r2, r0]
add r0, r0, r1
- bx lr
+ RET
.align 2
1:
.byte 4, 3, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index 388790dbe06..48e697fa9e4 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -234,6 +234,10 @@
(match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND,
0)")))
+(define_special_predicate "arm_reg_or_extendqisi_mem_op"
+ (ior (match_operand 0 "arm_extendqisi_mem_op")
+ (match_operand 0 "s_register_operand")))
+
(define_predicate "power_of_two_operand"
(match_code "const_int")
{
diff --git a/gcc/config/arm/t-linux b/gcc/config/arm/t-linux
index ea328951984..73d62136e2c 100644
--- a/gcc/config/arm/t-linux
+++ b/gcc/config/arm/t-linux
@@ -3,7 +3,8 @@
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
LIB1ASMSRC = arm/lib1funcs.asm
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+ _arm_addsubdf3 _arm_addsubsf3
# MULTILIB_OPTIONS = mhard-float/msoft-float
# MULTILIB_DIRNAMES = hard-float soft-float
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 16eff6b268b..8ec6e2cf8db 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -188,6 +188,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
{ "attiny461", ARCH_AVR25, "__AVR_ATtiny461__" },
{ "attiny861", ARCH_AVR25, "__AVR_ATtiny861__" },
{ "attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__" },
+ { "attiny87", ARCH_AVR25, "__AVR_ATtiny87__" },
{ "attiny48", ARCH_AVR25, "__AVR_ATtiny48__" },
{ "attiny88", ARCH_AVR25, "__AVR_ATtiny88__" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__" },
@@ -204,6 +205,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
{ "at90usb82", ARCH_AVR35, "__AVR_AT90USB82__" },
{ "at90usb162", ARCH_AVR35, "__AVR_AT90USB162__" },
{ "attiny167", ARCH_AVR35, "__AVR_ATtiny167__" },
+ { "attiny327", ARCH_AVR35, "__AVR_ATtiny327__" },
/* Enhanced, <= 8K. */
{ "avr4", ARCH_AVR4, NULL },
{ "atmega8", ARCH_AVR4, "__AVR_ATmega8__" },
@@ -221,6 +223,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
{ "at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__" },
{ "at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__" },
{ "at90pwm3b", ARCH_AVR4, "__AVR_AT90PWM3B__" },
+ { "at90pwm81", ARCH_AVR4, "__AVR_AT90PWM81__" },
/* Enhanced, > 8K, <= 64K. */
{ "avr5", ARCH_AVR5, NULL },
{ "atmega16", ARCH_AVR5, "__AVR_ATmega16__" },
@@ -264,11 +267,13 @@ static const struct mcu_type_s avr_mcu_types[] = {
{ "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__" },
{ "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__" },
{ "atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__" },
+ { "atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__" },
{ "atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__" },
{ "atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__" },
{ "atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__" },
{ "atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__" },
{ "atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__" },
+ { "at90scr100", ARCH_AVR5, "__AVR_AT90SCR100__" },
{ "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__" },
{ "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__" },
{ "at94k", ARCH_AVR5, "__AVR_AT94K__" },
@@ -278,9 +283,13 @@ static const struct mcu_type_s avr_mcu_types[] = {
{ "atmega1280", ARCH_AVR51, "__AVR_ATmega1280__" },
{ "atmega1281", ARCH_AVR51, "__AVR_ATmega1281__" },
{ "atmega1284p", ARCH_AVR51, "__AVR_ATmega1284P__" },
+ { "atmega128rfa1", ARCH_AVR51, "__AVR_ATmega128RFA1__" },
{ "at90can128", ARCH_AVR51, "__AVR_AT90CAN128__" },
{ "at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__" },
{ "at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__" },
+ { "m3000f", ARCH_AVR51, "__AVR_M3000F__" },
+ { "m3000s", ARCH_AVR51, "__AVR_M3000S__" },
+ { "m3001b", ARCH_AVR51, "__AVR_M3001B__" },
/* 3-Byte PC. */
{ "avr6", ARCH_AVR6, NULL },
{ "atmega2560", ARCH_AVR6, "__AVR_ATmega2560__" },
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 308d9a4f947..d54870cac30 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -838,14 +838,16 @@ mmcu=*:-mmcu=%*}"
mmcu=at76*|\
mmcu=at90usb82|\
mmcu=at90usb162|\
- mmcu=attiny167: -m avr3}\
+ mmcu=attiny16*|\
+ mmcu=attiny32*: -m avr3}\
%{mmcu=atmega8*|\
mmcu=atmega4*|\
mmcu=at90pwm1|\
mmcu=at90pwm2|\
mmcu=at90pwm2b|\
mmcu=at90pwm3|\
- mmcu=at90pwm3b: -m avr4}\
+ mmcu=at90pwm3b|\
+ mmcu=at90pwm81: -m avr4}\
%{mmcu=atmega16*|\
mmcu=atmega32*|\
mmcu=atmega406|\
@@ -854,9 +856,12 @@ mmcu=*:-mmcu=%*}"
mmcu=at90can*|\
mmcu=at90pwm216|\
mmcu=at90pwm316|\
+ mmcu=at90scr100|\
mmcu=at90usb64*|\
mmcu=at90usb128*|\
- mmcu=at94k: -m avr5}\
+ mmcu=at94k|\
+ mmcu=m3000*|\
+ mmcu=m3001*: -m avr5}\
%{mmcu=atmega256*:-m avr6}\
%{mmcu=atmega324*|\
mmcu=atmega325*|\
@@ -882,20 +887,27 @@ mmcu=*:-mmcu=%*}"
mmcu=atmega32hv*|\
mmcu=attiny48|\
mmcu=attiny88|\
+ mmcu=attiny87|\
mmcu=attiny167|\
+ mmcu=attiny327|\
mmcu=at90can*|\
mmcu=at90pwm*|\
mmcu=atmega32c1|\
mmcu=atmega64c1|\
+ mmcu=atmega16m1|\
mmcu=atmega32m1|\
mmcu=atmega64m1|\
mmcu=atmega16u4|\
mmcu=atmega32u*|\
+ mmcu=at90scr100|\
mmcu=at90usb*: -Tdata 0x800100}\
%{mmcu=atmega640|\
mmcu=atmega1280|\
mmcu=atmega1281|\
- mmcu=atmega256*: -Tdata 0x800200} "
+ mmcu=atmega256*|\
+ mmcu=atmega128rfa1: -Tdata 0x800200}\
+%{mmcu=m3000*|\
+ mmcu=m3001*: -Tdata 0x801000}"
#define LIB_SPEC \
"%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}"
@@ -942,15 +954,17 @@ mmcu=*:-mmcu=%*}"
%{mmcu=attiny461:crttn461.o%s} \
%{mmcu=attiny861:crttn861.o%s} \
%{mmcu=attiny43u:crttn43u.o%s} \
+%{mmcu=attiny87:crttn87.o%s} \
%{mmcu=attiny48:crttn48.o%s} \
%{mmcu=attiny88:crttn88.o%s} \
-%{mmcu=attiny167:crttn167.o%s} \
%{mmcu=at43usb355|mmcu=avr3:crt43355.o%s} \
%{mmcu=at76c711:crt76711.o%s} \
%{mmcu=atmega103|mmcu=avr31:crtm103.o%s} \
%{mmcu=at43usb320:crt43320.o%s} \
%{mmcu=at90usb162|mmcu=avr35:crtusb162.o%s} \
%{mmcu=at90usb82:crtusb82.o%s} \
+%{mmcu=attiny167:crttn167.o%s} \
+%{mmcu=attiny327:crttn327.o%s} \
%{mmcu=atmega8|mmcu=avr4:crtm8.o%s} \
%{mmcu=atmega48:crtm48.o%s} \
%{mmcu=atmega48p:crtm48p.o%s} \
@@ -963,6 +977,7 @@ mmcu=*:-mmcu=%*}"
%{mmcu=at90pwm2b:crt90pwm2b.o%s} \
%{mmcu=at90pwm3:crt90pwm3.o%s} \
%{mmcu=at90pwm3b:crt90pwm3b.o%s} \
+%{mmcu=at90pwm81:crt90pwm81.o%s} \
%{mmcu=atmega16:crtm16.o%s} \
%{mmcu=atmega161|mmcu=avr5:crtm161.o%s} \
%{mmcu=atmega162:crtm162.o%s} \
@@ -1007,11 +1022,13 @@ mmcu=*:-mmcu=%*}"
%{mmcu=at90pwm316:crt90pwm316.o%s} \
%{mmcu=atmega32c1:crtm32c1.o%s} \
%{mmcu=atmega64c1:crtm64c1.o%s} \
+%{mmcu=atmega16m1:crtm16m1.o%s} \
%{mmcu=atmega32m1:crtm32m1.o%s} \
%{mmcu=atmega64m1:crtm64m1.o%s} \
%{mmcu=atmega16u4:crtm16u4.o%s} \
%{mmcu=atmega32u4:crtm32u4.o%s} \
%{mmcu=atmega32u6:crtm32u6.o%s} \
+%{mmcu=at90scr100:crt90scr100.o%s} \
%{mmcu=at90usb646:crtusb646.o%s} \
%{mmcu=at90usb647:crtusb647.o%s} \
%{mmcu=at94k:crtat94k.o%s} \
@@ -1019,11 +1036,15 @@ mmcu=*:-mmcu=%*}"
%{mmcu=atmega1280:crtm1280.o%s} \
%{mmcu=atmega1281:crtm1281.o%s} \
%{mmcu=atmega1284p:crtm1284p.o%s} \
-%{mmcu=atmega2560:crtm2560.o%s} \
-%{mmcu=atmega2561:crtm2561.o%s} \
%{mmcu=at90can128:crtcan128.o%s} \
+%{mmcu=atmega128rfa1:crtm128rfa1.o%s} \
%{mmcu=at90usb1286:crtusb1286.o%s} \
-%{mmcu=at90usb1287:crtusb1287.o%s}"
+%{mmcu=at90usb1287:crtusb1287.o%s} \
+%{mmcu=m3000f:crtm3000f.o%s} \
+%{mmcu=m3000s:crtm3000s.o%s} \
+%{mmcu=m3001b:crtm3001b.o%s} \
+%{mmcu=atmega2560|mmcu=avr6:crtm2560.o%s} \
+%{mmcu=atmega2561:crtm2561.o%s}"
#define EXTRA_SPECS {"crt_binutils", CRT_BINUTILS_SPECS},
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 82a499d48b7..309b028589d 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -1263,7 +1263,7 @@
return \"bug\";
}"
[(set_attr "length" "4,4")
- (set_attr "cc" "set_n,set_n")])
+ (set_attr "cc" "set_n,clobber")])
(define_peephole2 ; andi
[(set (match_operand:QI 0 "d_register_operand" "")
diff --git a/gcc/config/avr/libgcc.S b/gcc/config/avr/libgcc.S
index a63b26aa506..14bd1d37a50 100644
--- a/gcc/config/avr/libgcc.S
+++ b/gcc/config/avr/libgcc.S
@@ -1,5 +1,5 @@
/* -*- Mode: Asm -*- */
-/* Copyright (C) 1998, 1999, 2000, 2007, 2008
+/* Copyright (C) 1998, 1999, 2000, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
@@ -793,38 +793,112 @@ __do_clear_bss:
#ifdef L_ctors
.section .init6,"ax",@progbits
.global __do_global_ctors
+#if defined(__AVR_HAVE_RAMPZ__)
__do_global_ctors:
ldi r17, hi8(__ctors_start)
+ ldi r16, hh8(__ctors_start)
ldi r28, lo8(__ctors_end)
ldi r29, hi8(__ctors_end)
- rjmp .do_global_ctors_start
-.do_global_ctors_loop:
+ ldi r20, hh8(__ctors_end)
+ rjmp .L__do_global_ctors_start
+.L__do_global_ctors_loop:
+ sbiw r28, 2
+ sbc r20, __zero_reg__
+ mov_h r31, r29
+ mov_l r30, r28
+ out __RAMPZ__, r20
+ XCALL __tablejump_elpm__
+.L__do_global_ctors_start:
+ cpi r28, lo8(__ctors_start)
+ cpc r29, r17
+ cpc r20, r16
+ brne .L__do_global_ctors_loop
+#else
+__do_global_ctors:
+ ldi r17, hi8(__ctors_start)
+ ldi r28, lo8(__ctors_end)
+ ldi r29, hi8(__ctors_end)
+ rjmp .L__do_global_ctors_start
+.L__do_global_ctors_loop:
sbiw r28, 2
mov_h r31, r29
mov_l r30, r28
XCALL __tablejump__
-.do_global_ctors_start:
+.L__do_global_ctors_start:
cpi r28, lo8(__ctors_start)
cpc r29, r17
- brne .do_global_ctors_loop
+ brne .L__do_global_ctors_loop
+#endif /* defined(__AVR_HAVE_RAMPZ__) */
#endif /* L_ctors */
#ifdef L_dtors
.section .fini6,"ax",@progbits
.global __do_global_dtors
+#if defined(__AVR_HAVE_RAMPZ__)
__do_global_dtors:
ldi r17, hi8(__dtors_end)
+ ldi r16, hh8(__dtors_end)
ldi r28, lo8(__dtors_start)
ldi r29, hi8(__dtors_start)
- rjmp .do_global_dtors_start
-.do_global_dtors_loop:
+ ldi r20, hh8(__dtors_start)
+ rjmp .L__do_global_dtors_start
+.L__do_global_dtors_loop:
+ sbiw r28, 2
+ sbc r20, __zero_reg__
+ mov_h r31, r29
+ mov_l r30, r28
+ out __RAMPZ__, r20
+ XCALL __tablejump_elpm__
+.L__do_global_dtors_start:
+ cpi r28, lo8(__dtors_end)
+ cpc r29, r17
+ cpc r20, r16
+ brne .L__do_global_dtors_loop
+#else
+__do_global_dtors:
+ ldi r17, hi8(__dtors_end)
+ ldi r28, lo8(__dtors_start)
+ ldi r29, hi8(__dtors_start)
+ rjmp .L__do_global_dtors_start
+.L__do_global_dtors_loop:
mov_h r31, r29
mov_l r30, r28
XCALL __tablejump__
adiw r28, 2
-.do_global_dtors_start:
+.L__do_global_dtors_start:
cpi r28, lo8(__dtors_end)
cpc r29, r17
- brne .do_global_dtors_loop
+ brne .L__do_global_dtors_loop
+#endif /* defined(__AVR_HAVE_RAMPZ__) */
#endif /* L_dtors */
+#ifdef L_tablejump_elpm
+ .global __tablejump_elpm__
+ .func __tablejump_elpm__
+__tablejump_elpm__:
+#if defined (__AVR_HAVE_ELPM__)
+#if defined (__AVR_HAVE_LPMX__)
+ elpm __tmp_reg__, Z+
+ elpm r31, Z
+ mov r30, __tmp_reg__
+#if defined (__AVR_HAVE_EIJMP_EICALL__)
+ eijmp
+#else
+ ijmp
+#endif
+
+#else
+ elpm
+ adiw r30, 1
+ push r0
+ elpm
+ push r0
+#if defined (__AVR_HAVE_EIJMP_EICALL__)
+ push __zero_reg__
+#endif
+ ret
+#endif
+#endif /* defined (__AVR_HAVE_ELPM__) */
+ .endfunc
+#endif /* defined (L_tablejump_elpm) */
+
diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr
index 0106a4006ef..cbb47817d6d 100644
--- a/gcc/config/avr/t-avr
+++ b/gcc/config/avr/t-avr
@@ -14,6 +14,7 @@ LIB1ASMFUNCS = \
_exit \
_cleanup \
_tablejump \
+ _tablejump_elpm \
_copy_data \
_clear_bss \
_ctors \
@@ -55,6 +56,7 @@ MULTILIB_MATCHES = \
mmcu?avr25=mmcu?attiny461 \
mmcu?avr25=mmcu?attiny861 \
mmcu?avr25=mmcu?attiny43u \
+ mmcu?avr25=mmcu?attiny87 \
mmcu?avr25=mmcu?attiny48 \
mmcu?avr25=mmcu?attiny88 \
mmcu?avr25=mmcu?at86rf401 \
@@ -65,6 +67,7 @@ MULTILIB_MATCHES = \
mmcu?avr35=mmcu?at90usb82 \
mmcu?avr35=mmcu?at90usb162 \
mmcu?avr35=mmcu?attiny167 \
+ mmcu?avr35=mmcu?attiny327 \
mmcu?avr4=mmcu?atmega48 \
mmcu?avr4=mmcu?atmega48p \
mmcu?avr4=mmcu?atmega8 \
@@ -80,6 +83,7 @@ MULTILIB_MATCHES = \
mmcu?avr4=mmcu?at90pwm2b \
mmcu?avr4=mmcu?at90pwm3 \
mmcu?avr4=mmcu?at90pwm3b \
+ mmcu?avr4=mmcu?at90pwm81 \
mmcu?avr5=mmcu?atmega16 \
mmcu?avr5=mmcu?atmega161 \
mmcu?avr5=mmcu?atmega162 \
@@ -121,11 +125,13 @@ MULTILIB_MATCHES = \
mmcu?avr5=mmcu?at90pwm316 \
mmcu?avr5=mmcu?atmega32c1 \
mmcu?avr5=mmcu?atmega64c1 \
+ mmcu?avr5=mmcu?atmega16m1 \
mmcu?avr5=mmcu?atmega32m1 \
mmcu?avr5=mmcu?atmega64m1 \
mmcu?avr5=mmcu?atmega16u4 \
mmcu?avr5=mmcu?atmega32u4 \
mmcu?avr5=mmcu?atmega32u6 \
+ mmcu?avr5=mmcu?at90scr100 \
mmcu?avr5=mmcu?at90usb646 \
mmcu?avr5=mmcu?at90usb647 \
mmcu?avr5=mmcu?at94k \
@@ -133,9 +139,13 @@ MULTILIB_MATCHES = \
mmcu?avr51=mmcu?atmega1280 \
mmcu?avr51=mmcu?atmega1281 \
mmcu?avr51=mmcu?atmega1284p \
+ mmcu?avr51=mmcu?atmega128rfa1 \
mmcu?avr51=mmcu?at90can128 \
mmcu?avr51=mmcu?at90usb1286 \
mmcu?avr51=mmcu?at90usb1287 \
+ mmcu?avr51=mmcu?m3000f \
+ mmcu?avr51=mmcu?m3000s \
+ mmcu?avr51=mmcu?m3001b \
mmcu?avr6=mmcu?atmega2560 \
mmcu?avr6=mmcu?atmega2561
diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c
index bdf04ffd312..fd56be77a64 100644
--- a/gcc/config/fp-bit.c
+++ b/gcc/config/fp-bit.c
@@ -139,22 +139,21 @@ extern const fp_number_type __thenan_df;
#endif
INLINE
-static fp_number_type *
-nan (void)
+static const fp_number_type *
+makenan (void)
{
- /* Discard the const qualifier... */
#ifdef TFLOAT
- return (fp_number_type *) (& __thenan_tf);
+ return & __thenan_tf;
#elif defined FLOAT
- return (fp_number_type *) (& __thenan_sf);
+ return & __thenan_sf;
#else
- return (fp_number_type *) (& __thenan_df);
+ return & __thenan_df;
#endif
}
INLINE
static int
-isnan ( fp_number_type * x)
+isnan (const fp_number_type *x)
{
return __builtin_expect (x->class == CLASS_SNAN || x->class == CLASS_QNAN,
0);
@@ -162,7 +161,7 @@ isnan ( fp_number_type * x)
INLINE
static int
-isinf ( fp_number_type * x)
+isinf (const fp_number_type * x)
{
return __builtin_expect (x->class == CLASS_INFINITY, 0);
}
@@ -171,7 +170,7 @@ isinf ( fp_number_type * x)
INLINE
static int
-iszero ( fp_number_type * x)
+iszero (const fp_number_type * x)
{
return x->class == CLASS_ZERO;
}
@@ -199,11 +198,11 @@ clzusi (USItype n)
return __clzsi2 (n);
}
-extern FLO_type pack_d ( fp_number_type * );
+extern FLO_type pack_d (const fp_number_type * );
#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
FLO_type
-pack_d ( fp_number_type * src)
+pack_d (const fp_number_type *src)
{
FLO_union_type dst;
fractype fraction = src->fraction.ll; /* wasn't unsigned before? */
@@ -596,7 +595,7 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
#endif /* L_unpack_df || L_unpack_sf */
#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
-static fp_number_type *
+static const fp_number_type *
_fpadd_parts (fp_number_type * a,
fp_number_type * b,
fp_number_type * tmp)
@@ -621,7 +620,7 @@ _fpadd_parts (fp_number_type * a,
{
/* Adding infinities with opposite signs yields a NaN. */
if (isinf (b) && a->sign != b->sign)
- return nan ();
+ return makenan ();
return a;
}
if (isinf (b))
@@ -734,7 +733,6 @@ _fpadd_parts (fp_number_type * a,
tmp->normal_exp++;
}
return tmp;
-
}
FLO_type
@@ -743,7 +741,7 @@ add (FLO_type arg_a, FLO_type arg_b)
fp_number_type a;
fp_number_type b;
fp_number_type tmp;
- fp_number_type *res;
+ const fp_number_type *res;
FLO_union_type au, bu;
au.value = arg_a;
@@ -763,7 +761,7 @@ sub (FLO_type arg_a, FLO_type arg_b)
fp_number_type a;
fp_number_type b;
fp_number_type tmp;
- fp_number_type *res;
+ const fp_number_type *res;
FLO_union_type au, bu;
au.value = arg_a;
@@ -781,7 +779,7 @@ sub (FLO_type arg_a, FLO_type arg_b)
#endif /* L_addsub_sf || L_addsub_df */
#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
-static inline __attribute__ ((__always_inline__)) fp_number_type *
+static inline __attribute__ ((__always_inline__)) const fp_number_type *
_fpmul_parts ( fp_number_type * a,
fp_number_type * b,
fp_number_type * tmp)
@@ -802,7 +800,7 @@ _fpmul_parts ( fp_number_type * a,
if (isinf (a))
{
if (iszero (b))
- return nan ();
+ return makenan ();
a->sign = a->sign != b->sign;
return a;
}
@@ -810,7 +808,7 @@ _fpmul_parts ( fp_number_type * a,
{
if (iszero (a))
{
- return nan ();
+ return makenan ();
}
b->sign = a->sign != b->sign;
return b;
@@ -949,7 +947,7 @@ multiply (FLO_type arg_a, FLO_type arg_b)
fp_number_type a;
fp_number_type b;
fp_number_type tmp;
- fp_number_type *res;
+ const fp_number_type *res;
FLO_union_type au, bu;
au.value = arg_a;
@@ -965,7 +963,7 @@ multiply (FLO_type arg_a, FLO_type arg_b)
#endif /* L_mul_sf || L_mul_df || L_mul_tf */
#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
-static inline __attribute__ ((__always_inline__)) fp_number_type *
+static inline __attribute__ ((__always_inline__)) const fp_number_type *
_fpdiv_parts (fp_number_type * a,
fp_number_type * b)
{
@@ -988,7 +986,7 @@ _fpdiv_parts (fp_number_type * a,
if (isinf (a) || iszero (a))
{
if (a->class == b->class)
- return nan ();
+ return makenan ();
return a;
}
@@ -1067,7 +1065,7 @@ divide (FLO_type arg_a, FLO_type arg_b)
{
fp_number_type a;
fp_number_type b;
- fp_number_type *res;
+ const fp_number_type *res;
FLO_union_type au, bu;
au.value = arg_a;
diff --git a/gcc/config/fp-bit.h b/gcc/config/fp-bit.h
index 5f9082cd301..289ed049497 100644
--- a/gcc/config/fp-bit.h
+++ b/gcc/config/fp-bit.h
@@ -415,10 +415,10 @@ typedef union
}
FLO_union_type;
-/* Prototypes */
+/* Prototypes. */
#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
-extern FLO_type pack_d (fp_number_type *);
+extern FLO_type pack_d (const fp_number_type *);
#endif
extern void unpack_d (FLO_union_type *, fp_number_type *);
diff --git a/gcc/config/i386/avxintrin.h b/gcc/config/i386/avxintrin.h
index 7aea85d355d..2529c758fad 100644
--- a/gcc/config/i386/avxintrin.h
+++ b/gcc/config/i386/avxintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC.
@@ -626,42 +626,6 @@ _mm256_permute_ps (__m256 __X, const int __C)
{
return (__m256) __builtin_ia32_vpermilps256 ((__v8sf)__X, __C);
}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_permute2_pd (__m128d __X, __m128d __Y, __m128i __C, const int __I)
-{
- return (__m128d) __builtin_ia32_vpermil2pd ((__v2df)__X,
- (__v2df)__Y,
- (__v2di)__C,
- __I);
-}
-
-extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm256_permute2_pd (__m256d __X, __m256d __Y, __m256i __C, const int __I)
-{
- return (__m256d) __builtin_ia32_vpermil2pd256 ((__v4df)__X,
- (__v4df)__Y,
- (__v4di)__C,
- __I);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_permute2_ps (__m128 __X, __m128 __Y, __m128i __C, const int __I)
-{
- return (__m128) __builtin_ia32_vpermil2ps ((__v4sf)__X,
- (__v4sf)__Y,
- (__v4si)__C,
- __I);
-}
-
-extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm256_permute2_ps (__m256 __X, __m256 __Y, __m256i __C, const int __I)
-{
- return (__m256) __builtin_ia32_vpermil2ps256 ((__v8sf)__X,
- (__v8sf)__Y,
- (__v8si)__C,
- __I);
-}
#else
#define _mm_permute_pd(X, C) \
((__m128d) __builtin_ia32_vpermilpd ((__v2df)(__m128d)(X), (int)(C)))
@@ -674,30 +638,6 @@ _mm256_permute2_ps (__m256 __X, __m256 __Y, __m256i __C, const int __I)
#define _mm256_permute_ps(X, C) \
((__m256) __builtin_ia32_vpermilps256 ((__v8sf)(__m256)(X), (int)(C)))
-
-#define _mm_permute2_pd(X, Y, C, I) \
- ((__m128d) __builtin_ia32_vpermil2pd ((__v2df)(__m128d)(X), \
- (__v2df)(__m128d)(Y), \
- (__v2di)(__m128d)(C), \
- (int)(I)))
-
-#define _mm256_permute2_pd(X, Y, C, I) \
- ((__m256d) __builtin_ia32_vpermil2pd256 ((__v4df)(__m256d)(X), \
- (__v4df)(__m256d)(Y), \
- (__v4di)(__m256d)(C), \
- (int)(I)))
-
-#define _mm_permute2_ps(X, Y, C, I) \
- ((__m128) __builtin_ia32_vpermil2ps ((__v4sf)(__m128)(X), \
- (__v4sf)(__m128)(Y), \
- (__v4si)(__m128)(C), \
- (int)(I)))
-
-#define _mm256_permute2_ps(X, Y, C, I) \
- ((__m256) __builtin_ia32_vpermil2ps256 ((__v8sf)(__m256)(X), \
- (__v8sf)(__m256)(Y), \
- (__v8si)(__m256)(C), \
- (int)(I)))
#endif
#ifdef __OPTIMIZE__
@@ -1028,6 +968,24 @@ _mm256_lddqu_si256 (__m256i const *__P)
return (__m256i) __builtin_ia32_lddqu256 ((char const *)__P);
}
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_stream_si256 (__m256i *__A, __m256i __B)
+{
+ __builtin_ia32_movntdq256 ((__v4di *)__A, (__v4di)__B);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_stream_pd (double *__A, __m256d __B)
+{
+ __builtin_ia32_movntpd256 (__A, (__v4df)__B);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_stream_ps (float *__P, __m256 __A)
+{
+ __builtin_ia32_movntps256 (__P, (__v8sf)__A);
+}
+
extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_rcp_ps (__m256 __A)
{
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 12e9e5abfe9..d02f5c16fae 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on IA-32.
Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -1655,6 +1655,10 @@ struct stack_local_entry GTY(())
<- HARD_FRAME_POINTER
[saved regs]
+ [padding0]
+
+ [saved SSE regs]
+
[padding1] \
)
[va_arg registers] (
@@ -1665,6 +1669,8 @@ struct stack_local_entry GTY(())
*/
struct ix86_frame
{
+ int padding0;
+ int nsseregs;
int nregs;
int padding1;
int va_arg_size;
@@ -2300,9 +2306,7 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune,
{ "-mtls-direct-seg-refs", MASK_TLS_DIRECT_SEG_REFS },
};
- const char *opts[ (sizeof (isa_opts) / sizeof (isa_opts[0])
- + sizeof (flag_opts) / sizeof (flag_opts[0])
- + 6)][2];
+ const char *opts[ARRAY_SIZE (isa_opts) + ARRAY_SIZE (flag_opts) + 6][2];
char isa_other[40];
char target_other[40];
@@ -2331,7 +2335,7 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune,
}
/* Pick out the options in isa options. */
- for (i = 0; i < sizeof (isa_opts) / sizeof (isa_opts[0]); i++)
+ for (i = 0; i < ARRAY_SIZE (isa_opts); i++)
{
if ((isa & isa_opts[i].mask) != 0)
{
@@ -2347,7 +2351,7 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune,
}
/* Add flag options. */
- for (i = 0; i < sizeof (flag_opts) / sizeof (flag_opts[0]); i++)
+ for (i = 0; i < ARRAY_SIZE (flag_opts); i++)
{
if ((flags & flag_opts[i].mask) != 0)
{
@@ -2373,7 +2377,7 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune,
if (num == 0)
return NULL;
- gcc_assert (num < sizeof (opts) / sizeof (opts[0]));
+ gcc_assert (num < ARRAY_SIZE (opts));
/* Size the string. */
len = 0;
@@ -2686,7 +2690,9 @@ override_options (bool main_args_p)
stringop_alg = libcall;
else if (!strcmp (ix86_stringop_string, "rep_4byte"))
stringop_alg = rep_prefix_4_byte;
- else if (!strcmp (ix86_stringop_string, "rep_8byte"))
+ else if (!strcmp (ix86_stringop_string, "rep_8byte")
+ && TARGET_64BIT)
+ /* rep; movq isn't available in 32-bit code. */
stringop_alg = rep_prefix_8_byte;
else if (!strcmp (ix86_stringop_string, "byte_loop"))
stringop_alg = loop_1_byte;
@@ -3520,7 +3526,7 @@ ix86_valid_target_attribute_inner_p (tree args, char *p_strings[])
/* Find the option. */
ch = *p;
opt = N_OPTS;
- for (i = 0; i < sizeof (attrs) / sizeof (attrs[0]); i++)
+ for (i = 0; i < ARRAY_SIZE (attrs); i++)
{
type = attrs[i].type;
opt_len = attrs[i].len;
@@ -4600,9 +4606,7 @@ extern void init_regs (void);
/* Implementation of call abi switching target hook. Specific to FNDECL
the specific call register sets are set. See also CONDITIONAL_REGISTER_USAGE
- for more details.
- To prevent redudant calls of costy function init_regs (), it checks not to
- reset register usage for default abi. */
+ for more details. */
void
ix86_call_abi_override (const_tree fndecl)
{
@@ -4610,24 +4614,17 @@ ix86_call_abi_override (const_tree fndecl)
cfun->machine->call_abi = DEFAULT_ABI;
else
cfun->machine->call_abi = ix86_function_type_abi (TREE_TYPE (fndecl));
- if (TARGET_64BIT && cfun->machine->call_abi == MS_ABI)
- {
- if (call_used_regs[4 /*RSI*/] != 0 || call_used_regs[5 /*RDI*/] != 0)
- {
- call_used_regs[4 /*RSI*/] = 0;
- call_used_regs[5 /*RDI*/] = 0;
- init_regs ();
- }
- }
- else if (TARGET_64BIT)
- {
- if (call_used_regs[4 /*RSI*/] != 1 || call_used_regs[5 /*RDI*/] != 1)
- {
- call_used_regs[4 /*RSI*/] = 1;
- call_used_regs[5 /*RDI*/] = 1;
- init_regs ();
- }
- }
+}
+
+/* MS and SYSV ABI have different set of call used registers. Avoid expensive
+ re-initialization of init_regs each time we switch function context since
+ this is needed only during RTL expansion. */
+static void
+ix86_maybe_switch_abi (void)
+{
+ if (TARGET_64BIT &&
+ call_used_regs[4 /*RSI*/] == (cfun->machine->call_abi == MS_ABI))
+ init_regs ();
}
/* Initialize a variable CUM of type CUMULATIVE_ARGS
@@ -4648,6 +4645,9 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument info to initialize */
else
cum->call_abi = ix86_function_type_abi (fntype);
/* Set up the number of registers to use for passing arguments. */
+
+ if (cum->call_abi == MS_ABI && !ACCUMULATE_OUTGOING_ARGS)
+ sorry ("ms_abi attribute require -maccumulate-outgoing-args or subtarget optimization implying it");
cum->nregs = ix86_regparm;
if (TARGET_64BIT)
{
@@ -5699,9 +5699,10 @@ function_arg_ms_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
{
unsigned int regno;
- /* Avoid the AL settings for the Unix64 ABI. */
+ /* We need to add clobber for MS_ABI->SYSV ABI calls in expand_call.
+ We use value of -2 to specify that current function call is MSABI. */
if (mode == VOIDmode)
- return constm1_rtx;
+ return GEN_INT (-2);
/* If we've run out of registers, it goes on the stack. */
if (cum->nregs == 0)
@@ -7422,7 +7423,7 @@ ix86_save_reg (unsigned int regno, int maybe_eh_return)
&& (regno != HARD_FRAME_POINTER_REGNUM || !frame_pointer_needed));
}
-/* Return number of registers to be saved on the stack. */
+/* Return number of saved general prupose registers. */
static int
ix86_nsaved_regs (void)
@@ -7430,9 +7431,25 @@ ix86_nsaved_regs (void)
int nregs = 0;
int regno;
- for (regno = FIRST_PSEUDO_REGISTER - 1; regno >= 0; regno--)
- if (ix86_save_reg (regno, true))
- nregs++;
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+ if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true))
+ nregs ++;
+ return nregs;
+}
+
+/* Return number of saved SSE registrers. */
+
+static int
+ix86_nsaved_sseregs (void)
+{
+ int nregs = 0;
+ int regno;
+
+ if (ix86_cfun_abi () != MS_ABI)
+ return 0;
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+ if (SSE_REGNO_P (regno) && ix86_save_reg (regno, true))
+ nregs ++;
return nregs;
}
@@ -7492,11 +7509,22 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
HOST_WIDE_INT size = get_frame_size ();
frame->nregs = ix86_nsaved_regs ();
+ frame->nsseregs = ix86_nsaved_sseregs ();
total_size = size;
stack_alignment_needed = crtl->stack_alignment_needed / BITS_PER_UNIT;
preferred_alignment = crtl->preferred_stack_boundary / BITS_PER_UNIT;
+ /* MS ABI seem to require stack alignment to be always 16 except for function
+ prologues. */
+ if (ix86_cfun_abi () == MS_ABI && preferred_alignment < 16)
+ {
+ preferred_alignment = 16;
+ stack_alignment_needed = 16;
+ crtl->preferred_stack_boundary = 128;
+ crtl->stack_alignment_needed = 128;
+ }
+
gcc_assert (!size || stack_alignment_needed);
gcc_assert (preferred_alignment >= STACK_BOUNDARY / BITS_PER_UNIT);
gcc_assert (preferred_alignment <= stack_alignment_needed);
@@ -7551,6 +7579,15 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
/* Register save area */
offset += frame->nregs * UNITS_PER_WORD;
+ /* Align SSE reg save area. */
+ if (frame->nsseregs)
+ frame->padding0 = ((offset + 16 - 1) & -16) - offset;
+ else
+ frame->padding0 = 0;
+
+ /* SSE register save area. */
+ offset += frame->padding0 + frame->nsseregs * 16;
+
/* Va-arg area */
frame->va_arg_size = ix86_varargs_gpr_size + ix86_varargs_fpr_size;
offset += frame->va_arg_size;
@@ -7620,8 +7657,10 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
frame->stack_pointer_offset -= frame->red_zone_size;
#if 0
fprintf (stderr, "\n");
- fprintf (stderr, "nregs: %ld\n", (long)frame->nregs);
fprintf (stderr, "size: %ld\n", (long)size);
+ fprintf (stderr, "nregs: %ld\n", (long)frame->nregs);
+ fprintf (stderr, "nsseregs: %ld\n", (long)frame->nsseregs);
+ fprintf (stderr, "padding0: %ld\n", (long)frame->padding0);
fprintf (stderr, "alignment1: %ld\n", (long)stack_alignment_needed);
fprintf (stderr, "padding1: %ld\n", (long)frame->padding1);
fprintf (stderr, "va_arg: %ld\n", (long)frame->va_arg_size);
@@ -7646,8 +7685,8 @@ ix86_emit_save_regs (void)
unsigned int regno;
rtx insn;
- for (regno = FIRST_PSEUDO_REGISTER; regno-- > 0; )
- if (ix86_save_reg (regno, true))
+ for (regno = FIRST_PSEUDO_REGISTER - 1; regno-- > 0; )
+ if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true))
{
insn = emit_insn (gen_push (gen_rtx_REG (Pmode, regno)));
RTX_FRAME_RELATED_P (insn) = 1;
@@ -7663,7 +7702,7 @@ ix86_emit_save_regs_using_mov (rtx pointer, HOST_WIDE_INT offset)
rtx insn;
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- if (ix86_save_reg (regno, true))
+ if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true))
{
insn = emit_move_insn (adjust_address (gen_rtx_MEM (Pmode, pointer),
Pmode, offset),
@@ -7673,6 +7712,26 @@ ix86_emit_save_regs_using_mov (rtx pointer, HOST_WIDE_INT offset)
}
}
+/* Emit code to save registers using MOV insns. First register
+ is restored from POINTER + OFFSET. */
+static void
+ix86_emit_save_sse_regs_using_mov (rtx pointer, HOST_WIDE_INT offset)
+{
+ unsigned int regno;
+ rtx insn;
+ rtx mem;
+
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+ if (SSE_REGNO_P (regno) && ix86_save_reg (regno, true))
+ {
+ mem = adjust_address (gen_rtx_MEM (TImode, pointer), TImode, offset);
+ set_mem_align (mem, 128);
+ insn = emit_move_insn (mem, gen_rtx_REG (TImode, regno));
+ RTX_FRAME_RELATED_P (insn) = 1;
+ offset += 16;
+ }
+}
+
/* Expand prologue or epilogue stack adjustment.
The pattern exist to put a dependency on all ebp-based memory accesses.
STYLE should be negative if instructions should be marked as frame related,
@@ -7977,7 +8036,7 @@ ix86_expand_prologue (void)
RTX_FRAME_RELATED_P (insn) = 1;
}
- allocate = frame.to_allocate;
+ allocate = frame.to_allocate + frame.nsseregs * 16 + frame.padding0;
if (!frame.save_regs_using_mov)
ix86_emit_save_regs ();
@@ -8056,11 +8115,22 @@ ix86_expand_prologue (void)
|| !frame.to_allocate
|| crtl->stack_realign_needed)
ix86_emit_save_regs_using_mov (stack_pointer_rtx,
- frame.to_allocate);
+ frame.to_allocate
+ + frame.nsseregs * 16 + frame.padding0);
else
ix86_emit_save_regs_using_mov (hard_frame_pointer_rtx,
-frame.nregs * UNITS_PER_WORD);
}
+ if (!frame_pointer_needed
+ || !frame.to_allocate
+ || crtl->stack_realign_needed)
+ ix86_emit_save_sse_regs_using_mov (stack_pointer_rtx,
+ frame.to_allocate);
+ else
+ ix86_emit_save_sse_regs_using_mov (hard_frame_pointer_rtx,
+ - frame.nregs * UNITS_PER_WORD
+ - frame.nsseregs * 16
+ - frame.padding0);
pic_reg_used = false;
if (pic_offset_table_rtx
@@ -8132,7 +8202,7 @@ ix86_emit_restore_regs_using_mov (rtx pointer, HOST_WIDE_INT offset,
rtx base_address = gen_rtx_MEM (Pmode, pointer);
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- if (ix86_save_reg (regno, maybe_eh_return))
+ if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, maybe_eh_return))
{
/* Ensure that adjust_address won't be forced to produce pointer
out of range allowed by x86-64 instruction set. */
@@ -8147,11 +8217,43 @@ ix86_emit_restore_regs_using_mov (rtx pointer, HOST_WIDE_INT offset,
offset = 0;
}
emit_move_insn (gen_rtx_REG (Pmode, regno),
- adjust_address (base_address, Pmode, offset));
+ adjust_address (base_address, Pmode, offset));
offset += UNITS_PER_WORD;
}
}
+/* Emit code to restore saved registers using MOV insns. First register
+ is restored from POINTER + OFFSET. */
+static void
+ix86_emit_restore_sse_regs_using_mov (rtx pointer, HOST_WIDE_INT offset,
+ int maybe_eh_return)
+{
+ int regno;
+ rtx base_address = gen_rtx_MEM (TImode, pointer);
+ rtx mem;
+
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+ if (SSE_REGNO_P (regno) && ix86_save_reg (regno, maybe_eh_return))
+ {
+ /* Ensure that adjust_address won't be forced to produce pointer
+ out of range allowed by x86-64 instruction set. */
+ if (TARGET_64BIT && offset != trunc_int_for_mode (offset, SImode))
+ {
+ rtx r11;
+
+ r11 = gen_rtx_REG (DImode, R11_REG);
+ emit_move_insn (r11, GEN_INT (offset));
+ emit_insn (gen_adddi3 (r11, r11, pointer));
+ base_address = gen_rtx_MEM (TImode, r11);
+ offset = 0;
+ }
+ mem = adjust_address (base_address, TImode, offset);
+ set_mem_align (mem, 128);
+ emit_move_insn (gen_rtx_REG (TImode, regno), mem);
+ offset += 16;
+ }
+}
+
/* Restore function stack, frame, and registers. */
void
@@ -8179,6 +8281,7 @@ ix86_expand_epilogue (int style)
if (crtl->calls_eh_return && style != 2)
offset -= 2;
offset *= -UNITS_PER_WORD;
+ offset -= frame.nsseregs * 16 + frame.padding0;
/* If we're only restoring one register and sp is not valid then
using a move instruction to restore the register since it's
@@ -8212,11 +8315,23 @@ ix86_expand_epilogue (int style)
if (!frame_pointer_needed
|| (sp_valid && !frame.to_allocate)
|| stack_realign_fp)
- ix86_emit_restore_regs_using_mov (stack_pointer_rtx,
- frame.to_allocate, style == 2);
+ {
+ ix86_emit_restore_sse_regs_using_mov (stack_pointer_rtx,
+ frame.to_allocate, style == 2);
+ ix86_emit_restore_regs_using_mov (stack_pointer_rtx,
+ frame.to_allocate
+ + frame.nsseregs * 16
+ + frame.padding0, style == 2);
+ }
else
- ix86_emit_restore_regs_using_mov (hard_frame_pointer_rtx,
- offset, style == 2);
+ {
+ ix86_emit_restore_sse_regs_using_mov (hard_frame_pointer_rtx,
+ offset, style == 2);
+ ix86_emit_restore_regs_using_mov (hard_frame_pointer_rtx,
+ offset
+ + frame.nsseregs * 16
+ + frame.padding0, style == 2);
+ }
/* eh_return epilogues need %ecx added to the stack pointer. */
if (style == 2)
@@ -8242,14 +8357,18 @@ ix86_expand_epilogue (int style)
{
tmp = gen_rtx_PLUS (Pmode, stack_pointer_rtx, sa);
tmp = plus_constant (tmp, (frame.to_allocate
- + frame.nregs * UNITS_PER_WORD));
+ + frame.nregs * UNITS_PER_WORD
+ + frame.nsseregs * 16
+ + frame.padding0));
emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx, tmp));
}
}
else if (!frame_pointer_needed)
pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
GEN_INT (frame.to_allocate
- + frame.nregs * UNITS_PER_WORD),
+ + frame.nregs * UNITS_PER_WORD
+ + frame.nsseregs * 16
+ + frame.padding0),
style);
/* If not an i386, mov & pop is faster than "leave". */
else if (TARGET_USE_LEAVE || optimize_function_for_size_p (cfun)
@@ -8280,13 +8399,24 @@ ix86_expand_epilogue (int style)
pro_epilogue_adjust_stack (stack_pointer_rtx,
hard_frame_pointer_rtx,
GEN_INT (offset), style);
+ ix86_emit_restore_sse_regs_using_mov (stack_pointer_rtx,
+ frame.to_allocate, style == 2);
+ pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
+ GEN_INT (frame.nsseregs * 16), style);
+ }
+ else if (frame.to_allocate || frame.nsseregs)
+ {
+ ix86_emit_restore_sse_regs_using_mov (stack_pointer_rtx,
+ frame.to_allocate,
+ style == 2);
+ pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
+ GEN_INT (frame.to_allocate
+ + frame.nsseregs * 16
+ + frame.padding0), style);
}
- else if (frame.to_allocate)
- pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
- GEN_INT (frame.to_allocate), style);
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- if (ix86_save_reg (regno, false))
+ if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, false))
emit_insn ((*ix86_gen_pop1) (gen_rtx_REG (Pmode, regno)));
if (frame_pointer_needed)
{
@@ -10704,7 +10834,8 @@ print_operand (FILE *file, rtx x, int code)
fputs ("ord", file);
break;
default:
- gcc_unreachable ();
+ output_operand_lossage ("operand is not a condition code, invalid operand code 'D'");
+ return;
}
}
else
@@ -10742,7 +10873,8 @@ print_operand (FILE *file, rtx x, int code)
fputs ("ord", file);
break;
default:
- gcc_unreachable ();
+ output_operand_lossage ("operand is not a condition code, invalid operand code 'D'");
+ return;
}
}
return;
@@ -10764,9 +10896,23 @@ print_operand (FILE *file, rtx x, int code)
#endif
return;
case 'C':
+ if (!COMPARISON_P (x))
+ {
+ output_operand_lossage ("operand is neither a constant nor a "
+ "condition code, invalid operand code "
+ "'C'");
+ return;
+ }
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 0, 0, file);
return;
case 'F':
+ if (!COMPARISON_P (x))
+ {
+ output_operand_lossage ("operand is neither a constant nor a "
+ "condition code, invalid operand code "
+ "'F'");
+ return;
+ }
#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
@@ -10779,13 +10925,22 @@ print_operand (FILE *file, rtx x, int code)
/* Check to see if argument to %c is really a constant
and not a condition code which needs to be reversed. */
if (!COMPARISON_P (x))
- {
- output_operand_lossage ("operand is neither a constant nor a condition code, invalid operand code 'c'");
- return;
- }
+ {
+ output_operand_lossage ("operand is neither a constant nor a "
+ "condition code, invalid operand "
+ "code 'c'");
+ return;
+ }
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 1, 0, file);
return;
case 'f':
+ if (!COMPARISON_P (x))
+ {
+ output_operand_lossage ("operand is neither a constant nor a "
+ "condition code, invalid operand "
+ "code 'f'");
+ return;
+ }
#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
@@ -10892,7 +11047,8 @@ print_operand (FILE *file, rtx x, int code)
fputs ("une", file);
break;
default:
- gcc_unreachable ();
+ output_operand_lossage ("operand is not a condition code, invalid operand code 'D'");
+ return;
}
return;
@@ -16644,6 +16800,22 @@ expand_movmem_via_rep_mov (rtx destmem, rtx srcmem,
destexp = gen_rtx_PLUS (Pmode, destptr, countreg);
srcexp = gen_rtx_PLUS (Pmode, srcptr, countreg);
}
+ if (CONST_INT_P (count))
+ {
+ count = GEN_INT (INTVAL (count)
+ & ~((HOST_WIDE_INT) GET_MODE_SIZE (mode) - 1));
+ destmem = shallow_copy_rtx (destmem);
+ srcmem = shallow_copy_rtx (srcmem);
+ set_mem_size (destmem, count);
+ set_mem_size (srcmem, count);
+ }
+ else
+ {
+ if (MEM_SIZE (destmem))
+ set_mem_size (destmem, NULL_RTX);
+ if (MEM_SIZE (srcmem))
+ set_mem_size (srcmem, NULL_RTX);
+ }
emit_insn (gen_rep_mov (destptr, destmem, srcptr, srcmem, countreg,
destexp, srcexp));
}
@@ -16652,8 +16824,8 @@ expand_movmem_via_rep_mov (rtx destmem, rtx srcmem,
Arguments have same meaning as for previous function */
static void
expand_setmem_via_rep_stos (rtx destmem, rtx destptr, rtx value,
- rtx count,
- enum machine_mode mode)
+ rtx count, enum machine_mode mode,
+ rtx orig_value)
{
rtx destexp;
rtx countreg;
@@ -16670,6 +16842,15 @@ expand_setmem_via_rep_stos (rtx destmem, rtx destptr, rtx value,
}
else
destexp = gen_rtx_PLUS (Pmode, destptr, countreg);
+ if (orig_value == const0_rtx && CONST_INT_P (count))
+ {
+ count = GEN_INT (INTVAL (count)
+ & ~((HOST_WIDE_INT) GET_MODE_SIZE (mode) - 1));
+ destmem = shallow_copy_rtx (destmem);
+ set_mem_size (destmem, count);
+ }
+ else if (MEM_SIZE (destmem))
+ set_mem_size (destmem, NULL_RTX);
emit_insn (gen_rep_stos (destptr, countreg, destmem, value, destexp));
}
@@ -17003,6 +17184,85 @@ expand_movmem_prologue (rtx destmem, rtx srcmem,
gcc_assert (desired_alignment <= 8);
}
+/* Copy enough from DST to SRC to align DST known to DESIRED_ALIGN.
+ ALIGN_BYTES is how many bytes need to be copied. */
+static rtx
+expand_constant_movmem_prologue (rtx dst, rtx *srcp, rtx destreg, rtx srcreg,
+ int desired_align, int align_bytes)
+{
+ rtx src = *srcp;
+ rtx src_size, dst_size;
+ int off = 0;
+ int src_align_bytes = get_mem_align_offset (src, desired_align * BITS_PER_UNIT);
+ if (src_align_bytes >= 0)
+ src_align_bytes = desired_align - src_align_bytes;
+ src_size = MEM_SIZE (src);
+ dst_size = MEM_SIZE (dst);
+ if (align_bytes & 1)
+ {
+ dst = adjust_automodify_address_nv (dst, QImode, destreg, 0);
+ src = adjust_automodify_address_nv (src, QImode, srcreg, 0);
+ off = 1;
+ emit_insn (gen_strmov (destreg, dst, srcreg, src));
+ }
+ if (align_bytes & 2)
+ {
+ dst = adjust_automodify_address_nv (dst, HImode, destreg, off);
+ src = adjust_automodify_address_nv (src, HImode, srcreg, off);
+ if (MEM_ALIGN (dst) < 2 * BITS_PER_UNIT)
+ set_mem_align (dst, 2 * BITS_PER_UNIT);
+ if (src_align_bytes >= 0
+ && (src_align_bytes & 1) == (align_bytes & 1)
+ && MEM_ALIGN (src) < 2 * BITS_PER_UNIT)
+ set_mem_align (src, 2 * BITS_PER_UNIT);
+ off = 2;
+ emit_insn (gen_strmov (destreg, dst, srcreg, src));
+ }
+ if (align_bytes & 4)
+ {
+ dst = adjust_automodify_address_nv (dst, SImode, destreg, off);
+ src = adjust_automodify_address_nv (src, SImode, srcreg, off);
+ if (MEM_ALIGN (dst) < 4 * BITS_PER_UNIT)
+ set_mem_align (dst, 4 * BITS_PER_UNIT);
+ if (src_align_bytes >= 0)
+ {
+ unsigned int src_align = 0;
+ if ((src_align_bytes & 3) == (align_bytes & 3))
+ src_align = 4;
+ else if ((src_align_bytes & 1) == (align_bytes & 1))
+ src_align = 2;
+ if (MEM_ALIGN (src) < src_align * BITS_PER_UNIT)
+ set_mem_align (src, src_align * BITS_PER_UNIT);
+ }
+ off = 4;
+ emit_insn (gen_strmov (destreg, dst, srcreg, src));
+ }
+ dst = adjust_automodify_address_nv (dst, BLKmode, destreg, off);
+ src = adjust_automodify_address_nv (src, BLKmode, srcreg, off);
+ if (MEM_ALIGN (dst) < (unsigned int) desired_align * BITS_PER_UNIT)
+ set_mem_align (dst, desired_align * BITS_PER_UNIT);
+ if (src_align_bytes >= 0)
+ {
+ unsigned int src_align = 0;
+ if ((src_align_bytes & 7) == (align_bytes & 7))
+ src_align = 8;
+ else if ((src_align_bytes & 3) == (align_bytes & 3))
+ src_align = 4;
+ else if ((src_align_bytes & 1) == (align_bytes & 1))
+ src_align = 2;
+ if (src_align > (unsigned int) desired_align)
+ src_align = desired_align;
+ if (MEM_ALIGN (src) < src_align * BITS_PER_UNIT)
+ set_mem_align (src, src_align * BITS_PER_UNIT);
+ }
+ if (dst_size)
+ set_mem_size (dst, GEN_INT (INTVAL (dst_size) - align_bytes));
+ if (src_size)
+ set_mem_size (dst, GEN_INT (INTVAL (src_size) - align_bytes));
+ *srcp = src;
+ return dst;
+}
+
/* Set enough from DEST to align DEST known to by aligned by ALIGN to
DESIRED_ALIGNMENT. */
static void
@@ -17039,6 +17299,47 @@ expand_setmem_prologue (rtx destmem, rtx destptr, rtx value, rtx count,
gcc_assert (desired_alignment <= 8);
}
+/* Set enough from DST to align DST known to by aligned by ALIGN to
+ DESIRED_ALIGN. ALIGN_BYTES is how many bytes need to be stored. */
+static rtx
+expand_constant_setmem_prologue (rtx dst, rtx destreg, rtx value,
+ int desired_align, int align_bytes)
+{
+ int off = 0;
+ rtx dst_size = MEM_SIZE (dst);
+ if (align_bytes & 1)
+ {
+ dst = adjust_automodify_address_nv (dst, QImode, destreg, 0);
+ off = 1;
+ emit_insn (gen_strset (destreg, dst,
+ gen_lowpart (QImode, value)));
+ }
+ if (align_bytes & 2)
+ {
+ dst = adjust_automodify_address_nv (dst, HImode, destreg, off);
+ if (MEM_ALIGN (dst) < 2 * BITS_PER_UNIT)
+ set_mem_align (dst, 2 * BITS_PER_UNIT);
+ off = 2;
+ emit_insn (gen_strset (destreg, dst,
+ gen_lowpart (HImode, value)));
+ }
+ if (align_bytes & 4)
+ {
+ dst = adjust_automodify_address_nv (dst, SImode, destreg, off);
+ if (MEM_ALIGN (dst) < 4 * BITS_PER_UNIT)
+ set_mem_align (dst, 4 * BITS_PER_UNIT);
+ off = 4;
+ emit_insn (gen_strset (destreg, dst,
+ gen_lowpart (SImode, value)));
+ }
+ dst = adjust_automodify_address_nv (dst, BLKmode, destreg, off);
+ if (MEM_ALIGN (dst) < (unsigned int) desired_align * BITS_PER_UNIT)
+ set_mem_align (dst, desired_align * BITS_PER_UNIT);
+ if (dst_size)
+ set_mem_size (dst, GEN_INT (INTVAL (dst_size) - align_bytes));
+ return dst;
+}
+
/* Given COUNT and EXPECTED_SIZE, decide on codegen of string operation. */
static enum stringop_alg
decide_alg (HOST_WIDE_INT count, HOST_WIDE_INT expected_size, bool memset,
@@ -17270,7 +17571,7 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
unsigned HOST_WIDE_INT count = 0;
HOST_WIDE_INT expected_size = -1;
int size_needed = 0, epilogue_size_needed;
- int desired_align = 0;
+ int desired_align = 0, align_bytes = 0;
enum stringop_alg alg;
int dynamic_check;
bool need_zero_guard = false;
@@ -17281,6 +17582,11 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
if (CONST_INT_P (expected_align_exp)
&& INTVAL (expected_align_exp) > align)
align = INTVAL (expected_align_exp);
+ /* ALIGN is the minimum of destination and source alignment, but we care here
+ just about destination alignment. */
+ else if (MEM_ALIGN (dst) > (unsigned HOST_WIDE_INT) align * BITS_PER_UNIT)
+ align = MEM_ALIGN (dst) / BITS_PER_UNIT;
+
if (CONST_INT_P (count_exp))
count = expected_size = INTVAL (count_exp);
if (CONST_INT_P (expected_size_exp) && count == 0)
@@ -17340,7 +17646,20 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
/* Alignment code needs count to be in register. */
if (CONST_INT_P (count_exp) && desired_align > align)
- count_exp = force_reg (counter_mode (count_exp), count_exp);
+ {
+ if (INTVAL (count_exp) > desired_align
+ && INTVAL (count_exp) > size_needed)
+ {
+ align_bytes
+ = get_mem_align_offset (dst, desired_align * BITS_PER_UNIT);
+ if (align_bytes <= 0)
+ align_bytes = 0;
+ else
+ align_bytes = desired_align - align_bytes;
+ }
+ if (align_bytes == 0)
+ count_exp = force_reg (counter_mode (count_exp), count_exp);
+ }
gcc_assert (desired_align >= 1 && align >= 1);
/* Ensure that alignment prologue won't copy past end of block. */
@@ -17351,10 +17670,17 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
Make sure it is power of 2. */
epilogue_size_needed = smallest_pow2_greater_than (epilogue_size_needed);
- if (CONST_INT_P (count_exp))
+ if (count)
{
- if (UINTVAL (count_exp) < (unsigned HOST_WIDE_INT)epilogue_size_needed)
- goto epilogue;
+ if (count < (unsigned HOST_WIDE_INT)epilogue_size_needed)
+ {
+ /* If main algorithm works on QImode, no epilogue is needed.
+ For small sizes just don't align anything. */
+ if (size_needed == 1)
+ desired_align = align;
+ else
+ goto epilogue;
+ }
}
else
{
@@ -17399,18 +17725,37 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
if (desired_align > align)
{
- /* Except for the first move in epilogue, we no longer know
- constant offset in aliasing info. It don't seems to worth
- the pain to maintain it for the first move, so throw away
- the info early. */
- src = change_address (src, BLKmode, srcreg);
- dst = change_address (dst, BLKmode, destreg);
- expand_movmem_prologue (dst, src, destreg, srcreg, count_exp, align,
- desired_align);
- if (need_zero_guard && !count)
+ if (align_bytes == 0)
+ {
+ /* Except for the first move in epilogue, we no longer know
+ constant offset in aliasing info. It don't seems to worth
+ the pain to maintain it for the first move, so throw away
+ the info early. */
+ src = change_address (src, BLKmode, srcreg);
+ dst = change_address (dst, BLKmode, destreg);
+ expand_movmem_prologue (dst, src, destreg, srcreg, count_exp, align,
+ desired_align);
+ }
+ else
+ {
+ /* If we know how many bytes need to be stored before dst is
+ sufficiently aligned, maintain aliasing info accurately. */
+ dst = expand_constant_movmem_prologue (dst, &src, destreg, srcreg,
+ desired_align, align_bytes);
+ count_exp = plus_constant (count_exp, -align_bytes);
+ count -= align_bytes;
+ }
+ if (need_zero_guard
+ && (count < (unsigned HOST_WIDE_INT) size_needed
+ || (align_bytes == 0
+ && count < ((unsigned HOST_WIDE_INT) size_needed
+ + desired_align - align))))
{
/* It is possible that we copied enough so the main loop will not
execute. */
+ gcc_assert (size_needed > 1);
+ if (label == NULL_RTX)
+ label = gen_label_rtx ();
emit_cmp_and_jump_insns (count_exp,
GEN_INT (size_needed),
LTU, 0, counter_mode (count_exp), 1, label);
@@ -17426,7 +17771,10 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
emit_label (label);
LABEL_NUSES (label) = 1;
label = NULL;
+ epilogue_size_needed = 1;
}
+ else if (label == NULL_RTX)
+ epilogue_size_needed = size_needed;
/* Step 3: Main loop. */
@@ -17615,7 +17963,7 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
unsigned HOST_WIDE_INT count = 0;
HOST_WIDE_INT expected_size = -1;
int size_needed = 0, epilogue_size_needed;
- int desired_align = 0;
+ int desired_align = 0, align_bytes = 0;
enum stringop_alg alg;
rtx promoted_val = NULL;
bool force_loopy_epilogue = false;
@@ -17686,10 +18034,23 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
/* Alignment code needs count to be in register. */
if (CONST_INT_P (count_exp) && desired_align > align)
{
- enum machine_mode mode = SImode;
- if (TARGET_64BIT && (count & ~0xffffffff))
- mode = DImode;
- count_exp = force_reg (mode, count_exp);
+ if (INTVAL (count_exp) > desired_align
+ && INTVAL (count_exp) > size_needed)
+ {
+ align_bytes
+ = get_mem_align_offset (dst, desired_align * BITS_PER_UNIT);
+ if (align_bytes <= 0)
+ align_bytes = 0;
+ else
+ align_bytes = desired_align - align_bytes;
+ }
+ if (align_bytes == 0)
+ {
+ enum machine_mode mode = SImode;
+ if (TARGET_64BIT && (count & ~0xffffffff))
+ mode = DImode;
+ count_exp = force_reg (mode, count_exp);
+ }
}
/* Do the cheap promotion to allow better CSE across the
main loop and epilogue (ie one load of the big constant in the
@@ -17701,7 +18062,7 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
if (size_needed > 1 || (desired_align > 1 && desired_align > align))
{
epilogue_size_needed = MAX (size_needed - 1, desired_align - align);
- /* Epilogue always copies COUNT_EXP & EPILOGUE_SIZE_NEEDED bytes.
+ /* Epilogue always copies COUNT_EXP & (EPILOGUE_SIZE_NEEDED - 1) bytes.
Make sure it is power of 2. */
epilogue_size_needed = smallest_pow2_greater_than (epilogue_size_needed);
@@ -17711,16 +18072,29 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
loop variant. */
if (epilogue_size_needed > 2 && !promoted_val)
force_loopy_epilogue = true;
- label = gen_label_rtx ();
- emit_cmp_and_jump_insns (count_exp,
- GEN_INT (epilogue_size_needed),
- LTU, 0, counter_mode (count_exp), 1, label);
- if (GET_CODE (count_exp) == CONST_INT)
- ;
- else if (expected_size == -1 || expected_size <= epilogue_size_needed)
- predict_jump (REG_BR_PROB_BASE * 60 / 100);
+ if (count)
+ {
+ if (count < (unsigned HOST_WIDE_INT)epilogue_size_needed)
+ {
+ /* If main algorithm works on QImode, no epilogue is needed.
+ For small sizes just don't align anything. */
+ if (size_needed == 1)
+ desired_align = align;
+ else
+ goto epilogue;
+ }
+ }
else
- predict_jump (REG_BR_PROB_BASE * 20 / 100);
+ {
+ label = gen_label_rtx ();
+ emit_cmp_and_jump_insns (count_exp,
+ GEN_INT (epilogue_size_needed),
+ LTU, 0, counter_mode (count_exp), 1, label);
+ if (expected_size == -1 || expected_size <= epilogue_size_needed)
+ predict_jump (REG_BR_PROB_BASE * 60 / 100);
+ else
+ predict_jump (REG_BR_PROB_BASE * 20 / 100);
+ }
}
if (dynamic_check != -1)
{
@@ -17744,17 +18118,36 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
if (desired_align > align)
{
- /* Except for the first move in epilogue, we no longer know
- constant offset in aliasing info. It don't seems to worth
- the pain to maintain it for the first move, so throw away
- the info early. */
- dst = change_address (dst, BLKmode, destreg);
- expand_setmem_prologue (dst, destreg, promoted_val, count_exp, align,
- desired_align);
- if (need_zero_guard && !count)
+ if (align_bytes == 0)
+ {
+ /* Except for the first move in epilogue, we no longer know
+ constant offset in aliasing info. It don't seems to worth
+ the pain to maintain it for the first move, so throw away
+ the info early. */
+ dst = change_address (dst, BLKmode, destreg);
+ expand_setmem_prologue (dst, destreg, promoted_val, count_exp, align,
+ desired_align);
+ }
+ else
+ {
+ /* If we know how many bytes need to be stored before dst is
+ sufficiently aligned, maintain aliasing info accurately. */
+ dst = expand_constant_setmem_prologue (dst, destreg, promoted_val,
+ desired_align, align_bytes);
+ count_exp = plus_constant (count_exp, -align_bytes);
+ count -= align_bytes;
+ }
+ if (need_zero_guard
+ && (count < (unsigned HOST_WIDE_INT) size_needed
+ || (align_bytes == 0
+ && count < ((unsigned HOST_WIDE_INT) size_needed
+ + desired_align - align))))
{
/* It is possible that we copied enough so the main loop will not
execute. */
+ gcc_assert (size_needed > 1);
+ if (label == NULL_RTX)
+ label = gen_label_rtx ();
emit_cmp_and_jump_insns (count_exp,
GEN_INT (size_needed),
LTU, 0, counter_mode (count_exp), 1, label);
@@ -17770,7 +18163,11 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
emit_label (label);
LABEL_NUSES (label) = 1;
label = NULL;
+ promoted_val = val_exp;
+ epilogue_size_needed = 1;
}
+ else if (label == NULL_RTX)
+ epilogue_size_needed = size_needed;
/* Step 3: Main loop. */
@@ -17793,15 +18190,15 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
break;
case rep_prefix_8_byte:
expand_setmem_via_rep_stos (dst, destreg, promoted_val, count_exp,
- DImode);
+ DImode, val_exp);
break;
case rep_prefix_4_byte:
expand_setmem_via_rep_stos (dst, destreg, promoted_val, count_exp,
- SImode);
+ SImode, val_exp);
break;
case rep_prefix_1_byte:
expand_setmem_via_rep_stos (dst, destreg, promoted_val, count_exp,
- QImode);
+ QImode, val_exp);
break;
}
/* Adjust properly the offset of src and dest memory for aliasing. */
@@ -17820,27 +18217,27 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
Epilogue code will actually copy COUNT_EXP & EPILOGUE_SIZE_NEEDED
bytes. Compensate if needed. */
- if (size_needed < desired_align - align)
+ if (size_needed < epilogue_size_needed)
{
tmp =
expand_simple_binop (counter_mode (count_exp), AND, count_exp,
GEN_INT (size_needed - 1), count_exp, 1,
OPTAB_DIRECT);
- size_needed = desired_align - align + 1;
if (tmp != count_exp)
emit_move_insn (count_exp, tmp);
}
emit_label (label);
LABEL_NUSES (label) = 1;
}
+ epilogue:
if (count_exp != const0_rtx && epilogue_size_needed > 1)
{
if (force_loopy_epilogue)
expand_setmem_epilogue_via_loop (dst, destreg, val_exp, count_exp,
- size_needed);
+ epilogue_size_needed);
else
expand_setmem_epilogue (dst, destreg, promoted_val, count_exp,
- size_needed);
+ epilogue_size_needed);
}
if (jump_around_label)
emit_label (jump_around_label);
@@ -18104,11 +18501,16 @@ construct_plt_address (rtx symbol)
void
ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
- rtx callarg2 ATTRIBUTE_UNUSED,
+ rtx callarg2,
rtx pop, int sibcall)
{
rtx use = NULL, call;
+ enum calling_abi function_call_abi;
+ if (callarg2 && INTVAL (callarg2) == -2)
+ function_call_abi = MS_ABI;
+ else
+ function_call_abi = SYSV_ABI;
if (pop == const0_rtx)
pop = NULL;
gcc_assert (!TARGET_64BIT || !pop);
@@ -18164,6 +18566,32 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
pop = gen_rtx_PLUS (Pmode, stack_pointer_rtx, pop);
pop = gen_rtx_SET (VOIDmode, stack_pointer_rtx, pop);
call = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, call, pop));
+ gcc_assert (ix86_cfun_abi () != MS_ABI || function_call_abi != SYSV_ABI);
+ }
+ /* We need to represent that SI and DI registers are clobbered
+ by SYSV calls. */
+ if (ix86_cfun_abi () == MS_ABI && function_call_abi == SYSV_ABI)
+ {
+ static int clobbered_registers[] = {27, 28, 45, 46, 47, 48, 49, 50, 51,
+ 52, SI_REG, DI_REG};
+ unsigned int i;
+ rtx vec[ARRAY_SIZE (clobbered_registers) + 2];
+ rtx unspec = gen_rtx_UNSPEC (VOIDmode, gen_rtvec (1, const0_rtx),
+ UNSPEC_MS_TO_SYSV_CALL);
+
+ vec[0] = call;
+ vec[1] = unspec;
+ for (i = 0; i < ARRAY_SIZE (clobbered_registers); i++)
+ vec[i + 2] = gen_rtx_CLOBBER (SSE_REGNO_P (clobbered_registers[i])
+ ? TImode : DImode,
+ gen_rtx_REG
+ (SSE_REGNO_P (clobbered_registers[i])
+ ? TImode : DImode,
+ clobbered_registers[i]));
+
+ call = gen_rtx_PARALLEL (VOIDmode,
+ gen_rtvec_v (ARRAY_SIZE (clobbered_registers)
+ + 2, vec));
}
call = emit_call_insn (call);
@@ -19565,10 +19993,6 @@ enum ix86_builtins
IX86_BUILTIN_VPERMILPS,
IX86_BUILTIN_VPERMILPD256,
IX86_BUILTIN_VPERMILPS256,
- IX86_BUILTIN_VPERMIL2PD,
- IX86_BUILTIN_VPERMIL2PS,
- IX86_BUILTIN_VPERMIL2PD256,
- IX86_BUILTIN_VPERMIL2PS256,
IX86_BUILTIN_VPERM2F128PD256,
IX86_BUILTIN_VPERM2F128PS256,
IX86_BUILTIN_VPERM2F128SI256,
@@ -19585,6 +20009,9 @@ enum ix86_builtins
IX86_BUILTIN_STOREUPD256,
IX86_BUILTIN_STOREUPS256,
IX86_BUILTIN_LDDQU256,
+ IX86_BUILTIN_MOVNTDQ256,
+ IX86_BUILTIN_MOVNTPD256,
+ IX86_BUILTIN_MOVNTPS256,
IX86_BUILTIN_LOADDQU256,
IX86_BUILTIN_STOREDQU256,
IX86_BUILTIN_MASKLOADPD,
@@ -20056,6 +20483,7 @@ enum ix86_special_builtin_type
V2DF_FTYPE_PCV2DF_V2DF,
V2DI_FTYPE_PV2DI,
VOID_FTYPE_PV2SF_V4SF,
+ VOID_FTYPE_PV4DI_V4DI,
VOID_FTYPE_PV2DI_V2DI,
VOID_FTYPE_PCHAR_V32QI,
VOID_FTYPE_PCHAR_V16QI,
@@ -20225,10 +20653,6 @@ enum ix86_builtin_type
V2DI2TI_FTYPE_V2DI_V2DI_INT,
V1DI2DI_FTYPE_V1DI_V1DI_INT,
V2DF_FTYPE_V2DF_V2DF_INT,
- V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
- V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
- V4SF_FTYPE_V4SF_V4SF_V4SI_INT,
- V2DF_FTYPE_V2DF_V2DF_V2DI_INT,
V2DI_FTYPE_V2DI_UINT_UINT,
V2DI_FTYPE_V2DI_V2DI_UINT_UINT
};
@@ -20299,6 +20723,10 @@ static const struct builtin_description bdesc_special_args[] =
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_movdqu256, "__builtin_ia32_storedqu256", IX86_BUILTIN_STOREDQU256, UNKNOWN, (int) VOID_FTYPE_PCHAR_V32QI },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_lddqu256, "__builtin_ia32_lddqu256", IX86_BUILTIN_LDDQU256, UNKNOWN, (int) V32QI_FTYPE_PCCHAR },
+ { OPTION_MASK_ISA_AVX, CODE_FOR_avx_movntv4di, "__builtin_ia32_movntdq256", IX86_BUILTIN_MOVNTDQ256, UNKNOWN, (int) VOID_FTYPE_PV4DI_V4DI },
+ { OPTION_MASK_ISA_AVX, CODE_FOR_avx_movntv4df, "__builtin_ia32_movntpd256", IX86_BUILTIN_MOVNTPD256, UNKNOWN, (int) VOID_FTYPE_PDOUBLE_V4DF },
+ { OPTION_MASK_ISA_AVX, CODE_FOR_avx_movntv8sf, "__builtin_ia32_movntps256", IX86_BUILTIN_MOVNTPS256, UNKNOWN, (int) VOID_FTYPE_PFLOAT_V8SF },
+
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_maskloadpd, "__builtin_ia32_maskloadpd", IX86_BUILTIN_MASKLOADPD, UNKNOWN, (int) V2DF_FTYPE_PCV2DF_V2DF },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_maskloadps, "__builtin_ia32_maskloadps", IX86_BUILTIN_MASKLOADPS, UNKNOWN, (int) V4SF_FTYPE_PCV4SF_V4SF },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_maskloadpd256, "__builtin_ia32_maskloadpd256", IX86_BUILTIN_MASKLOADPD256, UNKNOWN, (int) V4DF_FTYPE_PCV4DF_V4DF },
@@ -20856,10 +21284,6 @@ static const struct builtin_description bdesc_args[] =
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermilv4sf, "__builtin_ia32_vpermilps", IX86_BUILTIN_VPERMILPS, UNKNOWN, (int) V4SF_FTYPE_V4SF_INT },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermilv4df, "__builtin_ia32_vpermilpd256", IX86_BUILTIN_VPERMILPD256, UNKNOWN, (int) V4DF_FTYPE_V4DF_INT },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermilv8sf, "__builtin_ia32_vpermilps256", IX86_BUILTIN_VPERMILPS256, UNKNOWN, (int) V8SF_FTYPE_V8SF_INT },
- { OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermil2v2df3, "__builtin_ia32_vpermil2pd", IX86_BUILTIN_VPERMIL2PD, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DI_INT },
- { OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermil2v4sf3, "__builtin_ia32_vpermil2ps", IX86_BUILTIN_VPERMIL2PS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SI_INT },
- { OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermil2v4df3, "__builtin_ia32_vpermil2pd256", IX86_BUILTIN_VPERMIL2PD256, UNKNOWN, (int) V4DF_FTYPE_V4DF_V4DF_V4DI_INT },
- { OPTION_MASK_ISA_AVX, CODE_FOR_avx_vpermil2v8sf3, "__builtin_ia32_vpermil2ps256", IX86_BUILTIN_VPERMIL2PS256, UNKNOWN, (int) V8SF_FTYPE_V8SF_V8SF_V8SI_INT },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vinsertf128v4df, "__builtin_ia32_vinsertf128_pd256", IX86_BUILTIN_VINSERTF128PD256, UNKNOWN, (int) V4DF_FTYPE_V4DF_V2DF_INT },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vinsertf128v8sf, "__builtin_ia32_vinsertf128_ps256", IX86_BUILTIN_VINSERTF128PS256, UNKNOWN, (int) V8SF_FTYPE_V8SF_V4SF_INT },
{ OPTION_MASK_ISA_AVX, CODE_FOR_avx_vinsertf128v8si, "__builtin_ia32_vinsertf128_si256", IX86_BUILTIN_VINSERTF128SI256, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_INT },
@@ -21801,26 +22225,6 @@ ix86_init_mmx_sse_builtins (void)
V4DF_type_node, V4DF_type_node,
integer_type_node,
NULL_TREE);
- tree v8sf_ftype_v8sf_v8sf_v8si_int
- = build_function_type_list (V8SF_type_node,
- V8SF_type_node, V8SF_type_node,
- V8SI_type_node, integer_type_node,
- NULL_TREE);
- tree v4df_ftype_v4df_v4df_v4di_int
- = build_function_type_list (V4DF_type_node,
- V4DF_type_node, V4DF_type_node,
- V4DI_type_node, integer_type_node,
- NULL_TREE);
- tree v4sf_ftype_v4sf_v4sf_v4si_int
- = build_function_type_list (V4SF_type_node,
- V4SF_type_node, V4SF_type_node,
- V4SI_type_node, integer_type_node,
- NULL_TREE);
- tree v2df_ftype_v2df_v2df_v2di_int
- = build_function_type_list (V2DF_type_node,
- V2DF_type_node, V2DF_type_node,
- V2DI_type_node, integer_type_node,
- NULL_TREE);
tree v8sf_ftype_pcfloat
= build_function_type_list (V8SF_type_node,
pcfloat_type_node,
@@ -21854,6 +22258,11 @@ ix86_init_mmx_sse_builtins (void)
V8SI_type_node, V4SI_type_node,
integer_type_node,
NULL_TREE);
+ tree pv4di_type_node = build_pointer_type (V4DI_type_node);
+ tree void_ftype_pv4di_v4di
+ = build_function_type_list (void_type_node,
+ pv4di_type_node, V4DI_type_node,
+ NULL_TREE);
tree v8sf_ftype_v8sf_v4sf_int
= build_function_type_list (V8SF_type_node,
V8SF_type_node, V4SF_type_node,
@@ -22040,6 +22449,9 @@ ix86_init_mmx_sse_builtins (void)
case VOID_FTYPE_PV2SF_V4SF:
type = void_ftype_pv2sf_v4sf;
break;
+ case VOID_FTYPE_PV4DI_V4DI:
+ type = void_ftype_pv4di_v4di;
+ break;
case VOID_FTYPE_PV2DI_V2DI:
type = void_ftype_pv2di_v2di;
break;
@@ -22524,18 +22936,6 @@ ix86_init_mmx_sse_builtins (void)
case V1DI2DI_FTYPE_V1DI_V1DI_INT:
type = v1di_ftype_v1di_v1di_int;
break;
- case V8SF_FTYPE_V8SF_V8SF_V8SI_INT:
- type = v8sf_ftype_v8sf_v8sf_v8si_int;
- break;
- case V4DF_FTYPE_V4DF_V4DF_V4DI_INT:
- type = v4df_ftype_v4df_v4df_v4di_int;
- break;
- case V4SF_FTYPE_V4SF_V4SF_V4SI_INT:
- type = v4sf_ftype_v4sf_v4sf_v4si_int;
- break;
- case V2DF_FTYPE_V2DF_V2DF_V2DI_INT:
- type = v2df_ftype_v2df_v2df_v2di_int;
- break;
default:
gcc_unreachable ();
}
@@ -23697,13 +24097,6 @@ ix86_expand_args_builtin (const struct builtin_description *d,
nargs = 3;
nargs_constant = 2;
break;
- case V8SF_FTYPE_V8SF_V8SF_V8SI_INT:
- case V4DF_FTYPE_V4DF_V4DF_V4DI_INT:
- case V4SF_FTYPE_V4SF_V4SF_V4SI_INT:
- case V2DF_FTYPE_V2DF_V2DF_V2DI_INT:
- nargs = 4;
- nargs_constant = 1;
- break;
case V2DI_FTYPE_V2DI_V2DI_UINT_UINT:
nargs = 4;
nargs_constant = 2;
@@ -23773,10 +24166,6 @@ ix86_expand_args_builtin (const struct builtin_description *d,
case CODE_FOR_sse4_1_blendpd:
case CODE_FOR_avx_vpermilv2df:
- case CODE_FOR_avx_vpermil2v2df3:
- case CODE_FOR_avx_vpermil2v4sf3:
- case CODE_FOR_avx_vpermil2v4df3:
- case CODE_FOR_avx_vpermil2v8sf3:
error ("the last argument must be a 2-bit immediate");
return const0_rtx;
@@ -23909,6 +24298,7 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
memory = 0;
break;
case VOID_FTYPE_PV2SF_V4SF:
+ case VOID_FTYPE_PV4DI_V4DI:
case VOID_FTYPE_PV2DI_V2DI:
case VOID_FTYPE_PCHAR_V32QI:
case VOID_FTYPE_PCHAR_V16QI:
@@ -29243,6 +29633,9 @@ ix86_enum_va_list (int idx, const char **pname, tree *ptree)
#undef TARGET_OPTION_CAN_INLINE_P
#define TARGET_OPTION_CAN_INLINE_P ix86_can_inline_p
+#undef TARGET_EXPAND_TO_RTL_HOOK
+#define TARGET_EXPAND_TO_RTL_HOOK ix86_maybe_switch_abi
+
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-i386.h"
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index c783cd396d5..f1f9cd37918 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -978,10 +978,16 @@ do { \
for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++) \
reg_names[i] = ""; \
} \
- if (TARGET_64BIT && DEFAULT_ABI == MS_ABI) \
+ if (TARGET_64BIT \
+ && ((cfun && cfun->machine->call_abi == MS_ABI) \
+ || (!cfun && DEFAULT_ABI == MS_ABI))) \
{ \
+ int i; \
call_used_regs[4 /*RSI*/] = 0; \
call_used_regs[5 /*RDI*/] = 0; \
+ for (i = 0; i < 8; i++) \
+ call_used_regs[45+i] = 0; \
+ call_used_regs[27] = call_used_regs[28] = 0; \
} \
} while (0)
@@ -1521,9 +1527,13 @@ enum reg_class
be computed and placed into the variable
`crtl->outgoing_args_size'. No space will be pushed onto the
stack for each call; instead, the function prologue should increase the stack
- frame size by this amount. */
+ frame size by this amount.
+
+ MS ABI seem to require 16 byte alignment everywhere except for function
+ prologue and apilogue. This is not possible without
+ ACCUMULATE_OUTGOING_ARGS. */
-#define ACCUMULATE_OUTGOING_ARGS TARGET_ACCUMULATE_OUTGOING_ARGS
+#define ACCUMULATE_OUTGOING_ARGS (TARGET_ACCUMULATE_OUTGOING_ARGS || ix86_cfun_abi () == MS_ABI)
/* If defined, a C expression whose value is nonzero when we want to use PUSH
instructions to pass outgoing arguments. */
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index dee0ad1ae65..45d2281edd6 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1,6 +1,6 @@
;; GCC machine description for IA-32 and x86-64.
;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
;; Free Software Foundation, Inc.
;; Mostly by William Schelter.
;; x86_64 support added by Jan Hubicka
@@ -105,6 +105,7 @@
(UNSPEC_LFENCE 45)
(UNSPEC_PSADBW 46)
(UNSPEC_LDDQU 47)
+ (UNSPEC_MS_TO_SYSV_CALL 48)
; Generic math support
(UNSPEC_COPYSIGN 50)
@@ -200,12 +201,11 @@
; For AVX support
(UNSPEC_PCMP 166)
(UNSPEC_VPERMIL 167)
- (UNSPEC_VPERMIL2 168)
- (UNSPEC_VPERMIL2F128 169)
- (UNSPEC_MASKLOAD 170)
- (UNSPEC_MASKSTORE 171)
- (UNSPEC_CAST 172)
- (UNSPEC_VTESTP 173)
+ (UNSPEC_VPERMIL2F128 168)
+ (UNSPEC_MASKLOAD 169)
+ (UNSPEC_MASKSTORE 170)
+ (UNSPEC_CAST 171)
+ (UNSPEC_VTESTP 172)
])
(define_constants
@@ -15070,6 +15070,30 @@
}
[(set_attr "type" "call")])
+(define_insn "*call_1_rex64_ms_sysv"
+ [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm"))
+ (match_operand 1 "" ""))
+ (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)
+ (clobber (reg:TI 27))
+ (clobber (reg:TI 28))
+ (clobber (reg:TI 45))
+ (clobber (reg:TI 46))
+ (clobber (reg:TI 47))
+ (clobber (reg:TI 48))
+ (clobber (reg:TI 49))
+ (clobber (reg:TI 50))
+ (clobber (reg:TI 51))
+ (clobber (reg:TI 52))
+ (clobber (reg:DI SI_REG))
+ (clobber (reg:DI DI_REG))]
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+{
+ if (constant_call_address_operand (operands[0], Pmode))
+ return "call\t%P0";
+ return "call\t%A0";
+}
+ [(set_attr "type" "call")])
+
(define_insn "*call_1_rex64_large"
[(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rm"))
(match_operand 1 "" ""))]
@@ -21400,6 +21424,32 @@
}
[(set_attr "type" "callv")])
+(define_insn "*call_value_0_rex64_ms_sysv"
+ [(set (match_operand 0 "" "")
+ (call (mem:QI (match_operand:DI 1 "constant_call_address_operand" ""))
+ (match_operand:DI 2 "const_int_operand" "")))
+ (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)
+ (clobber (reg:TI 27))
+ (clobber (reg:TI 28))
+ (clobber (reg:TI 45))
+ (clobber (reg:TI 46))
+ (clobber (reg:TI 47))
+ (clobber (reg:TI 48))
+ (clobber (reg:TI 49))
+ (clobber (reg:TI 50))
+ (clobber (reg:TI 51))
+ (clobber (reg:TI 52))
+ (clobber (reg:DI SI_REG))
+ (clobber (reg:DI DI_REG))]
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+{
+ if (SIBLING_CALL_P (insn))
+ return "jmp\t%P1";
+ else
+ return "call\t%P1";
+}
+ [(set_attr "type" "callv")])
+
(define_insn "*call_value_1"
[(set (match_operand 0 "" "")
(call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm"))
@@ -21437,6 +21487,31 @@
}
[(set_attr "type" "callv")])
+(define_insn "*call_value_1_rex64_ms_sysv"
+ [(set (match_operand 0 "" "")
+ (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
+ (match_operand:DI 2 "" "")))
+ (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)
+ (clobber (reg:TI 27))
+ (clobber (reg:TI 28))
+ (clobber (reg:TI 45))
+ (clobber (reg:TI 46))
+ (clobber (reg:TI 47))
+ (clobber (reg:TI 48))
+ (clobber (reg:TI 49))
+ (clobber (reg:TI 50))
+ (clobber (reg:TI 51))
+ (clobber (reg:TI 52))
+ (clobber (reg:DI SI_REG))
+ (clobber (reg:DI DI_REG))]
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+{
+ if (constant_call_address_operand (operands[1], Pmode))
+ return "call\t%P1";
+ return "call\t%A1";
+}
+ [(set_attr "type" "callv")])
+
(define_insn "*call_value_1_rex64_large"
[(set (match_operand 0 "" "")
(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rm"))
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 997edc598ae..393a3161da6 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -1,5 +1,5 @@
;; GCC machine description for SSE instructions
-;; Copyright (C) 2005, 2006, 2007, 2008
+;; Copyright (C) 2005, 2006, 2007, 2008, 2009
;; Free Software Foundation, Inc.
;;
;; This file is part of GCC.
@@ -35,6 +35,9 @@
;; All QI vector modes handled by AVX
(define_mode_iterator AVXMODEQI [V32QI V16QI])
+;; All DI vector modes handled by AVX
+(define_mode_iterator AVXMODEDI [V4DI V2DI])
+
;; All vector modes handled by AVX
(define_mode_iterator AVXMODE [V16QI V8HI V4SI V2DI V4SF V2DF V32QI V16HI V8SI V4DI V8SF V4DF])
@@ -383,26 +386,46 @@
(set_attr "prefix_data16" "1")
(set_attr "mode" "TI")])
+(define_insn "avx_movnt<mode>"
+ [(set (match_operand:AVXMODEF2P 0 "memory_operand" "=m")
+ (unspec:AVXMODEF2P
+ [(match_operand:AVXMODEF2P 1 "register_operand" "x")]
+ UNSPEC_MOVNT))]
+ "AVX_VEC_FLOAT_MODE_P (<MODE>mode)"
+ "vmovntp<avxmodesuffixf2c>\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssemov")
+ (set_attr "prefix" "vex")
+ (set_attr "mode" "<MODE>")])
+
(define_insn "<sse>_movnt<mode>"
[(set (match_operand:SSEMODEF2P 0 "memory_operand" "=m")
(unspec:SSEMODEF2P
[(match_operand:SSEMODEF2P 1 "register_operand" "x")]
UNSPEC_MOVNT))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "%vmovntp<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
+ "movntp<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
- (set_attr "prefix" "maybe_vex")
(set_attr "mode" "<MODE>")])
+(define_insn "avx_movnt<mode>"
+ [(set (match_operand:AVXMODEDI 0 "memory_operand" "=m")
+ (unspec:AVXMODEDI
+ [(match_operand:AVXMODEDI 1 "register_operand" "x")]
+ UNSPEC_MOVNT))]
+ "TARGET_AVX"
+ "vmovntdq\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "prefix" "vex")
+ (set_attr "mode" "<avxvecmode>")])
+
(define_insn "sse2_movntv2di"
[(set (match_operand:V2DI 0 "memory_operand" "=m")
(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "x")]
UNSPEC_MOVNT))]
"TARGET_SSE2"
- "%vmovntdq\t{%1, %0|%0, %1}"
+ "movntdq\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt")
(set_attr "prefix_data16" "1")
- (set_attr "prefix" "maybe_vex")
(set_attr "mode" "TI")])
(define_insn "sse2_movntsi"
@@ -11597,20 +11620,6 @@
(set_attr "prefix" "vex")
(set_attr "mode" "<MODE>")])
-(define_insn "avx_vpermil2<mode>3"
- [(set (match_operand:AVXMODEF2P 0 "register_operand" "=x,x")
- (unspec:AVXMODEF2P
- [(match_operand:AVXMODEF2P 1 "register_operand" "x,x")
- (match_operand:AVXMODEF2P 2 "nonimmediate_operand" "x,xm")
- (match_operand:<avxpermvecmode> 3 "nonimmediate_operand" "xm,x")
- (match_operand:SI 4 "const_0_to_3_operand" "n,n")]
- UNSPEC_VPERMIL2))]
- "TARGET_AVX"
- "vpermil2p<avxmodesuffixf2c>\t{%4, %3, %2, %1, %0|%0, %1, %2, %3, %4}"
- [(set_attr "type" "sselog")
- (set_attr "prefix" "vex")
- (set_attr "mode" "<MODE>")])
-
(define_insn "avx_vperm2f128<mode>3"
[(set (match_operand:AVX256MODE2P 0 "register_operand" "=x")
(unspec:AVX256MODE2P
diff --git a/gcc/config/i386/x86intrin.h b/gcc/config/i386/x86intrin.h
new file mode 100644
index 00000000000..ab188690f54
--- /dev/null
+++ b/gcc/config/i386/x86intrin.h
@@ -0,0 +1,73 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+
+ 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 2, 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 COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header file does not by itself cause
+ the resulting executable to be covered by the GNU General Public
+ License. This exception does not however invalidate any other
+ reasons why the executable file might be covered by the GNU General
+ Public License. */
+
+#ifndef _X86INTRIN_H_INCLUDED
+#define _X86INTRIN_H_INCLUDED
+
+#ifdef __MMX__
+#include <mmintrin.h>
+#endif
+
+#ifdef __SSE__
+#include <xmmintrin.h>
+#endif
+
+#ifdef __SSE2__
+#include <emmintrin.h>
+#endif
+
+#ifdef __SSE3__
+#include <pmmintrin.h>
+#endif
+
+#ifdef __SSSE3__
+#include <tmmintrin.h>
+#endif
+
+#ifdef __SSE4a__
+#include <ammintrin.h>
+#endif
+
+#if defined (__SSE4_2__) || defined (__SSE4_1__)
+#include <smmintrin.h>
+#endif
+
+#ifdef __SSE5__
+#include <bmmintrin.h>
+#endif
+
+#if defined (__AES__) || defined (__PCLMUL__)
+#include <wmmintrin.h>
+#endif
+
+/* For including AVX instructions */
+#include <immintrin.h>
+
+#ifdef __3dNOW__
+#include <mm3dnow.h>
+#endif
+
+#endif /* _X86INTRIN_H_INCLUDED */
diff --git a/gcc/config/ia64/sync.md b/gcc/config/ia64/sync.md
index 69b5d08274b..0c2ae2e47a8 100644
--- a/gcc/config/ia64/sync.md
+++ b/gcc/config/ia64/sync.md
@@ -27,9 +27,18 @@
(define_code_attr fetchop_name
[(plus "add") (minus "sub") (ior "ior") (xor "xor") (and "and")])
-(define_insn "memory_barrier"
- [(set (mem:BLK (match_scratch:DI 0 "X"))
- (unspec:BLK [(mem:BLK (match_scratch:DI 1 "X"))] UNSPEC_MF))]
+(define_expand "memory_barrier"
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MF))]
+ ""
+{
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
+ MEM_VOLATILE_P (operands[0]) = 1;
+})
+
+(define_insn "*memory_barrier"
+ [(set (match_operand:BLK 0 "" "")
+ (unspec:BLK [(match_dup 0)] UNSPEC_MF))]
""
"mf"
[(set_attr "itanium_class" "syst_m")])
diff --git a/gcc/config/m32r/rtems.h b/gcc/config/m32r/rtems.h
new file mode 100644
index 00000000000..add53f1d4c1
--- /dev/null
+++ b/gcc/config/m32r/rtems.h
@@ -0,0 +1,33 @@
+/* Definitions for rtems targeting a M32R using ELF.
+ Copyright (C) 2009, Free Software Foundation, Inc.
+ Contributed by Joel Sherrill (joel@OARcorp.com).
+
+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/>. */
+
+/* Target OS builtins. */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__rtems__"); \
+ builtin_define ("__USE_INIT_FINI__"); \
+ builtin_assert ("system=rtems"); \
+ } \
+ while (0)
+
+/* Use the default */
+#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/config/mips/mips-dsp.md b/gcc/config/mips/mips-dsp.md
index 9a70b665d22..f846b3d639c 100644
--- a/gcc/config/mips/mips-dsp.md
+++ b/gcc/config/mips/mips-dsp.md
@@ -1008,32 +1008,72 @@
;; Table 2-7. MIPS DSP ASE Instructions: Indexed-Load
;; L*X
-(define_insn "mips_lbux"
+(define_expand "mips_lbux"
+ [(match_operand:SI 0 "register_operand")
+ (match_operand 1 "pmode_register_operand")
+ (match_operand:SI 2 "register_operand")]
+ "ISA_HAS_DSP"
+{
+ operands[2] = convert_to_mode (Pmode, operands[2], false);
+ if (Pmode == SImode)
+ emit_insn (gen_mips_lbux_si (operands[0], operands[1], operands[2]));
+ else
+ emit_insn (gen_mips_lbux_di (operands[0], operands[1], operands[2]));
+ DONE;
+})
+
+(define_insn "mips_lbux_<mode>"
[(set (match_operand:SI 0 "register_operand" "=d")
- (zero_extend:SI (mem:QI (plus:SI (match_operand:SI 1
- "register_operand" "d")
- (match_operand:SI 2
- "register_operand" "d")))))]
+ (zero_extend:SI
+ (mem:QI (plus:P (match_operand:P 1 "register_operand" "d")
+ (match_operand:P 2 "register_operand" "d")))))]
"ISA_HAS_DSP"
"lbux\t%0,%2(%1)"
[(set_attr "type" "load")
(set_attr "mode" "SI")])
-(define_insn "mips_lhx"
+(define_expand "mips_lhx"
+ [(match_operand:SI 0 "register_operand")
+ (match_operand 1 "pmode_register_operand")
+ (match_operand:SI 2 "register_operand")]
+ "ISA_HAS_DSP"
+{
+ operands[2] = convert_to_mode (Pmode, operands[2], false);
+ if (Pmode == SImode)
+ emit_insn (gen_mips_lhx_si (operands[0], operands[1], operands[2]));
+ else
+ emit_insn (gen_mips_lhx_di (operands[0], operands[1], operands[2]));
+ DONE;
+})
+
+(define_insn "mips_lhx_<mode>"
[(set (match_operand:SI 0 "register_operand" "=d")
- (sign_extend:SI (mem:HI (plus:SI (match_operand:SI 1
- "register_operand" "d")
- (match_operand:SI 2
- "register_operand" "d")))))]
+ (zero_extend:SI
+ (mem:HI (plus:P (match_operand:P 1 "register_operand" "d")
+ (match_operand:P 2 "register_operand" "d")))))]
"ISA_HAS_DSP"
"lhx\t%0,%2(%1)"
[(set_attr "type" "load")
(set_attr "mode" "SI")])
-(define_insn "mips_lwx"
+(define_expand "mips_lwx"
+ [(match_operand:SI 0 "register_operand")
+ (match_operand 1 "pmode_register_operand")
+ (match_operand:SI 2 "register_operand")]
+ "ISA_HAS_DSP"
+{
+ operands[2] = convert_to_mode (Pmode, operands[2], false);
+ if (Pmode == SImode)
+ emit_insn (gen_mips_lwx_si (operands[0], operands[1], operands[2]));
+ else
+ emit_insn (gen_mips_lwx_di (operands[0], operands[1], operands[2]));
+ DONE;
+})
+
+(define_insn "mips_lwx_<mode>"
[(set (match_operand:SI 0 "register_operand" "=d")
- (mem:SI (plus:SI (match_operand:SI 1 "register_operand" "d")
- (match_operand:SI 2 "register_operand" "d"))))]
+ (mem:SI (plus:P (match_operand:P 1 "register_operand" "d")
+ (match_operand:P 2 "register_operand" "d"))))]
"ISA_HAS_DSP"
"lwx\t%0,%2(%1)"
[(set_attr "type" "load")
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index b73b022cb7b..55b1c22be66 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -453,7 +453,6 @@ static int mips_base_target_flags;
bool mips_base_mips16;
/* The ambient values of other global variables. */
-static int mips_base_delayed_branch; /* flag_delayed_branch */
static int mips_base_schedule_insns; /* flag_schedule_insns */
static int mips_base_reorder_blocks_and_partition; /* flag_reorder... */
static int mips_base_move_loop_invariants; /* flag_move_loop_invariants */
@@ -10192,6 +10191,8 @@ mips_output_conditional_branch (rtx insn, rtx *operands,
unsigned int length;
rtx taken, not_taken;
+ gcc_assert (LABEL_P (operands[1]));
+
length = get_attr_length (insn);
if (length <= 8)
{
@@ -11680,19 +11681,23 @@ static rtx
mips_prepare_builtin_arg (enum insn_code icode,
unsigned int opno, tree exp, unsigned int argno)
{
+ tree arg;
rtx value;
enum machine_mode mode;
- value = expand_normal (CALL_EXPR_ARG (exp, argno));
+ arg = CALL_EXPR_ARG (exp, argno);
+ value = expand_normal (arg);
mode = insn_data[icode].operand[opno].mode;
if (!insn_data[icode].operand[opno].predicate (value, mode))
{
- /* Cope with address operands, where MODE is not the mode of
- VALUE itself. */
- if (GET_MODE (value) == VOIDmode)
- value = copy_to_mode_reg (mode, value);
- else
- value = copy_to_reg (value);
+ /* We need to get the mode from ARG for two reasons:
+
+ - to cope with address operands, where MODE is the mode of the
+ memory, rather than of VALUE itself.
+
+ - to cope with special predicates like pmode_register_operand,
+ where MODE is VOIDmode. */
+ value = copy_to_mode_reg (TYPE_MODE (TREE_TYPE (arg)), value);
/* Check the predicate again. */
if (!insn_data[icode].operand[opno].predicate (value, mode))
@@ -11736,7 +11741,8 @@ mips_expand_builtin_direct (enum insn_code icode, rtx target, tree exp,
opno = 0;
if (has_target_p)
{
- ops[opno] = mips_prepare_builtin_target (icode, opno, target);
+ target = mips_prepare_builtin_target (icode, opno, target);
+ ops[opno] = target;
opno++;
}
@@ -13290,7 +13296,7 @@ mips_reorg (void)
mips16_lay_out_constants ();
if (mips_r10k_cache_barrier != R10K_CACHE_BARRIER_NONE)
r10k_insert_cache_barriers ();
- if (mips_base_delayed_branch)
+ if (flag_delayed_branch)
dbr_schedule (get_insns ());
mips_reorg_process_insns ();
if (!TARGET_MIPS16
@@ -14051,7 +14057,6 @@ mips_override_options (void)
/* Save base state of options. */
mips_base_target_flags = target_flags;
- mips_base_delayed_branch = flag_delayed_branch;
mips_base_schedule_insns = flag_schedule_insns;
mips_base_reorder_blocks_and_partition = flag_reorder_blocks_and_partition;
mips_base_move_loop_invariants = flag_move_loop_invariants;
@@ -14064,9 +14069,6 @@ mips_override_options (void)
Do all CPP-sensitive stuff in non-MIPS16 mode; we'll switch to
MIPS16 mode afterwards if need be. */
mips_set_mips16_mode (false);
-
- /* We call dbr_schedule from within mips_reorg. */
- flag_delayed_branch = 0;
}
/* Swap the register information for registers I and I + 1, which
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index a6444b5f993..f5de061d44c 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -529,6 +529,11 @@ enum mips_code_readable_setting {
builtin_define ("_MIPSEL"); \
} \
\
+ /* Whether calls should go through $25. The separate __PIC__ \
+ macro indicates whether abicalls code might use a GOT. */ \
+ if (TARGET_ABICALLS) \
+ builtin_define ("__mips_abicalls"); \
+ \
/* Whether Loongson vector modes are enabled. */ \
if (TARGET_LOONGSON_VECTORS) \
builtin_define ("__mips_loongson_vector_rev"); \
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index b9226c5c61d..5a06cdc7e71 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -4521,8 +4521,8 @@
rtx low = mips_subword (operands[1], 0);
rtx high = mips_subword (operands[1], 1);
emit_insn (gen_load_low<mode> (operands[0], low));
- if (ISA_HAS_MXHC1 && reg_or_0_operand (high, <HALFMODE>mode))
- emit_insn (gen_mthc1<mode> (operands[0], high, operands[0]));
+ if (TARGET_FLOAT64 && !TARGET_64BIT)
+ emit_insn (gen_mthc1<mode> (operands[0], high, operands[0]));
else
emit_insn (gen_load_high<mode> (operands[0], high, operands[0]));
}
@@ -4531,7 +4531,7 @@
rtx low = mips_subword (operands[0], 0);
rtx high = mips_subword (operands[0], 1);
emit_insn (gen_store_word<mode> (low, operands[1], const0_rtx));
- if (ISA_HAS_MXHC1 && register_operand (high, <HALFMODE>mode))
+ if (TARGET_FLOAT64 && !TARGET_64BIT)
emit_insn (gen_mfhc1<mode> (high, operands[1]));
else
emit_insn (gen_store_word<mode> (high, operands[1], const1_rtx));
@@ -5203,18 +5203,18 @@
[(set (pc)
(if_then_else
(equality_op (zero_extract:GPR
- (match_operand:GPR 1 "register_operand" "d")
+ (match_operand:GPR 0 "register_operand" "d")
(const_int 1)
(match_operand 2 "const_int_operand" ""))
(const_int 0))
- (label_ref (match_operand 0 ""))
+ (label_ref (match_operand 1 ""))
(pc)))]
"ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (<MODE>mode)"
{
return
mips_output_conditional_branch (insn, operands,
- MIPS_BRANCH ("bbit<bbv>", "%1,%2,%0"),
- MIPS_BRANCH ("bbit<bbinv>", "%1,%2,%0"));
+ MIPS_BRANCH ("bbit<bbv>", "%0,%2,%1"),
+ MIPS_BRANCH ("bbit<bbinv>", "%0,%2,%1"));
}
[(set_attr "type" "branch")
(set_attr "mode" "none")
@@ -5224,18 +5224,18 @@
[(set (pc)
(if_then_else
(equality_op (zero_extract:GPR
- (match_operand:GPR 1 "register_operand" "d")
+ (match_operand:GPR 0 "register_operand" "d")
(const_int 1)
(match_operand 2 "const_int_operand" ""))
(const_int 0))
(pc)
- (label_ref (match_operand 0 ""))))]
+ (label_ref (match_operand 1 ""))))]
"ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (<MODE>mode)"
{
return
mips_output_conditional_branch (insn, operands,
- MIPS_BRANCH ("bbit<bbinv>", "%1,%2,%0"),
- MIPS_BRANCH ("bbit<bbv>", "%1,%2,%0"));
+ MIPS_BRANCH ("bbit<bbinv>", "%0,%2,%1"),
+ MIPS_BRANCH ("bbit<bbv>", "%0,%2,%1"));
}
[(set_attr "type" "branch")
(set_attr "mode" "none")
diff --git a/gcc/config/mips/sync.md b/gcc/config/mips/sync.md
index f053be65b22..35d10571abd 100644
--- a/gcc/config/mips/sync.md
+++ b/gcc/config/mips/sync.md
@@ -27,9 +27,18 @@
;; Atomic memory operations.
-(define_insn "memory_barrier"
- [(set (mem:BLK (scratch))
- (unspec:BLK [(const_int 0)] UNSPEC_MEMORY_BARRIER))]
+(define_expand "memory_barrier"
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))]
+ "GENERATE_SYNC"
+{
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
+ MEM_VOLATILE_P (operands[0]) = 1;
+})
+
+(define_insn "*memory_barrier"
+ [(set (match_operand:BLK 0 "" "")
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))]
"GENERATE_SYNC"
"%|sync%-")
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 21820869d5c..5e96120a64f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -103,7 +103,7 @@ static void store_reg_modify (int, int, HOST_WIDE_INT);
static void load_reg (int, HOST_WIDE_INT, int);
static void set_reg_plus_d (int, int, HOST_WIDE_INT, int);
static void pa_output_function_prologue (FILE *, HOST_WIDE_INT);
-static void update_total_code_bytes (int);
+static void update_total_code_bytes (unsigned int);
static void pa_output_function_epilogue (FILE *, HOST_WIDE_INT);
static int pa_adjust_cost (rtx, rtx, rtx, int);
static int pa_adjust_priority (rtx, int);
@@ -191,7 +191,7 @@ unsigned long total_code_bytes;
/* The last address of the previous function plus the number of bytes in
associated thunks that have been output. This is used to determine if
a thunk can use an IA-relative branch to reach its target function. */
-static int last_address;
+static unsigned int last_address;
/* Variables to handle plabels that we discover are necessary at assembly
output time. They are output after the current function. */
@@ -3986,23 +3986,18 @@ load_reg (int reg, HOST_WIDE_INT disp, int base)
/* Update the total code bytes output to the text section. */
static void
-update_total_code_bytes (int nbytes)
+update_total_code_bytes (unsigned int nbytes)
{
if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM)
&& !IN_NAMED_SECTION_P (cfun->decl))
{
- if (INSN_ADDRESSES_SET_P ())
- {
- unsigned long old_total = total_code_bytes;
+ unsigned int old_total = total_code_bytes;
- total_code_bytes += nbytes;
+ total_code_bytes += nbytes;
- /* Be prepared to handle overflows. */
- if (old_total > total_code_bytes)
- total_code_bytes = -1;
- }
- else
- total_code_bytes = -1;
+ /* Be prepared to handle overflows. */
+ if (old_total > total_code_bytes)
+ total_code_bytes = UINT_MAX;
}
}
@@ -4066,6 +4061,8 @@ pa_output_function_epilogue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
last_address = ((last_address + FUNCTION_BOUNDARY / BITS_PER_UNIT - 1)
& ~(FUNCTION_BOUNDARY / BITS_PER_UNIT - 1));
}
+ else
+ last_address = UINT_MAX;
/* Finally, update the total number of code bytes output so far. */
update_total_code_bytes (last_address);
@@ -7547,7 +7544,9 @@ output_call (rtx insn, rtx call_dest, int sibcall)
if (seq_length != 0
&& GET_CODE (NEXT_INSN (insn)) != JUMP_INSN
&& !sibcall
- && (!TARGET_PA_20 || indirect_call))
+ && (!TARGET_PA_20
+ || indirect_call
+ || ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic)))
{
/* A non-jump insn in the delay slot. By definition we can
emit this insn before the call (and in fact before argument
@@ -7942,7 +7941,7 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
{
static unsigned int current_thunk_number;
int val_14 = VAL_14_BITS_P (delta);
- int nbytes = 0;
+ unsigned int old_last_address = last_address, nbytes = 0;
char label[16];
rtx xoperands[4];
@@ -7981,6 +7980,10 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
|| ((DECL_SECTION_NAME (thunk_fndecl)
== DECL_SECTION_NAME (function))
&& last_address < 262132)))
+ || (targetm.have_named_sections
+ && DECL_SECTION_NAME (thunk_fndecl) == NULL
+ && DECL_SECTION_NAME (function) == NULL
+ && last_address < 262132)
|| (!targetm.have_named_sections && last_address < 262132))))
{
if (!val_14)
@@ -8175,6 +8178,8 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
nbytes = ((nbytes + FUNCTION_BOUNDARY / BITS_PER_UNIT - 1)
& ~(FUNCTION_BOUNDARY / BITS_PER_UNIT - 1));
last_address += nbytes;
+ if (old_last_address > last_address)
+ last_address = UINT_MAX;
update_total_code_bytes (nbytes);
}
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h
index fa5ec3a4f1e..16f5a3e4b09 100644
--- a/gcc/config/pa/pa64-hpux.h
+++ b/gcc/config/pa/pa64-hpux.h
@@ -94,7 +94,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_GCC_C_SEQUENCE_SPEC
#define LINK_GCC_C_SEQUENCE_SPEC "\
%G %L %G %{!nostdlib:%{!nodefaultlibs:%{!shared:-lgcc_stub}\
- /usr/lib/pa20_64/milli.a}}"
+ milli.a%s}}"
/* Under hpux11, the normal location of the `ld' and `as' programs is the
/usr/ccs/bin directory. */
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index 303b9e1a2b6..d9294868594 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -324,6 +324,9 @@ picochip_override_options (void)
This isnt the default at O2 as yet. */
flag_section_anchors = 1;
+ /* CFI asm labels are not supported by the picochip assembler yet */
+ flag_dwarf2_cfi_asm = 0;
+
/* Turn off the second scheduling pass, and move it to
picochip_reorg, to avoid having the second jump optimisation
trash the instruction modes (e.g., instructions are changed to
@@ -3914,6 +3917,7 @@ picochip_init_builtins (void)
{
tree endlink = void_list_node;
tree int_endlink = tree_cons (NULL_TREE, integer_type_node, endlink);
+ tree unsigned_endlink = tree_cons (NULL_TREE, unsigned_type_node, endlink);
tree long_endlink = tree_cons (NULL_TREE, long_integer_type_node, endlink);
tree int_int_endlink =
tree_cons (NULL_TREE, integer_type_node, int_endlink);
@@ -3929,7 +3933,7 @@ picochip_init_builtins (void)
tree long_ftype_int, long_ftype_int_int, long_ftype_int_int_int;
tree void_ftype_int_long, int_ftype_int_int_int,
void_ftype_long_int_int_int;
- tree void_ftype_void, void_ftype_int;
+ tree void_ftype_void, void_ftype_int, unsigned_ftype_unsigned;
/* void func (void) */
void_ftype_void = build_function_type (void_type_node, endlink);
@@ -3948,6 +3952,9 @@ picochip_init_builtins (void)
/* int func (int) */
int_ftype_int = build_function_type (integer_type_node, int_endlink);
+ /* unsigned int func (unsigned int) */
+ unsigned_ftype_unsigned = build_function_type (unsigned_type_node, unsigned_endlink);
+
/* int func(int, int) */
int_ftype_int_int
= build_function_type (integer_type_node, int_int_endlink);
@@ -3991,18 +3998,18 @@ picochip_init_builtins (void)
NULL_TREE);
/* Initialise the bit reverse function. */
- add_builtin_function ("__builtin_brev", int_ftype_int,
+ add_builtin_function ("__builtin_brev", unsigned_ftype_unsigned,
PICOCHIP_BUILTIN_BREV, BUILT_IN_MD, NULL,
NULL_TREE);
- add_builtin_function ("picoBrev", int_ftype_int,
+ add_builtin_function ("picoBrev", unsigned_ftype_unsigned,
PICOCHIP_BUILTIN_BREV, BUILT_IN_MD, NULL,
NULL_TREE);
/* Initialise the byte swap function. */
- add_builtin_function ("__builtin_byteswap", int_ftype_int,
+ add_builtin_function ("__builtin_byteswap", unsigned_ftype_unsigned,
PICOCHIP_BUILTIN_BYTESWAP, BUILT_IN_MD, NULL,
NULL_TREE);
- add_builtin_function ("picoByteSwap", int_ftype_int,
+ add_builtin_function ("picoByteSwap", unsigned_ftype_unsigned,
PICOCHIP_BUILTIN_BYTESWAP, BUILT_IN_MD, NULL,
NULL_TREE);
diff --git a/gcc/config/picochip/picochip.md b/gcc/config/picochip/picochip.md
index 3fe66526eaa..fbe2280e123 100644
--- a/gcc/config/picochip/picochip.md
+++ b/gcc/config/picochip/picochip.md
@@ -2367,8 +2367,7 @@
(clobber (reg:CC CC_REGNUM))]
""
"// %0 := TestPort(%1)\;TSTPORT %1\;COPYSW.0 %0\;AND.0 %0,8,%0"
- [(set_attr "length" "9")
- (set_attr "type" "picoAlu")])
+ [(set_attr "length" "9")])
; Entry point for array tstport (the actual port index is computed as the
; sum of the index, and the base).
diff --git a/gcc/config/picochip/picochip.opt b/gcc/config/picochip/picochip.opt
index 0e4bc4e2fce..4726f499377 100644
--- a/gcc/config/picochip/picochip.opt
+++ b/gcc/config/picochip/picochip.opt
@@ -20,8 +20,7 @@
mae=
Target RejectNegative Joined Var(picochip_ae_type_string)
-Specify which type of AE to target. This option sets the mul-type
-and byte-access.
+Specify which type of AE to target. This option sets the mul-type and byte-access.
mmul-type=
Target RejectNegative Undocumented Joined Var(picochip_mul_type_string)
@@ -37,8 +36,7 @@ Enable debug output to be generated.
msymbol-as-address
Target Mask(SYMBOL_AS_ADDRESS)
-Allow a symbol value to be used as an immediate value in an
-instruction.
+Allow a symbol value to be used as an immediate value in an instruction.
minefficient-warnings
Target Mask(INEFFICIENT_WARNINGS)
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index e2d8ddc0003..6d7327b5ea4 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3804,7 +3804,10 @@ rs6000_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
&& GET_CODE (XEXP (x, 0)) == REG
&& GET_CODE (XEXP (x, 1)) == CONST_INT
&& (unsigned HOST_WIDE_INT) (INTVAL (XEXP (x, 1)) + 0x8000) >= 0x10000
- && !(SPE_VECTOR_MODE (mode)
+ && !((TARGET_POWERPC64
+ && (mode == DImode || mode == TImode)
+ && (INTVAL (XEXP (x, 1)) & 3) != 0)
+ || SPE_VECTOR_MODE (mode)
|| ALTIVEC_VECTOR_MODE (mode)
|| (TARGET_E500_DOUBLE && (mode == DFmode || mode == TFmode
|| mode == DImode || mode == DDmode
@@ -12798,7 +12801,7 @@ rs6000_generate_compare (enum rtx_code code)
switch (op_mode)
{
case SFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstsfeq_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpsfeq_gpr (compare_result, rs6000_compare_op0,
@@ -12806,7 +12809,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case DFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstdfeq_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpdfeq_gpr (compare_result, rs6000_compare_op0,
@@ -12814,7 +12817,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case TFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tsttfeq_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmptfeq_gpr (compare_result, rs6000_compare_op0,
@@ -12830,7 +12833,7 @@ rs6000_generate_compare (enum rtx_code code)
switch (op_mode)
{
case SFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstsfgt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpsfgt_gpr (compare_result, rs6000_compare_op0,
@@ -12838,7 +12841,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case DFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstdfgt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpdfgt_gpr (compare_result, rs6000_compare_op0,
@@ -12846,7 +12849,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case TFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tsttfgt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmptfgt_gpr (compare_result, rs6000_compare_op0,
@@ -12862,7 +12865,7 @@ rs6000_generate_compare (enum rtx_code code)
switch (op_mode)
{
case SFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstsflt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpsflt_gpr (compare_result, rs6000_compare_op0,
@@ -12870,7 +12873,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case DFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstdflt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpdflt_gpr (compare_result, rs6000_compare_op0,
@@ -12878,7 +12881,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case TFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tsttflt_gpr (compare_result, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmptflt_gpr (compare_result, rs6000_compare_op0,
@@ -12913,7 +12916,7 @@ rs6000_generate_compare (enum rtx_code code)
switch (op_mode)
{
case SFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstsfeq_gpr (compare_result2, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpsfeq_gpr (compare_result2, rs6000_compare_op0,
@@ -12921,7 +12924,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case DFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tstdfeq_gpr (compare_result2, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmpdfeq_gpr (compare_result2, rs6000_compare_op0,
@@ -12929,7 +12932,7 @@ rs6000_generate_compare (enum rtx_code code)
break;
case TFmode:
- cmp = flag_unsafe_math_optimizations
+ cmp = (flag_finite_math_only && !flag_trapping_math)
? gen_tsttfeq_gpr (compare_result2, rs6000_compare_op0,
rs6000_compare_op1)
: gen_cmptfeq_gpr (compare_result2, rs6000_compare_op0,
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index b1df32aa17c..a5a6ec17b26 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -9002,7 +9002,7 @@
rtx label = gen_label_rtx ();
if (TARGET_E500_DOUBLE)
{
- if (flag_unsafe_math_optimizations)
+ if (flag_finite_math_only && !flag_trapping_math)
emit_insn (gen_spe_abstf2_tst (operands[0], operands[1], label));
else
emit_insn (gen_spe_abstf2_cmp (operands[0], operands[1], label));
@@ -10798,18 +10798,14 @@
(mem:SI (match_operand:SI 0 "gpc_reg_operand" "")))
(set (mem:SI (plus:SI (reg:SI 1) (const_int 20)))
(reg:SI 2))
- (set (reg:SI 2)
- (mem:SI (plus:SI (match_dup 0)
- (const_int 4))))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 0)
(const_int 8))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
- (use (reg:SI 2))
+ (use (mem:SI (plus:SI (match_dup 0) (const_int 4))))
(use (reg:SI 11))
- (set (reg:SI 2)
- (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
@@ -10820,18 +10816,14 @@
(mem:DI (match_operand:DI 0 "gpc_reg_operand" "")))
(set (mem:DI (plus:DI (reg:DI 1) (const_int 40)))
(reg:DI 2))
- (set (reg:DI 2)
- (mem:DI (plus:DI (match_dup 0)
- (const_int 8))))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 0)
(const_int 16))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
- (use (reg:DI 2))
+ (use (mem:DI (plus:DI (match_dup 0) (const_int 8))))
(use (reg:DI 11))
- (set (reg:DI 2)
- (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_64BIT"
"
@@ -10842,19 +10834,15 @@
(mem:SI (match_operand:SI 1 "gpc_reg_operand" "")))
(set (mem:SI (plus:SI (reg:SI 1) (const_int 20)))
(reg:SI 2))
- (set (reg:SI 2)
- (mem:SI (plus:SI (match_dup 1)
- (const_int 4))))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 1)
(const_int 8))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
- (use (reg:SI 2))
+ (use (mem:SI (plus:SI (match_dup 1) (const_int 4))))
(use (reg:SI 11))
- (set (reg:SI 2)
- (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
@@ -10865,19 +10853,15 @@
(mem:DI (match_operand:DI 1 "gpc_reg_operand" "")))
(set (mem:DI (plus:DI (reg:DI 1) (const_int 40)))
(reg:DI 2))
- (set (reg:DI 2)
- (mem:DI (plus:DI (match_dup 1)
- (const_int 8))))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 1)
(const_int 16))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
- (use (reg:DI 2))
+ (use (mem:DI (plus:DI (match_dup 1) (const_int 8))))
(use (reg:DI 11))
- (set (reg:DI 2)
- (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_64BIT"
"
@@ -11079,6 +11063,29 @@
;; variable argument function. It is > 0 if FP registers were passed
;; and < 0 if they were not.
+(define_insn_and_split "*call_indirect_nonlocal_aix32_internal"
+ [(call (mem:SI (match_operand:SI 0 "register_operand" "c,*l"))
+ (match_operand 1 "" "g,g"))
+ (use (mem:SI (plus:SI (match_operand:SI 2 "register_operand" "b,b") (const_int 4))))
+ (use (reg:SI 11))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:SI 2)
+ (mem:SI (plus:SI (match_dup 2) (const_int 4))))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (use (reg:SI 2))
+ (use (reg:SI 11))
+ (set (reg:SI 2)
+ (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_indirect_nonlocal_aix32"
[(call (mem:SI (match_operand:SI 0 "register_operand" "c,*l"))
(match_operand 1 "" "g,g"))
@@ -11087,7 +11094,7 @@
(set (reg:SI 2)
(mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T0l\;{l|lwz} 2,20(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -11103,6 +11110,30 @@
"bl %z0\;%."
[(set_attr "type" "branch")
(set_attr "length" "8")])
+
+(define_insn_and_split "*call_indirect_nonlocal_aix64_internal"
+ [(call (mem:SI (match_operand:DI 0 "register_operand" "c,*l"))
+ (match_operand 1 "" "g,g"))
+ (use (mem:DI (plus:DI (match_operand:DI 2 "register_operand" "b,b")
+ (const_int 8))))
+ (use (reg:DI 11))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:DI 2)
+ (mem:DI (plus:DI (match_dup 2) (const_int 8))))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (use (reg:DI 2))
+ (use (reg:DI 11))
+ (set (reg:DI 2)
+ (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
(define_insn "*call_indirect_nonlocal_aix64"
[(call (mem:SI (match_operand:DI 0 "register_operand" "c,*l"))
@@ -11112,7 +11143,7 @@
(set (reg:DI 2)
(mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T0l\;ld 2,40(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -11129,6 +11160,31 @@
[(set_attr "type" "branch")
(set_attr "length" "8")])
+(define_insn_and_split "*call_value_indirect_nonlocal_aix32_internal"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:SI 1 "register_operand" "c,*l"))
+ (match_operand 2 "" "g,g")))
+ (use (mem:SI (plus:SI (match_operand:SI 3 "register_operand" "b,b")
+ (const_int 4))))
+ (use (reg:SI 11))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:SI 2)
+ (mem:SI (plus:SI (match_dup 3) (const_int 4))))
+ (parallel [(set (match_dup 0) (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (use (reg:SI 2))
+ (use (reg:SI 11))
+ (set (reg:SI 2)
+ (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_value_indirect_nonlocal_aix32"
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "register_operand" "c,*l"))
@@ -11138,7 +11194,7 @@
(set (reg:SI 2)
(mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T1l\;{l|lwz} 2,20(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -11156,6 +11212,31 @@
[(set_attr "type" "branch")
(set_attr "length" "8")])
+(define_insn_and_split "*call_value_indirect_nonlocal_aix64_internal"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" "c,*l"))
+ (match_operand 2 "" "g,g")))
+ (use (mem:DI (plus:DI (match_operand:DI 3 "register_operand" "b,b")
+ (const_int 8))))
+ (use (reg:DI 11))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:DI 2)
+ (mem:DI (plus:DI (match_dup 3) (const_int 8))))
+ (parallel [(set (match_dup 0) (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (use (reg:DI 2))
+ (use (reg:DI 11))
+ (set (reg:DI 2)
+ (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_value_indirect_nonlocal_aix64"
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:DI 1 "register_operand" "c,*l"))
@@ -11165,7 +11246,7 @@
(set (reg:DI 2)
(mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T1l\;ld 2,40(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -11773,7 +11854,7 @@
(define_expand "bltgt"
[(use (match_operand 0 "" ""))]
- ""
+ "! (TARGET_HARD_FLOAT && !TARGET_FPRS)"
"{ rs6000_emit_cbranch (LTGT, operands[0]); DONE; }")
;; For SNE, we would prefer that the xor/abs sequence be used for integers.
@@ -11907,7 +11988,7 @@
(define_expand "sltgt"
[(clobber (match_operand:SI 0 "gpc_reg_operand" ""))]
- ""
+ "! (TARGET_HARD_FLOAT && !TARGET_FPRS)"
"{ rs6000_emit_sCOND (LTGT, operands[0]); DONE; }")
(define_expand "stack_protect_set"
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index 50736f1a6ba..f8118afad22 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -2933,7 +2933,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1000))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efscmpeq %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -2943,7 +2944,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1001))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && flag_finite_math_only && !flag_trapping_math"
"efststeq %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -2953,7 +2955,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1002))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efscmpgt %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -2963,7 +2966,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1003))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && flag_finite_math_only && !flag_trapping_math"
"efststgt %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -2973,7 +2977,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1004))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efscmplt %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -2983,7 +2988,8 @@
[(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
(match_operand:SF 2 "gpc_reg_operand" "r"))]
1005))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS
+ && flag_finite_math_only && !flag_trapping_math"
"efststlt %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -2995,7 +3001,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
CMPDFEQ_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmpeq %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -3005,7 +3012,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
TSTDFEQ_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && flag_finite_math_only && !flag_trapping_math"
"efdtsteq %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -3015,7 +3023,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
CMPDFGT_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmpgt %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -3025,7 +3034,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
TSTDFGT_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && flag_finite_math_only && !flag_trapping_math"
"efdtstgt %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -3035,7 +3045,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
CMPDFLT_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && !flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmplt %0,%1,%2"
[(set_attr "type" "veccmp")])
@@ -3045,7 +3056,8 @@
[(compare:CCFP (match_operand:DF 1 "gpc_reg_operand" "r")
(match_operand:DF 2 "gpc_reg_operand" "r"))]
TSTDFLT_GPR))]
- "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && flag_unsafe_math_optimizations"
+ "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE
+ && flag_finite_math_only && !flag_trapping_math"
"efdtstlt %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
@@ -3059,7 +3071,7 @@
CMPTFEQ_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && !flag_unsafe_math_optimizations"
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmpeq %0,%1,%2\;bng %0,$+8\;efdcmpeq %0,%L1,%L2"
[(set_attr "type" "veccmp")
(set_attr "length" "12")])
@@ -3072,7 +3084,7 @@
TSTTFEQ_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && flag_unsafe_math_optimizations"
+ && flag_finite_math_only && !flag_trapping_math"
"efdtsteq %0,%1,%2\;bng %0,$+8\;efdtsteq %0,%L1,%L2"
[(set_attr "type" "veccmpsimple")
(set_attr "length" "12")])
@@ -3085,7 +3097,7 @@
CMPTFGT_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && !flag_unsafe_math_optimizations"
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmpgt %0,%1,%2\;bgt %0,$+16\;efdcmpeq %0,%1,%2\;bng %0,$+8\;efdcmpgt %0,%L1,%L2"
[(set_attr "type" "veccmp")
(set_attr "length" "20")])
@@ -3098,7 +3110,7 @@
TSTTFGT_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && flag_unsafe_math_optimizations"
+ && flag_finite_math_only && !flag_trapping_math"
"efdtstgt %0,%1,%2\;bgt %0,$+16\;efdtsteq %0,%1,%2\;bng %0,$+8\;efdtstgt %0,%L1,%L2"
[(set_attr "type" "veccmpsimple")
(set_attr "length" "20")])
@@ -3111,7 +3123,7 @@
CMPTFLT_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && !flag_unsafe_math_optimizations"
+ && !(flag_finite_math_only && !flag_trapping_math)"
"efdcmplt %0,%1,%2\;bgt %0,$+16\;efdcmpeq %0,%1,%2\;bng %0,$+8\;efdcmplt %0,%L1,%L2"
[(set_attr "type" "veccmp")
(set_attr "length" "20")])
@@ -3124,7 +3136,7 @@
TSTTFLT_GPR))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128
- && flag_unsafe_math_optimizations"
+ && flag_finite_math_only && !flag_trapping_math"
"efdtstlt %0,%1,%2\;bgt %0,$+16\;efdtsteq %0,%1,%2\;bng %0,$+8\;efdtstlt %0,%L1,%L2"
[(set_attr "type" "veccmpsimple")
(set_attr "length" "20")])
diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md
index 0adc23cfc04..bb5de392f55 100644
--- a/gcc/config/rs6000/sync.md
+++ b/gcc/config/rs6000/sync.md
@@ -33,8 +33,8 @@
[(plus "rIL") (minus "r") (ior "rKJF") (xor "rKJF") (and "rSTKJ")])
(define_expand "memory_barrier"
- [(set (mem:BLK (match_dup 0))
- (unspec:BLK [(mem:BLK (match_dup 0))] UNSPEC_SYNC))]
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_SYNC))]
""
{
operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
@@ -43,7 +43,7 @@
(define_insn "*sync_internal"
[(set (match_operand:BLK 0 "" "")
- (unspec:BLK [(match_operand:BLK 1 "" "")] UNSPEC_SYNC))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_SYNC))]
""
"{dcs|sync}"
[(set_attr "type" "sync")])
diff --git a/gcc/config/rs6000/x-linux-relax b/gcc/config/rs6000/x-linux-relax
new file mode 100644
index 00000000000..2743a94e43d
--- /dev/null
+++ b/gcc/config/rs6000/x-linux-relax
@@ -0,0 +1,2 @@
+# At -O0 cc1 etc. are too large and -Wl,--relax is needed
+$(COMPILERS) : override LDFLAGS += -Wl,--relax
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index b6c2089f0ba..7ad230ea3a9 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -9589,6 +9589,104 @@ s390_optimize_prologue (void)
}
}
+
+/* Exchange the two operands of COND, and swap its mask so that the
+ semantics does not change. */
+static void
+s390_swap_cmp (rtx cond)
+{
+ enum rtx_code code = swap_condition (GET_CODE (cond));
+ rtx tmp = XEXP (cond, 0);
+
+ XEXP (cond, 0) = XEXP (cond, 1);
+ XEXP (cond, 1) = tmp;
+ PUT_CODE (cond, code);
+}
+
+
+/* Returns 1 if INSN reads the value of REG for purposes not related
+ to addressing of memory, and 0 otherwise. */
+static int
+s390_non_addr_reg_read_p (rtx reg, rtx insn)
+{
+ return reg_referenced_p (reg, PATTERN (insn))
+ && !reg_used_in_mem_p (REGNO (reg), PATTERN (insn));
+}
+
+
+/* On z10, instructions of the compare-and-branch family have the
+ property to access the register occurring as second operand with
+ its bits complemented. If such a compare is grouped with a second
+ instruction that accesses the same register non-complemented, and
+ if that register's value is delivered via a bypass, then the
+ pipeline recycles, thereby causing significant performance decline.
+ This function locates such situations and exchanges the two
+ operands of the compare. */
+static void
+s390_z10_optimize_cmp (void)
+{
+ rtx insn, prev_insn, next_insn;
+ int added_NOPs = 0;
+
+ for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
+ {
+ if (!INSN_P (insn) || INSN_CODE (insn) <= 0)
+ continue;
+
+ if (get_attr_z10prop (insn) == Z10PROP_Z10_COBRA)
+ {
+ rtx op0, op1, pattern, jump_expr, cond;
+
+ /* Extract the comparison´s condition and its operands. */
+ pattern = single_set (insn);
+ gcc_assert (GET_CODE (pattern) == SET);
+ jump_expr = XEXP (pattern, 1);
+ gcc_assert (GET_CODE (jump_expr) == IF_THEN_ELSE);
+ cond = XEXP (jump_expr, 0);
+ op0 = XEXP (cond, 0);
+ op1 = XEXP (cond, 1);
+
+ /* Swap the COMPARE´s arguments and its mask if there is a
+ conflicting access in the previous insn. */
+ prev_insn = PREV_INSN (insn);
+ if (prev_insn != NULL_RTX && INSN_P (prev_insn)
+ && reg_referenced_p (op1, PATTERN (prev_insn)))
+ {
+ s390_swap_cmp (cond);
+ op0 = XEXP (cond, 0);
+ op1 = XEXP (cond, 1);
+ }
+
+ /* Check if there is a conflict with the next insn. If there
+ was no conflict with the previous insn, then swap the
+ COMPARE´s arguments and its mask. If we already swapped
+ the operands, or if swapping them would cause a conflict
+ with the previous insn, issue a NOP after the COMPARE in
+ order to separate the two instuctions. */
+ next_insn = NEXT_INSN (insn);
+ if (next_insn != NULL_RTX && INSN_P (next_insn)
+ && s390_non_addr_reg_read_p (op1, next_insn))
+ {
+ if (s390_non_addr_reg_read_p (op0, prev_insn))
+ {
+ if (REGNO(op1) == 0)
+ emit_insn_after (gen_nop1 (), insn);
+ else
+ emit_insn_after (gen_nop (), insn);
+ added_NOPs = 1;
+ }
+ else
+ s390_swap_cmp (cond);
+ }
+ }
+ }
+
+ /* Adjust branches if we added new instructions. */
+ if (added_NOPs)
+ shorten_branches (get_insns ());
+}
+
+
/* Perform machine-dependent processing. */
static void
@@ -9698,6 +9796,11 @@ s390_reorg (void)
/* Try to optimize prologue and epilogue further. */
s390_optimize_prologue ();
+
+ /* Eliminate z10-specific pipeline recycles related to some compare
+ instructions. */
+ if (TARGET_Z10)
+ s390_z10_optimize_cmp ();
}
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 1691fdba0f5..e8b50830d58 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -82,6 +82,9 @@
(UNSPEC_INSN 213)
(UNSPEC_EXECUTE 214)
+ ; Atomic Support
+ (UNSPEC_MB 400)
+
; TLS relocation specifiers
(UNSPEC_TLSGD 500)
(UNSPEC_TLSLDM 501)
@@ -132,8 +135,7 @@
(UNSPECV_SET_TP 500)
; Atomic Support
- (UNSPECV_MB 700)
- (UNSPECV_CAS 701)
+ (UNSPECV_CAS 700)
])
;;
@@ -8183,20 +8185,21 @@
;
(define_expand "memory_barrier"
- [(set (mem:BLK (match_dup 0))
- (unspec_volatile:BLK [(mem:BLK (match_dup 0))] UNSPECV_MB))]
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MB))]
""
{
- operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (DImode));
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
MEM_VOLATILE_P (operands[0]) = 1;
})
(define_insn "*memory_barrier"
[(set (match_operand:BLK 0 "" "")
- (unspec_volatile:BLK [(match_operand:BLK 1 "" "")] UNSPECV_MB))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_MB))]
""
"bcr\t15,0"
[(set_attr "op_type" "RR")])
+
; Although bcr is superscalar on Z10, this variant will never become part of
; an execution group.
@@ -8467,6 +8470,12 @@
"lr\t0,0"
[(set_attr "op_type" "RR")])
+(define_insn "nop1"
+ [(const_int 1)]
+ ""
+ "lr\t1,1"
+ [(set_attr "op_type" "RR")])
+
;
; Special literal pool access instruction pattern(s).
diff --git a/gcc/config/sh/symbian.c b/gcc/config/sh/symbian.c
index abe685b5766..54e013d01e1 100644
--- a/gcc/config/sh/symbian.c
+++ b/gcc/config/sh/symbian.c
@@ -139,7 +139,7 @@ sh_symbian_dllimport_p (tree decl)
earlier declaration. */
if (TREE_CODE (decl) == FUNCTION_DECL
&& DECL_INITIAL (decl)
- && !DECL_INLINE (decl))
+ && ! DECL_DECLARED_INLINE_P (decl))
{
/* Don't warn about artificial methods. */
if (!DECL_ARTIFICIAL (decl))
@@ -152,7 +152,7 @@ sh_symbian_dllimport_p (tree decl)
/* We ignore the dllimport attribute for inline member functions.
This differs from MSVC behavior which treats it like GNUC
'extern inline' extension. */
- else if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))
+ else if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl))
{
if (extra_warnings)
warning (OPT_Wattributes, "inline function %q+D is declared as "
@@ -580,7 +580,7 @@ symbian_possibly_export_base_class (tree base_class)
if (DECL_PURE_VIRTUAL_P (member))
continue;
- if (DECL_INLINE (member))
+ if (DECL_DECLARED_INLINE_P (member))
continue;
break;
@@ -671,7 +671,7 @@ symbian_export_vtable_and_rtti_p (tree ctype)
if (DECL_CONSTRUCTOR_P (member) || DECL_DESTRUCTOR_P (member))
{
- if (DECL_INLINE (member)
+ if (DECL_DECLARED_INLINE_P (member)
/* Ignore C++ backend created inline ctors/dtors. */
&& ( DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (member)
|| DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (member)))
@@ -688,7 +688,7 @@ symbian_export_vtable_and_rtti_p (tree ctype)
if (! DECL_VIRTUAL_P (member))
continue;
- if (DECL_INLINE (member))
+ if (DECL_DECLARED_INLINE_P (member))
continue;
if (lookup_attribute ("dllimport", DECL_ATTRIBUTES (member)))
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 51474945e3f..bf279fad796 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1317,16 +1317,6 @@ extern char leaf_reg_remap[];
#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
(FP_REG_CLASS_P (CLASS1) != FP_REG_CLASS_P (CLASS2))
-/* Return the stack location to use for secondary memory needed reloads.
- We want to use the reserved location just below the frame pointer.
- However, we must ensure that there is a frame, so use assign_stack_local
- if the frame size is zero. */
-#define SECONDARY_MEMORY_NEEDED_RTX(MODE) \
- (get_frame_size () == 0 \
- ? assign_stack_local (MODE, GET_MODE_SIZE (MODE), 0) \
- : gen_rtx_MEM (MODE, plus_constant (frame_pointer_rtx, \
- STARTING_FRAME_OFFSET)))
-
/* Get_secondary_mem widens its argument to BITS_PER_WORD which loses on v9
because the movsi and movsf patterns don't handle r/f moves.
For v8 we copy the default definition. */
@@ -1362,11 +1352,7 @@ extern char leaf_reg_remap[];
If FRAME_GROWS_DOWNWARD, this is the offset to the END of the
first local allocated. Otherwise, it is the offset to the BEGINNING
of the first local allocated. */
-/* This allows space for one TFmode floating point value, which is used
- by SECONDARY_MEMORY_NEEDED_RTX. */
-#define STARTING_FRAME_OFFSET \
- (TARGET_ARCH64 ? -16 \
- : (-SPARC_STACK_ALIGN (LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT)))
+#define STARTING_FRAME_OFFSET 0
/* Offset of first parameter from the argument pointer register value.
!v9: This is 64 for the ins and locals, plus 4 for the struct-return reg
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 0a82e89adf7..a3eb01f51bd 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -38,6 +38,8 @@
(UNSPEC_EMB_TEXTULO 15)
(UNSPEC_EMB_SETHM 18)
+ (UNSPEC_MEMBAR 20)
+
(UNSPEC_TLSGD 30)
(UNSPEC_TLSLDM 31)
(UNSPEC_TLSLDO 32)
@@ -68,7 +70,6 @@
(UNSPECV_FLUSH 4)
(UNSPECV_SETJMP 5)
(UNSPECV_SAVEW 6)
- (UNSPECV_MEMBAR 7)
(UNSPECV_CAS 8)
(UNSPECV_SWAP 9)
(UNSPECV_LDSTUB 10)
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md
index 17cf691d5b4..f1444d8f767 100644
--- a/gcc/config/sparc/sync.md
+++ b/gcc/config/sparc/sync.md
@@ -24,36 +24,28 @@
(define_mode_attr modesuffix [(SI "") (DI "x")])
(define_expand "memory_barrier"
- [(set (mem:BLK (match_dup 0))
- (unspec_volatile:BLK [(mem:BLK (match_dup 0)) (match_dup 1)]
- UNSPECV_MEMBAR))]
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMBAR))]
"TARGET_V8 || TARGET_V9"
{
- operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (DImode));
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
MEM_VOLATILE_P (operands[0]) = 1;
- if (TARGET_V9)
- /* member #StoreStore | #LoadStore | #StoreLoad | #LoadLoad */
- operands[1] = GEN_INT (15);
- else
- /* stbar */
- operands[1] = GEN_INT (8);
+
})
(define_insn "*stbar"
[(set (match_operand:BLK 0 "" "")
- (unspec_volatile:BLK [(match_operand:BLK 1 "" "")
- (const_int 8)] UNSPECV_MEMBAR))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMBAR))]
"TARGET_V8"
"stbar"
[(set_attr "type" "multi")])
+;; membar #StoreStore | #LoadStore | #StoreLoad | #LoadLoad
(define_insn "*membar"
[(set (match_operand:BLK 0 "" "")
- (unspec_volatile:BLK [(match_operand:BLK 1 "" "")
- (match_operand:SI 2 "immediate_operand" "I")]
- UNSPECV_MEMBAR))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMBAR))]
"TARGET_V9"
- "membar\t%2"
+ "membar\t15"
[(set_attr "type" "multi")])
(define_expand "sync_compare_and_swap<mode>"
diff --git a/gcc/config/x-cflags-O1 b/gcc/config/x-cflags-O1
new file mode 100644
index 00000000000..9ba1e7496cf
--- /dev/null
+++ b/gcc/config/x-cflags-O1
@@ -0,0 +1,5 @@
+# At -O0 cc1 etc. are too large on some targets for successful
+# link; force building libbackend.a with -O1.
+ifeq ($(filter-out -O0,$(lastword $(filter -O%,$(CFLAGS)))),)
+$(OBJS) : override CFLAGS += -O1
+endif
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index abaf29d7333..d0e4772cc83 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -35,10 +35,10 @@
(UNSPEC_TLS_ARG 8)
(UNSPEC_TLS_CALL 9)
(UNSPEC_TP 10)
+ (UNSPEC_MEMW 11)
(UNSPECV_SET_FP 1)
(UNSPECV_ENTRY 2)
- (UNSPECV_MEMW 3)
(UNSPECV_S32RI 4)
(UNSPECV_S32C1I 5)
(UNSPECV_EH_RETURN 6)
@@ -1819,17 +1819,17 @@
;; Atomic operations
(define_expand "memory_barrier"
- [(set (mem:BLK (match_dup 0))
- (unspec_volatile:BLK [(mem:BLK (match_dup 0))] UNSPECV_MEMW))]
+ [(set (match_dup 0)
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMW))]
""
{
- operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (SImode));
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
MEM_VOLATILE_P (operands[0]) = 1;
})
(define_insn "*memory_barrier"
[(set (match_operand:BLK 0 "" "")
- (unspec_volatile:BLK [(match_operand:BLK 1 "" "")] UNSPECV_MEMW))]
+ (unspec:BLK [(match_dup 0)] UNSPEC_MEMW))]
""
"memw"
[(set_attr "type" "unknown")
diff --git a/gcc/configure b/gcc/configure
index 09abf94a9d1..0fd692dc881 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -13105,7 +13105,13 @@ fi;
*) have_unwind_getipinfo=yes ;;
esac
else
- have_unwind_getipinfo=yes
+ # Darwin before version 9 does not have _Unwind_GetIPInfo.
+
+ case ${target} in
+ *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+
fi
if test x$have_unwind_getipinfo = xyes; then
@@ -14503,13 +14509,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:14506: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:14512: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:14509: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:14515: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:14512: output\"" >&5)
+ (eval echo "\"\$as_me:14518: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -15666,7 +15672,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 15669 "configure"' > conftest.$ac_ext
+ echo '#line 15675 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -16965,11 +16971,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16968: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16974: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16972: \$? = $ac_status" >&5
+ echo "$as_me:16978: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -17304,11 +17310,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17307: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17313: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:17311: \$? = $ac_status" >&5
+ echo "$as_me:17317: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -17409,11 +17415,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17412: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17418: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:17416: \$? = $ac_status" >&5
+ echo "$as_me:17422: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17464,11 +17470,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17467: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17473: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:17471: \$? = $ac_status" >&5
+ echo "$as_me:17477: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -18630,44 +18636,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -19247,12 +19259,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat >conftest.$ac_ext <<_ACEOF
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -19290,7 +19307,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -19300,8 +19317,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -20261,7 +20282,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 20264 "configure"
+#line 20285 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -20357,7 +20378,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 20360 "configure"
+#line 20381 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -21394,6 +21415,9 @@ else
hppa64*-*-hpux* | ia64*-*-hpux*)
gcc_cv_ld_hidden=yes
;;
+ *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
+ gcc_cv_ld_hidden=yes
+ ;;
*)
gcc_cv_ld_hidden=no
;;
@@ -21610,7 +21634,8 @@ echo "$as_me:$LINENO: result: $gcc_cv_as_cfi_advance_working" >&5
echo "${ECHO_T}$gcc_cv_as_cfi_advance_working" >&6
else
- gcc_cv_as_cfi_advance_working=yes
+ # no readelf, err on the side of caution
+ gcc_cv_as_cfi_advance_working=no
fi
cat >>confdefs.h <<_ACEOF
diff --git a/gcc/configure.ac b/gcc/configure.ac
index c1b77890b74..9d7abad7814 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2104,10 +2104,10 @@ AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
gcc_cv_ld_hidden=yes
fi
else
+changequote(,)dnl
gcc_cv_ld_hidden=yes
ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
if echo "$ld_ver" | grep GNU > /dev/null; then
-changequote(,)dnl
ld_vers=`echo $ld_ver | sed -n \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
@@ -2131,18 +2131,21 @@ changequote(,)dnl
gcc_cv_ld_hidden=no
fi
fi
-changequote([,])dnl
fi
else
case "${target}" in
hppa64*-*-hpux* | ia64*-*-hpux*)
gcc_cv_ld_hidden=yes
;;
+ *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
+ gcc_cv_ld_hidden=yes
+ ;;
*)
gcc_cv_ld_hidden=no
;;
esac
fi
+changequote([,])dnl
fi])
libgcc_visibility=no
AC_SUBST(libgcc_visibility)
@@ -2275,7 +2278,8 @@ fi
changequote([,])dnl
])
else
- gcc_cv_as_cfi_advance_working=yes
+ # no readelf, err on the side of caution
+ gcc_cv_as_cfi_advance_working=no
fi
AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_DIRECTIVE,
[`if test $gcc_cv_as_cfi_directive = yes \
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9c27cd04b85..af7f0c06b9e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,235 @@
+2009-01-15 Steve Ellcey <sje@cup.hp.com>
+
+ PR c++/38357
+ * pt.c (tsubst): Check for NULL args.
+
+2009-01-15 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/38636
+ * name-lookup.c (pushtag): Don't create members to types that are not
+ being created.
+
+2009-01-14 Nick Clifton <nickc@redhat.com>
+
+ PR c++/37862
+ * parser.c: Pass cp_id_kind computed in
+ cp_parser_postfix_dot_deref_expression to
+ cp_parser_primary_expression.
+
+2009-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38795
+ * tree.c (cp_walk_subtrees): Handle REINTERPRET_CAST_EXPR,
+ STATIC_CAST_EXPR, CONST_CAST_EXPR and DYNAMIC_CAST_EXPR the same
+ as CAST_EXPR.
+
+2009-01-12 Jason Merrill <jason@redhat.com>
+ Steve Ellcey <sje@cup.hp.com>
+
+ PR c++/35109
+ * name-lookup.c (lookup_name_real): Keep looking past a hidden
+ binding.
+
+2009-01-12 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/36019
+ * pt.c (parameter_of_template_p): New function.
+ * cp-tree.h: Declare it.
+ * name-lookup.c (binding_to_template_parms_of_scope_p): New
+ function.
+ (outer_binding): Take template parameters in account when looking for
+ a name binding.
+
+2009-01-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/31488
+ * tree.c (pod_type_p): Return 1 for structs created by the back end.
+
+2009-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/32041
+ * parser.c (cp_parser_builtin_offsetof): Allow `->' in
+ offsetof member-designator, handle it as `[0].'.
+
+ PR c++/38794
+ * decl.c (start_function): If grokdeclarator hasn't returned
+ FUNCTION_DECL nor error_mark_node, issue diagnostics.
+
+2009-01-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36254
+ * cp-gimplify.c (genericize_if_stmt): Renamed from ...
+ (gimplify_if_stmt): ... this.
+ (cp_gimplify_expr): Don't handle IF_STMT here.
+ (cp_genericize_r): Call genericize_if_stmt for IF_STMT.
+
+2009-01-10 Andrew Pinski <pinskia@gmail.com>
+
+ PR c++/38648
+ * typeck.c (cp_build_modify_expr): Check for NULL current_function_decl.
+
+ PR c++/36695
+ * typeck2.c (build_functional_cast): Check for reference type and NULL
+ PARMS.
+
+2009-01-09 Steve Ellcey <sje@cup.hp.com>
+
+ * typeck.c (cp_build_unary_op): Check for ERROR_MARK.
+
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35335
+ * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR.
+
+2009-01-09 John F. Carr <jfc@mit.edu>
+
+ PR c++/37877
+ * parser.c (cp_parser_class_specifier): Clear
+ parser->in_unbraced_linkage_specification_p while parsing class
+ specifiers.
+
+2009-01-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38725
+ * semantics.c (finish_goto_stmt): Convert destination to
+ void *.
+
+2009-01-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/35297
+ PR c++/35477
+ PR c++/35784
+ PR c++/36846
+ PR c++/38276
+ * pt.c (check_default_tmpl_args): Don't complain about
+ out-of-order parameter packs in the enclosing class
+ or parameter packs after default args.
+ (coerce_template_parms): If we have more than one
+ parameter pack, don't flatten argument packs.
+ (template_args_equal): Handle argument packs.
+ (comp_template_args): Don't flatten argument packs.
+ (check_instantiated_arg): Split out from...
+ (check_instantiated_args): Here. Handle arg packs.
+ (convert_template_argument): Just check that nontype argument
+ packs have the right type.
+
+2009-01-05 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/38472
+ * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo.
+
+2009-01-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/38698
+ * typeck2.c (process_init_constructor_union): Handle union with
+ no fields.
+
+ * mangle.c (write_expression): Remove mangling for zero-operand
+ casts.
+
+ PR c++/38701
+ * decl.c (cp_finish_decl): Clear DECL_INITIAL for invalid
+ defaulting.
+
+ PR c++/38702
+ * class.c (defaultable_fn_p): Only operator== can be a copy
+ assignment operator.
+
+2009-01-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/38698
+ * typeck2.c (process_init_constructor_union): Handle excess
+ initializers.
+ (process_init_constructor_record): Likewise.
+
+ PR c++/38684
+ * typeck2.c (digest_init_r): Don't use process_init_constructor
+ for non-aggregate classes.
+
+2008-12-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38647
+ * parser.c (cp_parser_primary_expression) <case RID_FUNCTION_NAME>:
+ Return error_mark_node if cp_parser_non_integral_constant_expression
+ returns true.
+
+ PR c++/38640
+ * semantics.c (finish_decltype_type): Handle TEMPLATE_PARM_INDEX.
+
+2008-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38635
+ * parser.c (cp_parser_condition): Use cp_parser_require
+ instead of cp_lexer_consume_token to consume =.
+
+ PR c++/38637
+ * decl.c (start_enum): If enumtype is error_mark_node, exit early.
+
+2008-12-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38650
+ * semantics.c (finish_omp_for): Don't add CLEANUP_POINT_EXPR
+ around volatile iteration var in condition and/or increment
+ expression.
+
+2008-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38639
+ * pt.c (tsubst_omp_for_iterator): RECUR on whole init_expr instead of
+ just its type.
+
+2008-12-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/38597
+ * name-lookup.c (arg_assoc_type): Handle DECLTYPE_TYPE.
+
+2008-12-20 Jakub Jelinek <jakub@redhat.com>
+ Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/36921
+ * c-common.c (warn_about_parentheses): Remove ARG_UNUSED from
+ arg_left. Don't warn about X<=Y<=Z if comparison's type isn't
+ integral.
+
+2008-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38577
+ * call.c (build_new_method_call): Handle call being COMPOUND_EXPR
+ or NOP_EXPR.
+
+2008-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38427
+ * init.c (perform_member_init): For value-initialized
+ references call permerror instead of warning and don't emit any
+ INIT_EXPR.
+
+2008-12-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/38485
+ * parser.c (cp_parser_token_starts_cast_expression): An EOF
+ can't start a cast-expression.
+
+2008-12-17 Jason Merrill <jason@redhat.com>
+
+ * semantics.c (describable_type): New function.
+ (finish_decltype_type): Use it for dependent exprs.
+ * cp-tree.h: Declare it.
+ * mangle.c (write_type) [DECLTYPE_TYPE]: Set skip_evaluation.
+ (write_expression): If skip_evaluation, use type stubs.
+ * tree.c (cp_tree_equal): Handle PARM_DECLs from different
+ declarations of a function.
+ * init.c (build_new): Do auto deduction if type is describable.
+ * decl.c (cp_finish_decl): Likewise.
+ * parser.c (cp_parser_omp_for_loop): Likewise.
+
+2008-12-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/35319
+ * mangle.c (write_builtin_type): Add mangling for decimal floating
+ point and fixed point types.
+ (write_type): Pass FIXED_POINT_TYPE along.
+
2008-12-09 Mark Mitchell <mark@codesourcery.com>
PR c++/37971
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 952e151f94b..09dc57d7a25 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -5993,6 +5993,15 @@ build_new_method_call (tree instance, tree fns, tree args,
if (processing_template_decl && call != error_mark_node)
{
+ bool cast_to_void = false;
+
+ if (TREE_CODE (call) == COMPOUND_EXPR)
+ call = TREE_OPERAND (call, 1);
+ else if (TREE_CODE (call) == NOP_EXPR)
+ {
+ cast_to_void = true;
+ call = TREE_OPERAND (call, 0);
+ }
if (TREE_CODE (call) == INDIRECT_REF)
call = TREE_OPERAND (call, 0);
call = (build_min_non_dep_call_list
@@ -6001,6 +6010,8 @@ build_new_method_call (tree instance, tree fns, tree args,
orig_instance, orig_fns, NULL_TREE),
orig_args));
call = convert_from_reference (call);
+ if (cast_to_void)
+ call = build_nop (void_type_node, call);
}
/* Free all the conversions we allocated. */
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 805e51322e8..8d326f296dc 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -4147,7 +4147,8 @@ defaultable_fn_p (tree fn)
}
else if (DECL_DESTRUCTOR_P (fn))
return true;
- else if (DECL_ASSIGNMENT_OPERATOR_P (fn))
+ else if (DECL_ASSIGNMENT_OPERATOR_P (fn)
+ && DECL_OVERLOADED_OPERATOR_P (fn) == NOP_EXPR)
return copy_fn_p (fn);
else
return false;
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 144de3f1ecd..99738eac72e 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -1,6 +1,6 @@
/* C++-specific tree lowering bits; see also c-gimplify.c and tree-gimple.c.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@redhat.com>
@@ -158,7 +158,7 @@ genericize_eh_spec_block (tree *stmt_p)
/* Genericize an IF_STMT by turning it into a COND_EXPR. */
static void
-gimplify_if_stmt (tree *stmt_p)
+genericize_if_stmt (tree *stmt_p)
{
tree stmt, cond, then_, else_;
location_t locus = EXPR_LOCATION (*stmt_p);
@@ -611,11 +611,6 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
ret = GS_ALL_DONE;
break;
- case IF_STMT:
- gimplify_if_stmt (expr_p);
- ret = GS_OK;
- break;
-
case FOR_STMT:
gimplify_for_stmt (expr_p, pre_p);
ret = GS_OK;
@@ -803,6 +798,13 @@ cp_genericize_r (tree *stmt_p, int *walk_subtrees, void *data)
CLEANUP_BODY (stmt),
CLEANUP_EXPR (stmt));
+ else if (TREE_CODE (stmt) == IF_STMT)
+ {
+ genericize_if_stmt (stmt_p);
+ /* *stmt_p has changed, tail recurse to handle it again. */
+ return cp_genericize_r (stmt_p, walk_subtrees, data);
+ }
+
/* COND_EXPR might have incompatible types in branches if one or both
arms are bitfields. Fix it up now. */
else if (TREE_CODE (stmt) == COND_EXPR)
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index bf22eb4d85f..718167f0160 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -1878,7 +1878,7 @@ struct lang_decl GTY(())
(IDENTIFIER_OPNAME_P (DECL_NAME (NODE)) \
? DECL_LANG_SPECIFIC (NODE)->u.f.operator_code : ERROR_MARK)
-/* Nonzero if NODE is an assignment operator. */
+/* Nonzero if NODE is an assignment operator (including += and such). */
#define DECL_ASSIGNMENT_OPERATOR_P(NODE) \
(DECL_LANG_SPECIFIC (NODE)->decl_flags.assignment_operator_p)
@@ -4603,6 +4603,7 @@ extern bool reregister_specialization (tree, tree, tree);
extern tree fold_non_dependent_expr (tree);
extern bool explicit_class_specialization_p (tree);
extern struct tinst_level *outermost_tinst_level(void);
+extern bool parameter_of_template_p (tree, tree);
/* in repo.c */
extern void init_repo (void);
@@ -4814,6 +4815,7 @@ extern bool cxx_omp_create_clause_info (tree, tree, bool, bool, bool);
extern tree baselink_for_fns (tree);
extern void finish_static_assert (tree, tree, location_t,
bool);
+extern tree describable_type (tree);
extern tree finish_decltype_type (tree, bool);
extern tree finish_trait_expr (enum cp_trait_kind, tree, tree);
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index e786b39c8e3..c6ed22d6e74 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1,6 +1,6 @@
/* Process declarations and variables for C++ compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
@@ -5496,7 +5496,7 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
TREE_TYPE (decl) = error_mark_node;
return;
}
- else if (!type_dependent_expression_p (init))
+ else if (describable_type (init))
{
type = TREE_TYPE (decl) = do_auto_deduction (type, init, auto_node);
if (type == error_mark_node)
@@ -5517,7 +5517,10 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
else if (init == ridpointers[(int)RID_DEFAULT])
{
if (!defaultable_fn_p (decl))
- error ("%qD cannot be defaulted", decl);
+ {
+ error ("%qD cannot be defaulted", decl);
+ DECL_INITIAL (decl) = NULL_TREE;
+ }
else
DECL_DEFAULTED_FN (decl) = 1;
}
@@ -10891,6 +10894,9 @@ start_enum (tree name, tree underlying_type, bool scoped_enum_p)
enumtype = pushtag (name, enumtype, /*tag_scope=*/ts_current);
}
+ if (enumtype == error_mark_node)
+ return enumtype;
+
if (scoped_enum_p)
{
SET_SCOPED_ENUM_P (enumtype, 1);
@@ -11768,10 +11774,15 @@ start_function (cp_decl_specifier_seq *declspecs,
tree decl1;
decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, 1, &attrs);
+ if (decl1 == error_mark_node)
+ return 0;
/* If the declarator is not suitable for a function definition,
cause a syntax error. */
if (decl1 == NULL_TREE || TREE_CODE (decl1) != FUNCTION_DECL)
- return 0;
+ {
+ error ("invalid function declaration");
+ return 0;
+ }
if (DECL_MAIN_P (decl1))
/* main must return int. grokfndecl should have corrected it
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 4a63f1df813..16c962809d7 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1,7 +1,7 @@
/* Call-backs for C++ error reporting.
This code is non-reentrant.
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
@@ -1977,6 +1977,7 @@ dump_expr (tree t, int flags)
case BIND_EXPR:
case STMT_EXPR:
+ case EXPR_STMT:
case STATEMENT_LIST:
/* We don't yet have a way of dumping statements in a
human-readable format. */
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index d71b68badaa..1285f160f00 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -435,19 +435,25 @@ perform_member_init (tree member, tree init)
{
/* mem() means value-initialization. */
if (TREE_CODE (type) == ARRAY_TYPE)
- init = build_vec_init (decl, NULL_TREE, NULL_TREE,
- /*explicit_value_init_p=*/true,
- /* from_array=*/0,
- tf_warning_or_error);
+ {
+ init = build_vec_init (decl, NULL_TREE, NULL_TREE,
+ /*explicit_value_init_p=*/true,
+ /* from_array=*/0,
+ tf_warning_or_error);
+ finish_expr_stmt (init);
+ }
else
{
if (TREE_CODE (type) == REFERENCE_TYPE)
- warning (0, "%Jdefault-initialization of %q#D, "
- "which has reference type",
- current_function_decl, member);
- init = build2 (INIT_EXPR, type, decl, build_value_init (type));
+ permerror (input_location, "%Jvalue-initialization of %q#D, "
+ "which has reference type",
+ current_function_decl, member);
+ else
+ {
+ init = build2 (INIT_EXPR, type, decl, build_value_init (type));
+ finish_expr_stmt (init);
+ }
}
- finish_expr_stmt (init);
}
/* Deal with this here, as we will get confused if we try to call the
assignment op for an anonymous union. This can happen in a
@@ -2329,7 +2335,7 @@ build_new (tree placement, tree type, tree nelts, tree init,
orig_init = init;
if (nelts == NULL_TREE && init != void_zero_node && list_length (init) == 1
- && !any_type_dependent_arguments_p (init))
+ && describable_type (TREE_VALUE (init)))
{
tree auto_node = type_uses_auto (type);
if (auto_node)
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index c0282d8ade5..a7b466217eb 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1598,6 +1598,7 @@ write_type (tree type)
case BOOLEAN_TYPE:
case INTEGER_TYPE: /* Includes wchar_t. */
case REAL_TYPE:
+ case FIXED_POINT_TYPE:
{
/* If this is a typedef, TYPE may not be one of
the standard builtin type nodes, but an alias of one. Use
@@ -1679,7 +1680,9 @@ write_type (tree type)
write_char ('t');
else
write_char ('T');
+ ++skip_evaluation;
write_expression (DECLTYPE_TYPE_EXPR (type));
+ --skip_evaluation;
write_char ('E');
break;
@@ -1852,6 +1855,59 @@ write_builtin_type (tree type)
gcc_unreachable ();
break;
+ case FIXED_POINT_TYPE:
+ write_string ("DF");
+ if (GET_MODE_IBIT (TYPE_MODE (type)) > 0)
+ write_unsigned_number (GET_MODE_IBIT (TYPE_MODE (type)));
+ if (type == fract_type_node
+ || type == sat_fract_type_node
+ || type == accum_type_node
+ || type == sat_accum_type_node)
+ write_char ('i');
+ else if (type == unsigned_fract_type_node
+ || type == sat_unsigned_fract_type_node
+ || type == unsigned_accum_type_node
+ || type == sat_unsigned_accum_type_node)
+ write_char ('j');
+ else if (type == short_fract_type_node
+ || type == sat_short_fract_type_node
+ || type == short_accum_type_node
+ || type == sat_short_accum_type_node)
+ write_char ('s');
+ else if (type == unsigned_short_fract_type_node
+ || type == sat_unsigned_short_fract_type_node
+ || type == unsigned_short_accum_type_node
+ || type == sat_unsigned_short_accum_type_node)
+ write_char ('t');
+ else if (type == long_fract_type_node
+ || type == sat_long_fract_type_node
+ || type == long_accum_type_node
+ || type == sat_long_accum_type_node)
+ write_char ('l');
+ else if (type == unsigned_long_fract_type_node
+ || type == sat_unsigned_long_fract_type_node
+ || type == unsigned_long_accum_type_node
+ || type == sat_unsigned_long_accum_type_node)
+ write_char ('m');
+ else if (type == long_long_fract_type_node
+ || type == sat_long_long_fract_type_node
+ || type == long_long_accum_type_node
+ || type == sat_long_long_accum_type_node)
+ write_char ('x');
+ else if (type == unsigned_long_long_fract_type_node
+ || type == sat_unsigned_long_long_fract_type_node
+ || type == unsigned_long_long_accum_type_node
+ || type == sat_unsigned_long_long_accum_type_node)
+ write_char ('y');
+ else
+ sorry ("mangling unknown fixed point type");
+ write_unsigned_number (GET_MODE_FBIT (TYPE_MODE (type)));
+ if (TYPE_SATURATING (type))
+ write_char ('s');
+ else
+ write_char ('n');
+ break;
+
default:
gcc_unreachable ();
}
@@ -2085,9 +2141,28 @@ write_member_name (tree member)
static void
write_expression (tree expr)
{
- enum tree_code code;
+ enum tree_code code = TREE_CODE (expr);
- code = TREE_CODE (expr);
+ /* Inside decltype we can simplify some expressions, since we're only
+ interested in the type. */
+ if (skip_evaluation)
+ {
+ tree type = describable_type (expr);
+ if (type == NULL_TREE)
+ ;
+ else if (TREE_CODE (type) == REFERENCE_TYPE)
+ {
+ write_string ("sT");
+ write_type (TREE_TYPE (type));
+ return;
+ }
+ else
+ {
+ write_string ("sR");
+ write_type (type);
+ return;
+ }
+ }
/* Skip NOP_EXPRs. They can occur when (say) a pointer argument
is converted (via qualification conversions) to another
@@ -2273,12 +2348,12 @@ write_expression (tree expr)
case CAST_EXPR:
write_type (TREE_TYPE (expr));
+ /* There is no way to mangle a zero-operand cast like
+ "T()". */
if (!TREE_OPERAND (expr, 0))
- /* "T()" is mangled as "T(void)". */
- write_char ('v');
+ sorry ("zero-operand casts cannot be mangled due to a defect "
+ "in the C++ ABI");
else if (list_length (TREE_OPERAND (expr, 0)) > 1)
- /* FIXME the above hack for T() needs to be replaced with
- something more general. */
sorry ("mangling function-style cast with more than one argument");
else
write_expression (TREE_VALUE (TREE_OPERAND (expr, 0)));
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index b5d14b3b39c..f8d0204f099 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -3968,9 +3968,34 @@ qualified_lookup_using_namespace (tree name, tree scope,
POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result->value != error_mark_node);
}
+/* Subroutine of outer_binding.
+ Returns TRUE if BINDING is a binding to a template parameter of SCOPE,
+ FALSE otherwise. */
+
+static bool
+binding_to_template_parms_of_scope_p (cxx_binding *binding,
+ cxx_scope *scope)
+{
+ tree binding_value;
+
+ if (!binding || !scope)
+ return false;
+
+ binding_value = binding->value ? binding->value : binding->type;
+
+ return (scope
+ && scope->this_entity
+ && get_template_info (scope->this_entity)
+ && parameter_of_template_p (binding_value,
+ TI_TEMPLATE (get_template_info \
+ (scope->this_entity))));
+}
+
/* Return the innermost non-namespace binding for NAME from a scope
- containing BINDING, or, if BINDING is NULL, the current scope. If
- CLASS_P is false, then class bindings are ignored. */
+ containing BINDING, or, if BINDING is NULL, the current scope.
+ Please note that for a given template, the template parameters are
+ considered to be in the scope containing the current scope.
+ If CLASS_P is false, then class bindings are ignored. */
cxx_binding *
outer_binding (tree name,
@@ -4018,6 +4043,16 @@ outer_binding (tree name,
return class_binding;
}
}
+ /* If we are in a member template, the template parms of the member
+ template are considered to be inside the scope of the containing
+ class, but within G++ the class bindings are all pushed between the
+ template parms and the function body. So if the outer binding is
+ a template parm for the current scope, return it now rather than
+ look for a class binding. */
+ if (outer_scope && outer_scope->kind == sk_template_parms
+ && binding_to_template_parms_of_scope_p (outer, scope))
+ return outer;
+
scope = scope->level_chain;
}
@@ -4118,16 +4153,25 @@ lookup_name_real (tree name, int prefer_type, int nonclass, bool block_p,
{
if (hidden_name_p (binding))
{
- /* A non namespace-scope binding can only be hidden if
- we are in a local class, due to friend declarations.
+ /* A non namespace-scope binding can only be hidden in the
+ presence of a local class, due to friend declarations.
+
In particular, consider:
+ struct C;
void f() {
struct A {
friend struct B;
- void g() { B* b; } // error: B is hidden
- }
+ friend struct C;
+ void g() {
+ B* b; // error: B is hidden
+ C* c; // OK, finds ::C
+ }
+ };
+ B *b; // error: B is hidden
+ C *c; // OK, finds ::C
struct B {};
+ B *bb; // OK
}
The standard says that "B" is a local class in "f"
@@ -4143,21 +4187,19 @@ lookup_name_real (tree name, int prefer_type, int nonclass, bool block_p,
the name specified is an unqualified name, a prior
declaration is looked up without considering scopes
that are outside the innermost enclosing non-class
- scope. For a friend class declaration, if there is no
- prior declaration, the class that is specified
- belongs to the innermost enclosing non-class scope,
- but if it is subsequently referenced, its name is not
- found by name lookup until a matching declaration is
- provided in the innermost enclosing nonclass scope.
+ scope. For a friend function declaration, if there is
+ no prior declaration, the program is ill-formed. For a
+ friend class declaration, if there is no prior
+ declaration, the class that is specified belongs to the
+ innermost enclosing non-class scope, but if it is
+ subsequently referenced, its name is not found by name
+ lookup until a matching declaration is provided in the
+ innermost enclosing nonclass scope.
+
+ So just keep looking for a non-hidden binding.
*/
- gcc_assert (current_class_type &&
- LOCAL_CLASS_P (current_class_type));
-
- /* This binding comes from a friend declaration in the local
- class. The standard (11.4.8) states that the lookup can
- only succeed if there is a non-hidden declaration in the
- current scope, which is not the case here. */
- POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
+ gcc_assert (TREE_CODE (binding) == TYPE_DECL);
+ continue;
}
val = binding;
break;
@@ -4701,6 +4743,7 @@ arg_assoc_type (struct arg_lookup *k, tree type)
case VECTOR_TYPE:
case BOOLEAN_TYPE:
case FIXED_POINT_TYPE:
+ case DECLTYPE_TYPE:
return false;
case RECORD_TYPE:
if (TYPE_PTRMEMFUNC_P (type))
@@ -5066,6 +5109,9 @@ pushtag (tree name, tree type, tag_scope scope)
if (b->kind == sk_class)
{
+ if (!TYPE_BEING_DEFINED (current_class_type))
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
+
if (!PROCESSING_REAL_TEMPLATE_DECL_P ())
/* Put this TYPE_DECL on the TYPE_FIELDS list for the
class. But if it's a member template class, we want
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 45abd2414d5..526a9a3acef 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -1,6 +1,6 @@
/* C++ Parser.
Copyright (C) 2000, 2001, 2002, 2003, 2004,
- 2005, 2007, 2008 Free Software Foundation, Inc.
+ 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Written by Mark Mitchell <mark@codesourcery.com>.
This file is part of GCC.
@@ -1586,7 +1586,7 @@ static tree cp_parser_nested_name_specifier
static tree cp_parser_qualifying_entity
(cp_parser *, bool, bool, bool, bool, bool);
static tree cp_parser_postfix_expression
- (cp_parser *, bool, bool, bool);
+ (cp_parser *, bool, bool, bool, cp_id_kind *);
static tree cp_parser_postfix_open_square_expression
(cp_parser *, tree, bool);
static tree cp_parser_postfix_dot_deref_expression
@@ -1596,7 +1596,7 @@ static tree cp_parser_parenthesized_expression_list
static void cp_parser_pseudo_destructor_name
(cp_parser *, tree *, tree *);
static tree cp_parser_unary_expression
- (cp_parser *, bool, bool);
+ (cp_parser *, bool, bool, cp_id_kind *);
static enum tree_code cp_parser_unary_operator
(cp_token *);
static tree cp_parser_new_expression
@@ -1614,17 +1614,17 @@ static tree cp_parser_new_initializer
static tree cp_parser_delete_expression
(cp_parser *);
static tree cp_parser_cast_expression
- (cp_parser *, bool, bool);
+ (cp_parser *, bool, bool, cp_id_kind *);
static tree cp_parser_binary_expression
- (cp_parser *, bool, enum cp_parser_prec);
+ (cp_parser *, bool, enum cp_parser_prec, cp_id_kind *);
static tree cp_parser_question_colon_clause
(cp_parser *, tree);
static tree cp_parser_assignment_expression
- (cp_parser *, bool);
+ (cp_parser *, bool, cp_id_kind *);
static enum tree_code cp_parser_assignment_operator_opt
(cp_parser *);
static tree cp_parser_expression
- (cp_parser *, bool);
+ (cp_parser *, bool, cp_id_kind *);
static tree cp_parser_constant_expression
(cp_parser *, bool, bool *);
static tree cp_parser_builtin_offsetof
@@ -3251,7 +3251,7 @@ cp_parser_primary_expression (cp_parser *parser,
else
{
/* Parse the parenthesized expression. */
- expr = cp_parser_expression (parser, cast_p);
+ expr = cp_parser_expression (parser, cast_p, idk);
/* Let the front end know that this expression was
enclosed in parentheses. This matters in case, for
example, the expression is of the form `A::B', since
@@ -3308,16 +3308,39 @@ cp_parser_primary_expression (cp_parser *parser,
case RID_FUNCTION_NAME:
case RID_PRETTY_FUNCTION_NAME:
case RID_C99_FUNCTION_NAME:
- /* The symbols __FUNCTION__, __PRETTY_FUNCTION__, and
- __func__ are the names of variables -- but they are
- treated specially. Therefore, they are handled here,
- rather than relying on the generic id-expression logic
- below. Grammatically, these names are id-expressions.
+ {
+ const char *name;
- Consume the token. */
- token = cp_lexer_consume_token (parser->lexer);
- /* Look up the name. */
- return finish_fname (token->u.value);
+ /* The symbols __FUNCTION__, __PRETTY_FUNCTION__, and
+ __func__ are the names of variables -- but they are
+ treated specially. Therefore, they are handled here,
+ rather than relying on the generic id-expression logic
+ below. Grammatically, these names are id-expressions.
+
+ Consume the token. */
+ token = cp_lexer_consume_token (parser->lexer);
+
+ switch (token->keyword)
+ {
+ case RID_FUNCTION_NAME:
+ name = "%<__FUNCTION__%>";
+ break;
+ case RID_PRETTY_FUNCTION_NAME:
+ name = "%<__PRETTY_FUNCTION__%>";
+ break;
+ case RID_C99_FUNCTION_NAME:
+ name = "%<__func__%>";
+ break;
+ default:
+ gcc_unreachable ();
+ }
+
+ if (cp_parser_non_integral_constant_expression (parser, name))
+ return error_mark_node;
+
+ /* Look up the name. */
+ return finish_fname (token->u.value);
+ }
case RID_VA_ARG:
{
@@ -3331,7 +3354,7 @@ cp_parser_primary_expression (cp_parser *parser,
cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Now, parse the assignment-expression. */
expression = cp_parser_assignment_expression (parser,
- /*cast_p=*/false);
+ /*cast_p=*/false, NULL);
/* Look for the `,'. */
cp_parser_require (parser, CPP_COMMA, "%<,%>");
/* Parse the type-id. */
@@ -4376,7 +4399,8 @@ cp_parser_qualifying_entity (cp_parser *parser,
static tree
cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
- bool member_access_only_p)
+ bool member_access_only_p,
+ cp_id_kind * pidk_return)
{
cp_token *token;
enum rid keyword;
@@ -4420,7 +4444,7 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
/* And the expression which is being cast. */
cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
- expression = cp_parser_expression (parser, /*cast_p=*/true);
+ expression = cp_parser_expression (parser, /*cast_p=*/true, & idk);
cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Only type conversions to integral or enumeration types
@@ -4492,7 +4516,7 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
tree expression;
/* Look for an expression. */
- expression = cp_parser_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_expression (parser, /*cast_p=*/false, & idk);
/* Compute its typeid. */
postfix_expression = build_typeid (expression);
/* Look for the `)' token. */
@@ -4744,6 +4768,7 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
}
if (BASELINK_P (fn))
+ {
postfix_expression
= (build_new_method_call
(instance, fn, args, NULL_TREE,
@@ -4751,6 +4776,7 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL),
/*fn_p=*/NULL,
tf_warning_or_error));
+ }
else
postfix_expression
= finish_call_expr (postfix_expression, args,
@@ -4839,6 +4865,8 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
break;
default:
+ if (pidk_return != NULL)
+ * pidk_return = idk;
if (member_access_only_p)
return is_member_access? postfix_expression : error_mark_node;
else
@@ -4880,7 +4908,7 @@ cp_parser_postfix_open_square_expression (cp_parser *parser,
if (for_offsetof)
index = cp_parser_constant_expression (parser, false, NULL);
else
- index = cp_parser_expression (parser, /*cast_p=*/false);
+ index = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* Look for the closing `]'. */
cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
@@ -4933,6 +4961,7 @@ cp_parser_postfix_dot_deref_expression (cp_parser *parser,
parser->qualifying_scope = NULL_TREE;
parser->object_scope = NULL_TREE;
*idk = CP_ID_KIND_NONE;
+
/* Enter the scope corresponding to the type of the object
given by the POSTFIX_EXPRESSION. */
if (!dependent_p && TREE_TYPE (postfix_expression) != NULL_TREE)
@@ -5162,7 +5191,7 @@ cp_parser_parenthesized_expression_list (cp_parser* parser,
*non_constant_p = true;
}
else
- expr = cp_parser_assignment_expression (parser, cast_p);
+ expr = cp_parser_assignment_expression (parser, cast_p, NULL);
if (fold_expr_p)
expr = fold_non_dependent_expr (expr);
@@ -5346,7 +5375,8 @@ cp_parser_pseudo_destructor_name (cp_parser* parser,
Returns a representation of the expression. */
static tree
-cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
+cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p,
+ cp_id_kind * pidk)
{
cp_token *token;
enum tree_code unary_operator;
@@ -5483,7 +5513,7 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
cast_expression
= cp_parser_cast_expression (parser,
unary_operator == ADDR_EXPR,
- /*cast_p=*/false);
+ /*cast_p=*/false, pidk);
/* Now, build an appropriate representation. */
switch (unary_operator)
{
@@ -5525,7 +5555,8 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
}
return cp_parser_postfix_expression (parser, address_p, cast_p,
- /*member_access_only_p=*/false);
+ /*member_access_only_p=*/false,
+ pidk);
}
/* Returns ERROR_MARK if TOKEN is not a unary-operator. If TOKEN is a
@@ -5790,7 +5821,7 @@ cp_parser_direct_new_declarator (cp_parser* parser)
if (!declarator)
{
cp_token *token = cp_lexer_peek_token (parser->lexer);
- expression = cp_parser_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* The standard requires that the expression have integral
type. DR 74 adds enumeration types. We believe that the
real intent is that these expressions be handled like the
@@ -5953,6 +5984,7 @@ cp_parser_token_starts_cast_expression (cp_token *token)
case CPP_XOR:
case CPP_OR:
case CPP_OR_OR:
+ case CPP_EOF:
return false;
/* '[' may start a primary-expression in obj-c++. */
@@ -5977,7 +6009,8 @@ cp_parser_token_starts_cast_expression (cp_token *token)
Returns a representation of the expression. */
static tree
-cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p)
+cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p,
+ cp_id_kind * pidk)
{
/* If it's a `(', then we might be looking at a cast. */
if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN))
@@ -6052,7 +6085,7 @@ cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p)
cp_parser_parse_definitely (parser);
expr = cp_parser_cast_expression (parser,
/*address_p=*/false,
- /*cast_p=*/true);
+ /*cast_p=*/true, pidk);
/* Warn about old-style casts, if so requested. */
if (warn_old_style_cast
@@ -6080,7 +6113,7 @@ cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p)
/* If we get here, then it's not a cast, so it must be a
unary-expression. */
- return cp_parser_unary_expression (parser, address_p, cast_p);
+ return cp_parser_unary_expression (parser, address_p, cast_p, pidk);
}
/* Parse a binary expression of the general form:
@@ -6164,7 +6197,8 @@ cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p)
static tree
cp_parser_binary_expression (cp_parser* parser, bool cast_p,
- enum cp_parser_prec prec)
+ enum cp_parser_prec prec,
+ cp_id_kind * pidk)
{
cp_parser_expression_stack stack;
cp_parser_expression_stack_entry *sp = &stack[0];
@@ -6175,7 +6209,7 @@ cp_parser_binary_expression (cp_parser* parser, bool cast_p,
bool overloaded_p;
/* Parse the first expression. */
- lhs = cp_parser_cast_expression (parser, /*address_p=*/false, cast_p);
+ lhs = cp_parser_cast_expression (parser, /*address_p=*/false, cast_p, pidk);
lhs_type = ERROR_MARK;
for (;;)
@@ -6316,12 +6350,12 @@ cp_parser_question_colon_clause (cp_parser* parser, tree logical_or_expr)
expr = NULL_TREE;
else
/* Parse the expression. */
- expr = cp_parser_expression (parser, /*cast_p=*/false);
+ expr = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* The next token should be a `:'. */
cp_parser_require (parser, CPP_COLON, "%<:%>");
/* Parse the assignment-expression. */
- assignment_expr = cp_parser_assignment_expression (parser, /*cast_p=*/false);
+ assignment_expr = cp_parser_assignment_expression (parser, /*cast_p=*/false, NULL);
/* Build the conditional-expression. */
return build_x_conditional_expr (logical_or_expr,
@@ -6342,7 +6376,8 @@ cp_parser_question_colon_clause (cp_parser* parser, tree logical_or_expr)
Returns a representation for the expression. */
static tree
-cp_parser_assignment_expression (cp_parser* parser, bool cast_p)
+cp_parser_assignment_expression (cp_parser* parser, bool cast_p,
+ cp_id_kind * pidk)
{
tree expr;
@@ -6355,7 +6390,7 @@ cp_parser_assignment_expression (cp_parser* parser, bool cast_p)
else
{
/* Parse the binary expressions (logical-or-expression). */
- expr = cp_parser_binary_expression (parser, cast_p, PREC_NOT_OPERATOR);
+ expr = cp_parser_binary_expression (parser, cast_p, PREC_NOT_OPERATOR, pidk);
/* If the next token is a `?' then we're actually looking at a
conditional-expression. */
if (cp_lexer_next_token_is (parser->lexer, CPP_QUERY))
@@ -6490,7 +6525,7 @@ cp_parser_assignment_operator_opt (cp_parser* parser)
Returns a representation of the expression. */
static tree
-cp_parser_expression (cp_parser* parser, bool cast_p)
+cp_parser_expression (cp_parser* parser, bool cast_p, cp_id_kind * pidk)
{
tree expression = NULL_TREE;
@@ -6500,7 +6535,7 @@ cp_parser_expression (cp_parser* parser, bool cast_p)
/* Parse the next assignment-expression. */
assignment_expression
- = cp_parser_assignment_expression (parser, cast_p);
+ = cp_parser_assignment_expression (parser, cast_p, pidk);
/* If this is the first assignment-expression, we can just
save it away. */
if (!expression)
@@ -6579,7 +6614,7 @@ cp_parser_constant_expression (cp_parser* parser,
For example, cp_parser_initializer_clauses uses this function to
determine whether a particular assignment-expression is in fact
constant. */
- expression = cp_parser_assignment_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_assignment_expression (parser, /*cast_p=*/false, NULL);
/* Restore the old settings. */
parser->integral_constant_expression_p
= saved_integral_constant_expression_p;
@@ -6603,7 +6638,8 @@ cp_parser_constant_expression (cp_parser* parser,
offsetof-member-designator:
id-expression
| offsetof-member-designator "." id-expression
- | offsetof-member-designator "[" expression "]" */
+ | offsetof-member-designator "[" expression "]"
+ | offsetof-member-designator "->" id-expression */
static tree
cp_parser_builtin_offsetof (cp_parser *parser)
@@ -6646,11 +6682,16 @@ cp_parser_builtin_offsetof (cp_parser *parser)
expr = cp_parser_postfix_open_square_expression (parser, expr, true);
break;
+ case CPP_DEREF:
+ /* offsetof-member-designator "->" identifier */
+ expr = grok_array_decl (expr, integer_zero_node);
+ /* FALLTHRU */
+
case CPP_DOT:
/* offsetof-member-designator "." identifier */
cp_lexer_consume_token (parser->lexer);
- expr = cp_parser_postfix_dot_deref_expression (parser, CPP_DOT, expr,
- true, &dummy,
+ expr = cp_parser_postfix_dot_deref_expression (parser, CPP_DOT,
+ expr, true, &dummy,
token->location);
break;
@@ -7056,7 +7097,7 @@ cp_parser_expression_statement (cp_parser* parser, tree in_statement_expr)
/* If the next token is a ';', then there is no expression
statement. */
if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
- statement = cp_parser_expression (parser, /*cast_p=*/false);
+ statement = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* Consume the final `;'. */
cp_parser_consume_semicolon_at_end_of_statement (parser);
@@ -7397,7 +7438,7 @@ cp_parser_condition (cp_parser* parser)
else
{
/* Consume the `='. */
- cp_lexer_consume_token (parser->lexer);
+ cp_parser_require (parser, CPP_EQ, "%<=%>");
initializer = cp_parser_initializer_clause (parser, &non_constant_p);
}
if (BRACE_ENCLOSED_INITIALIZER_P (initializer))
@@ -7424,7 +7465,7 @@ cp_parser_condition (cp_parser* parser)
cp_parser_abort_tentative_parse (parser);
/* Otherwise, we are looking at an expression. */
- return cp_parser_expression (parser, /*cast_p=*/false);
+ return cp_parser_expression (parser, /*cast_p=*/false, NULL);
}
/* Parse an iteration-statement.
@@ -7496,7 +7537,7 @@ cp_parser_iteration_statement (cp_parser* parser)
/* Look for the `('. */
cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the expression. */
- expression = cp_parser_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* We're done with the do-statement. */
finish_do_stmt (expression, statement);
/* Look for the `)'. */
@@ -7528,7 +7569,7 @@ cp_parser_iteration_statement (cp_parser* parser)
/* If there's an expression, process it. */
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
- expression = cp_parser_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_expression (parser, /*cast_p=*/false, NULL);
finish_for_expr (expression, statement);
/* Look for the `)'. */
cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
@@ -7669,7 +7710,7 @@ cp_parser_jump_statement (cp_parser* parser)
expr = cp_parser_braced_list (parser, &expr_non_constant_p);
}
else if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
- expr = cp_parser_expression (parser, /*cast_p=*/false);
+ expr = cp_parser_expression (parser, /*cast_p=*/false, NULL);
else
/* If the next token is a `;', then there is no
expression. */
@@ -7690,7 +7731,7 @@ cp_parser_jump_statement (cp_parser* parser)
/* Consume the '*' token. */
cp_lexer_consume_token (parser->lexer);
/* Parse the dependent expression. */
- finish_goto_stmt (cp_parser_expression (parser, /*cast_p=*/false));
+ finish_goto_stmt (cp_parser_expression (parser, /*cast_p=*/false, NULL));
}
else
finish_goto_stmt (cp_parser_identifier (parser));
@@ -8827,7 +8868,7 @@ cp_parser_decltype (cp_parser *parser)
/* Parse a class member access. */
expr = cp_parser_postfix_expression (parser, /*address_p=*/false,
/*cast_p=*/false,
- /*member_access_only_p=*/true);
+ /*member_access_only_p=*/true, NULL);
if (expr
&& expr != error_mark_node
@@ -8846,7 +8887,7 @@ cp_parser_decltype (cp_parser *parser)
cp_parser_abort_tentative_parse (parser);
/* Parse a full expression. */
- expr = cp_parser_expression (parser, /*cast_p=*/false);
+ expr = cp_parser_expression (parser, /*cast_p=*/false, NULL);
}
/* Go back to evaluating expressions. */
@@ -14394,7 +14435,7 @@ cp_parser_default_argument (cp_parser *parser, bool template_parm_p)
if (template_parm_p)
push_deferring_access_checks (dk_no_deferred);
default_argument
- = cp_parser_assignment_expression (parser, /*cast_p=*/false);
+ = cp_parser_assignment_expression (parser, /*cast_p=*/false, NULL);
if (template_parm_p)
pop_deferring_access_checks ();
/* Restore saved state. */
@@ -14849,6 +14890,7 @@ cp_parser_class_specifier (cp_parser* parser)
bool nested_name_specifier_p;
unsigned saved_num_template_parameter_lists;
bool saved_in_function_body;
+ bool saved_in_unbraced_linkage_specification_p;
tree old_scope = NULL_TREE;
tree scope = NULL_TREE;
tree bases;
@@ -14900,6 +14942,10 @@ cp_parser_class_specifier (cp_parser* parser)
/* We are not in a function body. */
saved_in_function_body = parser->in_function_body;
parser->in_function_body = false;
+ /* We are not immediately inside an extern "lang" block. */
+ saved_in_unbraced_linkage_specification_p
+ = parser->in_unbraced_linkage_specification_p;
+ parser->in_unbraced_linkage_specification_p = false;
/* Start the class. */
if (nested_name_specifier_p)
@@ -15012,6 +15058,8 @@ cp_parser_class_specifier (cp_parser* parser)
parser->in_function_body = saved_in_function_body;
parser->num_template_parameter_lists
= saved_num_template_parameter_lists;
+ parser->in_unbraced_linkage_specification_p
+ = saved_in_unbraced_linkage_specification_p;
return type;
}
@@ -16475,7 +16523,7 @@ cp_parser_throw_expression (cp_parser* parser)
expression = NULL_TREE;
else
expression = cp_parser_assignment_expression (parser,
- /*cast_p=*/false);
+ /*cast_p=*/false, NULL);
return build_throw (expression);
}
@@ -16567,7 +16615,7 @@ cp_parser_asm_operand_list (cp_parser* parser)
/* Look for the `('. */
cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the expression. */
- expression = cp_parser_expression (parser, /*cast_p=*/false);
+ expression = cp_parser_expression (parser, /*cast_p=*/false, NULL);
/* Look for the `)'. */
cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
@@ -17838,7 +17886,7 @@ static tree
cp_parser_simple_cast_expression (cp_parser *parser)
{
return cp_parser_cast_expression (parser, /*address_p=*/false,
- /*cast_p=*/false);
+ /*cast_p=*/false, NULL);
}
/* Parse a functional cast to TYPE. Returns an expression
@@ -18204,7 +18252,7 @@ cp_parser_late_parsing_default_args (cp_parser *parser, tree fn)
cp_parser_push_lexer_for_tokens (parser, tokens);
/* Parse the assignment-expression. */
- parsed_arg = cp_parser_assignment_expression (parser, /*cast_p=*/false);
+ parsed_arg = cp_parser_assignment_expression (parser, /*cast_p=*/false, NULL);
if (!processing_template_decl)
parsed_arg = check_default_argument (TREE_VALUE (parm), parsed_arg);
@@ -18325,7 +18373,7 @@ cp_parser_sizeof_operand (cp_parser* parser, enum rid keyword)
looking at the unary-expression production. */
if (!expr)
expr = cp_parser_unary_expression (parser, /*address_p=*/false,
- /*cast_p=*/false);
+ /*cast_p=*/false, NULL);
if (pack_expansion_p)
/* Build a pack expansion. */
@@ -19053,7 +19101,7 @@ cp_parser_objc_message_receiver (cp_parser* parser)
/* An Objective-C message receiver may be either (1) a type
or (2) an expression. */
cp_parser_parse_tentatively (parser);
- rcv = cp_parser_expression (parser, false);
+ rcv = cp_parser_expression (parser, false, NULL);
if (cp_parser_parse_definitely (parser))
return rcv;
@@ -19105,7 +19153,7 @@ cp_parser_objc_message_args (cp_parser* parser)
maybe_unary_selector_p = false;
cp_parser_require (parser, CPP_COLON, "%<:%>");
- arg = cp_parser_assignment_expression (parser, false);
+ arg = cp_parser_assignment_expression (parser, false, NULL);
sel_args
= chainon (sel_args,
@@ -19120,7 +19168,7 @@ cp_parser_objc_message_args (cp_parser* parser)
tree arg;
cp_lexer_consume_token (parser->lexer);
- arg = cp_parser_assignment_expression (parser, false);
+ arg = cp_parser_assignment_expression (parser, false, NULL);
addl_args
= chainon (addl_args,
@@ -20020,7 +20068,7 @@ cp_parser_objc_synchronized_statement (cp_parser *parser) {
location = cp_lexer_peek_token (parser->lexer)->location;
cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
- lock = cp_parser_expression (parser, false);
+ lock = cp_parser_expression (parser, false, NULL);
cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* NB: The @synchronized block needs to be wrapped in its own STATEMENT_LIST
@@ -20045,7 +20093,7 @@ cp_parser_objc_throw_statement (cp_parser *parser) {
cp_parser_require_keyword (parser, RID_AT_THROW, "%<@throw%>");
if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
- expr = cp_parser_assignment_expression (parser, false);
+ expr = cp_parser_assignment_expression (parser, false, NULL);
cp_parser_consume_semicolon_at_end_of_statement (parser);
@@ -20402,7 +20450,7 @@ cp_parser_omp_clause_num_threads (cp_parser *parser, tree list,
if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return list;
- t = cp_parser_expression (parser, false);
+ t = cp_parser_expression (parser, false, NULL);
if (t == error_mark_node
|| !cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
@@ -20559,7 +20607,7 @@ cp_parser_omp_clause_schedule (cp_parser *parser, tree list, location_t location
cp_lexer_consume_token (parser->lexer);
token = cp_lexer_peek_token (parser->lexer);
- t = cp_parser_assignment_expression (parser, false);
+ t = cp_parser_assignment_expression (parser, false, NULL);
if (t == error_mark_node)
goto resync_fail;
@@ -20788,7 +20836,7 @@ cp_parser_omp_atomic (cp_parser *parser, cp_token *pragma_tok)
cp_parser_require_pragma_eol (parser, pragma_tok);
lhs = cp_parser_unary_expression (parser, /*address_p=*/false,
- /*cast_p=*/false);
+ /*cast_p=*/false, NULL);
switch (TREE_CODE (lhs))
{
case ERROR_MARK:
@@ -20845,7 +20893,7 @@ cp_parser_omp_atomic (cp_parser *parser, cp_token *pragma_tok)
}
cp_lexer_consume_token (parser->lexer);
- rhs = cp_parser_expression (parser, false);
+ rhs = cp_parser_expression (parser, false, NULL);
if (rhs == error_mark_node)
goto saw_error;
break;
@@ -20919,7 +20967,7 @@ cp_parser_omp_flush (cp_parser *parser, cp_token *pragma_tok)
static tree
cp_parser_omp_for_cond (cp_parser *parser, tree decl)
{
- tree lhs = cp_parser_cast_expression (parser, false, false), rhs;
+ tree lhs = cp_parser_cast_expression (parser, false, false, NULL), rhs;
enum tree_code op;
cp_token *token;
@@ -20945,7 +20993,7 @@ cp_parser_omp_for_cond (cp_parser *parser, tree decl)
cp_lexer_consume_token (parser->lexer);
rhs = cp_parser_binary_expression (parser, false,
- PREC_RELATIONAL_EXPRESSION);
+ PREC_RELATIONAL_EXPRESSION, NULL);
if (rhs == error_mark_node
|| cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
{
@@ -20972,7 +21020,7 @@ cp_parser_omp_for_incr (cp_parser *parser, tree decl)
op = (token->type == CPP_PLUS_PLUS
? PREINCREMENT_EXPR : PREDECREMENT_EXPR);
cp_lexer_consume_token (parser->lexer);
- lhs = cp_parser_cast_expression (parser, false, false);
+ lhs = cp_parser_cast_expression (parser, false, false, NULL);
if (lhs != decl)
return error_mark_node;
return build2 (op, TREE_TYPE (decl), decl, NULL_TREE);
@@ -20997,13 +21045,13 @@ cp_parser_omp_for_incr (cp_parser *parser, tree decl)
if (op != NOP_EXPR)
{
- rhs = cp_parser_assignment_expression (parser, false);
+ rhs = cp_parser_assignment_expression (parser, false, NULL);
rhs = build2 (op, TREE_TYPE (decl), decl, rhs);
return build2 (MODIFY_EXPR, TREE_TYPE (decl), decl, rhs);
}
lhs = cp_parser_binary_expression (parser, false,
- PREC_ADDITIVE_EXPRESSION);
+ PREC_ADDITIVE_EXPRESSION, NULL);
token = cp_lexer_peek_token (parser->lexer);
decl_first = lhs == decl;
if (decl_first)
@@ -21017,7 +21065,7 @@ cp_parser_omp_for_incr (cp_parser *parser, tree decl)
op = token->type == CPP_PLUS ? PLUS_EXPR : MINUS_EXPR;
cp_lexer_consume_token (parser->lexer);
rhs = cp_parser_binary_expression (parser, false,
- PREC_ADDITIVE_EXPRESSION);
+ PREC_ADDITIVE_EXPRESSION, NULL);
token = cp_lexer_peek_token (parser->lexer);
if (token->type == CPP_PLUS || token->type == CPP_MINUS || decl_first)
{
@@ -21159,7 +21207,7 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
&is_direct_init,
&is_non_constant_init);
- if (auto_node && !type_dependent_expression_p (init))
+ if (auto_node && describable_type (init))
{
TREE_TYPE (decl)
= do_auto_deduction (TREE_TYPE (decl), init,
@@ -21187,7 +21235,7 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
{
/* Consume '='. */
cp_lexer_consume_token (parser->lexer);
- init = cp_parser_assignment_expression (parser, false);
+ init = cp_parser_assignment_expression (parser, false, NULL);
non_class:
if (TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE)
@@ -21220,7 +21268,7 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
cp_parser_parse_definitely (parser);
cp_parser_require (parser, CPP_EQ, "%<=%>");
- rhs = cp_parser_assignment_expression (parser, false);
+ rhs = cp_parser_assignment_expression (parser, false, NULL);
finish_expr_stmt (build_x_modify_expr (decl, NOP_EXPR,
rhs,
tf_warning_or_error));
@@ -21230,7 +21278,7 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
{
decl = NULL;
cp_parser_abort_tentative_parse (parser);
- init = cp_parser_expression (parser, false);
+ init = cp_parser_expression (parser, false, NULL);
if (init)
{
if (TREE_CODE (init) == MODIFY_EXPR
@@ -21347,7 +21395,7 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
|| CLASS_TYPE_P (TREE_TYPE (decl))))
incr = cp_parser_omp_for_incr (parser, decl);
else
- incr = cp_parser_expression (parser, false);
+ incr = cp_parser_expression (parser, false, NULL);
}
if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index db81942eb00..0618fe24328 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -3590,7 +3590,8 @@ check_default_tmpl_args (tree decl, tree parms, int is_primary,
if (TREE_PURPOSE (parm))
seen_def_arg_p = 1;
- else if (seen_def_arg_p)
+ else if (seen_def_arg_p
+ && !template_parameter_pack_p (TREE_VALUE (parm)))
{
error ("no default argument for %qD", TREE_VALUE (parm));
/* For better subsequent error-recovery, we indicate that
@@ -3601,6 +3602,9 @@ check_default_tmpl_args (tree decl, tree parms, int is_primary,
else if (is_primary
&& !is_partial
&& !is_friend_decl
+ /* Don't complain about an enclosing partial
+ specialization. */
+ && parm_level == parms
&& TREE_CODE (decl) == TYPE_DECL
&& i < ntparms - 1
&& template_parameter_pack_p (TREE_VALUE (parm)))
@@ -5060,7 +5064,19 @@ convert_template_argument (tree parm,
if (invalid_nontype_parm_type_p (t, complain))
return error_mark_node;
- if (!uses_template_parms (orig_arg) && !uses_template_parms (t))
+ if (template_parameter_pack_p (parm) && ARGUMENT_PACK_P (orig_arg))
+ {
+ if (same_type_p (t, TREE_TYPE (orig_arg)))
+ val = orig_arg;
+ else
+ {
+ /* Not sure if this is reachable, but it doesn't hurt
+ to be robust. */
+ error ("type mismatch in nontype parameter pack");
+ val = error_mark_node;
+ }
+ }
+ else if (!uses_template_parms (orig_arg) && !uses_template_parms (t))
/* We used to call digest_init here. However, digest_init
will report errors, which we don't want when complain
is zero. More importantly, digest_init will try too
@@ -5233,10 +5249,6 @@ coerce_template_parms (tree parms,
parameters. */
int variadic_p = 0;
- inner_args
- = expand_template_argument_pack (INNERMOST_TEMPLATE_ARGS (args));
-
- nargs = inner_args ? NUM_TMPL_ARGS (inner_args) : 0;
nparms = TREE_VEC_LENGTH (parms);
/* Determine if there are any parameter packs. */
@@ -5244,13 +5256,22 @@ coerce_template_parms (tree parms,
{
tree tparm = TREE_VALUE (TREE_VEC_ELT (parms, parm_idx));
if (template_parameter_pack_p (tparm))
- {
- variadic_p = 1;
- break;
- }
+ ++variadic_p;
}
- if ((nargs > nparms - variadic_p && !variadic_p)
+ inner_args = INNERMOST_TEMPLATE_ARGS (args);
+ /* If there are 0 or 1 parameter packs, we need to expand any argument
+ packs so that we can deduce a parameter pack from some non-packed args
+ followed by an argument pack, as in variadic85.C. If there are more
+ than that, we need to leave argument packs intact so the arguments are
+ assigned to the right parameter packs. This should only happen when
+ dealing with a nested class inside a partial specialization of a class
+ template, as in variadic92.C. */
+ if (variadic_p <= 1)
+ inner_args = expand_template_argument_pack (inner_args);
+
+ nargs = inner_args ? NUM_TMPL_ARGS (inner_args) : 0;
+ if ((nargs > nparms && !variadic_p)
|| (nargs < nparms - variadic_p
&& require_all_args
&& (!use_default_args
@@ -5297,42 +5318,48 @@ coerce_template_parms (tree parms,
}
/* Calculate the next argument. */
- if (template_parameter_pack_p (TREE_VALUE (parm)))
+ if (arg_idx < nargs)
+ arg = TREE_VEC_ELT (inner_args, arg_idx);
+ else
+ arg = NULL_TREE;
+
+ if (template_parameter_pack_p (TREE_VALUE (parm))
+ && !(arg && ARGUMENT_PACK_P (arg)))
{
- /* All remaining arguments will be placed in the
- template parameter pack PARM. */
- arg = coerce_template_parameter_pack (parms, parm_idx, args,
- inner_args, arg_idx,
- new_args, &lost,
- in_decl, complain);
-
+ /* All remaining arguments will be placed in the
+ template parameter pack PARM. */
+ arg = coerce_template_parameter_pack (parms, parm_idx, args,
+ inner_args, arg_idx,
+ new_args, &lost,
+ in_decl, complain);
+
/* Store this argument. */
if (arg == error_mark_node)
lost++;
TREE_VEC_ELT (new_inner_args, parm_idx) = arg;
- /* We are done with all of the arguments. */
- arg_idx = nargs;
-
+ /* We are done with all of the arguments. */
+ arg_idx = nargs;
+
continue;
}
- else if (arg_idx < nargs)
- {
- arg = TREE_VEC_ELT (inner_args, arg_idx);
-
- if (arg && PACK_EXPANSION_P (arg))
+ else if (arg)
+ {
+ if (PACK_EXPANSION_P (arg))
{
if (complain & tf_error)
{
+ /* FIXME this restriction was removed by N2555; see
+ bug 35722. */
/* If ARG is a pack expansion, but PARM is not a
template parameter pack (if it were, we would have
handled it above), we're trying to expand into a
fixed-length argument list. */
if (TREE_CODE (arg) == EXPR_PACK_EXPANSION)
- error ("cannot expand %<%E%> into a fixed-length "
+ sorry ("cannot expand %<%E%> into a fixed-length "
"argument list", arg);
else
- error ("cannot expand %<%T%> into a fixed-length "
+ sorry ("cannot expand %<%T%> into a fixed-length "
"argument list", arg);
}
return error_mark_node;
@@ -5389,6 +5416,25 @@ template_args_equal (tree ot, tree nt)
return PACK_EXPANSION_P (nt)
&& template_args_equal (PACK_EXPANSION_PATTERN (ot),
PACK_EXPANSION_PATTERN (nt));
+ else if (ARGUMENT_PACK_P (ot))
+ {
+ int i, len;
+ tree opack, npack;
+
+ if (!ARGUMENT_PACK_P (nt))
+ return 0;
+
+ opack = ARGUMENT_PACK_ARGS (ot);
+ npack = ARGUMENT_PACK_ARGS (nt);
+ len = TREE_VEC_LENGTH (opack);
+ if (TREE_VEC_LENGTH (npack) != len)
+ return 0;
+ for (i = 0; i < len; ++i)
+ if (!template_args_equal (TREE_VEC_ELT (opack, i),
+ TREE_VEC_ELT (npack, i)))
+ return 0;
+ return 1;
+ }
else if (TYPE_P (nt))
return TYPE_P (ot) && same_type_p (ot, nt);
else if (TREE_CODE (ot) == TREE_VEC || TYPE_P (ot))
@@ -5405,9 +5451,6 @@ comp_template_args (tree oldargs, tree newargs)
{
int i;
- oldargs = expand_template_argument_pack (oldargs);
- newargs = expand_template_argument_pack (newargs);
-
if (TREE_VEC_LENGTH (oldargs) != TREE_VEC_LENGTH (newargs))
return 0;
@@ -6384,6 +6427,30 @@ outermost_tinst_level (void)
return level;
}
+/* Returns TRUE if PARM is a parameter of the template TEMPL. */
+
+bool
+parameter_of_template_p (tree parm, tree templ)
+{
+ tree parms;
+ int i;
+
+ if (!parm || !templ)
+ return false;
+
+ gcc_assert (DECL_TEMPLATE_PARM_P (parm));
+ gcc_assert (TREE_CODE (templ) == TEMPLATE_DECL);
+
+ parms = DECL_TEMPLATE_PARMS (templ);
+ parms = INNERMOST_TEMPLATE_PARMS (parms);
+
+ for (i = 0; i < TREE_VEC_LENGTH (parms); ++i)
+ if (parm == TREE_VALUE (TREE_VEC_ELT (parms, i)))
+ return true;
+
+ return false;
+}
+
/* DECL is a friend FUNCTION_DECL or TEMPLATE_DECL. ARGS is the
vector of template arguments, as for tsubst.
@@ -8908,6 +8975,9 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
if (DECL_P (t))
return tsubst_decl (t, args, complain);
+ if (args == NULL_TREE)
+ return t;
+
if (TREE_CODE (t) == IDENTIFIER_NODE)
type = IDENTIFIER_TYPE_VALUE (t);
else
@@ -10334,14 +10404,11 @@ tsubst_omp_for_iterator (tree t, int i, tree declv, tree initv,
if (auto_node && init)
{
tree init_expr = init;
- tree orig_type;
if (TREE_CODE (init_expr) == DECL_EXPR)
init_expr = DECL_INITIAL (DECL_EXPR_DECL (init_expr));
- orig_type = TREE_TYPE (init_expr);
- TREE_TYPE (init_expr) = RECUR (TREE_TYPE (init_expr));
+ init_expr = RECUR (init_expr);
TREE_TYPE (decl)
= do_auto_deduction (TREE_TYPE (decl), init_expr, auto_node);
- TREE_TYPE (init_expr) = orig_type;
}
gcc_assert (!type_dependent_expression_p (decl));
@@ -11710,58 +11777,76 @@ tsubst_copy_and_build (tree t,
Emit an error under control of COMPLAIN, and return TRUE on error. */
static bool
-check_instantiated_args (tree tmpl, tree args, tsubst_flags_t complain)
+check_instantiated_arg (tree tmpl, tree t, tsubst_flags_t complain)
{
- int ix, len = DECL_NTPARMS (tmpl);
- bool result = false;
+ if (ARGUMENT_PACK_P (t))
+ {
+ tree vec = ARGUMENT_PACK_ARGS (t);
+ int len = TREE_VEC_LENGTH (vec);
+ bool result = false;
+ int i;
- for (ix = 0; ix != len; ix++)
+ for (i = 0; i < len; ++i)
+ if (check_instantiated_arg (tmpl, TREE_VEC_ELT (vec, i), complain))
+ result = true;
+ return result;
+ }
+ else if (TYPE_P (t))
{
- tree t = TREE_VEC_ELT (args, ix);
+ /* [basic.link]: A name with no linkage (notably, the name
+ of a class or enumeration declared in a local scope)
+ shall not be used to declare an entity with linkage.
+ This implies that names with no linkage cannot be used as
+ template arguments. */
+ tree nt = no_linkage_check (t, /*relaxed_p=*/false);
- if (TYPE_P (t))
+ if (nt)
{
- /* [basic.link]: A name with no linkage (notably, the name
- of a class or enumeration declared in a local scope)
- shall not be used to declare an entity with linkage.
- This implies that names with no linkage cannot be used as
- template arguments. */
- tree nt = no_linkage_check (t, /*relaxed_p=*/false);
-
- if (nt)
- {
- /* DR 488 makes use of a type with no linkage cause
- type deduction to fail. */
- if (complain & tf_error)
- {
- if (TYPE_ANONYMOUS_P (nt))
- error ("%qT is/uses anonymous type", t);
- else
- error ("template argument for %qD uses local type %qT",
- tmpl, t);
- }
- result = true;
- }
- /* In order to avoid all sorts of complications, we do not
- allow variably-modified types as template arguments. */
- else if (variably_modified_type_p (t, NULL_TREE))
+ /* DR 488 makes use of a type with no linkage cause
+ type deduction to fail. */
+ if (complain & tf_error)
{
- if (complain & tf_error)
- error ("%qT is a variably modified type", t);
- result = true;
+ if (TYPE_ANONYMOUS_P (nt))
+ error ("%qT is/uses anonymous type", t);
+ else
+ error ("template argument for %qD uses local type %qT",
+ tmpl, t);
}
+ return true;
}
- /* A non-type argument of integral or enumerated type must be a
- constant. */
- else if (TREE_TYPE (t)
- && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (t))
- && !TREE_CONSTANT (t))
+ /* In order to avoid all sorts of complications, we do not
+ allow variably-modified types as template arguments. */
+ else if (variably_modified_type_p (t, NULL_TREE))
{
if (complain & tf_error)
- error ("integral expression %qE is not constant", t);
- result = true;
+ error ("%qT is a variably modified type", t);
+ return true;
}
}
+ /* A non-type argument of integral or enumerated type must be a
+ constant. */
+ else if (TREE_TYPE (t)
+ && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (t))
+ && !TREE_CONSTANT (t))
+ {
+ if (complain & tf_error)
+ error ("integral expression %qE is not constant", t);
+ return true;
+ }
+ return false;
+}
+
+static bool
+check_instantiated_args (tree tmpl, tree args, tsubst_flags_t complain)
+{
+ int ix, len = DECL_NTPARMS (tmpl);
+ bool result = false;
+
+ for (ix = 0; ix != len; ix++)
+ {
+ if (check_instantiated_arg (tmpl, TREE_VEC_ELT (args, ix), complain))
+ result = true;
+ }
if (result && (complain & tf_error))
error (" trying to instantiate %qD", tmpl);
return result;
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index e0ae6fff4ad..c9f0641f5f8 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -547,7 +547,12 @@ finish_goto_stmt (tree destination)
{
/* The DESTINATION is being used as an rvalue. */
if (!processing_template_decl)
- destination = decay_conversion (destination);
+ {
+ destination = decay_conversion (destination);
+ destination = cp_convert (ptr_type_node, destination);
+ if (error_operand_p (destination))
+ return NULL_TREE;
+ }
/* We don't inline calls to functions with computed gotos.
Those functions are typically up to some funny business,
and may be depending on the labels being at particular
@@ -4262,13 +4267,25 @@ finish_omp_for (location_t locus, tree declv, tree initv, tree condv,
}
else
init = build2 (MODIFY_EXPR, void_type_node, decl, init);
- if (cond && TREE_SIDE_EFFECTS (cond) && COMPARISON_CLASS_P (cond))
+ if (cond
+ && TREE_SIDE_EFFECTS (cond)
+ && COMPARISON_CLASS_P (cond)
+ && !processing_template_decl)
{
- int n = TREE_SIDE_EFFECTS (TREE_OPERAND (cond, 1)) != 0;
- tree t = TREE_OPERAND (cond, n);
+ tree t = TREE_OPERAND (cond, 0);
+ if (TREE_SIDE_EFFECTS (t)
+ && t != decl
+ && (TREE_CODE (t) != NOP_EXPR
+ || TREE_OPERAND (t, 0) != decl))
+ TREE_OPERAND (cond, 0)
+ = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
- if (!processing_template_decl)
- TREE_OPERAND (cond, n)
+ t = TREE_OPERAND (cond, 1);
+ if (TREE_SIDE_EFFECTS (t)
+ && t != decl
+ && (TREE_CODE (t) != NOP_EXPR
+ || TREE_OPERAND (t, 0) != decl))
+ TREE_OPERAND (cond, 1)
= fold_build_cleanup_point_expr (TREE_TYPE (t), t);
}
if (decl == error_mark_node || init == error_mark_node)
@@ -4292,21 +4309,31 @@ finish_omp_for (location_t locus, tree declv, tree initv, tree condv,
for (i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INCR (omp_for)); i++)
{
- tree incr = TREE_VEC_ELT (OMP_FOR_INCR (omp_for), i);
+ decl = TREE_OPERAND (TREE_VEC_ELT (OMP_FOR_INIT (omp_for), i), 0);
+ incr = TREE_VEC_ELT (OMP_FOR_INCR (omp_for), i);
if (TREE_CODE (incr) != MODIFY_EXPR)
continue;
if (TREE_SIDE_EFFECTS (TREE_OPERAND (incr, 1))
- && BINARY_CLASS_P (TREE_OPERAND (incr, 1)))
+ && BINARY_CLASS_P (TREE_OPERAND (incr, 1))
+ && !processing_template_decl)
{
- tree t = TREE_OPERAND (incr, 1);
- int n = TREE_SIDE_EFFECTS (TREE_OPERAND (t, 1)) != 0;
+ tree t = TREE_OPERAND (TREE_OPERAND (incr, 1), 0);
+ if (TREE_SIDE_EFFECTS (t)
+ && t != decl
+ && (TREE_CODE (t) != NOP_EXPR
+ || TREE_OPERAND (t, 0) != decl))
+ TREE_OPERAND (TREE_OPERAND (incr, 1), 0)
+ = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
- if (!processing_template_decl)
- TREE_OPERAND (t, n)
- = fold_build_cleanup_point_expr (TREE_TYPE (TREE_OPERAND (t, n)),
- TREE_OPERAND (t, n));
+ t = TREE_OPERAND (TREE_OPERAND (incr, 1), 1);
+ if (TREE_SIDE_EFFECTS (t)
+ && t != decl
+ && (TREE_CODE (t) != NOP_EXPR
+ || TREE_OPERAND (t, 0) != decl))
+ TREE_OPERAND (TREE_OPERAND (incr, 1), 1)
+ = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
}
if (orig_incr)
@@ -4438,12 +4465,79 @@ finish_static_assert (tree condition, tree message, location_t location,
}
}
+/* Returns decltype((EXPR)) for cases where we can drop the decltype and
+ just return the type even though EXPR is a type-dependent expression.
+ The ABI specifies which cases this applies to, which is a subset of the
+ possible cases. */
+
+tree
+describable_type (tree expr)
+{
+ tree type = NULL_TREE;
+
+ /* processing_template_decl isn't set when we're called from the mangling
+ code, so bump it now. */
+ ++processing_template_decl;
+ if (! type_dependent_expression_p (expr)
+ && ! type_unknown_p (expr))
+ {
+ type = TREE_TYPE (expr);
+ if (real_lvalue_p (expr))
+ type = build_reference_type (type);
+ }
+ --processing_template_decl;
+
+ if (type)
+ return type;
+
+ switch (TREE_CODE (expr))
+ {
+ case VAR_DECL:
+ case PARM_DECL:
+ case RESULT_DECL:
+ case FUNCTION_DECL:
+ /* Named rvalue reference becomes lvalue. */
+ type = build_reference_type (non_reference (TREE_TYPE (expr)));
+ break;
+
+ case NEW_EXPR:
+ case CONST_DECL:
+ case TEMPLATE_PARM_INDEX:
+ case CAST_EXPR:
+ case STATIC_CAST_EXPR:
+ case REINTERPRET_CAST_EXPR:
+ case CONST_CAST_EXPR:
+ case DYNAMIC_CAST_EXPR:
+ type = TREE_TYPE (expr);
+ break;
+
+ case INDIRECT_REF:
+ {
+ tree ptrtype = describable_type (TREE_OPERAND (expr, 0));
+ if (ptrtype && POINTER_TYPE_P (ptrtype))
+ type = build_reference_type (TREE_TYPE (ptrtype));
+ }
+ break;
+
+ default:
+ if (TREE_CODE_CLASS (TREE_CODE (expr)) == tcc_constant)
+ type = TREE_TYPE (expr);
+ break;
+ }
+
+ if (type && type_uses_auto (type))
+ return NULL_TREE;
+ else
+ return type;
+}
+
/* Implements the C++0x decltype keyword. Returns the type of EXPR,
suitable for use as a type-specifier.
ID_EXPRESSION_OR_MEMBER_ACCESS_P is true when EXPR was parsed as an
id-expression or a class member access, FALSE when it was parsed as
a full expression. */
+
tree
finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
{
@@ -4464,6 +4558,29 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
if (type_dependent_expression_p (expr))
{
+ if (id_expression_or_member_access_p)
+ {
+ switch (TREE_CODE (expr))
+ {
+ case VAR_DECL:
+ case PARM_DECL:
+ case RESULT_DECL:
+ case FUNCTION_DECL:
+ case CONST_DECL:
+ case TEMPLATE_PARM_INDEX:
+ type = TREE_TYPE (expr);
+ break;
+
+ default:
+ break;
+ }
+ }
+ else
+ type = describable_type (expr);
+
+ if (type && !type_uses_auto (type))
+ return type;
+
type = cxx_make_type (DECLTYPE_TYPE);
DECLTYPE_TYPE_EXPR (type) = expr;
DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (type)
@@ -4528,6 +4645,7 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
case CONST_DECL:
case PARM_DECL:
case RESULT_DECL:
+ case TEMPLATE_PARM_INDEX:
type = TREE_TYPE (expr);
break;
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 2ae65431c7b..8ac272095be 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1,6 +1,6 @@
/* Language-dependent node constructors for parse phase of GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
@@ -1857,8 +1857,17 @@ cp_tree_equal (tree t1, tree t2)
return false;
return cp_tree_equal (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0));
- case VAR_DECL:
case PARM_DECL:
+ /* For comparing uses of parameters in late-specified return types
+ with an out-of-class definition of the function. */
+ if ((!DECL_CONTEXT (t1) || !DECL_CONTEXT (t2))
+ && same_type_p (TREE_TYPE (t1), TREE_TYPE (t2))
+ && DECL_NAME (t1) == DECL_NAME (t2))
+ return true;
+ else
+ return false;
+
+ case VAR_DECL:
case CONST_DECL:
case FUNCTION_DECL:
case TEMPLATE_DECL:
@@ -2118,8 +2127,10 @@ pod_type_p (const_tree t)
if (TREE_CODE (t) == VECTOR_TYPE)
return 1; /* vectors are (small) arrays of scalars */
- if (! CLASS_TYPE_P (t))
+ if (! RECORD_OR_UNION_CODE_P (TREE_CODE (t)))
return 0; /* other non-class type (reference or function) */
+ if (! CLASS_TYPE_P (t))
+ return 1; /* struct created by the back end */
if (CLASSTYPE_NON_POD_P (t))
return 0;
return 1;
@@ -2432,6 +2443,10 @@ cp_walk_subtrees (tree *tp, int *walk_subtrees_p, walk_tree_fn func,
break;
case CAST_EXPR:
+ case REINTERPRET_CAST_EXPR:
+ case STATIC_CAST_EXPR:
+ case CONST_CAST_EXPR:
+ case DYNAMIC_CAST_EXPR:
if (TREE_TYPE (*tp))
WALK_SUBTREE (TREE_TYPE (*tp));
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index ed01c511f3c..3c7787c675c 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -403,7 +403,7 @@ type_after_usual_arithmetic_conversions (tree t1, tree t2)
/* Perform the integral promotions. We do not promote real types here. */
if (INTEGRAL_OR_ENUMERATION_TYPE_P (t1)
- && INTEGRAL_OR_ENUMERATION_TYPE_P (t1))
+ && INTEGRAL_OR_ENUMERATION_TYPE_P (t2))
{
t1 = type_promotes_to (t1);
t2 = type_promotes_to (t2);
@@ -4189,7 +4189,7 @@ cp_build_unary_op (enum tree_code code, tree xarg, int noconvert,
tree val;
const char *invalid_op_diag;
- if (arg == error_mark_node)
+ if (error_operand_p (arg))
return error_mark_node;
if ((invalid_op_diag
@@ -6026,7 +6026,7 @@ cp_build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs,
}
/* Allow array assignment in compiler-generated code. */
- if (! DECL_ARTIFICIAL (current_function_decl))
+ if (!current_function_decl || !DECL_ARTIFICIAL (current_function_decl))
{
/* This routine is used for both initialization and assignment.
Make sure the diagnostic message differentiates the context. */
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 207dd9917d9..a19a99920b6 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -820,7 +820,8 @@ digest_init_r (tree type, tree init, bool nested)
|| TREE_CODE (type) == UNION_TYPE
|| TREE_CODE (type) == COMPLEX_TYPE);
- if (BRACE_ENCLOSED_INITIALIZER_P (init))
+ if (BRACE_ENCLOSED_INITIALIZER_P (init)
+ && !TYPE_NON_AGGREGATE_CLASS (type))
return process_init_constructor (type, init);
else
{
@@ -1081,6 +1082,9 @@ process_init_constructor_record (tree type, tree init)
CONSTRUCTOR_APPEND_ELT (v, field, next);
}
+ if (idx < VEC_length (constructor_elt, CONSTRUCTOR_ELTS (init)))
+ error ("too many initializers for %qT", type);
+
CONSTRUCTOR_ELTS (init) = v;
return flags;
}
@@ -1093,12 +1097,19 @@ static int
process_init_constructor_union (tree type, tree init)
{
constructor_elt *ce;
+ int len;
/* If the initializer was empty, use default zero initialization. */
if (VEC_empty (constructor_elt, CONSTRUCTOR_ELTS (init)))
return 0;
- gcc_assert (VEC_length (constructor_elt, CONSTRUCTOR_ELTS (init)) == 1);
+ len = VEC_length (constructor_elt, CONSTRUCTOR_ELTS (init));
+ if (len > 1)
+ {
+ error ("too many initializers for %qT", type);
+ VEC_block_remove (constructor_elt, CONSTRUCTOR_ELTS (init), 1, len-1);
+ }
+
ce = VEC_index (constructor_elt, CONSTRUCTOR_ELTS (init), 0);
/* If this element specifies a field, initialize via that field. */
@@ -1136,7 +1147,11 @@ process_init_constructor_union (tree type, tree init)
tree field = TYPE_FIELDS (type);
while (field && (!DECL_NAME (field) || TREE_CODE (field) != FIELD_DECL))
field = TREE_CHAIN (field);
- gcc_assert (field);
+ if (field == NULL_TREE)
+ {
+ error ("too many initializers for %qT", type);
+ ce->value = error_mark_node;
+ }
ce->index = field;
}
@@ -1430,6 +1445,12 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain)
else
type = exp;
+ if (TREE_CODE (type) == REFERENCE_TYPE && !parms)
+ {
+ error ("invalid value-initialization of reference types");
+ return error_mark_node;
+ }
+
if (processing_template_decl)
{
tree t = build_min (CAST_EXPR, type, parms);
diff --git a/gcc/cselib.c b/gcc/cselib.c
index d50d0c44f17..945a4a118de 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1,6 +1,7 @@
/* Common subexpression elimination library for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -865,12 +866,18 @@ expand_loc (struct elt_loc_list *p, bitmap regs_active, int max_depth)
continue;
else if (!REG_P (p->loc))
{
- rtx result;
+ rtx result, note;
if (dump_file)
{
print_inline_rtx (dump_file, p->loc, 0);
fprintf (dump_file, "\n");
}
+ if (GET_CODE (p->loc) == LO_SUM
+ && GET_CODE (XEXP (p->loc, 1)) == SYMBOL_REF
+ && p->setting_insn
+ && (note = find_reg_note (p->setting_insn, REG_EQUAL, NULL_RTX))
+ && XEXP (note, 0) == XEXP (p->loc, 1))
+ return XEXP (p->loc, 1);
result = cselib_expand_value_rtx (p->loc, regs_active, max_depth - 1);
if (result)
return result;
@@ -928,6 +935,7 @@ cselib_expand_value_rtx (rtx orig, bitmap regs_active, int max_depth)
int i, j;
RTX_CODE code;
const char *format_ptr;
+ enum machine_mode mode;
code = GET_CODE (orig);
@@ -1007,25 +1015,30 @@ cselib_expand_value_rtx (rtx orig, bitmap regs_active, int max_depth)
return orig;
break;
-
- case VALUE:
+ case SUBREG:
{
- rtx result;
- if (dump_file)
- fprintf (dump_file, "expanding value %s into: ", GET_MODE_NAME (GET_MODE (orig)));
-
- result = expand_loc (CSELIB_VAL_PTR (orig)->locs, regs_active, max_depth);
- if (result
- && GET_CODE (result) == CONST_INT
- && GET_MODE (orig) != VOIDmode)
- {
- result = gen_rtx_CONST (GET_MODE (orig), result);
- if (dump_file)
- fprintf (dump_file, " wrapping const_int result in const to preserve mode %s\n",
- GET_MODE_NAME (GET_MODE (orig)));
- }
- return result;
+ rtx subreg = cselib_expand_value_rtx (SUBREG_REG (orig), regs_active,
+ max_depth - 1);
+ if (!subreg)
+ return NULL;
+ scopy = simplify_gen_subreg (GET_MODE (orig), subreg,
+ GET_MODE (SUBREG_REG (orig)),
+ SUBREG_BYTE (orig));
+ if (scopy == NULL
+ || (GET_CODE (scopy) == SUBREG
+ && !REG_P (SUBREG_REG (scopy))
+ && !MEM_P (SUBREG_REG (scopy))))
+ return shallow_copy_rtx (orig);
+ return scopy;
}
+
+ case VALUE:
+ if (dump_file)
+ fprintf (dump_file, "expanding value %s into: ",
+ GET_MODE_NAME (GET_MODE (orig)));
+
+ return expand_loc (CSELIB_VAL_PTR (orig)->locs, regs_active, max_depth);
+
default:
break;
}
@@ -1036,9 +1049,9 @@ cselib_expand_value_rtx (rtx orig, bitmap regs_active, int max_depth)
us to explicitly document why we are *not* copying a flag. */
copy = shallow_copy_rtx (orig);
- format_ptr = GET_RTX_FORMAT (GET_CODE (copy));
+ format_ptr = GET_RTX_FORMAT (code);
- for (i = 0; i < GET_RTX_LENGTH (GET_CODE (copy)); i++)
+ for (i = 0; i < GET_RTX_LENGTH (code); i++)
switch (*format_ptr++)
{
case 'e':
@@ -1082,6 +1095,70 @@ cselib_expand_value_rtx (rtx orig, bitmap regs_active, int max_depth)
gcc_unreachable ();
}
+ mode = GET_MODE (copy);
+ /* If an operand has been simplified into CONST_INT, which doesn't
+ have a mode and the mode isn't derivable from whole rtx's mode,
+ try simplify_*_operation first with mode from original's operand
+ and as a fallback wrap CONST_INT into gen_rtx_CONST. */
+ scopy = copy;
+ switch (GET_RTX_CLASS (code))
+ {
+ case RTX_UNARY:
+ if (CONST_INT_P (XEXP (copy, 0))
+ && GET_MODE (XEXP (orig, 0)) != VOIDmode)
+ {
+ scopy = simplify_unary_operation (code, mode, XEXP (copy, 0),
+ GET_MODE (XEXP (orig, 0)));
+ if (scopy)
+ return scopy;
+ }
+ break;
+ case RTX_COMM_ARITH:
+ case RTX_BIN_ARITH:
+ /* These expressions can derive operand modes from the whole rtx's mode. */
+ break;
+ case RTX_TERNARY:
+ case RTX_BITFIELD_OPS:
+ if (CONST_INT_P (XEXP (copy, 0))
+ && GET_MODE (XEXP (orig, 0)) != VOIDmode)
+ {
+ scopy = simplify_ternary_operation (code, mode,
+ GET_MODE (XEXP (orig, 0)),
+ XEXP (copy, 0), XEXP (copy, 1),
+ XEXP (copy, 2));
+ if (scopy)
+ return scopy;
+ }
+ break;
+ case RTX_COMPARE:
+ case RTX_COMM_COMPARE:
+ if (CONST_INT_P (XEXP (copy, 0))
+ && GET_MODE (XEXP (copy, 1)) == VOIDmode
+ && (GET_MODE (XEXP (orig, 0)) != VOIDmode
+ || GET_MODE (XEXP (orig, 1)) != VOIDmode))
+ {
+ scopy = simplify_relational_operation (code, mode,
+ (GET_MODE (XEXP (orig, 0))
+ != VOIDmode)
+ ? GET_MODE (XEXP (orig, 0))
+ : GET_MODE (XEXP (orig, 1)),
+ XEXP (copy, 0),
+ XEXP (copy, 1));
+ if (scopy)
+ return scopy;
+ }
+ break;
+ default:
+ break;
+ }
+ if (scopy == NULL_RTX)
+ {
+ XEXP (copy, 0)
+ = gen_rtx_CONST (GET_MODE (XEXP (orig, 0)), XEXP (copy, 0));
+ if (dump_file)
+ fprintf (dump_file, " wrapping const_int result in const to preserve mode %s\n",
+ GET_MODE_NAME (GET_MODE (XEXP (copy, 0))));
+ }
scopy = simplify_rtx (copy);
if (scopy)
return scopy;
@@ -1581,6 +1658,17 @@ cselib_record_sets (rtx insn)
}
}
+ if (n_sets == 1
+ && MEM_P (sets[0].src)
+ && !cselib_record_memory
+ && MEM_READONLY_P (sets[0].src))
+ {
+ rtx note = find_reg_equal_equiv_note (insn);
+
+ if (note && CONSTANT_P (XEXP (note, 0)))
+ sets[0].src = XEXP (note, 0);
+ }
+
/* Look up the values that are read. Do this before invalidating the
locations that are written. */
for (i = 0; i < n_sets; i++)
diff --git a/gcc/dce.c b/gcc/dce.c
index 63ea3806606..5a64fb2ecf8 100644
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -1,5 +1,5 @@
/* RTL dead code elimination.
- Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h"
#include "tree-pass.h"
#include "dbgcnt.h"
+#include "tm_p.h"
DEF_VEC_I(int);
DEF_VEC_ALLOC_I(int,heap);
@@ -57,6 +58,7 @@ static sbitmap marked;
static bitmap_obstack dce_blocks_bitmap_obstack;
static bitmap_obstack dce_tmp_bitmap_obstack;
+static bool find_call_stack_args (rtx, bool, bool, bitmap);
/* A subroutine for which BODY is part of the instruction being tested;
either the top-level pattern, or an element of a PARALLEL. The
@@ -94,7 +96,7 @@ deletable_insn_p_1 (rtx body)
the DCE pass. */
static bool
-deletable_insn_p (rtx insn, bool fast)
+deletable_insn_p (rtx insn, bool fast, bitmap arg_stores)
{
rtx body, x;
int i;
@@ -111,7 +113,7 @@ deletable_insn_p (rtx insn, bool fast)
infinite loop. */
&& (RTL_CONST_OR_PURE_CALL_P (insn)
&& !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)))
- return true;
+ return find_call_stack_args (insn, false, fast, arg_stores);
if (!NONJUMP_INSN_P (insn))
return false;
@@ -174,6 +176,12 @@ mark_insn (rtx insn, bool fast)
SET_BIT (marked, INSN_UID (insn));
if (dump_file)
fprintf (dump_file, " Adding insn %d to worklist\n", INSN_UID (insn));
+ if (CALL_P (insn)
+ && !df_in_progress
+ && !SIBLING_CALL_P (insn)
+ && (RTL_CONST_OR_PURE_CALL_P (insn)
+ && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)))
+ find_call_stack_args (insn, true, fast, NULL);
}
}
@@ -212,6 +220,254 @@ mark_nonreg_stores (rtx body, rtx insn, bool fast)
}
+/* Try to find all stack stores of CALL_INSN arguments if
+ ACCUMULATE_OUTGOING_ARGS. If all stack stores have been found
+ and it is therefore safe to eliminate the call, return true,
+ otherwise return false. This function should be first called
+ with DO_MARK false, and only when the CALL_INSN is actually
+ going to be marked called again with DO_MARK true. */
+
+static bool
+find_call_stack_args (rtx call_insn, bool do_mark, bool fast,
+ bitmap arg_stores)
+{
+ rtx p, insn, prev_insn;
+ bool ret;
+ HOST_WIDE_INT min_sp_off, max_sp_off;
+ bitmap sp_bytes;
+
+ gcc_assert (CALL_P (call_insn));
+ if (!ACCUMULATE_OUTGOING_ARGS)
+ return true;
+
+ if (!do_mark)
+ {
+ gcc_assert (arg_stores);
+ bitmap_clear (arg_stores);
+ }
+
+ min_sp_off = INTTYPE_MAXIMUM (HOST_WIDE_INT);
+ max_sp_off = 0;
+
+ /* First determine the minimum and maximum offset from sp for
+ stored arguments. */
+ for (p = CALL_INSN_FUNCTION_USAGE (call_insn); p; p = XEXP (p, 1))
+ if (GET_CODE (XEXP (p, 0)) == USE
+ && MEM_P (XEXP (XEXP (p, 0), 0)))
+ {
+ rtx mem = XEXP (XEXP (p, 0), 0), addr, size;
+ HOST_WIDE_INT off = 0;
+ size = MEM_SIZE (mem);
+ if (size == NULL_RTX)
+ return false;
+ addr = XEXP (mem, 0);
+ if (GET_CODE (addr) == PLUS
+ && REG_P (XEXP (addr, 0))
+ && CONST_INT_P (XEXP (addr, 1)))
+ {
+ off = INTVAL (XEXP (addr, 1));
+ addr = XEXP (addr, 0);
+ }
+ if (addr != stack_pointer_rtx)
+ {
+ if (!REG_P (addr))
+ return false;
+ /* If not fast, use chains to see if addr wasn't set to
+ sp + offset. */
+ if (!fast)
+ {
+ df_ref *use_rec;
+ struct df_link *defs;
+ rtx set;
+
+ for (use_rec = DF_INSN_USES (call_insn); *use_rec; use_rec++)
+ if (rtx_equal_p (addr, DF_REF_REG (*use_rec)))
+ break;
+
+ if (*use_rec == NULL)
+ return false;
+
+ for (defs = DF_REF_CHAIN (*use_rec); defs; defs = defs->next)
+ if (! DF_REF_IS_ARTIFICIAL (defs->ref))
+ break;
+
+ if (defs == NULL)
+ return false;
+
+ set = single_set (DF_REF_INSN (defs->ref));
+ if (!set)
+ return false;
+
+ if (GET_CODE (SET_SRC (set)) != PLUS
+ || XEXP (SET_SRC (set), 0) != stack_pointer_rtx
+ || !CONST_INT_P (XEXP (SET_SRC (set), 1)))
+ return false;
+
+ off += INTVAL (XEXP (SET_SRC (set), 1));
+ }
+ else
+ return false;
+ }
+ min_sp_off = MIN (min_sp_off, off);
+ max_sp_off = MAX (max_sp_off, off + INTVAL (size));
+ }
+
+ if (min_sp_off >= max_sp_off)
+ return true;
+ sp_bytes = BITMAP_ALLOC (NULL);
+
+ /* Set bits in SP_BYTES bitmap for bytes relative to sp + min_sp_off
+ which contain arguments. Checking has been done in the previous
+ loop. */
+ for (p = CALL_INSN_FUNCTION_USAGE (call_insn); p; p = XEXP (p, 1))
+ if (GET_CODE (XEXP (p, 0)) == USE
+ && MEM_P (XEXP (XEXP (p, 0), 0)))
+ {
+ rtx mem = XEXP (XEXP (p, 0), 0), addr;
+ HOST_WIDE_INT off = 0, byte;
+ addr = XEXP (mem, 0);
+ if (GET_CODE (addr) == PLUS
+ && REG_P (XEXP (addr, 0))
+ && CONST_INT_P (XEXP (addr, 1)))
+ {
+ off = INTVAL (XEXP (addr, 1));
+ addr = XEXP (addr, 0);
+ }
+ if (addr != stack_pointer_rtx)
+ {
+ df_ref *use_rec;
+ struct df_link *defs;
+ rtx set;
+
+ for (use_rec = DF_INSN_USES (call_insn); *use_rec; use_rec++)
+ if (rtx_equal_p (addr, DF_REF_REG (*use_rec)))
+ break;
+
+ for (defs = DF_REF_CHAIN (*use_rec); defs; defs = defs->next)
+ if (! DF_REF_IS_ARTIFICIAL (defs->ref))
+ break;
+
+ set = single_set (DF_REF_INSN (defs->ref));
+ off += INTVAL (XEXP (SET_SRC (set), 1));
+ }
+ for (byte = off; byte < off + INTVAL (MEM_SIZE (mem)); byte++)
+ {
+ gcc_assert (!bitmap_bit_p (sp_bytes, byte - min_sp_off));
+ bitmap_set_bit (sp_bytes, byte - min_sp_off);
+ }
+ }
+
+ /* Walk backwards, looking for argument stores. The search stops
+ when seeing another call, sp adjustment or memory store other than
+ argument store. */
+ ret = false;
+ for (insn = PREV_INSN (call_insn); insn; insn = prev_insn)
+ {
+ rtx set, mem, addr;
+ HOST_WIDE_INT off, byte;
+
+ if (insn == BB_HEAD (BLOCK_FOR_INSN (call_insn)))
+ prev_insn = NULL_RTX;
+ else
+ prev_insn = PREV_INSN (insn);
+
+ if (CALL_P (insn))
+ break;
+
+ if (!INSN_P (insn))
+ continue;
+
+ set = single_set (insn);
+ if (!set || SET_DEST (set) == stack_pointer_rtx)
+ break;
+
+ if (!MEM_P (SET_DEST (set)))
+ continue;
+
+ mem = SET_DEST (set);
+ addr = XEXP (mem, 0);
+ off = 0;
+ if (GET_CODE (addr) == PLUS
+ && REG_P (XEXP (addr, 0))
+ && CONST_INT_P (XEXP (addr, 1)))
+ {
+ off = INTVAL (XEXP (addr, 1));
+ addr = XEXP (addr, 0);
+ }
+ if (addr != stack_pointer_rtx)
+ {
+ if (!REG_P (addr))
+ break;
+ if (!fast)
+ {
+ df_ref *use_rec;
+ struct df_link *defs;
+ rtx set;
+
+ for (use_rec = DF_INSN_USES (insn); *use_rec; use_rec++)
+ if (rtx_equal_p (addr, DF_REF_REG (*use_rec)))
+ break;
+
+ if (*use_rec == NULL)
+ break;
+
+ for (defs = DF_REF_CHAIN (*use_rec); defs; defs = defs->next)
+ if (! DF_REF_IS_ARTIFICIAL (defs->ref))
+ break;
+
+ if (defs == NULL)
+ break;
+
+ set = single_set (DF_REF_INSN (defs->ref));
+ if (!set)
+ break;
+
+ if (GET_CODE (SET_SRC (set)) != PLUS
+ || XEXP (SET_SRC (set), 0) != stack_pointer_rtx
+ || !CONST_INT_P (XEXP (SET_SRC (set), 1)))
+ break;
+
+ off += INTVAL (XEXP (SET_SRC (set), 1));
+ }
+ else
+ break;
+ }
+
+ if (GET_MODE_SIZE (GET_MODE (mem)) == 0)
+ break;
+
+ for (byte = off; byte < off + GET_MODE_SIZE (GET_MODE (mem)); byte++)
+ {
+ if (byte < min_sp_off
+ || byte >= max_sp_off
+ || !bitmap_bit_p (sp_bytes, byte - min_sp_off))
+ break;
+ bitmap_clear_bit (sp_bytes, byte - min_sp_off);
+ }
+
+ if (!deletable_insn_p (insn, fast, NULL))
+ break;
+
+ if (do_mark)
+ mark_insn (insn, fast);
+ else
+ bitmap_set_bit (arg_stores, INSN_UID (insn));
+
+ if (bitmap_empty_p (sp_bytes))
+ {
+ ret = true;
+ break;
+ }
+ }
+
+ BITMAP_FREE (sp_bytes);
+ if (!ret && arg_stores)
+ bitmap_clear (arg_stores);
+
+ return ret;
+}
+
+
/* Delete all REG_EQUAL notes of the registers INSN writes, to prevent
bad dangling REG_EQUAL notes. */
@@ -266,6 +522,13 @@ delete_unmarked_insns (void)
else if (marked_insn_p (insn))
continue;
+ /* Beware that reaching a dbg counter limit here can rarely
+ result in miscompiled file. This occurs when a group of
+ insns must be deleted together. Currently this only
+ can happen on non-looping pure and constant calls
+ on machines where ACCUMULATE_OUTGOING_ARGS is true. By
+ using the dbg_cnt, it is possible to remove the call, but
+ leave the argument pushes to the stack. */
if (!dbg_cnt (dce))
continue;
@@ -300,20 +563,37 @@ static void
prescan_insns_for_dce (bool fast)
{
basic_block bb;
- rtx insn, next;
-
+ rtx insn, prev;
+ bitmap arg_stores = NULL;
+
if (dump_file)
fprintf (dump_file, "Finding needed instructions:\n");
-
+
+ if (!df_in_progress && ACCUMULATE_OUTGOING_ARGS)
+ arg_stores = BITMAP_ALLOC (NULL);
+
FOR_EACH_BB (bb)
- FOR_BB_INSNS_SAFE (bb, insn, next)
- if (INSN_P (insn))
- {
- if (deletable_insn_p (insn, fast))
- mark_nonreg_stores (PATTERN (insn), insn, fast);
- else
- mark_insn (insn, fast);
- }
+ {
+ FOR_BB_INSNS_REVERSE_SAFE (bb, insn, prev)
+ if (INSN_P (insn))
+ {
+ /* Don't mark argument stores now. They will be marked
+ if needed when the associated CALL is marked. */
+ if (arg_stores && bitmap_bit_p (arg_stores, INSN_UID (insn)))
+ continue;
+ if (deletable_insn_p (insn, fast, arg_stores))
+ mark_nonreg_stores (PATTERN (insn), insn, fast);
+ else
+ mark_insn (insn, fast);
+ }
+ /* find_call_stack_args only looks at argument stores in the
+ same bb. */
+ if (arg_stores)
+ bitmap_clear (arg_stores);
+ }
+
+ if (arg_stores)
+ BITMAP_FREE (arg_stores);
if (dump_file)
fprintf (dump_file, "Finished finding needed instructions:\n");
@@ -601,13 +881,13 @@ dce_process_block (basic_block bb, bool redo_out, bitmap au)
if (dump_file)
{
- fprintf (dump_file, "processing block %d live out = ", bb->index);
+ fprintf (dump_file, "processing block %d lr out = ", bb->index);
df_print_regset (dump_file, DF_LR_OUT (bb));
}
bitmap_copy (local_live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, local_live);
+ df_simulate_initialize_backwards (bb, local_live);
FOR_BB_INSNS_REVERSE (bb, insn)
if (INSN_P (insn))
@@ -636,7 +916,7 @@ dce_process_block (basic_block bb, bool redo_out, bitmap au)
df_simulate_uses (insn, local_live);
}
- df_simulate_artificial_refs_at_top (bb, local_live);
+ df_simulate_finalize_backwards (bb, local_live);
block_changed = !bitmap_equal_p (local_live, DF_LR_IN (bb));
if (block_changed)
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 25dea30817b..0bfef8a08eb 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -443,7 +443,7 @@ df_rd_local_compute (bitmap all_blocks)
}
/* Set up the knockout bit vectors to be applied across EH_EDGES. */
- EXECUTE_IF_SET_IN_BITMAP (df_invalidated_by_call, 0, regno, bi)
+ EXECUTE_IF_SET_IN_BITMAP (regs_invalidated_by_call_regset, 0, regno, bi)
{
if (DF_DEFS_COUNT (regno) > DF_SPARSE_THRESHOLD)
bitmap_set_bit (sparse_invalidated, regno);
@@ -975,7 +975,7 @@ df_lr_confluence_n (edge e)
/* ??? Abnormal call edges ignored for the moment, as this gets
confused by sibling call edges, which crashes reg-stack. */
if (e->flags & EDGE_EH)
- bitmap_ior_and_compl_into (op1, op2, df_invalidated_by_call);
+ bitmap_ior_and_compl_into (op1, op2, regs_invalidated_by_call_regset);
else
bitmap_ior_into (op1, op2);
@@ -1001,25 +1001,34 @@ df_lr_transfer_function (int bb_index)
/* Run the fast dce as a side effect of building LR. */
static void
-df_lr_finalize (bitmap all_blocks ATTRIBUTE_UNUSED)
+df_lr_finalize (bitmap all_blocks)
{
+ df_lr->solutions_dirty = false;
if (df->changeable_flags & DF_LR_RUN_DCE)
{
run_fast_df_dce ();
- if (df_lr->problem_data && df_lr->solutions_dirty)
+
+ /* If dce deletes some instructions, we need to recompute the lr
+ solution before proceeding further. The problem is that fast
+ dce is a pessimestic dataflow algorithm. In the case where
+ it deletes a statement S inside of a loop, the uses inside of
+ S may not be deleted from the dataflow solution because they
+ were carried around the loop. While it is conservatively
+ correct to leave these extra bits, the standards of df
+ require that we maintain the best possible (least fixed
+ point) solution. The only way to do that is to redo the
+ iteration from the beginning. See PR35805 for an
+ example. */
+ if (df_lr->solutions_dirty)
{
- /* If we are here, then it is because we are both verifying
- the solution and the dce changed the function. In that case
- the verification info built will be wrong. So we leave the
- dirty flag true so that the verifier will skip the checking
- part and just clean up.*/
- df_lr->solutions_dirty = true;
+ df_clear_flags (DF_LR_RUN_DCE);
+ df_lr_alloc (all_blocks);
+ df_lr_local_compute (all_blocks);
+ df_worklist_dataflow (df_lr, all_blocks, df->postorder, df->n_blocks);
+ df_lr_finalize (all_blocks);
+ df_set_flags (DF_LR_RUN_DCE);
}
- else
- df_lr->solutions_dirty = false;
}
- else
- df_lr->solutions_dirty = false;
}
@@ -2542,7 +2551,7 @@ df_byte_lr_alloc (bitmap all_blocks ATTRIBUTE_UNUSED)
df_byte_lr_expand_bitmap (problem_data->hardware_regs_used,
df->hardware_regs_used);
df_byte_lr_expand_bitmap (problem_data->invalidated_by_call,
- df_invalidated_by_call);
+ regs_invalidated_by_call_regset);
EXECUTE_IF_SET_IN_BITMAP (df_byte_lr->out_of_date_transfer_functions, 0, bb_index, bi)
{
@@ -3759,24 +3768,19 @@ df_simulate_fixup_sets (basic_block bb, bitmap live)
The following three functions are used only for BACKWARDS scanning:
i.e. they process the defs before the uses.
- df_simulate_artificial_refs_at_end should be called first with a
+ df_simulate_initialize_backwards should be called first with a
bitvector copyied from the DF_LIVE_OUT or DF_LR_OUT. Then
- df_simulate_one_insn should be called for each insn in the block,
- starting with the last on. Finally,
- df_simulate_artificial_refs_at_top can be called to get a new value
+ df_simulate_one_insn_backwards should be called for each insn in
+ the block, starting with the last on. Finally,
+ df_simulate_finalize_backwards can be called to get a new value
of the sets at the top of the block (this is rarely used).
-
- It would be not be difficult to define a similar set of functions
- that work in the forwards direction. In that case the functions
- would ignore the use sets and look for the REG_DEAD and REG_UNUSED
- notes.
-----------------------------------------------------------------------------*/
+ ----------------------------------------------------------------------------*/
/* Apply the artificial uses and defs at the end of BB in a backwards
direction. */
void
-df_simulate_artificial_refs_at_end (basic_block bb, bitmap live)
+df_simulate_initialize_backwards (basic_block bb, bitmap live)
{
df_ref *def_rec;
df_ref *use_rec;
@@ -3801,7 +3805,7 @@ df_simulate_artificial_refs_at_end (basic_block bb, bitmap live)
/* Simulate the backwards effects of INSN on the bitmap LIVE. */
void
-df_simulate_one_insn (basic_block bb, rtx insn, bitmap live)
+df_simulate_one_insn_backwards (basic_block bb, rtx insn, bitmap live)
{
if (! INSN_P (insn))
return;
@@ -3816,7 +3820,7 @@ df_simulate_one_insn (basic_block bb, rtx insn, bitmap live)
direction. */
void
-df_simulate_artificial_refs_at_top (basic_block bb, bitmap live)
+df_simulate_finalize_backwards (basic_block bb, bitmap live)
{
df_ref *def_rec;
#ifdef EH_USES
@@ -3840,3 +3844,92 @@ df_simulate_artificial_refs_at_top (basic_block bb, bitmap live)
}
#endif
}
+/*----------------------------------------------------------------------------
+ The following three functions are used only for FORWARDS scanning:
+ i.e. they process the defs and the REG_DEAD and REG_UNUSED notes.
+ Thus it is important to add the DF_NOTES problem to the stack of
+ problems computed before using these functions.
+
+ df_simulate_initialize_forwards should be called first with a
+ bitvector copyied from the DF_LIVE_IN or DF_LR_IN. Then
+ df_simulate_one_insn_forwards should be called for each insn in
+ the block, starting with the last on. Finally,
+ df_simulate_finalize_forwards can be called to get a new value
+ of the sets at the bottom of the block (this is rarely used).
+ ----------------------------------------------------------------------------*/
+
+/* Apply the artificial uses and defs at the top of BB in a backwards
+ direction. */
+
+void
+df_simulate_initialize_forwards (basic_block bb, bitmap live)
+{
+ df_ref *def_rec;
+ int bb_index = bb->index;
+
+ for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
+ {
+ df_ref def = *def_rec;
+ if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
+ bitmap_clear_bit (live, DF_REF_REGNO (def));
+ }
+}
+
+/* Simulate the backwards effects of INSN on the bitmap LIVE. */
+
+void
+df_simulate_one_insn_forwards (basic_block bb, rtx insn, bitmap live)
+{
+ rtx link;
+ if (! INSN_P (insn))
+ return;
+
+ /* Make sure that the DF_NOTES really is an active df problem. */
+ gcc_assert (df_note);
+
+ df_simulate_defs (insn, live);
+
+ /* Clear all of the registers that go dead. */
+ for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
+ {
+ switch (REG_NOTE_KIND (link))
+ case REG_DEAD:
+ case REG_UNUSED:
+ {
+ rtx reg = XEXP (link, 0);
+ int regno = REGNO (reg);
+ if (regno < FIRST_PSEUDO_REGISTER)
+ {
+ int n = hard_regno_nregs[regno][GET_MODE (reg)];
+ while (--n >= 0)
+ bitmap_clear_bit (live, regno + n);
+ }
+ else
+ bitmap_clear_bit (live, regno);
+ break;
+ default:
+ break;
+ }
+ }
+ df_simulate_fixup_sets (bb, live);
+}
+
+
+/* Apply the artificial uses and defs at the end of BB in a backwards
+ direction. */
+
+void
+df_simulate_finalize_forwards (basic_block bb, bitmap live)
+{
+ df_ref *def_rec;
+ int bb_index = bb->index;
+
+ for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
+ {
+ df_ref def = *def_rec;
+ if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) == 0)
+ bitmap_clear_bit (live, DF_REF_REGNO (def));
+ }
+}
+
+
diff --git a/gcc/df-scan.c b/gcc/df-scan.c
index 6a750a8a9b3..6888fb42ee3 100644
--- a/gcc/df-scan.c
+++ b/gcc/df-scan.c
@@ -75,20 +75,10 @@ along with GCC; see the file COPYING3. If not see
free (V); \
} while (0)
-/* The bitmap_obstack is used to hold some static variables that
- should not be reset after each function is compiled. */
-
-static bitmap_obstack persistent_obstack;
-
/* The set of hard registers in eliminables[i].from. */
static HARD_REG_SET elim_reg_set;
-/* This is a bitmap copy of regs_invalidated_by_call so that we can
- easily add it into bitmaps, etc. */
-
-bitmap df_invalidated_by_call = NULL;
-
/* Initialize ur_in and ur_out as if all hard registers were partially
available. */
@@ -436,7 +426,7 @@ df_scan_start_dump (FILE *file ATTRIBUTE_UNUSED)
rtx insn;
fprintf (file, ";; invalidated by call \t");
- df_print_regset (file, df_invalidated_by_call);
+ df_print_regset (file, regs_invalidated_by_call_regset);
fprintf (file, ";; hardware regs used \t");
df_print_regset (file, df->hardware_regs_used);
fprintf (file, ";; regular block artificial uses \t");
@@ -3391,7 +3381,7 @@ df_get_call_refs (struct df_collection_rec * collection_rec,
}
is_sibling_call = SIBLING_CALL_P (insn_info->insn);
- EXECUTE_IF_SET_IN_BITMAP (df_invalidated_by_call, 0, ui, bi)
+ EXECUTE_IF_SET_IN_BITMAP (regs_invalidated_by_call_regset, 0, ui, bi)
{
if (!global_regs[ui]
&& (!bitmap_bit_p (defs_generated, ui))
@@ -4114,15 +4104,13 @@ static bool initialized = false;
void
df_hard_reg_init (void)
{
- int i;
#ifdef ELIMINABLE_REGS
+ int i;
static const struct {const int from, to; } eliminables[] = ELIMINABLE_REGS;
#endif
if (initialized)
return;
- bitmap_obstack_initialize (&persistent_obstack);
-
/* Record which registers will be eliminated. We use this in
mark_used_regs. */
CLEAR_HARD_REG_SET (elim_reg_set);
@@ -4134,14 +4122,6 @@ df_hard_reg_init (void)
SET_HARD_REG_BIT (elim_reg_set, FRAME_POINTER_REGNUM);
#endif
- df_invalidated_by_call = BITMAP_ALLOC (&persistent_obstack);
-
- /* Inconveniently, this is only readily available in hard reg set
- form. */
- for (i = 0; i < FIRST_PSEUDO_REGISTER; ++i)
- if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i))
- bitmap_set_bit (df_invalidated_by_call, i);
-
initialized = true;
}
diff --git a/gcc/df.h b/gcc/df.h
index 979065aa269..dd00d9284d1 100644
--- a/gcc/df.h
+++ b/gcc/df.h
@@ -762,11 +762,6 @@ struct df
extern bitmap_obstack df_bitmap_obstack;
-/* This is a bitmap copy of regs_invalidated_by_call so that we can
- easily add it into bitmaps, etc. */
-
-extern bitmap df_invalidated_by_call;
-
/* One of these structures is allocated for every basic block. */
struct df_scan_bb_info
@@ -959,9 +954,12 @@ extern void df_note_add_problem (void);
extern void df_simulate_find_defs (rtx, bitmap);
extern void df_simulate_defs (rtx, bitmap);
extern void df_simulate_uses (rtx, bitmap);
-extern void df_simulate_artificial_refs_at_end (basic_block, bitmap);
-extern void df_simulate_one_insn (basic_block, rtx, bitmap);
-extern void df_simulate_artificial_refs_at_top (basic_block, bitmap);
+extern void df_simulate_initialize_backwards (basic_block, bitmap);
+extern void df_simulate_one_insn_backwards (basic_block, rtx, bitmap);
+extern void df_simulate_finalize_backwards (basic_block, bitmap);
+extern void df_simulate_initialize_forwards (basic_block, bitmap);
+extern void df_simulate_one_insn_forwards (basic_block, rtx, bitmap);
+extern void df_simulate_finalize_forwards (basic_block, bitmap);
/* Functions defined in df-scan.c. */
diff --git a/gcc/doc/contrib.texi b/gcc/doc/contrib.texi
index 2ae03c9a966..e7d8cb321f5 100644
--- a/gcc/doc/contrib.texi
+++ b/gcc/doc/contrib.texi
@@ -666,7 +666,7 @@ Geoff Noer for his work on getting cygwin native builds working.
@item
Diego Novillo for his work on Tree SSA, OpenMP, SPEC performance
-tracking web pages and assorted fixes.
+tracking web pages, GIMPLE tuples, and assorted fixes.
@item
David O'Brien for the FreeBSD/alpha, FreeBSD/AMD x86-64, FreeBSD/ARM,
@@ -1419,6 +1419,9 @@ Sidney Cadot
Bradford Castalia
@item
+Robert Clark
+
+@item
Jonathan Corbet
@item
@@ -1611,5 +1614,6 @@ David E. Young
And many others
@end itemize
-And finally we'd like to thank everyone who uses the compiler, submits bug
-reports and generally reminds us why we're doing this work in the first place.
+And finally we'd like to thank everyone who uses the compiler, provides
+feedback and generally reminds us why we're doing this work in the first
+place.
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 1bf5a68e6f7..ffbc3ed4dad 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -1938,16 +1938,16 @@ In C++, this attribute does not depend on @code{extern} in any way,
but it still requires the @code{inline} keyword to enable its special
behavior.
-@cindex @code{artificial} function attribute
@item artificial
+@cindex @code{artificial} function attribute
This attribute is useful for small inline wrappers which if possible
should appear during debugging as a unit, depending on the debug
info format it will either mean marking the function as artificial
or using the caller location for all instructions within the inlined
body.
-@cindex @code{flatten} function attribute
@item flatten
+@cindex @code{flatten} function attribute
Generally, inlining into a function is limited. For a function marked with
this attribute, every call inside this function will be inlined, if possible.
Whether the function itself is considered for inlining depends on its size and
@@ -2163,6 +2163,12 @@ is an exception handler. The compiler will generate function entry and
exit sequences suitable for use in an exception handler when this
attribute is present.
+@item externally_visible
+@cindex @code{externally_visible} attribute.
+This attribute, attached to a global variable or function, nullifies
+the effect of the @option{-fwhole-program} command-line option, so the
+object remains visible outside the current compilation unit.
+
@item far
@cindex functions which handle memory bank switching
On 68HC11 and 68HC12 the @code{far} attribute causes the compiler to
@@ -2668,179 +2674,6 @@ with the notable exceptions of @code{qsort} and @code{bsearch} that
take function pointer arguments. The @code{nothrow} attribute is not
implemented in GCC versions earlier than 3.3.
-@item option
-@cindex @code{target} function attribute
-The @code{target} attribute is used to specify that a function is to
-be compiled with different target options than specified on the
-command line. This can be used for instance to have functions
-compiled with a different ISA (instruction set architecture) than the
-default. You can also use the @samp{#pragma GCC target} pragma to set
-more than one function to be compiled with specific target options.
-@xref{Function Specific Option Pragmas}, for details about the
-@samp{#pragma GCC target} pragma.
-
-For instance on a 386, you could compile one function with
-@code{target("sse4.1,arch=core2")} and another with
-@code{target("sse4a,arch=amdfam10")} that would be equivalent to
-compiling the first function with @option{-msse4.1} and
-@option{-march=core2} options, and the second function with
-@option{-msse4a} and @option{-march=amdfam10} options. It is up to the
-user to make sure that a function is only invoked on a machine that
-supports the particular ISA it was compiled for (for example by using
-@code{cpuid} on 386 to determine what feature bits and architecture
-family are used).
-
-@smallexample
-int core2_func (void) __attribute__ ((__target__ ("arch=core2")));
-int sse3_func (void) __attribute__ ((__target__ ("sse3")));
-@end smallexample
-
-On the 386, the following options are allowed:
-
-@table @samp
-@item abm
-@itemx no-abm
-@cindex @code{target("abm")} attribute
-Enable/disable the generation of the advanced bit instructions.
-
-@item aes
-@itemx no-aes
-@cindex @code{target("aes")} attribute
-Enable/disable the generation of the AES instructions.
-
-@item mmx
-@itemx no-mmx
-@cindex @code{target("mmx")} attribute
-Enable/disable the generation of the MMX instructions.
-
-@item pclmul
-@itemx no-pclmul
-@cindex @code{target("pclmul")} attribute
-Enable/disable the generation of the PCLMUL instructions.
-
-@item popcnt
-@itemx no-popcnt
-@cindex @code{target("popcnt")} attribute
-Enable/disable the generation of the POPCNT instruction.
-
-@item sse
-@itemx no-sse
-@cindex @code{target("sse")} attribute
-Enable/disable the generation of the SSE instructions.
-
-@item sse2
-@itemx no-sse2
-@cindex @code{target("sse2")} attribute
-Enable/disable the generation of the SSE2 instructions.
-
-@item sse3
-@itemx no-sse3
-@cindex @code{target("sse3")} attribute
-Enable/disable the generation of the SSE3 instructions.
-
-@item sse4
-@itemx no-sse4
-@cindex @code{target("sse4")} attribute
-Enable/disable the generation of the SSE4 instructions (both SSE4.1
-and SSE4.2).
-
-@item sse4.1
-@itemx no-sse4.1
-@cindex @code{target("sse4.1")} attribute
-Enable/disable the generation of the sse4.1 instructions.
-
-@item sse4.2
-@itemx no-sse4.2
-@cindex @code{target("sse4.2")} attribute
-Enable/disable the generation of the sse4.2 instructions.
-
-@item sse4a
-@itemx no-sse4a
-@cindex @code{target("sse4a")} attribute
-Enable/disable the generation of the SSE4A instructions.
-
-@item sse5
-@itemx no-sse5
-@cindex @code{target("sse5")} attribute
-Enable/disable the generation of the SSE5 instructions.
-
-@item ssse3
-@itemx no-ssse3
-@cindex @code{target("ssse3")} attribute
-Enable/disable the generation of the SSSE3 instructions.
-
-@item cld
-@itemx no-cld
-@cindex @code{target("cld")} attribute
-Enable/disable the generation of the CLD before string moves.
-
-@item fancy-math-387
-@itemx no-fancy-math-387
-@cindex @code{target("fancy-math-387")} attribute
-Enable/disable the generation of the @code{sin}, @code{cos}, and
-@code{sqrt} instructions on the 387 floating point unit.
-
-@item fused-madd
-@itemx no-fused-madd
-@cindex @code{target("fused-madd")} attribute
-Enable/disable the generation of the fused multiply/add instructions.
-
-@item ieee-fp
-@itemx no-ieee-fp
-@cindex @code{target("ieee-fp")} attribute
-Enable/disable the generation of floating point that depends on IEEE arithmetic.
-
-@item inline-all-stringops
-@itemx no-inline-all-stringops
-@cindex @code{target("inline-all-stringops")} attribute
-Enable/disable inlining of string operations.
-
-@item inline-stringops-dynamically
-@itemx no-inline-stringops-dynamically
-@cindex @code{target("inline-stringops-dynamically")} attribute
-Enable/disable the generation of the inline code to do small string
-operations and calling the library routines for large operations.
-
-@item align-stringops
-@itemx no-align-stringops
-@cindex @code{target("align-stringops")} attribute
-Do/do not align destination of inlined string operations.
-
-@item recip
-@itemx no-recip
-@cindex @code{target("recip")} attribute
-Enable/disable the generation of RCPSS, RCPPS, RSQRTSS and RSQRTPS
-instructions followed an additional Newton-Rhapson step instead of
-doing a floating point division.
-
-@item arch=@var{ARCH}
-@cindex @code{target("arch=@var{ARCH}")} attribute
-Specify the architecture to generate code for in compiling the function.
-
-@item tune=@var{TUNE}
-@cindex @code{target("tune=@var{TUNE}")} attribute
-Specify the architecture to tune for in compiling the function.
-
-@item fpmath=@var{FPMATH}
-@cindex @code{target("fpmath=@var{FPMATH}")} attribute
-Specify which floating point unit to use. The
-@code{target("fpmath=sse,387")} option must be specified as
-@code{target("fpmath=sse+387")} because the comma would separate
-different options.
-@end table
-
-On the 386, you can use either multiple strings to specify multiple
-options, or you can separate the option with a comma (@code{,}).
-
-On the 386, the inliner will not inline a function that has different
-target options than the caller, unless the callee has a subset of the
-target options of the caller. For example a function declared with
-@code{target("sse5")} can inline a function with
-@code{target("sse2")}, since @code{-msse5} implies @code{-msse2}.
-
-The @code{target} attribute is not implemented in GCC versions earlier
-than 4.4, and at present only the 386 uses it.
-
@item optimize
@cindex @code{optimize} function attribute
The @code{optimize} attribute is used to specify that a function is to
@@ -2852,7 +2685,7 @@ are assumed to be used with a @code{-f} prefix. You can also use the
@samp{#pragma GCC optimize} pragma to set the optimization options
that affect more than one function.
@xref{Function Specific Option Pragmas}, for details about the
-@samp{#pragma GCC option} pragma.
+@samp{#pragma GCC optimize} pragma.
This can be used for instance to have frequently executed functions
compiled with more aggressive optimization options that produce faster
@@ -3056,6 +2889,179 @@ On the Intel 386, the @code{stdcall} attribute causes the compiler to
assume that the called function will pop off the stack space used to
pass arguments, unless it takes a variable number of arguments.
+@item target
+@cindex @code{target} function attribute
+The @code{target} attribute is used to specify that a function is to
+be compiled with different target options than specified on the
+command line. This can be used for instance to have functions
+compiled with a different ISA (instruction set architecture) than the
+default. You can also use the @samp{#pragma GCC target} pragma to set
+more than one function to be compiled with specific target options.
+@xref{Function Specific Option Pragmas}, for details about the
+@samp{#pragma GCC target} pragma.
+
+For instance on a 386, you could compile one function with
+@code{target("sse4.1,arch=core2")} and another with
+@code{target("sse4a,arch=amdfam10")} that would be equivalent to
+compiling the first function with @option{-msse4.1} and
+@option{-march=core2} options, and the second function with
+@option{-msse4a} and @option{-march=amdfam10} options. It is up to the
+user to make sure that a function is only invoked on a machine that
+supports the particular ISA it was compiled for (for example by using
+@code{cpuid} on 386 to determine what feature bits and architecture
+family are used).
+
+@smallexample
+int core2_func (void) __attribute__ ((__target__ ("arch=core2")));
+int sse3_func (void) __attribute__ ((__target__ ("sse3")));
+@end smallexample
+
+On the 386, the following options are allowed:
+
+@table @samp
+@item abm
+@itemx no-abm
+@cindex @code{target("abm")} attribute
+Enable/disable the generation of the advanced bit instructions.
+
+@item aes
+@itemx no-aes
+@cindex @code{target("aes")} attribute
+Enable/disable the generation of the AES instructions.
+
+@item mmx
+@itemx no-mmx
+@cindex @code{target("mmx")} attribute
+Enable/disable the generation of the MMX instructions.
+
+@item pclmul
+@itemx no-pclmul
+@cindex @code{target("pclmul")} attribute
+Enable/disable the generation of the PCLMUL instructions.
+
+@item popcnt
+@itemx no-popcnt
+@cindex @code{target("popcnt")} attribute
+Enable/disable the generation of the POPCNT instruction.
+
+@item sse
+@itemx no-sse
+@cindex @code{target("sse")} attribute
+Enable/disable the generation of the SSE instructions.
+
+@item sse2
+@itemx no-sse2
+@cindex @code{target("sse2")} attribute
+Enable/disable the generation of the SSE2 instructions.
+
+@item sse3
+@itemx no-sse3
+@cindex @code{target("sse3")} attribute
+Enable/disable the generation of the SSE3 instructions.
+
+@item sse4
+@itemx no-sse4
+@cindex @code{target("sse4")} attribute
+Enable/disable the generation of the SSE4 instructions (both SSE4.1
+and SSE4.2).
+
+@item sse4.1
+@itemx no-sse4.1
+@cindex @code{target("sse4.1")} attribute
+Enable/disable the generation of the sse4.1 instructions.
+
+@item sse4.2
+@itemx no-sse4.2
+@cindex @code{target("sse4.2")} attribute
+Enable/disable the generation of the sse4.2 instructions.
+
+@item sse4a
+@itemx no-sse4a
+@cindex @code{target("sse4a")} attribute
+Enable/disable the generation of the SSE4A instructions.
+
+@item sse5
+@itemx no-sse5
+@cindex @code{target("sse5")} attribute
+Enable/disable the generation of the SSE5 instructions.
+
+@item ssse3
+@itemx no-ssse3
+@cindex @code{target("ssse3")} attribute
+Enable/disable the generation of the SSSE3 instructions.
+
+@item cld
+@itemx no-cld
+@cindex @code{target("cld")} attribute
+Enable/disable the generation of the CLD before string moves.
+
+@item fancy-math-387
+@itemx no-fancy-math-387
+@cindex @code{target("fancy-math-387")} attribute
+Enable/disable the generation of the @code{sin}, @code{cos}, and
+@code{sqrt} instructions on the 387 floating point unit.
+
+@item fused-madd
+@itemx no-fused-madd
+@cindex @code{target("fused-madd")} attribute
+Enable/disable the generation of the fused multiply/add instructions.
+
+@item ieee-fp
+@itemx no-ieee-fp
+@cindex @code{target("ieee-fp")} attribute
+Enable/disable the generation of floating point that depends on IEEE arithmetic.
+
+@item inline-all-stringops
+@itemx no-inline-all-stringops
+@cindex @code{target("inline-all-stringops")} attribute
+Enable/disable inlining of string operations.
+
+@item inline-stringops-dynamically
+@itemx no-inline-stringops-dynamically
+@cindex @code{target("inline-stringops-dynamically")} attribute
+Enable/disable the generation of the inline code to do small string
+operations and calling the library routines for large operations.
+
+@item align-stringops
+@itemx no-align-stringops
+@cindex @code{target("align-stringops")} attribute
+Do/do not align destination of inlined string operations.
+
+@item recip
+@itemx no-recip
+@cindex @code{target("recip")} attribute
+Enable/disable the generation of RCPSS, RCPPS, RSQRTSS and RSQRTPS
+instructions followed an additional Newton-Rhapson step instead of
+doing a floating point division.
+
+@item arch=@var{ARCH}
+@cindex @code{target("arch=@var{ARCH}")} attribute
+Specify the architecture to generate code for in compiling the function.
+
+@item tune=@var{TUNE}
+@cindex @code{target("tune=@var{TUNE}")} attribute
+Specify the architecture to tune for in compiling the function.
+
+@item fpmath=@var{FPMATH}
+@cindex @code{target("fpmath=@var{FPMATH}")} attribute
+Specify which floating point unit to use. The
+@code{target("fpmath=sse,387")} option must be specified as
+@code{target("fpmath=sse+387")} because the comma would separate
+different options.
+@end table
+
+On the 386, you can use either multiple strings to specify multiple
+options, or you can separate the option with a comma (@code{,}).
+
+On the 386, the inliner will not inline a function that has different
+target options than the caller, unless the callee has a subset of the
+target options of the caller. For example a function declared with
+@code{target("sse5")} can inline a function with
+@code{target("sse2")}, since @code{-msse5} implies @code{-msse2}.
+
+The @code{target} attribute is not implemented in GCC versions earlier
+than 4.4, and at present only the 386 uses it.
+
@item tiny_data
@cindex tiny data section on the H8/300H and H8S
Use this attribute on the H8/300H and H8S to indicate that the specified
@@ -3255,12 +3261,6 @@ performing a reloadable link on them.
At present, a declaration to which @code{weakref} is attached can
only be @code{static}.
-@item externally_visible
-@cindex @code{externally_visible} attribute.
-This attribute, attached to a global variable or function nullify
-effect of @option{-fwhole-program} command line option, so the object
-remain visible outside the current compilation unit
-
@end table
You can specify multiple attributes in a declaration by separating them
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index 17936146a2e..c5c0f9ed051 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002, 2003, 2004, 2007, 2008
+@c Copyright (C) 2002, 2003, 2004, 2007, 2008, 2009
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -69,6 +69,7 @@ These don't need to be marked.
* GTY Options:: What goes inside a @code{GTY(())}.
* GGC Roots:: Making global variables GGC roots.
* Files:: How the generated files work.
+* Invoking the garbage collector:: How to invoke the garbage collector.
@end menu
@node GTY Options
@@ -448,3 +449,22 @@ source file. Don't forget to mention this file as a dependency in the
For language frontends, there is another file that needs to be included
somewhere. It will be called @file{gtype-@var{lang}.h}, where
@var{lang} is the name of the subdirectory the language is contained in.
+
+@node Invoking the garbage collector
+@section How to invoke the garbage collector
+@cindex garbage collector, invocation
+@findex ggc_collect
+
+The GCC garbage collector GGC is only invoked explicitly. In contrast
+with many other garbage collectors, it is not implicitly invoked by
+allocation routines when a lot of memory has been consumed. So the
+only way to have GGC reclaim storage it to call the @code{ggc_collect}
+function explicitly. This call is an expensive operation, as it may
+have to scan the entire heap. Beware that local variables (on the GCC
+call stack) are not followed by such an invocation (as many other
+garbage collectors do): you should reference all your data from static
+or external @code{GTY}-ed variables, and it is advised to call
+@code{ggc_collect} with a shallow call stack. The GGC is an exact mark
+and sweep garbage collector (so it does not scan the call stack for
+pointers). In practice GCC passes don't often call @code{ggc_collect}
+themselves, because it is called by the pass manager between passes.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 1d9247fb4a2..094353b667a 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -327,6 +327,24 @@ Alternatively, if a MPFR source distribution is found in a subdirectory
of your GCC sources named @file{mpfr}, it will be built together with
GCC@.
+@item Parma Polyhedra Library (PPL) version 0.10
+
+Necessary to build GCC with the Graphite loop optimizations.
+It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
+
+The @option{--with-ppl} configure option should be used if PPL is not
+installed in your default library search path.
+
+@item CLooG-PPL version 0.15
+
+Necessary to build GCC with the Graphite loop optimizations. It can
+be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
+The code in @file{cloog-ppl-0.15.tar.gz} comes from a branch of CLooG
+available from @uref{http://repo.or.cz/w/cloog-ppl.git}. CLooG-PPL
+should be configured with @option{--with-ppl}.
+
+The @option{--with-cloog} configure option should be used if CLooG is
+not installed in your default library search path.
@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip})
@@ -1305,7 +1323,8 @@ consistency checks of the requested complexity. This does not change the
generated code, but adds error checking within the compiler. This will
slow down the compiler and may only work properly if you are building
the compiler with GCC@. This is @samp{yes} by default when building
-from SVN or snapshots, but @samp{release} for releases. More control
+from SVN or snapshots, but @samp{release} for releases. The default
+for building the stage1 compiler is @samp{yes}. More control
over the checks may be had by specifying @var{list}. The categories of
checks available are @samp{yes} (most common checks
@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at
@@ -1324,6 +1343,19 @@ assertions will make the compiler and runtime slightly faster but
increase the risk of undetected internal errors causing wrong code to be
generated.
+@item --disable-stage1-checking
+@item --enable-stage1-checking
+@itemx --enable-stage1-checking=@var{list}
+If no @option{--enable-checking} option is specified the stage1
+compiler will be built with @samp{yes} checking enabled, otherwise
+the stage1 checking flags are the same as specified by
+@option{--enable-checking}. To build the stage1 compiler with
+different checking options use @option{--enable-stage1-checking}.
+The list of checking options is the same as for @option{--enable-checking}.
+If your system is too slow or too small to bootstrap a released compiler
+with checking for stage1 enabled, you can use @samp{--disable-stage1-checking}
+to disable checking for the stage1 compiler.
+
@item --enable-coverage
@itemx --enable-coverage=@var{level}
With this option, the compiler is built to collect self coverage
@@ -1428,6 +1460,26 @@ GCC, you can explicitly specify the directory where they are installed
shorthand assumptions are not correct, you can use the explicit
include and lib options directly.
+@item --with-ppl=@var{pathname}
+@itemx --with-ppl-include=@var{pathname}
+@itemx --with-ppl-lib=@var{pathname}
+@itemx --with-cloog=@var{pathname}
+@itemx --with-cloog-include=@var{pathname}
+@itemx --with-cloog-lib=@var{pathname}
+If you do not have PPL (the Parma Polyhedra Library) and the CLooG
+libraries installed in a standard location and you want to build GCC,
+you can explicitly specify the directory where they are installed
+(@samp{--with-ppl=@var{pplinstalldir}},
+@samp{--with-cloog=@var{clooginstalldir}}). The
+@option{--with-ppl=@var{pplinstalldir}} option is shorthand for
+@option{--with-ppl-lib=@var{pplinstalldir}/lib} and
+@option{--with-ppl-include=@var{pplinstalldir}/include}. Likewise the
+@option{--with-cloog=@var{clooginstalldir}} option is shorthand for
+@option{--with-cloog-lib=@var{clooginstalldir}/lib} and
+@option{--with-cloog-include=@var{clooginstalldir}/include}. If these
+shorthand assumptions are not correct, you can use the explicit
+include and lib options directly.
+
@item --with-debug-prefix-map=@var{map}
Convert source directory names using @option{-fdebug-prefix-map} when
building runtime libraries. @samp{@var{map}} is a space-separated
@@ -2746,14 +2798,6 @@ the system header file @file{/usr/include/stamp.h}. If you install a
new version of DEC Unix, you should rebuild GCC to pick up the new version
stamp.
-Note that since the Alpha is a 64-bit architecture, cross-compilers from
-32-bit machines will not generate code as efficient as that generated
-when the compiler is running on a 64-bit machine because many
-optimizations that depend on being able to represent a word on the
-target in an integral value on the host cannot be performed. Building
-cross-compilers on the Alpha for 32-bit machines has only been tested in
-a few cases and may not work properly.
-
@samp{make compare} may fail on old versions of DEC Unix unless you add
@option{-save-temps} to @code{BOOT_CFLAGS}. On these systems, the name
of the assembler input file is stored in the object file, and that makes
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 5dbd15ea67f..3e05b66fb88 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -2153,7 +2153,7 @@ to filter out those warnings.
Warn also about the use of an uncasted @code{NULL} as sentinel. When
compiling only with GCC this is a valid sentinel, as @code{NULL} is defined
to @code{__null}. Although it is a null pointer constant not a null pointer,
-it is guaranteed to of the same size as a pointer. But this use is
+it is guaranteed to be of the same size as a pointer. But this use is
not portable across different compilers.
@item -Wno-non-template-friend @r{(C++ and Objective-C++ only)}
@@ -6004,8 +6004,8 @@ This reduces the level of indirection needed for accessing the elements
of the matrix. The second optimization is matrix transposing that
attemps to change the order of the matrix's dimensions in order to
improve cache locality.
-Both optimizations need fwhole-program flag.
-Transposing is enabled only if profiling information is avaliable.
+Both optimizations need the @option{-fwhole-program} flag.
+Transposing is enabled only if profiling information is available.
@item -ftree-sink
@@ -7644,6 +7644,15 @@ given number of the most frequently executed loops will form regions
for the regional register allocation. The default value of the
parameter is 100.
+@item ira-max-conflict-table-size
+Although IRA uses a sophisticated algorithm of compression conflict
+table, the table can be still big for huge functions. If the conflict
+table for a function could be more than size in MB given by the
+parameter, the conflict table is not built and faster, simpler, and
+lower quality register allocation algorithm will be used. The
+algorithm do not use pseudo-register conflicts. The default value of
+the parameter is 2000.
+
@end table
@end table
@@ -8628,7 +8637,8 @@ example, if a cross-compiler was configured with @samp{configure
arm-elf}, meaning to compile for an arm processor with elf binaries,
then you would specify @option{-b arm-elf} to run that cross compiler.
Because there are other options beginning with @option{-b}, the
-configuration must contain a hyphen.
+configuration must contain a hyphen, or @option{-b} alone should be one
+argument followed by the configuration in the next argument.
@item -V @var{version}
@opindex V
@@ -8890,8 +8900,11 @@ assembly code. Permissible names are: @samp{arm2}, @samp{arm250},
@samp{arm620}, @samp{arm7}, @samp{arm7m}, @samp{arm7d}, @samp{arm7dm},
@samp{arm7di}, @samp{arm7dmi}, @samp{arm70}, @samp{arm700},
@samp{arm700i}, @samp{arm710}, @samp{arm710c}, @samp{arm7100},
+@samp{arm720},
@samp{arm7500}, @samp{arm7500fe}, @samp{arm7tdmi}, @samp{arm7tdmi-s},
-@samp{arm8}, @samp{strongarm}, @samp{strongarm110}, @samp{strongarm1100},
+@samp{arm710t}, @samp{arm720t}, @samp{arm740t},
+@samp{strongarm}, @samp{strongarm110}, @samp{strongarm1100},
+@samp{strongarm1110},
@samp{arm8}, @samp{arm810}, @samp{arm9}, @samp{arm9e}, @samp{arm920},
@samp{arm920t}, @samp{arm922t}, @samp{arm946e-s}, @samp{arm966e-s},
@samp{arm968e-s}, @samp{arm926ej-s}, @samp{arm940t}, @samp{arm9tdmi},
@@ -8899,7 +8912,8 @@ assembly code. Permissible names are: @samp{arm2}, @samp{arm250},
@samp{arm10e}, @samp{arm1020e}, @samp{arm1022e},
@samp{arm1136j-s}, @samp{arm1136jf-s}, @samp{mpcore}, @samp{mpcorenovfp},
@samp{arm1156t2-s}, @samp{arm1176jz-s}, @samp{arm1176jzf-s},
-@samp{cortex-a8}, @samp{cortex-r4}, @samp{cortex-r4f}, @samp{cortex-m3},
+@samp{cortex-a8}, @samp{cortex-a9},
+@samp{cortex-r4}, @samp{cortex-r4f}, @samp{cortex-m3},
@samp{cortex-m1},
@samp{xscale}, @samp{iwmmxt}, @samp{ep9312}.
@@ -8921,7 +8935,8 @@ name to determine what kind of instructions it can emit when generating
assembly code. This option can be used in conjunction with or instead
of the @option{-mcpu=} option. Permissible names are: @samp{armv2},
@samp{armv2a}, @samp{armv3}, @samp{armv3m}, @samp{armv4}, @samp{armv4t},
-@samp{armv5}, @samp{armv5t}, @samp{armv5te}, @samp{armv6}, @samp{armv6j},
+@samp{armv5}, @samp{armv5t}, @samp{armv5e}, @samp{armv5te},
+@samp{armv6}, @samp{armv6j},
@samp{armv6t2}, @samp{armv6z}, @samp{armv6zk}, @samp{armv6-m},
@samp{armv7}, @samp{armv7-a}, @samp{armv7-r}, @samp{armv7-m},
@samp{iwmmxt}, @samp{ep9312}.
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 3505dea45af..50767a2036f 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -2050,9 +2050,18 @@ Any MMX register.
@item x
Any SSE register.
+@item Yz
+First SSE register (@code{%xmm0}).
+
@ifset INTERNALS
-@item Y
-Any SSE2 register.
+@item Y2
+Any SSE register, when SSE2 is enabled.
+
+@item Yi
+Any SSE register, when SSE2 and inter-unit moves are enabled.
+
+@item Ym
+Any MMX register, when inter-unit moves are enabled.
@end ifset
@item I
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 3d3a52955bd..5de0cc783df 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1,5 +1,5 @@
-@c Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation,
-@c Inc.
+@c Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
+@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -42,6 +42,13 @@ pages from Texinfo manuals as part of the GCC build process.
An implementation of the @command{jar} command, used with the Java
front end.
+@item fixincludes
+The support for fixing system headers to work with GCC@. See
+@file{fixincludes/README} for more information. The headers fixed by
+this mechanism are installed in @file{@var{libsubdir}/include-fixed}.
+Along with those headers, @file{README-fixinc} is also installed, as
+@file{@var{libsubdir}/include-fixed/README}.
+
@item gcc
The main sources of GCC itself (except for runtime libraries),
including optimizers, support for different target architectures,
@@ -51,6 +58,10 @@ language front ends, and testsuites. @xref{gcc Directory, , The
@item include
Headers for the @code{libiberty} library.
+@item intl
+GNU @code{libintl}, from GNU @code{gettext}, for systems which do not
+include it in libc.
+
@item libada
The Ada runtime library.
@@ -142,24 +153,12 @@ Texinfo documentation for GCC, together with automatically generated
man pages and support for converting the installation manual to
HTML@. @xref{Documentation}.
-@item fixinc
-The support for fixing system headers to work with GCC@. See
-@file{fixinc/README} for more information. The headers fixed by this
-mechanism are installed in @file{@var{libsubdir}/include}. Along with
-those headers, @file{README-fixinc} is also installed, as
-@file{@var{libsubdir}/include/README}.
-
@item ginclude
System headers installed by GCC, mainly those required by the C
standard of freestanding implementations. @xref{Headers, , Headers
Installed by GCC}, for details of when these and other headers are
installed.
-@item intl
-GNU @code{libintl}, from GNU @code{gettext}, for systems which do not
-include it in libc. Properly, this directory should be at top level,
-parallel to the @file{gcc} directory.
-
@item po
Message catalogs with translations of messages produced by GCC into
various languages, @file{@var{language}.po}. This directory also
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 849f69f07cd..060eb51e77e 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -1,6 +1,6 @@
/* Convert tree expression to rtl instructions, for GNU compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -675,10 +675,10 @@ do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
be slower, but that's highly unlikely. */
part = gen_reg_rtx (word_mode);
- emit_move_insn (part, operand_subword_force (op0, 0, GET_MODE (op0)));
+ emit_move_insn (part, operand_subword_force (op0, 0, mode));
for (i = 1; i < nwords && part != 0; i++)
part = expand_binop (word_mode, ior_optab, part,
- operand_subword_force (op0, i, GET_MODE (op0)),
+ operand_subword_force (op0, i, mode),
part, 1, OPTAB_WIDEN);
if (part != 0)
@@ -694,7 +694,7 @@ do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
drop_through_label = if_false_label = gen_label_rtx ();
for (i = 0; i < nwords; i++)
- do_compare_rtx_and_jump (operand_subword_force (op0, i, GET_MODE (op0)),
+ do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
const0_rtx, EQ, 1, word_mode, NULL_RTX,
if_false_label, NULL_RTX);
diff --git a/gcc/dse.c b/gcc/dse.c
index d7fb2d8aa20..666a2f00164 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -45,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
#include "dse.h"
#include "optabs.h"
#include "dbgcnt.h"
+#include "target.h"
/* This file contains three techniques for performing Dead Store
Elimination (dse).
@@ -91,7 +92,10 @@ along with GCC; see the file COPYING3. If not see
5) Delete the insns that the global analysis has indicated are
unnecessary.
- 6) Cleanup.
+ 6) Delete insns that store the same value as preceeding store
+ where the earlier store couldn't be eliminated.
+
+ 7) Cleanup.
This step uses cselib and canon_rtx to build the largest expression
possible for each address. This pass is a forwards pass through
@@ -205,6 +209,9 @@ struct store_info
/* False means this is a clobber. */
bool is_set;
+ /* False if a single HOST_WIDE_INT bitmap is used for positions_needed. */
+ bool is_large;
+
/* The id of the mem group of the base address. If rtx_varies_p is
true, this is -1. Otherwise, it is the index into the group
table. */
@@ -224,12 +231,26 @@ struct store_info
/* The offset of the first and byte before the last byte associated
with the operation. */
- int begin, end;
+ HOST_WIDE_INT begin, end;
- /* An bitmask as wide as the number of bytes in the word that
- contains a 1 if the byte may be needed. The store is unused if
- all of the bits are 0. */
- unsigned HOST_WIDE_INT positions_needed;
+ union
+ {
+ /* A bitmask as wide as the number of bytes in the word that
+ contains a 1 if the byte may be needed. The store is unused if
+ all of the bits are 0. This is used if IS_LARGE is false. */
+ unsigned HOST_WIDE_INT small_bitmask;
+
+ struct
+ {
+ /* A bitmap with one bit per byte. Cleared bit means the position
+ is needed. Used if IS_LARGE is false. */
+ bitmap bitmap;
+
+ /* Number of set bits (i.e. unneeded bytes) in BITMAP. If it is
+ equal to END - BEGIN, the whole store is unused. */
+ int count;
+ } large;
+ } positions_needed;
/* The next store info for this insn. */
struct store_info *next;
@@ -237,7 +258,16 @@ struct store_info
/* The right hand side of the store. This is used if there is a
subsequent reload of the mems address somewhere later in the
basic block. */
- rtx rhs;
+ rtx rhs;
+
+ /* If rhs is or holds a constant, this contains that constant,
+ otherwise NULL. */
+ rtx const_rhs;
+
+ /* Set if this store stores the same constant value as REDUNDANT_REASON
+ insn stored. These aren't eliminated early, because doing that
+ might prevent the earlier larger store to be eliminated. */
+ struct insn_info *redundant_reason;
};
/* Return a bitmask with the first N low bits set. */
@@ -374,6 +404,10 @@ struct bb_info
operations. */
bool apply_wild_read;
+ /* The following 4 bitvectors hold information about which positions
+ of which stores are live or dead. They are indexed by
+ get_bitmap_index. */
+
/* The set of store positions that exist in this block before a wild read. */
bitmap gen;
@@ -401,6 +435,14 @@ struct bb_info
just initializes the vector from one of the out sets of the
successors of the block. */
bitmap out;
+
+ /* The following bitvector is indexed by the reg number. It
+ contains the set of regs that are live at the current instruction
+ being processed. While it contains info for all of the
+ registers, only the pseudos are actually examined. It is used to
+ assure that shift sequences that are inserted do not accidently
+ clobber live hard regs. */
+ bitmap regs_live;
};
typedef struct bb_info *bb_info_t;
@@ -748,6 +790,8 @@ free_store_info (insn_info_t insn_info)
while (store_info)
{
store_info_t next = store_info->next;
+ if (store_info->is_large)
+ BITMAP_FREE (store_info->positions_needed.large.bitmap);
if (store_info->cse_base)
pool_free (cse_store_info_pool, store_info);
else
@@ -899,7 +943,7 @@ set_usage_bits (group_info_t group, HOST_WIDE_INT offset, HOST_WIDE_INT width)
{
HOST_WIDE_INT i;
- if ((offset > -MAX_OFFSET) && (offset < MAX_OFFSET))
+ if (offset > -MAX_OFFSET && offset + width < MAX_OFFSET)
for (i=offset; i<offset+width; i++)
{
bitmap store1;
@@ -1155,12 +1199,86 @@ clear_rhs_from_active_local_stores (void)
store_info = store_info->next;
store_info->rhs = NULL;
+ store_info->const_rhs = NULL;
ptr = ptr->next_local_store;
}
}
+/* Mark byte POS bytes from the beginning of store S_INFO as unneeded. */
+
+static inline void
+set_position_unneeded (store_info_t s_info, int pos)
+{
+ if (__builtin_expect (s_info->is_large, false))
+ {
+ if (!bitmap_bit_p (s_info->positions_needed.large.bitmap, pos))
+ {
+ s_info->positions_needed.large.count++;
+ bitmap_set_bit (s_info->positions_needed.large.bitmap, pos);
+ }
+ }
+ else
+ s_info->positions_needed.small_bitmask
+ &= ~(((unsigned HOST_WIDE_INT) 1) << pos);
+}
+
+/* Mark the whole store S_INFO as unneeded. */
+
+static inline void
+set_all_positions_unneeded (store_info_t s_info)
+{
+ if (__builtin_expect (s_info->is_large, false))
+ {
+ int pos, end = s_info->end - s_info->begin;
+ for (pos = 0; pos < end; pos++)
+ bitmap_set_bit (s_info->positions_needed.large.bitmap, pos);
+ s_info->positions_needed.large.count = end;
+ }
+ else
+ s_info->positions_needed.small_bitmask = (unsigned HOST_WIDE_INT) 0;
+}
+
+/* Return TRUE if any bytes from S_INFO store are needed. */
+
+static inline bool
+any_positions_needed_p (store_info_t s_info)
+{
+ if (__builtin_expect (s_info->is_large, false))
+ return (s_info->positions_needed.large.count
+ < s_info->end - s_info->begin);
+ else
+ return (s_info->positions_needed.small_bitmask
+ != (unsigned HOST_WIDE_INT) 0);
+}
+
+/* Return TRUE if all bytes START through START+WIDTH-1 from S_INFO
+ store are needed. */
+
+static inline bool
+all_positions_needed_p (store_info_t s_info, int start, int width)
+{
+ if (__builtin_expect (s_info->is_large, false))
+ {
+ int end = start + width;
+ while (start < end)
+ if (bitmap_bit_p (s_info->positions_needed.large.bitmap, start++))
+ return false;
+ return true;
+ }
+ else
+ {
+ unsigned HOST_WIDE_INT mask = lowpart_bitmask (width) << start;
+ return (s_info->positions_needed.small_bitmask & mask) == mask;
+ }
+}
+
+
+static rtx get_stored_val (store_info_t, enum machine_mode, HOST_WIDE_INT,
+ HOST_WIDE_INT, basic_block, bool);
+
+
/* BODY is an instruction pattern that belongs to INSN. Return 1 if
there is a candidate store, after adding it to the appropriate
local store group if so. */
@@ -1168,7 +1286,7 @@ clear_rhs_from_active_local_stores (void)
static int
record_store (rtx body, bb_info_t bb_info)
{
- rtx mem;
+ rtx mem, rhs, const_rhs;
HOST_WIDE_INT offset = 0;
HOST_WIDE_INT width = 0;
alias_set_type spill_alias_set;
@@ -1176,20 +1294,21 @@ record_store (rtx body, bb_info_t bb_info)
store_info_t store_info = NULL;
int group_id;
cselib_val *base = NULL;
- insn_info_t ptr, last;
+ insn_info_t ptr, last, redundant_reason;
bool store_is_unused;
if (GET_CODE (body) != SET && GET_CODE (body) != CLOBBER)
return 0;
+ mem = SET_DEST (body);
+
/* If this is not used, then this cannot be used to keep the insn
from being deleted. On the other hand, it does provide something
that can be used to prove that another store is dead. */
store_is_unused
- = (find_reg_note (insn_info->insn, REG_UNUSED, body) != NULL);
+ = (find_reg_note (insn_info->insn, REG_UNUSED, mem) != NULL);
/* Check whether that value is a suitable memory location. */
- mem = SET_DEST (body);
if (!MEM_P (mem))
{
/* If the set or clobber is unused, then it does not effect our
@@ -1208,20 +1327,31 @@ record_store (rtx body, bb_info_t bb_info)
fprintf (dump_file, " adding wild read for (clobber (mem:BLK (scratch))\n");
add_wild_read (bb_info);
insn_info->cannot_delete = true;
+ return 0;
}
- else if (!store_is_unused)
+ /* Handle (set (mem:BLK (addr) [... S36 ...]) (const_int 0))
+ as memset (addr, 0, 36); */
+ else if (!MEM_SIZE (mem)
+ || !CONST_INT_P (MEM_SIZE (mem))
+ || GET_CODE (body) != SET
+ || INTVAL (MEM_SIZE (mem)) <= 0
+ || INTVAL (MEM_SIZE (mem)) > MAX_OFFSET
+ || !CONST_INT_P (SET_SRC (body)))
{
- /* If the set or clobber is unused, then it does not effect our
- ability to get rid of the entire insn. */
- insn_info->cannot_delete = true;
- clear_rhs_from_active_local_stores ();
+ if (!store_is_unused)
+ {
+ /* If the set or clobber is unused, then it does not effect our
+ ability to get rid of the entire insn. */
+ insn_info->cannot_delete = true;
+ clear_rhs_from_active_local_stores ();
+ }
+ return 0;
}
- return 0;
}
/* We can still process a volatile mem, we just cannot delete it. */
if (MEM_VOLATILE_P (mem))
- insn_info->cannot_delete = true;
+ insn_info->cannot_delete = true;
if (!canon_address (mem, &spill_alias_set, &group_id, &offset, &base))
{
@@ -1229,12 +1359,20 @@ record_store (rtx body, bb_info_t bb_info)
return 0;
}
- width = GET_MODE_SIZE (GET_MODE (mem));
+ if (GET_MODE (mem) == BLKmode)
+ width = INTVAL (MEM_SIZE (mem));
+ else
+ {
+ width = GET_MODE_SIZE (GET_MODE (mem));
+ gcc_assert ((unsigned) width <= HOST_BITS_PER_WIDE_INT);
+ }
if (spill_alias_set)
{
bitmap store1 = clear_alias_group->store1_p;
bitmap store2 = clear_alias_group->store2_p;
+
+ gcc_assert (GET_MODE (mem) != BLKmode);
if (bitmap_bit_p (store1, spill_alias_set))
bitmap_set_bit (store2, spill_alias_set);
@@ -1283,10 +1421,41 @@ record_store (rtx body, bb_info_t bb_info)
(int)offset, (int)(offset+width));
}
+ const_rhs = rhs = NULL_RTX;
+ if (GET_CODE (body) == SET
+ /* No place to keep the value after ra. */
+ && !reload_completed
+ && (REG_P (SET_SRC (body))
+ || GET_CODE (SET_SRC (body)) == SUBREG
+ || CONSTANT_P (SET_SRC (body)))
+ && !MEM_VOLATILE_P (mem)
+ /* Sometimes the store and reload is used for truncation and
+ rounding. */
+ && !(FLOAT_MODE_P (GET_MODE (mem)) && (flag_float_store)))
+ {
+ rhs = SET_SRC (body);
+ if (CONSTANT_P (rhs))
+ const_rhs = rhs;
+ else if (body == PATTERN (insn_info->insn))
+ {
+ rtx tem = find_reg_note (insn_info->insn, REG_EQUAL, NULL_RTX);
+ if (tem && CONSTANT_P (XEXP (tem, 0)))
+ const_rhs = XEXP (tem, 0);
+ }
+ if (const_rhs == NULL_RTX && REG_P (rhs))
+ {
+ rtx tem = cselib_expand_value_rtx (rhs, scratch, 5);
+
+ if (tem && CONSTANT_P (tem))
+ const_rhs = tem;
+ }
+ }
+
/* Check to see if this stores causes some other stores to be
dead. */
ptr = active_local_stores;
last = NULL;
+ redundant_reason = NULL;
while (ptr)
{
@@ -1315,7 +1484,7 @@ record_store (rtx body, bb_info_t bb_info)
&& (GET_MODE (mem) == entry->mode))
{
del = true;
- s_info->positions_needed = (unsigned HOST_WIDE_INT) 0;
+ set_all_positions_unneeded (s_info);
}
if (dump_file)
fprintf (dump_file, " trying spill store in insn=%d alias_set=%d\n",
@@ -1329,10 +1498,46 @@ record_store (rtx body, bb_info_t bb_info)
fprintf (dump_file, " trying store in insn=%d gid=%d[%d..%d)\n",
INSN_UID (ptr->insn), s_info->group_id,
(int)s_info->begin, (int)s_info->end);
- for (i = offset; i < offset+width; i++)
- if (i >= s_info->begin && i < s_info->end)
- s_info->positions_needed
- &= ~(((unsigned HOST_WIDE_INT) 1) << (i - s_info->begin));
+
+ /* Even if PTR won't be eliminated as unneeded, if both
+ PTR and this insn store the same constant value, we might
+ eliminate this insn instead. */
+ if (s_info->const_rhs
+ && const_rhs
+ && offset >= s_info->begin
+ && offset + width <= s_info->end
+ && all_positions_needed_p (s_info, offset - s_info->begin,
+ width))
+ {
+ if (GET_MODE (mem) == BLKmode)
+ {
+ if (GET_MODE (s_info->mem) == BLKmode
+ && s_info->const_rhs == const_rhs)
+ redundant_reason = ptr;
+ }
+ else if (s_info->const_rhs == const0_rtx
+ && const_rhs == const0_rtx)
+ redundant_reason = ptr;
+ else
+ {
+ rtx val;
+ start_sequence ();
+ val = get_stored_val (s_info, GET_MODE (mem),
+ offset, offset + width,
+ BLOCK_FOR_INSN (insn_info->insn),
+ true);
+ if (get_insns () != NULL)
+ val = NULL_RTX;
+ end_sequence ();
+ if (val && rtx_equal_p (val, const_rhs))
+ redundant_reason = ptr;
+ }
+ }
+
+ for (i = MAX (offset, s_info->begin);
+ i < offset + width && i < s_info->end;
+ i++)
+ set_position_unneeded (s_info, i - s_info->begin);
}
else if (s_info->rhs)
/* Need to see if it is possible for this store to overwrite
@@ -1343,14 +1548,18 @@ record_store (rtx body, bb_info_t bb_info)
GET_MODE (s_info->mem),
s_info->mem_addr,
mem, rtx_varies_p))
- s_info->rhs = NULL;
+ {
+ s_info->rhs = NULL;
+ s_info->const_rhs = NULL;
+ }
}
/* An insn can be deleted if every position of every one of
its s_infos is zero. */
- if (s_info->positions_needed != (unsigned HOST_WIDE_INT) 0)
+ if (any_positions_needed_p (s_info)
+ || ptr->cannot_delete)
del = false;
-
+
if (del)
{
insn_info_t insn_to_delete = ptr;
@@ -1368,8 +1577,6 @@ record_store (rtx body, bb_info_t bb_info)
ptr = next;
}
- gcc_assert ((unsigned) width <= HOST_BITS_PER_WIDE_INT);
-
/* Finish filling in the store_info. */
store_info->next = insn_info->store_rec;
insn_info->store_rec = store_info;
@@ -1377,25 +1584,25 @@ record_store (rtx body, bb_info_t bb_info)
store_info->alias_set = spill_alias_set;
store_info->mem_addr = get_addr (XEXP (mem, 0));
store_info->cse_base = base;
- store_info->positions_needed = lowpart_bitmask (width);
+ if (width > HOST_BITS_PER_WIDE_INT)
+ {
+ store_info->is_large = true;
+ store_info->positions_needed.large.count = 0;
+ store_info->positions_needed.large.bitmap = BITMAP_ALLOC (NULL);
+ }
+ else
+ {
+ store_info->is_large = false;
+ store_info->positions_needed.small_bitmask = lowpart_bitmask (width);
+ }
store_info->group_id = group_id;
store_info->begin = offset;
store_info->end = offset + width;
store_info->is_set = GET_CODE (body) == SET;
+ store_info->rhs = rhs;
+ store_info->const_rhs = const_rhs;
+ store_info->redundant_reason = redundant_reason;
- if (store_info->is_set
- /* No place to keep the value after ra. */
- && !reload_completed
- && (REG_P (SET_SRC (body))
- || GET_CODE (SET_SRC (body)) == SUBREG
- || CONSTANT_P (SET_SRC (body)))
- /* Sometimes the store and reload is used for truncation and
- rounding. */
- && !(FLOAT_MODE_P (GET_MODE (mem)) && (flag_float_store)))
- store_info->rhs = SET_SRC (body);
- else
- store_info->rhs = NULL;
-
/* If this is a clobber, we return 0. We will only be able to
delete this insn if there is only one store USED store, but we
can use the clobber to delete other stores earlier. */
@@ -1423,12 +1630,10 @@ dump_insn_info (const char * start, insn_info_t insn_info)
static rtx
find_shift_sequence (int access_size,
store_info_t store_info,
- read_info_t read_info,
- int shift,
- bool speed)
+ enum machine_mode read_mode,
+ int shift, bool speed, bool require_cst)
{
enum machine_mode store_mode = GET_MODE (store_info->mem);
- enum machine_mode read_mode = GET_MODE (read_info->mem);
enum machine_mode new_mode;
rtx read_reg = NULL;
@@ -1450,11 +1655,11 @@ find_shift_sequence (int access_size,
/* If a constant was stored into memory, try to simplify it here,
otherwise the cost of the shift might preclude this optimization
e.g. at -Os, even when no actual shift will be needed. */
- if (CONSTANT_P (store_info->rhs))
+ if (store_info->const_rhs)
{
unsigned int byte = subreg_lowpart_offset (new_mode, store_mode);
- rtx ret = simplify_subreg (new_mode, store_info->rhs, store_mode,
- byte);
+ rtx ret = simplify_subreg (new_mode, store_info->const_rhs,
+ store_mode, byte);
if (ret && CONSTANT_P (ret))
{
ret = simplify_const_binary_operation (LSHIFTRT, new_mode,
@@ -1470,6 +1675,9 @@ find_shift_sequence (int access_size,
}
}
+ if (require_cst)
+ return NULL_RTX;
+
/* Try a wider mode if truncating the store mode to NEW_MODE
requires a real instruction. */
if (GET_MODE_BITSIZE (new_mode) < GET_MODE_BITSIZE (store_mode)
@@ -1533,6 +1741,98 @@ find_shift_sequence (int access_size,
}
+/* Call back for note_stores to find the hard regs set or clobbered by
+ insn. Data is a bitmap of the hardregs set so far. */
+
+static void
+look_for_hardregs (rtx x, const_rtx pat ATTRIBUTE_UNUSED, void *data)
+{
+ bitmap regs_set = (bitmap) data;
+
+ if (REG_P (x)
+ && REGNO (x) < FIRST_PSEUDO_REGISTER)
+ {
+ int regno = REGNO (x);
+ int n = hard_regno_nregs[regno][GET_MODE (x)];
+ while (--n >= 0)
+ bitmap_set_bit (regs_set, regno + n);
+ }
+}
+
+/* Helper function for replace_read and record_store.
+ Attempt to return a value stored in STORE_INFO, from READ_BEGIN
+ to one before READ_END bytes read in READ_MODE. Return NULL
+ if not successful. If REQUIRE_CST is true, return always constant. */
+
+static rtx
+get_stored_val (store_info_t store_info, enum machine_mode read_mode,
+ HOST_WIDE_INT read_begin, HOST_WIDE_INT read_end,
+ basic_block bb, bool require_cst)
+{
+ enum machine_mode store_mode = GET_MODE (store_info->mem);
+ int shift;
+ int access_size; /* In bytes. */
+ rtx read_reg;
+
+ /* To get here the read is within the boundaries of the write so
+ shift will never be negative. Start out with the shift being in
+ bytes. */
+ if (store_mode == BLKmode)
+ shift = 0;
+ else if (BYTES_BIG_ENDIAN)
+ shift = store_info->end - read_end;
+ else
+ shift = read_begin - store_info->begin;
+
+ access_size = shift + GET_MODE_SIZE (read_mode);
+
+ /* From now on it is bits. */
+ shift *= BITS_PER_UNIT;
+
+ if (shift)
+ read_reg = find_shift_sequence (access_size, store_info, read_mode, shift,
+ optimize_bb_for_speed_p (bb),
+ require_cst);
+ else if (store_mode == BLKmode)
+ {
+ /* The store is a memset (addr, const_val, const_size). */
+ gcc_assert (CONST_INT_P (store_info->rhs));
+ store_mode = int_mode_for_mode (read_mode);
+ if (store_mode == BLKmode)
+ read_reg = NULL_RTX;
+ else if (store_info->rhs == const0_rtx)
+ read_reg = extract_low_bits (read_mode, store_mode, const0_rtx);
+ else if (GET_MODE_BITSIZE (store_mode) > HOST_BITS_PER_WIDE_INT
+ || BITS_PER_UNIT >= HOST_BITS_PER_WIDE_INT)
+ read_reg = NULL_RTX;
+ else
+ {
+ unsigned HOST_WIDE_INT c
+ = INTVAL (store_info->rhs)
+ & (((HOST_WIDE_INT) 1 << BITS_PER_UNIT) - 1);
+ int shift = BITS_PER_UNIT;
+ while (shift < HOST_BITS_PER_WIDE_INT)
+ {
+ c |= (c << shift);
+ shift <<= 1;
+ }
+ read_reg = GEN_INT (trunc_int_for_mode (c, store_mode));
+ read_reg = extract_low_bits (read_mode, store_mode, read_reg);
+ }
+ }
+ else if (store_info->const_rhs
+ && (require_cst
+ || GET_MODE_CLASS (read_mode) != GET_MODE_CLASS (store_mode)))
+ read_reg = extract_low_bits (read_mode, store_mode,
+ copy_rtx (store_info->const_rhs));
+ else
+ read_reg = extract_low_bits (read_mode, store_mode,
+ copy_rtx (store_info->rhs));
+ if (require_cst && read_reg && !CONSTANT_P (read_reg))
+ read_reg = NULL_RTX;
+ return read_reg;
+}
+
/* Take a sequence of:
A <- r1
...
@@ -1566,30 +1866,17 @@ find_shift_sequence (int access_size,
static bool
replace_read (store_info_t store_info, insn_info_t store_insn,
- read_info_t read_info, insn_info_t read_insn, rtx *loc)
+ read_info_t read_info, insn_info_t read_insn, rtx *loc,
+ bitmap regs_live)
{
enum machine_mode store_mode = GET_MODE (store_info->mem);
enum machine_mode read_mode = GET_MODE (read_info->mem);
- int shift;
- int access_size; /* In bytes. */
- rtx insns, read_reg;
+ rtx insns, this_insn, read_reg;
+ basic_block bb;
if (!dbg_cnt (dse))
return false;
- /* To get here the read is within the boundaries of the write so
- shift will never be negative. Start out with the shift being in
- bytes. */
- if (BYTES_BIG_ENDIAN)
- shift = store_info->end - read_info->end;
- else
- shift = read_info->begin - store_info->begin;
-
- access_size = shift + GET_MODE_SIZE (read_mode);
-
- /* From now on it is bits. */
- shift *= BITS_PER_UNIT;
-
/* Create a sequence of instructions to set up the read register.
This sequence goes immediately before the store and its result
is read by the load.
@@ -1605,12 +1892,10 @@ replace_read (store_info_t store_info, insn_info_t store_insn,
GET_MODE_NAME (read_mode), INSN_UID (read_insn->insn),
GET_MODE_NAME (store_mode), INSN_UID (store_insn->insn));
start_sequence ();
- if (shift)
- read_reg = find_shift_sequence (access_size, store_info, read_info, shift,
- optimize_bb_for_speed_p (BLOCK_FOR_INSN (read_insn->insn)));
- else
- read_reg = extract_low_bits (read_mode, store_mode,
- copy_rtx (store_info->rhs));
+ bb = BLOCK_FOR_INSN (read_insn->insn);
+ read_reg = get_stored_val (store_info,
+ read_mode, read_info->begin, read_info->end,
+ bb, false);
if (read_reg == NULL_RTX)
{
end_sequence ();
@@ -1624,6 +1909,34 @@ replace_read (store_info_t store_info, insn_info_t store_insn,
insns = get_insns ();
end_sequence ();
+ if (insns != NULL_RTX)
+ {
+ /* Now we have to scan the set of new instructions to see if the
+ sequence contains and sets of hardregs that happened to be
+ live at this point. For instance, this can happen if one of
+ the insns sets the CC and the CC happened to be live at that
+ point. This does occasionally happen, see PR 37922. */
+ bitmap regs_set = BITMAP_ALLOC (NULL);
+
+ for (this_insn = insns; this_insn != NULL_RTX; this_insn = NEXT_INSN (this_insn))
+ note_stores (PATTERN (this_insn), look_for_hardregs, regs_set);
+
+ bitmap_and_into (regs_set, regs_live);
+ if (!bitmap_empty_p (regs_set))
+ {
+ if (dump_file)
+ {
+ fprintf (dump_file,
+ "abandoning replacement because sequence clobbers live hardregs:");
+ df_print_regset (dump_file, regs_set);
+ }
+
+ BITMAP_FREE (regs_set);
+ return false;
+ }
+ BITMAP_FREE (regs_set);
+ }
+
if (validate_change (read_insn->insn, loc, read_reg, 0))
{
deferred_change_t deferred_change =
@@ -1833,18 +2146,15 @@ check_mem_read_rtx (rtx *loc, void *data)
else
{
if (store_info->rhs
- && (offset >= store_info->begin)
- && (offset + width <= store_info->end))
- {
- unsigned HOST_WIDE_INT mask
- = (lowpart_bitmask (width)
- << (offset - store_info->begin));
-
- if ((store_info->positions_needed & mask) == mask
- && replace_read (store_info, i_ptr,
- read_info, insn_info, loc))
- return 0;
- }
+ && offset >= store_info->begin
+ && offset + width <= store_info->end
+ && all_positions_needed_p (store_info,
+ offset - store_info->begin,
+ width)
+ && replace_read (store_info, i_ptr, read_info,
+ insn_info, loc, bb_info->regs_live))
+ return 0;
+
/* The bases are the same, just see if the offsets
overlap. */
if ((offset < store_info->end)
@@ -1902,18 +2212,13 @@ check_mem_read_rtx (rtx *loc, void *data)
if (store_info->rhs
&& store_info->group_id == -1
&& store_info->cse_base == base
- && (offset >= store_info->begin)
- && (offset + width <= store_info->end))
- {
- unsigned HOST_WIDE_INT mask
- = (lowpart_bitmask (width)
- << (offset - store_info->begin));
-
- if ((store_info->positions_needed & mask) == mask
- && replace_read (store_info, i_ptr,
- read_info, insn_info, loc))
- return 0;
- }
+ && offset >= store_info->begin
+ && offset + width <= store_info->end
+ && all_positions_needed_p (store_info,
+ offset - store_info->begin, width)
+ && replace_read (store_info, i_ptr, read_info, insn_info, loc,
+ bb_info->regs_live))
+ return 0;
if (!store_info->alias_set)
remove = canon_true_dependence (store_info->mem,
@@ -1949,6 +2254,67 @@ check_mem_read_use (rtx *loc, void *data)
for_each_rtx (loc, check_mem_read_rtx, data);
}
+
+/* Get arguments passed to CALL_INSN. Return TRUE if successful.
+ So far it only handles arguments passed in registers. */
+
+static bool
+get_call_args (rtx call_insn, tree fn, rtx *args, int nargs)
+{
+ CUMULATIVE_ARGS args_so_far;
+ tree arg;
+ int idx;
+
+ INIT_CUMULATIVE_ARGS (args_so_far, TREE_TYPE (fn), NULL_RTX, 0, 3);
+
+ arg = TYPE_ARG_TYPES (TREE_TYPE (fn));
+ for (idx = 0;
+ arg != void_list_node && idx < nargs;
+ arg = TREE_CHAIN (arg), idx++)
+ {
+ enum machine_mode mode = TYPE_MODE (TREE_VALUE (arg));
+ rtx reg = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1), link, tmp;
+ if (!reg || !REG_P (reg) || GET_MODE (reg) != mode
+ || GET_MODE_CLASS (mode) != MODE_INT)
+ return false;
+
+ for (link = CALL_INSN_FUNCTION_USAGE (call_insn);
+ link;
+ link = XEXP (link, 1))
+ if (GET_CODE (XEXP (link, 0)) == USE)
+ {
+ args[idx] = XEXP (XEXP (link, 0), 0);
+ if (REG_P (args[idx])
+ && REGNO (args[idx]) == REGNO (reg)
+ && (GET_MODE (args[idx]) == mode
+ || (GET_MODE_CLASS (GET_MODE (args[idx])) == MODE_INT
+ && (GET_MODE_SIZE (GET_MODE (args[idx]))
+ <= UNITS_PER_WORD)
+ && (GET_MODE_SIZE (GET_MODE (args[idx]))
+ > GET_MODE_SIZE (mode)))))
+ break;
+ }
+ if (!link)
+ return false;
+
+ tmp = cselib_expand_value_rtx (args[idx], scratch, 5);
+ if (GET_MODE (args[idx]) != mode)
+ {
+ if (!tmp || !CONST_INT_P (tmp))
+ return false;
+ tmp = GEN_INT (trunc_int_for_mode (INTVAL (tmp), mode));
+ }
+ if (tmp)
+ args[idx] = tmp;
+
+ FUNCTION_ARG_ADVANCE (args_so_far, mode, NULL_TREE, 1);
+ }
+ if (arg != void_list_node || idx != nargs)
+ return false;
+ return true;
+}
+
+
/* Apply record_store to all candidate stores in INSN. Mark INSN
if some part of it is not a candidate store and assigns to a
non-register target. */
@@ -1986,18 +2352,48 @@ scan_insn (bb_info_t bb_info, rtx insn)
if (CALL_P (insn))
{
+ bool const_call;
+ tree memset_call = NULL_TREE;
+
insn_info->cannot_delete = true;
/* Const functions cannot do anything bad i.e. read memory,
however, they can read their parameters which may have
- been pushed onto the stack. */
- if (RTL_CONST_CALL_P (insn))
+ been pushed onto the stack.
+ memset and bzero don't read memory either. */
+ const_call = RTL_CONST_CALL_P (insn);
+ if (!const_call)
+ {
+ rtx call = PATTERN (insn);
+ if (GET_CODE (call) == PARALLEL)
+ call = XVECEXP (call, 0, 0);
+ if (GET_CODE (call) == SET)
+ call = SET_SRC (call);
+ if (GET_CODE (call) == CALL
+ && MEM_P (XEXP (call, 0))
+ && GET_CODE (XEXP (XEXP (call, 0), 0)) == SYMBOL_REF)
+ {
+ rtx symbol = XEXP (XEXP (call, 0), 0);
+ if (SYMBOL_REF_DECL (symbol)
+ && TREE_CODE (SYMBOL_REF_DECL (symbol)) == FUNCTION_DECL)
+ {
+ if ((DECL_BUILT_IN_CLASS (SYMBOL_REF_DECL (symbol))
+ == BUILT_IN_NORMAL
+ && (DECL_FUNCTION_CODE (SYMBOL_REF_DECL (symbol))
+ == BUILT_IN_MEMSET))
+ || SYMBOL_REF_DECL (symbol) == block_clear_fn)
+ memset_call = SYMBOL_REF_DECL (symbol);
+ }
+ }
+ }
+ if (const_call || memset_call)
{
insn_info_t i_ptr = active_local_stores;
insn_info_t last = NULL;
if (dump_file)
- fprintf (dump_file, "const call %d\n", INSN_UID (insn));
+ fprintf (dump_file, "%s call %d\n",
+ const_call ? "const" : "memset", INSN_UID (insn));
/* See the head comment of the frame_read field. */
if (reload_completed)
@@ -2043,6 +2439,28 @@ scan_insn (bb_info_t bb_info, rtx insn)
i_ptr = i_ptr->next_local_store;
}
+
+ if (memset_call)
+ {
+ rtx args[3];
+ if (get_call_args (insn, memset_call, args, 3)
+ && CONST_INT_P (args[1])
+ && CONST_INT_P (args[2])
+ && INTVAL (args[2]) > 0)
+ {
+ rtx mem = gen_rtx_MEM (BLKmode, args[0]);
+ set_mem_size (mem, args[2]);
+ body = gen_rtx_SET (VOIDmode, mem, args[1]);
+ mems_found += record_store (body, bb_info);
+ if (dump_file)
+ fprintf (dump_file, "handling memset as BLKmode store\n");
+ if (mems_found == 1)
+ {
+ insn_info->next_local_store = active_local_stores;
+ active_local_stores = insn_info;
+ }
+ }
+ }
}
else
@@ -2075,11 +2493,11 @@ scan_insn (bb_info_t bb_info, rtx insn)
fprintf (dump_file, "mems_found = %d, cannot_delete = %s\n",
mems_found, insn_info->cannot_delete ? "true" : "false");
- /* If we found some sets of mems, and the insn has not been marked
- cannot delete, add it into the active_local_stores so that it can
- be locally deleted if found dead. Otherwise mark it as cannot
- delete. This simplifies the processing later. */
- if (mems_found == 1 && !insn_info->cannot_delete)
+ /* If we found some sets of mems, add it into the active_local_stores so
+ that it can be locally deleted if found dead or used for
+ replace_read and redundant constant store elimination. Otherwise mark
+ it as cannot delete. This simplifies the processing later. */
+ if (mems_found == 1)
{
insn_info->next_local_store = active_local_stores;
active_local_stores = insn_info;
@@ -2139,7 +2557,8 @@ static void
dse_step1 (void)
{
basic_block bb;
-
+ bitmap regs_live = BITMAP_ALLOC (NULL);
+
cselib_init (false);
all_blocks = BITMAP_ALLOC (NULL);
bitmap_set_bit (all_blocks, ENTRY_BLOCK);
@@ -2152,6 +2571,10 @@ dse_step1 (void)
memset (bb_info, 0, sizeof (struct bb_info));
bitmap_set_bit (all_blocks, bb->index);
+ bb_info->regs_live = regs_live;
+
+ bitmap_copy (regs_live, DF_LR_IN (bb));
+ df_simulate_initialize_forwards (bb, regs_live);
bb_table[bb->index] = bb_info;
cselib_discard_hook = remove_useless_values;
@@ -2172,6 +2595,8 @@ dse_step1 (void)
if (INSN_P (insn))
scan_insn (bb_info, insn);
cselib_process_insn (insn);
+ if (INSN_P (insn))
+ df_simulate_one_insn_forwards (bb, insn, regs_live);
}
/* This is something of a hack, because the global algorithm
@@ -2197,14 +2622,14 @@ dse_step1 (void)
/* Skip the clobbers. */
while (!store_info->is_set)
store_info = store_info->next;
- if (store_info->alias_set)
+ if (store_info->alias_set && !i_ptr->cannot_delete)
delete_dead_store_insn (i_ptr);
else
if (store_info->group_id >= 0)
{
group_info_t group
= VEC_index (group_info_t, rtx_group_vec, store_info->group_id);
- if (group->frame_related)
+ if (group->frame_related && !i_ptr->cannot_delete)
delete_dead_store_insn (i_ptr);
}
@@ -2232,14 +2657,49 @@ dse_step1 (void)
while (ptr)
{
if (ptr->contains_cselib_groups)
- free_store_info (ptr);
+ {
+ store_info_t s_info = ptr->store_rec;
+ while (s_info && !s_info->is_set)
+ s_info = s_info->next;
+ if (s_info
+ && s_info->redundant_reason
+ && s_info->redundant_reason->insn
+ && !ptr->cannot_delete)
+ {
+ if (dump_file)
+ fprintf (dump_file, "Locally deleting insn %d "
+ "because insn %d stores the "
+ "same value and couldn't be "
+ "eliminated\n",
+ INSN_UID (ptr->insn),
+ INSN_UID (s_info->redundant_reason->insn));
+ delete_dead_store_insn (ptr);
+ }
+ if (s_info)
+ s_info->redundant_reason = NULL;
+ free_store_info (ptr);
+ }
+ else
+ {
+ store_info_t s_info;
+
+ /* Free at least positions_needed bitmaps. */
+ for (s_info = ptr->store_rec; s_info; s_info = s_info->next)
+ if (s_info->is_large)
+ {
+ BITMAP_FREE (s_info->positions_needed.large.bitmap);
+ s_info->is_large = false;
+ }
+ }
ptr = ptr->prev_insn;
}
free_alloc_pool (cse_store_info_pool);
}
+ bb_info->regs_live = NULL;
}
+ BITMAP_FREE (regs_live);
cselib_finish ();
htab_empty (rtx_group_table);
}
@@ -3168,11 +3628,61 @@ dse_step5_spill (void)
/*----------------------------------------------------------------------------
Sixth step.
+ Delete stores made redundant by earlier stores (which store the same
+ value) that couldn't be eliminated.
+----------------------------------------------------------------------------*/
+
+static void
+dse_step6 (void)
+{
+ basic_block bb;
+
+ FOR_ALL_BB (bb)
+ {
+ bb_info_t bb_info = bb_table[bb->index];
+ insn_info_t insn_info = bb_info->last_insn;
+
+ while (insn_info)
+ {
+ /* There may have been code deleted by the dce pass run before
+ this phase. */
+ if (insn_info->insn
+ && INSN_P (insn_info->insn)
+ && !insn_info->cannot_delete)
+ {
+ store_info_t s_info = insn_info->store_rec;
+
+ while (s_info && !s_info->is_set)
+ s_info = s_info->next;
+ if (s_info
+ && s_info->redundant_reason
+ && s_info->redundant_reason->insn
+ && INSN_P (s_info->redundant_reason->insn))
+ {
+ rtx rinsn = s_info->redundant_reason->insn;
+ if (dump_file)
+ fprintf (dump_file, "Locally deleting insn %d "
+ "because insn %d stores the "
+ "same value and couldn't be "
+ "eliminated\n",
+ INSN_UID (insn_info->insn),
+ INSN_UID (rinsn));
+ delete_dead_store_insn (insn_info);
+ }
+ }
+ insn_info = insn_info->prev_insn;
+ }
+ }
+}
+
+/*----------------------------------------------------------------------------
+ Seventh step.
+
Destroy everything left standing.
----------------------------------------------------------------------------*/
static void
-dse_step6 (bool global_done)
+dse_step7 (bool global_done)
{
unsigned int i;
group_info_t group;
@@ -3239,6 +3749,11 @@ rest_of_handle_dse (void)
df_set_flags (DF_DEFER_INSN_RESCAN);
+ /* Need the notes since we must track live hardregs in the forwards
+ direction. */
+ df_note_add_problem ();
+ df_analyze ();
+
dse_step0 ();
dse_step1 ();
dse_step2_init ();
@@ -3273,8 +3788,9 @@ rest_of_handle_dse (void)
dse_step4 ();
dse_step5_spill ();
}
-
- dse_step6 (did_global);
+
+ dse_step6 ();
+ dse_step7 (did_global);
if (dump_file)
fprintf (dump_file, "dse: local deletions = %d, global deletions = %d, spill deletions = %d\n",
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 68d0ee8da3b..669948bc7ce 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -110,6 +110,9 @@ static void dwarf2out_source_line (unsigned int, const char *);
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
#endif
+/* Save the result of dwarf2out_do_frame across PCH. */
+static GTY(()) bool saved_do_cfi_asm = 0;
+
/* Decide whether we want to emit frame unwind information for the current
translation unit. */
@@ -121,7 +124,7 @@ dwarf2out_do_frame (void)
we're not going to output frame or unwind info. */
return (write_symbols == DWARF2_DEBUG
|| write_symbols == VMS_AND_DWARF2_DEBUG
- || DWARF2_FRAME_INFO
+ || DWARF2_FRAME_INFO || saved_do_cfi_asm
#ifdef DWARF2_UNWIND_INFO
|| (DWARF2_UNWIND_INFO
&& (flag_unwind_tables
@@ -142,7 +145,7 @@ dwarf2out_do_cfi_asm (void)
#endif
if (!flag_dwarf2_cfi_asm || !dwarf2out_do_frame ())
return false;
- if (!eh_personality_libfunc)
+ if (saved_do_cfi_asm || !eh_personality_libfunc)
return true;
if (!HAVE_GAS_CFI_PERSONALITY_DIRECTIVE)
return false;
@@ -156,6 +159,7 @@ dwarf2out_do_cfi_asm (void)
if ((enc & 0x70) != 0 && (enc & 0x70) != DW_EH_PE_pcrel)
return false;
+ saved_do_cfi_asm = true;
return true;
}
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 0738f384497..830ce1dc910 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1490,6 +1490,90 @@ mem_expr_equal_p (const_tree expr1, const_tree expr2)
return 0;
}
+/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
+ bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
+ -1 if not known. */
+
+int
+get_mem_align_offset (rtx mem, int align)
+{
+ tree expr;
+ unsigned HOST_WIDE_INT offset;
+
+ /* This function can't use
+ if (!MEM_EXPR (mem) || !MEM_OFFSET (mem)
+ || !CONST_INT_P (MEM_OFFSET (mem))
+ || (get_object_alignment (MEM_EXPR (mem), MEM_ALIGN (mem), align)
+ < align))
+ return -1;
+ else
+ return (- INTVAL (MEM_OFFSET (mem))) & (align / BITS_PER_UNIT - 1);
+ for two reasons:
+ - COMPONENT_REFs in MEM_EXPR can have NULL first operand,
+ for <variable>. get_inner_reference doesn't handle it and
+ even if it did, the alignment in that case needs to be determined
+ from DECL_FIELD_CONTEXT's TYPE_ALIGN.
+ - it would do suboptimal job for COMPONENT_REFs, even if MEM_EXPR
+ isn't sufficiently aligned, the object it is in might be. */
+ gcc_assert (MEM_P (mem));
+ expr = MEM_EXPR (mem);
+ if (expr == NULL_TREE
+ || MEM_OFFSET (mem) == NULL_RTX
+ || !CONST_INT_P (MEM_OFFSET (mem)))
+ return -1;
+
+ offset = INTVAL (MEM_OFFSET (mem));
+ if (DECL_P (expr))
+ {
+ if (DECL_ALIGN (expr) < align)
+ return -1;
+ }
+ else if (INDIRECT_REF_P (expr))
+ {
+ if (TYPE_ALIGN (TREE_TYPE (expr)) < (unsigned int) align)
+ return -1;
+ }
+ else if (TREE_CODE (expr) == COMPONENT_REF)
+ {
+ while (1)
+ {
+ tree inner = TREE_OPERAND (expr, 0);
+ tree field = TREE_OPERAND (expr, 1);
+ tree byte_offset = component_ref_field_offset (expr);
+ tree bit_offset = DECL_FIELD_BIT_OFFSET (field);
+
+ if (!byte_offset
+ || !host_integerp (byte_offset, 1)
+ || !host_integerp (bit_offset, 1))
+ return -1;
+
+ offset += tree_low_cst (byte_offset, 1);
+ offset += tree_low_cst (bit_offset, 1) / BITS_PER_UNIT;
+
+ if (inner == NULL_TREE)
+ {
+ if (TYPE_ALIGN (DECL_FIELD_CONTEXT (field))
+ < (unsigned int) align)
+ return -1;
+ break;
+ }
+ else if (DECL_P (inner))
+ {
+ if (DECL_ALIGN (inner) < align)
+ return -1;
+ break;
+ }
+ else if (TREE_CODE (inner) != COMPONENT_REF)
+ return -1;
+ expr = inner;
+ }
+ }
+ else
+ return -1;
+
+ return offset & ((align / BITS_PER_UNIT) - 1);
+}
+
/* Given REF (a MEM) and T, either the type of X or the expression
corresponding to REF, set the memory attributes. OBJECTP is nonzero
if we are making a new object of this type. BITPOS is nonzero if
diff --git a/gcc/emutls.c b/gcc/emutls.c
index fc008952979..32e14a1c97e 100644
--- a/gcc/emutls.c
+++ b/gcc/emutls.c
@@ -147,8 +147,12 @@ __emutls_get_address (struct __emutls_object *obj)
static __gthread_once_t once = __GTHREAD_ONCE_INIT;
__gthread_once (&once, emutls_init);
__gthread_mutex_lock (&emutls_mutex);
- offset = ++emutls_size;
- obj->loc.offset = offset;
+ offset = obj->loc.offset;
+ if (offset == 0)
+ {
+ offset = ++emutls_size;
+ obj->loc.offset = offset;
+ }
__gthread_mutex_unlock (&emutls_mutex);
}
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 70a0d18bcb5..9ee5f29883d 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -1,7 +1,7 @@
/* Medium-level subroutines: convert bit-field store and extract
and shifts, multiplies and divides to rtl instructions.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -532,6 +532,7 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
int icode = optab_handler (movstrict_optab, fieldmode)->insn_code;
rtx insn;
rtx start = get_last_insn ();
+ rtx arg0 = op0;
/* Get appropriate low part of the value being stored. */
if (GET_CODE (value) == CONST_INT || REG_P (value))
@@ -552,11 +553,11 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
gcc_assert (GET_MODE (SUBREG_REG (op0)) == fieldmode
|| GET_MODE_CLASS (fieldmode) == MODE_INT
|| GET_MODE_CLASS (fieldmode) == MODE_PARTIAL_INT);
- op0 = SUBREG_REG (op0);
+ arg0 = SUBREG_REG (op0);
}
insn = (GEN_FCN (icode)
- (gen_rtx_SUBREG (fieldmode, op0,
+ (gen_rtx_SUBREG (fieldmode, arg0,
(bitnum % BITS_PER_WORD) / BITS_PER_UNIT
+ (offset * UNITS_PER_WORD)),
value));
@@ -748,6 +749,16 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
if (pat)
{
emit_insn (pat);
+
+ /* If the mode of the insertion is wider than the mode of the
+ target register we created a paradoxical subreg for the
+ target. Truncate the paradoxical subreg of the target to
+ itself properly. */
+ if (!TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (GET_MODE (op0)),
+ GET_MODE_BITSIZE (op_mode))
+ && (REG_P (xop0)
+ || GET_CODE (xop0) == SUBREG))
+ convert_move (op0, xop0, true);
return true;
}
delete_insns_since (last);
diff --git a/gcc/expr.c b/gcc/expr.c
index 0f46b199883..9eb1ae70a0d 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2698,7 +2698,7 @@ set_storage_via_libcall (rtx object, rtx size, rtx val, bool tailcall)
for the function we use for block clears. The first time FOR_CALL
is true, we call assemble_external. */
-static GTY(()) tree block_clear_fn;
+tree block_clear_fn;
void
init_block_clear_fn (const char *asmspec)
diff --git a/gcc/expr.h b/gcc/expr.h
index 48e0e2d6dcd..e0817f61a7c 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -404,6 +404,7 @@ enum block_op_methods
BLOCK_OP_TAILCALL
};
+extern GTY(()) tree block_clear_fn;
extern void init_block_move_fn (const char *);
extern void init_block_clear_fn (const char *);
@@ -695,6 +696,11 @@ extern void set_mem_attributes (rtx, tree, int);
expecting that it'll be added back in later. */
extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
+/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
+ bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
+ -1 if not known. */
+extern int get_mem_align_offset (rtx, int);
+
/* Assemble the static constant template for function entry trampolines. */
extern rtx assemble_trampoline_template (void);
diff --git a/gcc/fixed-value.c b/gcc/fixed-value.c
index d7f6413b29a..2fe1b160c8e 100644
--- a/gcc/fixed-value.c
+++ b/gcc/fixed-value.c
@@ -295,8 +295,8 @@ do_fixed_add (FIXED_VALUE_TYPE *f, const FIXED_VALUE_TYPE *a,
double_int temp;
int i_f_bits;
- /* This was a conditional expression but it triggered a bug in the
- Solaris 8 compiler. */
+ /* This was a conditional expression but it triggered a bug in
+ Sun C 5.5. */
if (subtract_p)
temp = double_int_neg (b->data);
else
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 8c0cb1d153f..32863e6b4e8 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -1,6 +1,6 @@
/* Fold a constant sub-tree into a single node for C-compiler
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -6008,10 +6008,6 @@ optimize_minmax_comparison (enum tree_code code, tree type, tree op0, tree op1)
expression would not overflow or that overflow is undefined for the type
in the language in question.
- We also canonicalize (X + 7) * 4 into X * 4 + 28 in the hope that either
- the machine has a multiply-accumulate insn or that this is part of an
- addressing calculation.
-
If we return a non-null expression, it is an equivalent form of the
original computation, but need not be in the original type.
@@ -7439,7 +7435,17 @@ fold_plusminus_mult_expr (enum tree_code code, tree type, tree arg0, tree arg1)
else if (TREE_CODE (arg1) == INTEGER_CST)
{
arg10 = build_one_cst (type);
- arg11 = arg1;
+ /* As we canonicalize A - 2 to A + -2 get rid of that sign for
+ the purpose of this canonicalization. */
+ if (TREE_INT_CST_HIGH (arg1) == -1
+ && negate_expr_p (arg1)
+ && code == PLUS_EXPR)
+ {
+ arg11 = negate_expr (arg1);
+ code = MINUS_EXPR;
+ }
+ else
+ arg11 = arg1;
}
else
{
@@ -8047,15 +8053,19 @@ fold_unary (enum tree_code code, tree type, tree op0)
{
if (TREE_CODE (arg0) == COMPOUND_EXPR)
return build2 (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0),
- fold_build1 (code, type, TREE_OPERAND (arg0, 1)));
+ fold_build1 (code, type,
+ fold_convert (TREE_TYPE (op0),
+ TREE_OPERAND (arg0, 1))));
else if (TREE_CODE (arg0) == COND_EXPR)
{
tree arg01 = TREE_OPERAND (arg0, 1);
tree arg02 = TREE_OPERAND (arg0, 2);
if (! VOID_TYPE_P (TREE_TYPE (arg01)))
- arg01 = fold_build1 (code, type, arg01);
+ arg01 = fold_build1 (code, type,
+ fold_convert (TREE_TYPE (op0), arg01));
if (! VOID_TYPE_P (TREE_TYPE (arg02)))
- arg02 = fold_build1 (code, type, arg02);
+ arg02 = fold_build1 (code, type,
+ fold_convert (TREE_TYPE (op0), arg02));
tem = fold_build3 (COND_EXPR, type, TREE_OPERAND (arg0, 0),
arg01, arg02);
@@ -9036,17 +9046,17 @@ fold_comparison (enum tree_code code, tree type, tree op0, tree op1)
switch (code)
{
case EQ_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 == bitpos1);
+ return constant_boolean_node (bitpos0 == bitpos1, type);
case NE_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 != bitpos1);
+ return constant_boolean_node (bitpos0 != bitpos1, type);
case LT_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 < bitpos1);
+ return constant_boolean_node (bitpos0 < bitpos1, type);
case LE_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 <= bitpos1);
+ return constant_boolean_node (bitpos0 <= bitpos1, type);
case GE_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 >= bitpos1);
+ return constant_boolean_node (bitpos0 >= bitpos1, type);
case GT_EXPR:
- return build_int_cst (boolean_type_node, bitpos0 > bitpos1);
+ return constant_boolean_node (bitpos0 > bitpos1, type);
default:;
}
}
@@ -11678,7 +11688,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
WARN_STRICT_OVERFLOW_MISC);
return fold_build2 (code, type,
fold_convert (type, TREE_OPERAND (arg0, 0)),
- negate_expr (arg1));
+ fold_convert (type, negate_expr (arg1)));
}
if ((!INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type))
&& TREE_CODE (arg1) == NEGATE_EXPR
@@ -11689,8 +11699,9 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
"when distributing negation across "
"division"),
WARN_STRICT_OVERFLOW_MISC);
- return fold_build2 (code, type, negate_expr (arg0),
- TREE_OPERAND (arg1, 0));
+ return fold_build2 (code, type,
+ fold_convert (type, negate_expr (arg0)),
+ fold_convert (type, TREE_OPERAND (arg1, 0)));
}
/* If arg0 is a multiple of arg1, then rewrite to the fastest div
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 82e03c9d25c..d4eae5e593c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,4054 +1,98 @@
-2008-12-09 Daniel Franke <franke.daniel@gmail.com>
+2009-01-14 Steven G. Kargl <kargl@gcc.gnu.org>
- PR fortran/36376
- PR fortran/37468
- * lang-specs.h: Pass on -i* options to f951 to (probably) report
- them as unknown. Duplicate gcc.c (cpp_options), but omit
- -fpch-preprocess on -save-temps.
+ * ChangeLog-2007: Clean out svn merge droppings.
-2008-12-09 Daniel Franke <franke.daniel@gmail.com>
+2009-01-10 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/36457
- * lang.opt: Added option idirafter.
- * cpp.h (gfc_cpp_add_include_path_after): New prototype.
- * cpp.c (gfc_cpp_handle_option): Recognize and handle OPT_dirafter.
- (gfc_cpp_add_include_path_after): New, adds user-defined search path
- after any other paths.
- * invoke.texi (idirafter): New.
- (no-range-check): Fixed entry in option-index.
+ PR fortran/38763
+ * target-memory.c (encode_derived): Encode NULL.
-2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
+2009-01-10 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/37469
- * expr.c (find_array_element): Simplify array bounds.
- Assert that both bounds are constant expressions.
+ PR fortran/38765
+ * resolve.c (check_host_association): Use the symtree name to
+ search for a potential contained procedure, since this is the
+ name by which it would be referenced.
-2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
+2009-01-06 Thomas Koenig <tkoenig@gcc.gnu.org>
- PR fortran/35983
- * trans-expr.c (gfc_trans_subcomponent_assign):
- Add se's pre and post blocks to current block.
- (gfc_trans_structure_assign): Remove specific handling
- of C_NULL_PTR and C_NULL_FUNPTR.
+ PR fortran/38220
+ * interface.c (gfc_procedure_use): Don't warn about functions
+ from ISO_C_BINDING.
+ * symbol.c (generate_isocbinding_symbol): Mark c_loc and
+ c_funloc as pure.
-2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+2009-01-05 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/38425
- * io.c (check_io_constraints): Check constraints on REC=, POS=, and
- internal unit with POS=. Fix punctuation on a few error messages.
+ PR fortran/38657
+ * module.c (write_common_0): Use the name of the symtree rather
+ than the common block, to determine if the common has been
+ written.
-2008-12-06 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/38415
- * expr.c (gfc_check_pointer_assign): Added a check for abstract
- interfaces in procedure pointer assignments, removed check involving
- gfc_compare_interfaces until PR38290 is fixed completely.
-
-2008-12-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/38291
- * io.c (match_dt_element): Use dt->pos in matcher.
- (gfc_free_dt): Free dt->pos after use.
- (gfc_resolve_dt): Use dt->pos in resolution of stream position tag.
-
-2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
-
- PR bootstrap/38262
- * Make-lang.in (f951): Add BACKENDLIBS, remove GMPLIBS.
-
-2008-12-02 Jakub Jelinek <jakub@redhat.com>
- Diego Novillo <dnovillo@google.com>
-
- * Make-lang.in (install-finclude-dir): Use mkinstalldirs
- and don't remove the finclude directory beforehand.
-
-2008-12-02 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36704
- PR fortran/38290
- * decl.c (match_result): Result may be a standard variable or a
- procedure pointer.
- * expr.c (gfc_check_pointer_assign): Additional checks for procedure
- pointer assignments.
- * primary.c (gfc_match_rvalue): Bugfix for procedure pointer
- assignments.
- * resolve.c (resolve_function): Check for attr.subroutine.
- * symbol.c (check_conflict): Addtional checks for RESULT statements.
- * trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure
- pointers as function result.
-
-2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/38252
- * parse.c (parse_spec): Skip statement order check in case
- of a CONTAINS statement.
-
-2008-11-30 Daniel Kraft <d@domob.eu>
-
- PR fortran/37779
- * gfortran.h (struct gfc_entry_list): Fixed typo in comment.
- * resolve.c (is_illegal_recursion): New method.
- (resolve_procedure_expression): Use new is_illegal_recursion instead of
- direct check and handle function symbols correctly.
- (resolve_actual_arglist): Removed useless recursion check.
- (resolve_function): Use is_illegal_recursion instead of direct check.
- (resolve_call): Ditto.
-
-2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * trans-array.c (gfc_conv_array_parameter): Guard union access.
-
-2008-11-29 Janus Weil <janus@gcc.gnu.org>
- Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/38289
- PR fortran/38290
- * decl.c (match_procedure_decl): Handle whitespaces.
- * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
- interface.
-
-2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * module.c (gfc_dump_module): Report error on unlink only if
- errno != ENOENT.
-
-2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/36463
- * expr.c (replace_symbol): Don't replace the symtree
- if the expresion is an intrinsic function. Don't create
- non-existent symtrees. Use symbol's name instead of symtree's,
- different in case of module procedure dummy arguments.
-
-2008-11-25 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- PR fortran/38248
- * module.c (gfc_dump_module): Check rename/unlink syscalls errors.
-
-2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
-
- PR fortran/37319
- * parse.c (match_deferred_characteristics): Make sure 'name' is
- initialized before reading it.
-
-2008-11-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/37803
- * arith.c (gfc_check_real_range): Add mpfr_check_range.
- * simplify.c (gfc_simplify_nearest): Add mpfr_check_range.
-
-2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/38184
- * simplify.c (is_constant_array_expr): Return true instead of false
- if the array constructor is empty.
-
-2008-11-24 Daniel Kraft <d@domob.eu>
-
- PR fortran/37779
- * resolve.c (resolve_procedure_expression): New method.
- (resolve_variable): Call it.
- (resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments.
-
-2008-11-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34820
- * trans-expr.c (gfc_conv_function_call): Remove all code to
- deallocate intent out derived types with allocatable
- components.
- (gfc_trans_assignment_1): An assignment from a scalar to an
- array of derived types with allocatable components, requires
- a deep copy to each array element and deallocation of the
- converted rhs expression afterwards.
- * trans-array.c : Minor whitespace.
- * trans-decl.c (init_intent_out_dt): Add code to deallocate
- allocatable components of derived types with intent out.
- (generate_local_decl): If these types are unused, set them
- referenced anyway but allow the uninitialized warning.
-
- PR fortran/34143
- * trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
- expression has a null data pointer argument, nullify the
- allocatable component.
-
- PR fortran/32795
- * trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
- the data pointer if the source is not a variable.
-
-2008-11-23 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37735
- * trans-array.c (structure_alloc_comps): Do not duplicate the
- descriptor if this is a descriptorless array!
-
-2008-11-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38160
- * trans-types.c (gfc_validate_c_kind): Remove function.
- * decl.c (gfc_match_kind_spec): Add C kind parameter check.
- (verify_bind_c_derived_type): Remove gfc_validate_c_kind call.
- (verify_c_interop_param): Update call.
- * gfortran.h (verify_bind_c_derived_type): Update prototype.
- (gfc_validate_c_kind): Remove.
- * symbol.c (verify_bind_c_derived_type): Update verify_c_interop call.
- * resolve.c (gfc_iso_c_func_interface): Ditto.
-
-2008-11-22 Jakub Jelinek <jakub@redhat.com>
-
- PR libfortran/37839
- * trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
- to 16 pointers plus 32 integers. Don't use max integer kind
- alignment, only gfc_intio_kind's alignment.
- (gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
- * ioparm.def: Fix order, bitmasks and types of inquire round, sign
- and pending fields. Move u in dt before id.
- * io.c (gfc_free_inquire): Free decimal and size exprs.
- (match_inquire_element): Match size instead of matching blank twice.
- (gfc_resolve_inquire): Resolve size.
-
-2008-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/29215
- * trans-array.c (trans_array_constructor_value,
- gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.
-
- * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
- gfc_index_one_node.
- (gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.
-
- PR fortran/38181
- * trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
- size if the second argument is not optional and one argument size
- for rank 1 arrays.
-
-2008-11-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38171
- * module.c (load_equiv): Regression fix; check that equivalence
- members come from the same module only.
-
-2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35681
- * dependency.c (gfc_check_argument_var_dependency): Add
- elemental check flag. Issue a warning if we find a dependency
- but don't generate a temporary. Add the case of an elemental
- function call as actual argument to an elemental procedure.
- Add the case of an operator expression as actual argument
- to an elemental procedure.
- (gfc_check_argument_dependency): Add elemental check flag.
- Update calls to gfc_check_argument_var_dependency.
- (gfc_check_fncall_dependency): Add elemental check flag.
- Update call to gfc_check_argument_dependency.
- * trans-stmt.c (gfc_trans_call): Make call to
- gfc_conv_elemental_dependency unconditional, but with a flag
- whether we should check dependencies between variables.
- (gfc_conv_elemental_dependency): Add elemental check flag.
- Update call to gfc_check_fncall_dependency.
- * trans-expr.c (gfc_trans_arrayfunc_assign): Update call to
- gfc_check_fncall_dependency.
- * resolve.c (find_noncopying_intrinsics): Update call to
- gfc_check_fncall_dependency.
- * dependency.h (enum gfc_dep_check): New enum.
- (gfc_check_fncall_dependency): Update prototype.
-
-2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37992
- * gfortran.h (gfc_namespace): Added member old_cl_list,
- backup of cl_list.
- (gfc_free_charlen): Added prototype.
- * symbol.c (gfc_free_charlen): New function.
- (gfc_free_namespace): Use gfc_free_charlen.
- * parse.c (next_statement): Backup gfc_current_ns->cl_list.
- (reject_statement): Restore gfc_current_ns->cl_list.
- Free cl_list's elements before dropping them.
-
-2008-11-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38095
- * trans-expr.c (gfc_map_intrinsic_function): Fix pointer access.
-
-2008-11-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38119
- * trans-array.c (gfc_trans_create_temp_array): Set the
- loop->from to zero and the renormalisation of loop->to for all
- dimensions.
-
-2008-11-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37926
- * trans-expr.c (gfc_free_interface_mapping): Null sym->formal
- (gfc_add_interface_mapping): Copy the pointer to the formal
- arglist, rather than using copy_formal_args - fixes regression.
-
-2008-11-15 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37926
- * trans-expr.c (gfc_add_interface_mapping): Transfer the formal
- arglist and the always_explicit attribute if the dummy arg is a
- procedure.
-
-2008-11-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/37988
- * io.c (enum format_token): For readability replace FMT_POS with FMT_T,
- FMT_TL, and FMT_TR. (format_lex): Use new enumerators. (check_format):
- Add check for missing positive integer.
-
-2008-10-14 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38033
- * trans-array.c (gfc_trans_create_temp_array): Stabilize the
- 'to' expression.
- (gfc_conv_loop_setup): Use the end expression for the loop 'to'
- if it is available.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35366
- PR fortran/33759
- * trans-const.c (gfc_conv_constant_to_tree): Warn when
- converting an integer outside of LOGICAL's range to
- LOGICAL.
- * trans-intrinsic.c (gfc_conv_intrinsic_function,
- gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
- Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
- argument of another TRANSFER.
-
-2008-11-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38065
- * resolve.c (resolve_fntype): Fix private derived type checking.
-
-2008-11-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37836
- * intrinsic.c (add_functions): Reference gfc_simplify._minval
- and gfc_simplify_maxval.
- * intrinsic.h : Add prototypes for gfc_simplify._minval and
- gfc_simplify_maxval.
- * simplify.c (min_max_choose): New function extracted from
- simplify_min_max.
- (simplify_min_max): Call it.
- (simplify_minval_maxval, gfc_simplify_minval,
- gfc_simplify_maxval): New functions.
-
-2008-11-04 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37597
- * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
- when symbol not found.
-
-2008-11-03 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37821
- * cpp.c (gfc_cpp_add_include_path): Use BRACKET.
- * scanner.c (add_path_to_list): Argument to add at head.
- (gfc_add_include_path): Add new argument.
- (gfc_add_intrinsic_modules_path) Update call.
- (load_file): Print filename/line in the error message.
- * gfortran.h (gfc_add_include_path): Update prototype.
- * options.c (gfc_post_options,gfc_handle_module_path_options,
- gfc_handle_option): Update call.
- * lang-spec.h (F951_OPTIONS): Don't insert include path twice.
-
- * arith.c (arith_error): Add -fno-range-error to the message.
-
-2008-11-03 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37445
- * resolve.c (resolve_actual_arglist ): Correct comparison of
- FL_VARIABLE with e->expr_type.
- (resolve_call): Check that host association is correct.
- (resolve_actual_arglist ): Remove return is old_sym is use
- associated. Only reparse expression if old and new symbols
- have different types.
-
- PR fortran/PR35769
- * resolve.c (gfc_resolve_assign_in_forall): Change error to a
- warning.
-
-2008-11-01 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36426
- * expr.c (replace_symbol): Replace all symbols which lie in the
- formal namespace of the interface and copy their attributes.
- * resolve.c (resolve_symbol): Add charlen to namespace.
-
-2008-11-01 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/19925
- * trans-array.c (gfc_trans_array_constructor_value): Fix comment.
- (gfc_conv_array_initializer): Convert internal_error() to gfc_error_now.
- * array.c: Remove GFC_MAX_AC_EXPAND macro.
- (gfc_expand_constructor): Use gfc_option.flag_max_array_constructor.
- * gfortran.h (gfc_option): Add flag_max_array_constructor member.
- * lang.opt: Add -fmax-array-constructor option.
- * expr.c (gfc_match_init_expr): Fix error message to mention new option.
- * invoke.texi: Document new option.
- * options.c (gfc_init_options): Set default value for new option.
- (gfc_handle_option): Deal with commandline.
-
-2008-11-01 Daniel Kraft <d@domob.eu>
-
- PR fortran/35681
- * gfortran.h (struct gfc_code): New field `resolved_isym'.
- * trans.h (gfc_build_memcpy_call): Made public.
- * trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
- * intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
- * iresolve.c (create_formal_for_intents): New helper method.
- (gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
- * resolve.c (resolve_call): Initialize resolved_isym to NULL.
- * trans-array.c (gfc_trans_allocate_array_storage): New argument
- `initial' to allow initializing the allocated storage to some initial
- value copied from another array.
- (gfc_trans_create_temp_array): Allow initialization of the temporary
- with a copy of some other array by using the new extension.
- (gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
- (gfc_conv_loop_setup): Ditto.
- * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
- * trans-expr.c (gfc_conv_function_call): Ditto.
- (gfc_build_memcpy_call): Made public.
- * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
- temporary for INTENT(INOUT) arguments to the value of the mirrored
- array and clean up the temporary as very last intructions in the created
- block.
- * trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
- and enable elemental dependency checking if we have.
-
-2008-11-01 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36322
- PR fortran/36463
- * gfortran.h: New function gfc_expr_replace_symbols.
- * decl.c (match_procedure_decl): Increase reference count for interface.
- * expr.c: New functions replace_symbol and gfc_expr_replace_symbols.
- * resolve.c (resolve_symbol): Correctly copy array spec and char len
- of PROCEDURE declarations from their interface.
- * symbol.c (gfc_get_default_type): Enhanced error message.
- (copy_formal_args): Call copy_formal_args recursively for arguments.
- * trans-expr.c (gfc_conv_function_call): Bugfix.
-
-2008-11-01 Dennis Wassel <dennis.wassel@gmail.com>
+2009-01-05 Daniel Franke <franke.daniel@gmail.com>
PR fortran/37159
- * fortran/check.c (gfc_check_random_seed): Check PUT size
- at compile time.
-
-2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35840
- * expr.c (gfc_reduce_init_expr): New function, containing checking code
- from gfc_match_init_expr, so that checking can be deferred.
- (gfc_match_init_expr): Use gfc_reduce_init_expr.
- * io.c (check_io_constraints): Use gfc_reduce_init_expr instead of
- checking that the expression is a constant.
- * match.h (gfc_reduce_init_expr): Prototype added.
-
-2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35820
- * resolve.c (gfc_count_forall_iterators): New function.
- (gfc_resolve_forall): Use gfc_count_forall_iterators to evaluate
- the needed memory amount to allocate. Don't forget to free allocated
- memory. Add an assertion to check for memory leaks.
-
-2008-10-30 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/37930
- * fortran/arith.c (gfc_mpfr_to_mpz): Test for NaN and Inf values.
- Remove stale comment and kludge code for MPFR 2.0.1 and older.
- (gfc_real2int): Error on conversion of NaN or Inf.
- (gfc_complex2int): Ditto.
- * fortran/arith.h: Update mpfr_to_mpz prototype.
- * fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor,
- gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function
- calls to include locus.
-
-2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37903
- * trans-array.c (gfc_trans_create_temp_array): If n is less
- than the temporary dimension, assert that loop->from is
- zero (reverts to earlier versions). If there is at least one
- null loop->to[n], it is a callee allocated array so set the
- size to NULL and break.
- (gfc_trans_constant_array_constructor): Set the offset to zero.
- (gfc_trans_array_constructor): Remove loop shifting around the
- temporary creation.
- (gfc_conv_loop_setup): Prefer zero-based descriptors if
- possible. Calculate the translation from loop variables to
- array indices if an array constructor.
-
-2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37749
- * trans-array.c (gfc_trans_create_temp_array): If size is NULL
- use the array bounds for loop->to.
-
-2008-10-28 Tobias Burnus <burnus@net-b.de>
-
- * intrinsic.texi: Update OpenMP section for OMPv3.
-
-2008-10-24 Jakub Jelinek <jakub@redhat.com>
-
- * Make-lang.in (check-f95-subtargets, check-fortran-subtargets): New
- aliases for check-gfortran-subtargets.
- (lang_checks_parallelized): Add check-gfortran.
- (check_gfortran_parallelize): New variable.
-
-2008-10-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37723
- * dependency.c (gfc_dep_resolver ): If we find equal array
- element references, go on to the next reference.
-
-2008-10-16 Daniel Kraft <d@domob.eu>
-
- * resolve.c (resolve_elemental_actual): Handle calls to intrinsic
- subroutines correctly.
-
-2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
-
-2008-10-12 Daniel Kraft <d@domob.eu>
-
- PR fortran/37688
- * expr.c (gfc_expr_check_typed): Extend permission of untyped
- expressions to both top-level variable and basic arithmetic expressions.
-
-2008-10-12 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37787
- * dependency.c (gfc_are_equivalenced_arrays): Look in symbol
- namespace rather than current namespace, if it is available.
-
-2008-10-12 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/37792
- * fortran/resolve.c (resolve_fl_variable): Simplify the
- initializer if there is one.
-
-2008-10-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37794
- * module.c (check_for_ambiguous): Remove redundant code.
-
-2008-10-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/35723
- * gfortran.h (gfc_suppress_error): Removed from header.
- (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
- * array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors
- instead of directly changing gfc_suppress_error.
- * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
- (gfc_intrinsic_sub_interface): Ditto.
- * error.c (suppress_errors): Made static from `gfc_suppress_error'.
- (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
- (gfc_notify_std), (gfc_error): Use new static name of global.
- * expr.c (check_arglist), (check_references): New methods.
- (check_restricted): Check arglists and references of EXPR_FUNCTIONs
- and EXPR_VARAIBALEs, respectively. Allow PARAMETER symbols.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- * f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
- * trans-decl.c (gfc_build_qualified_array): Build accurate debug type
- even if nest.
- (build_entry_thunks, gfc_generate_function_code,
- gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
- with DECL_INITIAL as its BLOCK.
-
-2008-10-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35680
- * gfortran.h : Add 'error' bit field to gfc_expr structure.
- * expr.c (check_inquiry): When checking a restricted expression
- check that arguments are either variables or restricted.
- (check_restricted): Do not emit error if the expression has
- 'error' set. Clean up detection of host-associated variable.
-
-2008-10-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/37638
- * gfortran.h (struct gfc_typebound_proc): New flag `error'.
- * resolve.c (update_arglist_pass): Added assertion.
- (update_compcall_arglist): Fail early for erraneous procedures to avoid
- confusion later.
- (resolve_typebound_generic_call): Ignore erraneous specific targets
- and added assertions.
- (resolve_typebound_procedure): Set new `error' flag.
-
-2008-10-04 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37706
- * module.c (load_equiv): Check the module before negating the
- unused flag.
-
-2008-10-02 Steven Bosscher <steven@gcc.gnu.org>
-
- PR fortran/37635
- * intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics.
- * intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos.
- * gfortran.h <enum gfc_isym_id>: (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ): New.
- * f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ,
- BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and
- BUILT_IN_CTZLL.
- * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
- gfc_conv_intrinsic_trails): New code-generation functions for LEADZ
- and TRAILZ intrinsics.
- (gfc_conv_intrinsic_function): Use them
- * intrinsic.texi: Add documentation for LEADZ and TRAILZ.
- * simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions.
-
-2008-09-30 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36592
- * symbol.c (check_conflict): If a symbol in a COMMON block is a
- procedure, it must be a procedure pointer.
- (gfc_add_in_common): Symbols in COMMON blocks may be variables or
- procedure pointers.
- * trans-types.c (gfc_sym_type): Make procedure pointers in COMMON
- blocks work.
-
-2008-09-25 Jerry DeLisle <jvdelisle@gcc.gnu.org
-
- PR fortran/37498
- * trans-io.c (build_dt): Revert previous patch..
- * ioparm.def: Delete IOPARM_dt_f2003.
-
-2008-09-25 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37504
- * expr.c (gfc_check_pointer_assign): Allow assignment of
- protected pointers.
- * match.c (gfc_match_assignment,gfc_match_pointer_assignment):
- Remove unreachable code.
-
-2008-09-24 Tobias Burnus <burnus@net-b.de>
-
- * options.c (set_default_std_flags,gfc_init_options):
- Add comment: keep in sync with libgfortran.
-
-2008-09-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37626
- * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate
- result variables.
-
-2008-09-23 Daniel Kraft <d@domob.eu>
-
- PR fortran/37588
- * gfortran.h (gfc_compare_actual_formal): Removed, made private.
- (gfc_arglist_matches_symbol): New method.
- * interface.c (compare_actual_formal): Made static.
- (gfc_procedure_use): Use new name of compare_actual_formal.
- (gfc_arglist_matches_symbol): New method.
- (gfc_search_interface): Moved code partially to new
- gfc_arglist_matches_symbol.
- * resolve.c (resolve_typebound_generic_call): Resolve actual arglist
- before checking against formal and use new gfc_arglist_matches_symbol
- for checking.
- (resolve_compcall): Set type-spec of generated expression.
-
-2008-09-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37580
- * expr.c (gfc_check_pointer_assign): Add checks for pointer
- remapping.
-
-2008-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org
-
- PR fortran/37498
- * trans-io.c (gfc_build_io_library_fndecls): Bump pad size.
- (build_dt): Set mask bit for IOPARM_dt_f2003.
- * ioparm.def: Add IOPARM_dt_f2003.
-
-2008-09-22 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/37486
- * gfortran.h (gfc_option_t): New members flag_align_commons and
- warn_align_commons.
- * lang.opt: New options falign-commons and Walign-commons.
- * invoke.texi: Documentation for new options.
- * options.c (gfc_init_options): Initialize new options.
- (gfc_handle_options): Handle new options.
- * trans-common.c (translate_common): Implement new options.
- (gfc_trans_common): Set correct locus.
-
-2008-09-21 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37583
- * decl.c (scalarize_intrinsic_call): Both subroutines and
- functions can give a true for get_proc_mame's last argument so
- remove the &&gfc_current_ns->proc_name->attr.function.
- resolve.c (resolve_actual_arglist): Add check for recursion by
- reference to procedure as actual argument.
-
-2008-09-21 Daniel Kraft <d@domob.eu>
-
- PR fortran/35846
- * trans.h (gfc_conv_string_length): New argument `expr'.
- * trans-expr.c (flatten_array_ctors_without_strlen): New method.
- (gfc_conv_string_length): New argument `expr' that is used in a new
- special case handling if cl->length is NULL.
- (gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length.
- * trans-array.c (gfc_conv_expr_descriptor): Ditto.
- (gfc_trans_auto_array_allocation): Pass NULL as new expr.
- (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
- (gfc_trans_deferred_array): Ditto.
- (gfc_trans_array_constructor): Save and restore old values of globals
- used for bounds checking.
- * trans-decl.c (gfc_trans_dummy_character): Ditto.
- (gfc_trans_auto_character_variable): Ditto.
-
-2008-09-21 Daniel Kraft <d@domob.eu>
-
- * decl.c (match_procedure_in_type): Changed misleading error message
- for not yet implemented PROCEDURE(interface) syntax.
-
-2008-09-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35945
- * resolve.c (resolve_fl_variable_derived): Remove derived type
- comparison for use associated derived types. Host association
- of a derived type will not arise if there is a local derived type
- whose use name is the same.
-
- PR fortran/36700
- * match.c (gfc_match_call): Use the existing symbol even if
- it is a function.
-
-2008-09-18 Daniel Kraft <d@domob.eu>
-
- PR fortran/37507
- * trans.h (gfc_trans_runtime_error): New method.
- (gfc_trans_runtime_error_vararg): New method.
- (gfc_allocate_array_with_status): New argument `expr' for locus/varname.
- (gfc_deallocate_array_with_status): Ditto.
- * trans-array.h (gfc_array_deallocate): Ditto.
- * trans.c (gfc_trans_runtime_error): New method.
- (gfc_trans_runtime_error_vararg): New method, moved parts of the code
- from gfc_trans_runtime_check here.
- (gfc_trans_runtime_error_check): Moved code partly to new method.
- (gfc_call_malloc): Fix tab-indentation.
- (gfc_allocate_array_with_status): New argument `expr' and call
- gfc_trans_runtime_error for error reporting to include locus.
- (gfc_deallocate_with_status): Ditto.
- * trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
- * trans-array.c (gfc_array_allocate): Ditto.
- (gfc_array_deallocate): New argument `expr', passed on.
- (gfc_trans_dealloc_allocated): Pass NULL for expr.
- * trans-openmp.c (gfc_omp_clause_default): Ditto.
-
-2008-09-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37274
- PR fortran/36374
- * module.c (check_for_ambiguous): New function to test loaded
- symbol for ambiguity with fixup symbol.
- (read_module): Call check_for_ambiguous.
- (write_symtree): Do not write the symtree for symbols coming
- from an interface body.
-
- PR fortran/36374
- * resolve.c (count_specific_procs ): New function to count the
- number of specific procedures with the same name as the generic
- and emit appropriate errors for and actual argument reference.
- (resolve_assumed_size_actual): Add new argument no_formal_args.
- Correct logic around passing generic procedures as arguments.
- Call count_specific_procs from two locations.
- (resolve_function): Evaluate and pass no_formal_args.
- (resolve call): The same and clean up a bit by using csym more
- widely.
-
- PR fortran/36454
- * symbol.c (gfc_add_access): Access can be updated if use
- associated and not private.
-
-2008-09-17 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/37536
- * trans-stmt.c (gfc_trans_do): Optimize integer type non-simple
- do loop initialization.
-
-2008-09-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- Tobias Burnus <burnus@net.b.de>
-
- PR fortran/35840
- * io.c (match_vtag): Add tag name to error message.
- (match_out_tag): Cleanup whitespace.
- (gfc_resolve_dt): Resolve id and async tags.
-
-2008-09-13 Daniel Kraft <d@domob.eu>
-
- PR fortran/35770
- * primary.c (gfc_match_varspec): Added missing type-spec clearing
- after wrong implicit character typing.
-
-2008-09-12 Richard Guenther <rguenther@suse.de>
-
- * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
- build_fold_addr_expr to properly mark the argument
- addressable.
-
-2008-09-11 Daniel Kraft <d@domob.eu>
-
- PR fortran/36214
- * simplify.c (simplify_cmplx): Added linebreak to long line.
- * target-memory.c (gfc_convert_boz): Fix indentation.
- (gfc_interpret_float): Set mpfr precision to right value before
- calling mpfr_init.
-
-2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * expr.c (find_array_element): Reformat comment.
-
-2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * expr.c (find_array_element): Reformat.
-
-2008-09-10 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37420
- * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.
-
-2008-09-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/37429
- * resolve.c (expression_rank): Added assertion to guard against
- EXPR_COMPCALL expressions.
- (resolve_compcall): Set expression's rank from the target procedure's.
-
-2008-09-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/37411
- * trans-array.c (gfc_conv_array_parameter): Added assertion that the
- symbol has an array spec.
-
-2008-09-08 Daniel Kraft <d@domob.eu>
-
- PR fortran/37199
- * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
- (gfc_map_intrinsic_function): Added checks against NULL bounds in
- array specs.
-
-2008-09-08 Tobias Burnus <burnus@net.b.de>
-
- PR fortran/37400
- * symbol.c (gfc_set_default_type): Copy char len.
-
-2008-09-06 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/36153
- * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
- UBOUND if 2nd argument is KIND.
-
-2008-09-06 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/33229
- * resolve.c (resolve_function): An intrinsic subroutine should not be
- called as a function.
-
-2008-09-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/35837
- * resolve.c (resolve_types): Restore gfc_current_ns on exit.
- * symbol.c (gfc_save_all): Removed blank line.
-
-2008-09-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/36746
- * primary.c (gfc_match_rvalue): Removed logic to handle implicit
- typing to a derived-type if a component reference is found.
- (gfc_match_varspec): Moved it here.
-
-2008-09-04 Richard Guenther <rguenther@suse.de>
-
- * trans-array.c (gfc_conv_array_parameter): Use correct types
- in building COND_EXPRs.
- * trans-expr.c (gfc_conv_missing_dummy): Likewise.
- * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
-
-2008-09-04 Daniel Kraft <d@domob.eu>
-
- * PR fortran/37099
- * expr.c (simplify_const_ref): Update expression's character length
- when pulling out a substring reference.
-
-2008-09-04 Ian Lance Taylor <iant@google.com>
-
- * symbol.c (generate_isocbinding_symbol): Compare
- gfc_notification_std with ERROR rather than FAILURE.
- * resolve.c (check_assumed_size_reference): Compare array type
- with AR_FULL rather than DIMEN_ELEMENT.
- (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
- FL_VARIABLE.
-
-2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/37228
- * io.c (check_format): Allow specifying precision with g0 format.
-
-2008-09-02 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
- (gfc_add_abstract): New method.
- * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
- (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
- * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
- only to allow for ABSTRACT types.
- * parse.c (parse_interface): Use new gfc_add_abstract.
- * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
- type is constructed.
- * resolve.c (resolve_typespec_used): New method.
- (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
- check that no component is of an ABSTRACT type.
- (resolve_symbol): Check that no symbol is of an ABSTRACT type.
- (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
- * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
- (gfc_add_abstract): New method.
-
-2008-09-01 Daniel Kraft <d@domob.eu>
-
- PR fortran/37193
- * module.c (read_module): Initialize use_only flag on used symbols.
-
-2008-09-01 Daniel Kraft <d@domob.eu>
-
- * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
- and section to document the internals of type-bound procedures.
- (gfc_expr): Document EXPR_COMPCALL.
- * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
- * dump-parse-tree.c (show_compcall): New method.
- (show_expr): Call it for EXPR_COMPCALL.
- (show_typebound), (show_f2k_derived): New methods.
- (show_symbol): Call show_f2k_derived.
- (show_code_node): Handle EXEC_COMPCALL.
- * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
- primary->value.compcall.
-
-2008-08-31 Richard Guenther <rguenther@suse.de>
-
- * trans-expr.c (gfc_trans_string_copy): Use the correct types
- to compute slen and dlen.
-
-2008-08-31 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
- (struct gfc_tbp_generic): New type.
- (struct gfc_typebound_proc): Removed `target' and added union with
- `specific' and `generic' members; new members `overridden',
- `subroutine', `function' and `is_generic'.
- (struct gfc_expr): New members `derived' and `name' in compcall union
- member and changed type of `tbp' to gfc_typebound_proc.
- (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
- * match.h (gfc_typebound_default_access): New global.
- (gfc_match_generic): New method.
- * decl.c (gfc_match_generic): New method.
- (match_binding_attributes): New argument `generic' and handle it.
- (match_procedure_in_type): Mark matched binding as non-generic.
- * interface.c (gfc_compare_interfaces): Made public.
- (gfc_compare_actual_formal): Ditto.
- (check_interface_1), (compare_parameter): Use new public names.
- (gfc_procedure_use), (gfc_search_interface): Ditto.
- * match.c (match_typebound_call): Set base-symbol referenced.
- * module.c (binding_generic): New global array.
- (current_f2k_derived): New global.
- (mio_typebound_proc): Handle IO of GENERIC bindings.
- (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
- * parse.c (decode_statement): Handle GENERIC statement.
- (gfc_ascii_statement): Ditto.
- (typebound_default_access), (set_typebound_default_access): Removed.
- (gfc_typebound_default_access): New global.
- (parse_derived_contains): New default-access implementation and handle
- GENERIC statements encountered.
- * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
- structure and removed check for SUBROUTINE/FUNCTION from here.
- * resolve.c (extract_compcall_passed_object): New method.
- (update_compcall_arglist): Use it.
- (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
- (resolve_typebound_generic_call): New method.
- (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
- to GENERIC bindings.
- (resolve_compcall): Ditto (check for target being FUNCTION).
- (check_typebound_override): Handle GENERIC bindings.
- (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
- (resolve_typebound_procedure): Handle GENERIC bindings and set new
- attributes subroutine, function and overridden in gfc_typebound_proc.
- (resolve_fl_derived): Ensure extended type is resolved before the
- extending one is.
- * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
- * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * parse.c (parse_interface): Silence uninitialized var warning.
-
-2008-08-29 Jakub Jelinek <jakub@redhat.com>
-
- * trans.h (struct lang_type): Add span.
- (GFC_TYPE_ARRAY_SPAN): Define.
- * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
- copy TREE_STATIC from decl to span instead of setting it
- unconditionally, set DECL_ARTIFICIAL, fix type of initializer
- and set GFC_TYPE_ARRAY_SPAN on decl's type.
- * trans-types.c (gfc_get_array_descr_info): If
- GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
-
- * trans-decl.c (check_constant_initializer,
- gfc_emit_parameter_debug_info): New functions.
- (gfc_generate_module_vars, gfc_generate_function_code): Emit
- PARAMETERs and unreferenced variables with initializers into
- debug info.
-
- * gfortran.h (gfc_use_list): Add where field.
- * module.c (use_locus): New static variable.
- (gfc_match_use): Set it.
- (gfc_use_module): Copy it to gfc_use_list's where field.
- * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
- (gfc_trans_use_stmts): Set backend locus before calling the debug
- hook. Allow non-VAR_DECLs to be created even for non-external
- module. Don't emit anything so far for renames from different
- modules.
-
- PR fortran/24790
- * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
- PARM_DECLs with pointer or reference type.
-
- * trans-decl.c (gfc_build_qualified_array): Build non-flat
- array type for debug info purposes.
-
- PR fortran/29635
- PR fortran/23057
- * f95-lang.c (gfc_init_ts): New function.
- (LANG_HOOKS_INIT_TS): Define.
- * gfortran.h (gfc_use_rename): New type, moved from module.c.
- (gfc_get_use_rename): New macro, moved from module.c.
- (gfc_use_list): New type.
- (gfc_get_use_list): New macro.
- (gfc_namespace): Add use_stmts field.
- (gfc_free_use_stmts): New prototype.
- * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
- * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
- gfortran.h.
- (gfc_use_module): Chain the USE statement info to
- ns->use_stmts.
- (gfc_free_use_stmts): New function.
- * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
- * trans.h (struct module_htab_entry): New type.
- (gfc_find_module, gfc_module_add_decl): New functions.
- * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
- the module, adjust DECL_CONTEXTs of module procedures and
- call gfc_module_add_decl for them.
- * trans-common.c (build_common_decl): Set DECL_IGNORED_P
- on the common variable.
- (create_common): Set DECL_IGNORED_P for use associated vars.
- * trans-decl.c: Include debug.h.
- (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
- modules.
- (build_function_decl): Allow current_function_decl's context
- to be a NAMESPACE_DECL.
- (module_htab, cur_module): New variables.
- (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
- module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
- functions.
- (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
- variables and types and call gfc_module_add_decl for them.
- (gfc_generate_module_vars): Temporarily set cur_module.
- (gfc_trans_use_stmts): New function.
- (gfc_generate_function_code): Call it.
- (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
- * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
- and TYPE_CONTEXT of module derived types.
-
-2008-08-28 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
- (gfc_get_typebound_proc): New macro.
- (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
- (enum gfc_exec_op): New value `EXEC_COMPCALL'.
- (gfc_find_typebound_proc): New argument.
- (gfc_copy_ref), (gfc_match_varspec): Made public.
- * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
- * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
- (gfc_copy_ref): Made public and use new name.
- (simplify_const_ref): Use new name of gfc_copy_ref.
- (simplify_parameter_variable): Ditto.
- (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
- * match.c (match_typebound_call): New method.
- (gfc_match_call): Allow for CALL's to typebound procedures.
- * module.c (binding_passing), (binding_overriding): New variables.
- (expr_types): Add EXPR_COMPCALL.
- (mio_expr): gcc_unreachable for EXPR_COMPCALL.
- (mio_typebound_proc), (mio_typebound_symtree): New methods.
- (mio_f2k_derived): Handle type-bound procedures.
- * primary.c (gfc_match_varspec): Made public and parse trailing
- references to type-bound procedures; new argument `sub_flag'.
- (gfc_match_rvalue): New name and argument of gfc_match_varspec.
- (match_variable): Ditto.
- * resolve.c (update_arglist_pass): New method.
- (update_compcall_arglist), (resolve_typebound_static): New methods.
- (resolve_typebound_call), (resolve_compcall): New methods.
- (gfc_resolve_expr): Handle EXPR_COMPCALL.
- (resolve_code): Handle EXEC_COMPCALL.
- (resolve_fl_derived): New argument to gfc_find_typebound_proc.
- (resolve_typebound_procedure): Ditto and removed not-implemented error.
- * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
- * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
- implement access-checking.
- * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
- on EXPR_COMPCALL.
- * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
- * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
- intialization of ref->type.
-
-2008-08-28 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/37253
- * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
- saving attr.procedure and attr.proc_ptr to the module file.
-
-2008-08-25 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (gfc_find_component): Add new arguments.
- * parse.c (parse_derived_contains): Check if the derived-type containing
- the CONTAINS section is SEQUENCE/BIND(C).
- * resolve.c (resolve_typebound_procedure): Check for name collision with
- components.
- (resolve_fl_derived): Check for name collision with inherited
- type-bound procedures.
- * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
- (gfc_add_component): Adapt for new arguments.
- * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
-
-2008-08-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37201
- * decl.c (verify_bind_c_sym): Reject array/string returning
- functions.
-
-2008-08-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37201
- * trans-expr.c (gfc_conv_function_call): Add string_length
- for character-returning bind(C) functions.
-
-2008-08-24 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (gfc_typebound_proc): New struct.
- (gfc_symtree): New member typebound.
- (gfc_find_typebound_proc): Prototype for new method.
- (gfc_get_derived_super_type): Prototype for new method.
- * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS.
- * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type
- CONTAINS section.
- (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS.
- (gfc_match_private): Ditto.
- (match_binding_attributes), (match_procedure_in_type): New methods.
- (gfc_match_final_decl): Rewrote to make use of new
- COMP_DERIVED_CONTAINS parser state.
- * parse.c (typebound_default_access): New global helper variable.
- (set_typebound_default_access): New callback method.
- (parse_derived_contains): New method.
- (parse_derived): Extracted handling of CONTAINS to new parser state
- and parse_derived_contains.
- * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New.
- (check_typebound_override), (resolve_typebound_procedure): New methods.
- (resolve_typebound_procedures): New method.
- (resolve_fl_derived): Call new resolving method for typebound procs.
- * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL.
- (gfc_find_typebound_proc): New method.
- (gfc_get_derived_super_type): New method.
-
-2008-08-23 Janus Weil <janus@gcc.gnu.org>
-
- * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
- fields "pointer", "allocatable", "dimension", "access".
- Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
- * interface.c (gfc_compare_derived_types): Ditto.
- * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
- * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
- gfc_conv_structure): Ditto.
- * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
- gfc_get_component_attr,verify_bind_c_derived_type,
- generate_isocbinding_symbol): Ditto.
- * decl.c (build_struct): Ditto.
- * dump-parse-tree.c (show_components): Ditto.
- * trans-stmt.c (gfc_trans_deallocate): Ditto.
- * expr.c (gfc_check_assign,gfc_check_pointer_assign,
- gfc_default_initializer): Ditto.
- * module.c (mio_component): Ditto.
- * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
- * resolve.c (has_default_initializer,resolve_structure_cons,
- gfc_iso_c_func_interface,find_array_spec,resolve_ref,
- resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
- resolve_equivalence_derived): Ditto.
- * trans-io.c (transfer_expr): Ditto.
- * parse.c (parse_derived): Ditto.
- * dependency.c (gfc_check_dependency): Ditto.
- * primary.c (gfc_variable_attr): Ditto.
-
-2008-08-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37076
- * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
-
-2008-08-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37025
- * target-memory.c (gfc_interpret_character): Support
- kind=4 characters.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/30239
- * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
- type is re-declared but neither -pedantic nor -std=f* is given and so
- this is no error.
- * invoke.texi (-Wsurprising): Document this new behaviour.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (in_prefix): Removed from this header.
- * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
- * decl.c (in_prefix): Removed from here.
- (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
- * symbol.c (gfc_check_symbol_typed): Ditto.
- * expr.c (check_typed_ns): New helper variable.
- (expr_check_typed_help): New helper method.
- (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
- work, fixing a minor problem.
- * match.c (gfc_matching_prefix): New variable.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/32095
- PR fortran/34228
- * gfortran.h (in_prefix): New global.
- (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
- * array.c (match_array_element_spec): Check that bounds-expressions
- don't have symbols not-yet-typed in them.
- * decl.c (var_element): Check that variable used is already typed.
- (char_len_param_value): Check that expression does not contain
- not-yet-typed symbols.
- (in_prefix): New global.
- (gfc_match_prefix): Record using `in_prefix' if we're at the moment
- parsing a prefix or not.
- * expr.c (gfc_expr_check_typed): New method.
- * parse.c (verify_st_order): New argument to disable error output.
- (check_function_result_typed): New helper method.
- (parse_spec): Check that the function-result declaration, if given in
- a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
- parsed.
- * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
- a type associated to it, otherwise use the IMPLICIT rules or signal
- an error.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * f95-lang.c: Update all calls to pedwarn.
-
-2008-08-18 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/37032
- * gfortran.texi: Document decision on include file handling in
- preprocessed files.
-
-2008-08-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36825
- * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
-
-2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35863
- * io.c (gfc_match_open): Enable UTF-8 in checks.
- * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
-
-2008-08-14 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36705
- * symbol.c (check_conflict): Move conflict checks for (procedure,save)
- and (procedure,intent) to resolve_fl_procedure.
- * resolve.c (resolve_fl_procedure): Ditto.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 36901
- * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
- 'pedwarn0'.
-
-2008-08-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37011
- * symbol.c (gfc_add_extension): New function.
- * decl.c (gfc_get_type_attr_spec): Call it.
- (gfc_match_derived_decl): Set symbol extension attribute from
- attr.extension.
- * gfortran.h : Add prototype for gfc_add_extension.
-
-2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28875
- * options.c (set_Wall): Replace set_Wunused by warn_unused.
-
-2008-08-08 Daniel Kraft <d@domob.eu>
-
- * gfortran.h (gfc_finalizer): Replaced member `procedure' by two
- new members `proc_sym' and `proc_tree' to store the symtree after
- resolution.
- (gfc_find_sym_in_symtree): Made public.
- * decl.c (gfc_match_final_decl): Adapted for new member name.
- * interface.c (gfc_find_sym_in_symtree): Made public.
- (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly.
- * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
- New methods for module-file IO of f2k_derived.
- (mio_symbol): Do IO of f2k_derived namespace.
- * resolve.c (gfc_resolve_finalizers): Adapted for new member name and
- finding the symtree for the symbol here.
- * symbol.c (gfc_free_finalizer): Adapted for new members.
-
-2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as
- Invariant Section.
- * gfortran.texi: Likewise.
- * intrinsic.texi: Do not list GPL as Invariant Section.
- * invoke.texi: Likewise. Update copyright years.
-
-2008-07-29 Paul Thomas <pault@gcc.gnu.org>
-
- * trans-expr.c (conv_parent_component_references): New function
- to build missing parent references.
- (gfc_conv_variable): Call it
- * symbol.c (gfc_add_component): Check that component name in a
- derived type extension does not appear in parent.
- (gfc_find_component): For a derived type extension, check if
- the component appears in the parent derived type by calling
- self. Separate errors for private components and private types.
- * decl.c (match_data_constant): Add extra arg to call to
- gfc_match_structure_constructor.
- (check_extended_derived_type): New function to check that a
- parent derived type exists and that it is OK for exension.
- (gfc_get_type_attr_spec): Add extra argument 'name' and return
- it if extends is specified.
- (gfc_match_derived_decl): Match derived type extension and
- build a first component of the parent derived type if OK. Add
- the f2k namespace if not present.
- * gfortran.h : Add the extension attribute.
- * module.c : Handle attribute 'extension'.
- * match.h : Modify prototypes for gfc_get_type_attr_spec and
- gfc_match_structure_constructor.
- * primary.c (build_actual_constructor): New function extracted
- from gfc_match_structure_constructor and modified to call self
- iteratively to build derived type extensions, when f2k named
- components are used.
- (gfc_match_structure_constructor): Do not throw error for too
- many components if a parent type is being handled. Use
- gfc_find_component to generate errors for non-existent or
- private components. Iteratively call self for derived type
- extensions so that parent constructor is built. If extension
- and components left over, throw error.
- (gfc_match_rvalue): Add extra arg to call to
- gfc_match_structure_constructor.
-
- * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
- are the same symbol, aliassing does not matter.
-
-2008-07-29 Jan Hubicka <jh@suse.cz>
-
- * options.c (gfc_post_options): Do not set flag_no_inline.
-
-2008-07-29 Daniel Kraft <d@domob.eu>
-
- PR fortran/36403
- * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method
- to append a string-length even if the string argument is missing, e.g.
- for EOSHIFT.
- (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK
- and RESHAPE.
-
-2008-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gfortran.h (try): Remove macro. Replace try with gfc_try
- throughout.
- * array.c: Likewise.
- * check.c: Likewise.
- * cpp.c: Likewise.
- * cpp.h: Likewise.
- * data.c: Likewise.
- * data.h: Likewise.
- * decl.c: Likewise.
- * error.c: Likewise.
- * expr.c: Likewise.
- * interface.c: Likewise.
- * intrinsic.c: Likewise.
- * intrinsic.h: Likewise.
- * io.c: Likewise.
- * match.h: Likewise.
- * parse.c: Likewise.
- * parse.h: Likewise.
- * resolve.c: Likewise.
- * scanner.c: Likewise.
- * simplify.c: Likewise.
- * symbol.c: Likewise.
- * trans-openmp.c: Likewise.
- * trans-types.c: Likewise.
-
-2008-07-28 Tobias Burnus <burnus@net-b.de>
-
- * Make-lang.in: Remove -Wno-* from fortran-warn.
-
-2008-07-28 Richard Guenther <rguenther@suse.de>
-
- Merge from gimple-tuples-branch.
-
- 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
-
- * trans-expr.c: Include gimple.h instead of tree-gimple.h.
- * trans-array.c: Same.
- * trans-openmp.c: Same.
- * trans-stmt.c: Same.
- * f95-lang.c: Same.
- * trans-io.c: Same.
- * trans-decl.c: Same.
- * trans-intrinsic.c: Same.
- * trans.c: Same. Include tree-iterator.h.
- * Make-lang.in (trans.o): Depend on tree-iterator.h
-
- 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
-
- * trans-array.h (gfc_conv_descriptor_data_set_internal):
- Rename to gfc_conv_descriptor_data_set.
- (gfc_conv_descriptor_data_set_tuples): Remove.
- * trans-array.c (gfc_conv_descriptor_data_get): Rename
- from gfc_conv_descriptor_data_set_internal.
- Remove last argument to gfc_add_modify.
- (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
- gfc_add_modify.
- (gfc_trans_create_temp_array): Same.
- (gfc_conv_array_transpose): Same.
- (gfc_grow_array): Same.
- (gfc_put_offset_into_var): Same.
- (gfc_trans_array_ctor_element): Same.
- (gfc_trans_array_constructor_subarray): Same.
- (gfc_trans_array_constructor_value): Same.
- (gfc_trans_scalarized_loop_end): Same.
- (gfc_array_init_size): Same.
- (gfc_array_allocate): Same.
- (gfc_trans_array_bounds): Same.
- (gfc_trans_auto_array_allocation): Same.
- (gfc_trans_g77_array): Same.
- (gfc_trans_dummy_array_bias): Same.
- (gfc_conv_expr_descriptor): Same.
- (structure_alloc_comps): Same.
- * trans-expr.c: Same.
- * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
- Rename gfc_conv_descriptor_data_set_tuples to
- gfc_conv_descriptor_data_set.
- (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
- build2_v.
- (gfc_omp_clause_assign_op): Same.
- (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
- gfc_add_modify.
- (gfc_trans_omp_atomic): Same.
- (gfc_trans_omp_do): Same. Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
- Rename gfc_add_modify_stmt to gfc_add_modify.
- * trans-stmt.c: Rename gfc_add_modify_expr to
- gfc_add_modify.
- * trans.c: Rename gfc_add_modify_expr to
- gfc_add_modify.
- (gfc_add_modify): Remove last argument.
- Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
- * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
- Add prototype for gfc_add_modify.
- * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
- * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
- * trans-io.c: Same.
- * trans-intrinsic.c: Same.
-
- 2008-02-25 Aldy Hernandez <aldyh@redhat.com>
-
- * Make-lang.in (fortran-warn): Add -Wno-format.
-
- 2008-02-19 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
-
- * fortran/Make-lang.in (fortran-warn): Remove.
-
- 2007-11-22 Aldy Hernandez <aldyh@redhat.com>
-
- * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
- memset.
-
- 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
-
- * Make-lang.in (fortran-warn): Set to -Wno-format.
- * trans.c (gfc_trans_code): Update comment to say GENERIC.
- Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
-
-2008-07-27 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36132
- PR fortran/29952
- PR fortran/36909
- * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
- run-time error.
- * trans.h (gfc_trans_runtime_check): Update declaration.
- * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
- gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
- Updated gfc_trans_runtime_check calls.
- (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
- fix packing/unpacking for nonpresent optional actuals to optional
- formals.
- * trans-array.h (gfc_conv_array_parameter): Update declaration.
- * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
- gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
- (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
- * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
- calls.
- * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
- (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
- gfc_conv_array_parameter.
- * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
- * trans-decl.c (gfc_build_builtin_function_decls): Add
- gfor_fndecl_runtime_warning_at.
- * lang.opt: New option fcheck-array-temporaries.
- * gfortran.h (gfc_options): New flag_check_array_temporaries.
- * options.c (gfc_init_options, gfc_handle_option): Handle flag.
- * invoke.texi: New option fcheck-array-temporaries.
-
-2008-07-24 Jan Hubicka <jh@suse.cz>
-
- * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
-
-2008-07-24 Daniel Kraft <d@domob.eu>
-
- PR fortran/33141
- * lang.opt (Wnonstd-intrinsics): Removed option.
- (Wintrinsics-std), (Wintrinsic-shadow): New options.
- * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics
- from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
- (Error and Warning Options): Documented the new options and removed
- the documentation for -Wnonstd-intrinsics.
- * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and
- warn_intrinsics_std, removed warn_nonstd_intrinsics.
- (gfc_is_intrinsic): Renamed from gfc_intrinsic_name.
- (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New.
- * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by
- the new name gfc_is_intrinsic.
- (warn_intrinsic_shadow): New helper method.
- (gfc_match_function_decl), (gfc_match_subroutine): Call the new method
- warn_intrinsic_shadow to check the just-parsed procedure.
- * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether
- the function called is really an intrinsic in the selected standard.
- * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and
- extended to take into account the selected standard settings when trying
- to find out whether a symbol is an intrinsic or not.
- (gfc_check_intrinsic_standard): Made public and extended.
- (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed
- the calls to check_intrinsic_standard, this check now happens inside
- gfc_is_intrinsic.
- (gfc_warn_intrinsic_shadow): New method defined.
- * options.c (gfc_init_options): Initialize new warning flags to false
- and removed intialization of Wnonstd-intrinsics flag.
- (gfc_post_options): Removed logic for Wnonstd-intrinsics flag.
- (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag.
- (gfc_handle_option): Handle the new flags and removed handling of the
- old Wnonstd-intrinsics flag.
- * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by
- the new name gfc_is_intrinsic.
- * resolve.c (resolve_actual_arglist): Ditto.
- (resolve_generic_f), (resolve_unknown_f): Ditto.
- (is_external_proc): Ditto.
- (resolve_generic_s), (resolve_unknown_s): Ditto.
- (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that
- they are really available in the selected standard setting.
-
-2008-07-24 Daniel Kraft <d@domob.eu>
-
- * match.c (gfc_match): Add assertion to catch wrong calls trying to
- match upper-case characters.
-
-2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/29952
- * gfortran.h: Add "warn_array_temp" to gfc_option_t.
- * lang.opt: Add -Warray-temporaries.
- * invoke.texi: Document -Warray-temporaries
- * trans-array.h (gfc_trans_create_temp_array): Add argument of
- type *locus.
- (gfc_conv_loop_setup): Likewise.
- * trans-array.c (gfc_trans_create_temp_array): If
- -Warray-temporaries is given and locus is present, warn about
- creation of array temporaries.
- (gfc_trans_array_constructor_subarray): Add locus to call
- of gfc_conv_loop_setup.
- (gfc_trans_array_constructor): Add where argument. Pass where
- argument to call of gfc_trans_create_temp_array.
- (gfc_add_loop_ss_code): Add where argument. Pass where argument
- to recursive call of gfc_add_loop_ss_code and to call of
- gfc_trans_array_constructor.
- (gfc_conv_loop_setup): Add where argument. Pass where argument
- to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
- (gfc_conv_expr_descriptor): Pass location to call of
- gfc_conv_loop_setup.
- (gfc_conv_array_parameter): If -Warray-temporaries is given,
- warn about creation of temporary arrays.
- * trans-expr.c (gfc_conv_subref_array_arg): Add where argument
- to call to gfc_conv_loop_setup.
- (gfc_conv_function_call): Add where argument to call to
- gfc_trans_creat_temp_array.
- (gfc_trans_subarray_assign): Likewise.
- (gfc_trans_assignment_1): Add where argument to call to
- gfc_conv_loop_setup.
- * trans-stmt.c (gfc_conv_elemental_dependencies): Add where
- argument to call to gfc_trans_create_temp_array.
- (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup.
- (generate_loop_for_temp_to_lhs): Likewise.
- (generate_loop_for_rhs_to_temp): Likewise.
- (compute_inner_temp_size): Likewise.
- (gfc_trans-pointer_assign_need_temp): Likewise.
- (gfc_evaluate_where_mask): Likewise.
- (gfc_trans_where_assign): Likewise.
- (gfc_trans_where_3): Likewise.
- * trans-io.c (transfer_srray_component): Add where argument
- to function. Add where argument to call to gfc_conv_loop_setup.
- (transfer_expr): Add where argument to call to
- transfer_array_component.
- (gfc_trans_transfer): Add where expression to call to
- gfc_conv_loop_setup.
- * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add
- where argument to call to gfc_conv_loop_setup.
- (gfc_conv_intrinsic_count): Likewise.
- (gfc_conv_intrinsic_arith): Likewise.
- (gfc_conv_intrinsic_dot_product): Likewise.
- (gfc_conv_intrinsic_minmaxloc): Likewise.
- (gfc_conv_intrinsic_minmaxval): Likewise.
- (gfc_conv_intrinsic_array_transfer): Warn about
- creation of temporary array.
- Add where argument to call to gfc_trans_create_temp_array.
- * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp.
- (gfc_handle_option): Set gfc_option.warn_array_temp.
-
-2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35058
- * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
-
-2008-07-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/29835
- * io.c (error_element), (format_locus): New static globals.
- (unexpected_element): Spelled out this message fully.
- (next_char): Keep track of locus when not MODE_STRING.
- (next_char_not_space): Remember last parsed element in error_element.
- (format_lex): Fix two indentation errors.
- (check_format): Use format_locus and possibly error_element for a
- slightly better error message on invalid format.
- (check_format_string): Set format_locus to start of the string
- expression used as format.
-
-2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * expr.c (gfc_check_pointer_assign): Fix typo in string.
- * io.c (check_format): Fix typo in string. Fix comment typos.
- * parse.c (gfc_global_used): Likewise.
- * resolve.c (resolve_allocate_expr): Likewise.
- * symbol.c (gfc_set_default_type): Likewise.
- * arith.c: Fix typos in comments.
- * array.c: Likewise.
- * data.c: Likewise.
- * decl.c: Likewise.
- * dependency.c: Likewise.
- * f95-lang.c: Likewise.
- * gfortran.h: Likewise.
- * matchexp.c: Likewise.
- * module.c: Likewise.
- * primary.c: Likewise.
- * scanner.c: Likewise.
- * trans-array.c: Likewise.
- * trans-common.c: Likewise.
- * trans-decl.c: Likewise.
- * trans-expr.c: Likewise.
- * trans-intrinsic.c: Likewise.
- * trans-types.c: Likewise.
- * trans.c: Likewise.
- * trans.h: Likewise.
-
-2008-07-19 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36795
- * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
- which caused the generation of wrong code.
-
-2008-07-19 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36342
- * scanner.c (load_file): Add argument to destinguish between
- true filename and displayed filename.
- (include_line,gfc_new_file): Adapt accordingly.
-
-2008-07-19 Tobias Burnus <burnus@net-b.de>
-
- * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
- checks for cshift's shift and eoshift's shift and boundary args.
- (gfc_check_unpack): Add rank and shape tests for unpack.
-
-2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gfortran.h (new): Remove macro.
- * array.c (gfc_append_constructor, match_array_list,
- gfc_match_array_constructor): Likewise.
- * bbt.c (insert, gfc_insert_bbt): Likewise.
- * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
- get_proc_name): Likewise.
- * expr.c (gfc_copy_actual_arglist): Likewise.
- * interface.c (compare_actual_formal, check_new_interface,
- gfc_add_interface): Likewise.
- * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
- Likewise.
- * io.c (match_io_iterator, match_io_list): Likewise.
- * match.c (match_forall_header): Likewise.
- * matchexp.c (build_node): Likewise.
- * module.c (gfc_match_use): Likewise.
- * scanner.c (load_file): Likewise.
- * st.c (gfc_append_code): Likewise.
- * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
- gfc_commit_symbols): Likewise.
- * trans-common.c (build_field): Likewise.
- * trans-decl.c (gfc_finish_var_decl): Likewise.
- * trans-expr.c (gfc_free_interface_mapping,
- gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
- gfc_finish_interface_mapping,
- gfc_apply_interface_mapping_to_expr): Likewise.
- * trans.h (gfc_interface_sym_mapping): Likewise.
-
-2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gfortran.h (operator): Remove macro.
- (gfc_namespace, gfc_expr): Avoid C++ keywords.
- * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
- Likewise.
- * decl.c (access_attr_decl): Likewise.
- * dependency.c (gfc_dep_compare_expr): Likewise.
- * dump-parse-tree.c (show_expr, show_uop, show_namespace):
- Likewise.
- * expr.c (gfc_copy_expr, gfc_type_convert_binary,
- simplify_intrinsic_op, check_intrinsic_op): Likewise.
- * interface.c (fold_unary, gfc_match_generic_spec,
- gfc_match_interface, gfc_match_end_interface,
- check_operator_interface, check_uop_interfaces,
- gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
- gfc_add_interface, gfc_current_interface_head,
- gfc_set_current_interface_head): Likewise.
- * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
- Likewise.
- * matchexp.c (gfc_get_parentheses, build_node): Likewise.
- * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
- number_use_names, mio_expr, load_operator_interfaces, read_module,
- write_operator, write_module): Likewise.
- * openmp.c (resolve_omp_atomic): Likewise.
- * resolve.c (resolve_operator, gfc_resolve_character_operator,
- gfc_resolve_uops): Likewise.
- * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
- * trans-expr.c (gfc_conv_expr_op): Likewise.
- * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
-
-2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gfortran.h (protected): Remove macro.
- * dump-parse-tree.c (show_attr): Avoid C++ keywords.
- * expr.c (gfc_check_pointer_assign): Likewise.
- * interface.c (compare_parameter_protected): Likewise.
- * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
- add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
- add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
- add_sym_5s): Likewise.
- * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
- Likewise.
- * module.c (mio_symbol_attribute): Likewise.
- * primary.c (match_variable): Likewise.
- * resolve.c (resolve_equivalence): Likewise.
- * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
- Likewise.
- * trans-types.c (gfc_get_array_type_bounds): Likewise.
-
-2008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
- * gfortran.h (try, protected, operator, new): Likewise.
-
-2008-07-17 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36825
- PR fortran/36824
- * array.c (gfc_match_array_spec): Fix array-rank check.
- * resolve.c (resolve_fl_derived): Fix constentness check
- for the array dimensions.
-
-2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Make-lang.in (gfortranspec.o): Fix dependencies.
-
-2008-07-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36725
- * io.c: Add error check for g0 edit descriptor followed by '.'.
-
-2008-07-12 Daniel Kraft <d@domob.eu>
-
- * resolve.c (resolve_fl_derived): Allow pointer components to empty
- derived types fixing a missing part of PR fortran/33221.
-
-2008-07-10 Daniel Kraft <d@domob.eu>
-
- * gfc-internals.texi (section gfc_expr): Created documentation about
- the gfc_expr internal data structure.
-
-2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36670
- * iresolve.c (gfc_resolve_product): Set shape of return
- value from array.
- (gfc_resolve_sum): Likewise.
-
-2008-07-07 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36726
- * f95-lang.c (poplevel): Don't ever add subblocks to
- global_binding_level.
-
-2008-07-02 Janus Weil <janus@gcc.gnu.org>
- Tobias Burnus <burnus@net-b.de>
- Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/32580
- * gfortran.h (struct gfc_symbol): New member "proc_pointer".
- * check.c (gfc_check_associated,gfc_check_null): Implement
- procedure pointers.
- * decl.c (match_procedure_decl): Ditto.
- * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
- * interface.c (compare_actual_formal): Ditto.
- * match.h: Ditto.
- * match.c (gfc_match_pointer_assignment): Ditto.
- * parse.c (parse_interface): Ditto.
- * primary.c (gfc_match_rvalue,match_variable): Ditto.
- * resolve.c (resolve_fl_procedure): Ditto.
- * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
- gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
- * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
- create_function_arglist): Ditto.
- * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
- gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
-
-2008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36590
- PR fortran/36681
- * iresolve.c (resolve_mask_arg): Don't convert mask to
- kind=1 logical if it is of that type already.
-
-2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36341
- * iresolve.c (gfc_resolve_matmul): Copy shapes
- from arguments.
-
-2008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * invoke.texi: Add documentation for runtime behavior of
- -fno-range-check.
-
-2008-06-28 Daniel Kraft <d@domob.eu>
-
- * gfc-internals.texi (section gfc_code): Extended documentation about
- gfc_code in the internal datastructures chapter including details about
- how IF, DO and SELECT blocks look like and an example for how the
- block-chaining works.
-
-2008-06-25 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36526
- * interface.c (check_intents): Correct error where the actual
- arg was checked for a pointer argument, rather than the formal.
-
-2008-06-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34371
- * expr.c (gfc_check_assign): Change message and locus for
- error when conform == 0.
-
-2008-06-23 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/36597
- * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
-
-2008-06-20 Laurynas Biveinis <laurynas.biveinis@gmail.com>
- Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34908
- PR fortran/36276
- * scanner.c (preprocessor_line): do not call gfc_free for
- current_file->filename if it differs from filename.
-
-2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * arith.c (hollerith2representation): Fix for -Wc++-compat.
- * array.c (gfc_get_constructor): Likewise.
- * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
- create_enum_history, gfc_match_final_decl): Likewise.
- * error.c (error_char): Likewise.
- * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
- * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
- gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
- gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
- gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
- gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
- gfc_get_alloc, gfc_get_wide_string): Likewise.
- * interface.c (count_types_test): Likewise.
- * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
- Likewise.
- * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
- gfc_match_inquire, gfc_match_wait): Likewise.
- * match.c (gfc_match, match_forall_iterator): Likewise.
- * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
- add_true_name, parse_string, write_atom, quote_string,
- mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
- * options.c (gfc_post_options): Likewise.
- * primary.c (match_integer_constant, match_hollerith_constant,
- match_boz_constant, match_real_constant,
- gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
- * scanner.c (gfc_widechar_to_char, add_path_to_list,
- add_file_change, load_line, get_file, preprocessor_line,
- load_file, unescape_filename, gfc_read_orig_filename): Likewise.
- * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
- gfc_simplify_ishftc): Likewise.
- * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
- gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
- Likewise.
- * target-memory.c (gfc_target_interpret_expr): Likewise.
- * trans-const.c (gfc_build_wide_string_const): Likewise.
- * trans-expr.c (gfc_add_interface_mapping): Likewise.
- * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
- gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
- gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
- gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
- gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
- gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
- gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
- * trans.c (gfc_get_backend_locus): Likewise.
- * trans.h (gfc_get_ss): Likewise.
-
-2008-06-18 Daniel Kraft <d@domob.eu>
-
- PR fortran/36517, fortran/36492
- * array.c (gfc_resolve_character_array_constructor): Call
- gfc_set_constant_character_len with changed length-chec argument.
- * decl.c (gfc_set_constant_character_len): Changed array argument to
- be a generic length-checking argument that can be used for correct
- checking with typespec and in special cases where the should-be length
- is different from the target length.
- (build_struct): Call gfc_set_constant_character_len with changed length
- checking argument and introduced additional checks for exceptional
- conditions on invalid code.
- (add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len
- with changed argument.
- * match.h (gfc_set_constant_character_len): Changed third argument to
- int for the should-be length rather than bool.
-
-2008-06-17 Daniel Kraft <d@domob.eu>
-
- PR fortran/36112
- * array.c (gfc_resolve_character_array_constructor): Check that all
- elements with constant character length have the same one rather than
- fixing it if no typespec is given, emit an error if they don't. Changed
- return type to "try" and return FAILURE for the case above.
- (gfc_resolve_array_constructor): Removed unneeded call to
- gfc_resolve_character_array_constructor in this function.
- * gfortran.h (gfc_resolve_character_array_constructor): Returns try.
- * trans-array.c (get_array_ctor_strlen): Return length of first element
- rather than last element.
- * resolve.c (gfc_resolve_expr): Handle FAILURE return from
- gfc_resolve_character_array_constructor.
-
-2008-06-17 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34396
- * resolve.c (add_dt_to_dt_list): New function.
- (resolve_fl_derived): Call new function for pointer components
- and when derived type resolved.
-
-2008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36515
- * trans-decl.c (gfc_generate_function_code): Add range_check to options
- array.
-
-2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * gfc-internals.texi: Expand TABs, drop indentation outside examples.
- * gfortran.texi: Likewise.
- * intrinsic.texi: Likewise.
- * invoke.texi: Likewise.
-
-2008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35863
- * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
- transfer_character_wide which includes passing in the character kind to
- support wide character IO. (transfer_expr): If the kind == 4, create the
- argument and build the call.
- * gfortran.texi: Fix typo.
-
-2008-06-13 Tobias Burnus <burnus@net-b.de>
+ * check.c (gfc_check_random_seed): Added size check for GET
+ dummy argument, reworded error messages to follow common pattern.
- PR fortran/36476
- * decl.c (do_parm): Handle init expression for len=*.
+2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
-2008-06-12 Tobias Burnus <burnus@net-b.de>
+ PR fortran/38672
+ * trans-types.c (gfc_get_derived_type): Check for the
+ presence of derived->ns->proc_name before
+ accessing derived->ns->proc_name->attr.flavor .
+ * resolve.c (resolve_symbol): Likewise.
- PR fortran/36462
- * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
- Fix passing of the BACK= argument.
+2009-01-05 Paul Thomas <pault@gcc.gnu.org>
-2008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR fortran/38665
+ * gfortran.h : Add bit to gfc_expr 'user_operator'
+ * interface.c (gfc_extend_expr): Set the above if the operator
+ is substituted by a function.
+ * resolve.c (check_host_association): Return if above is set.
- * cpp.c: Add copyright notice.
- * cpp.h: Add copyright notice.
+2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
-2008-06-08 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36459
- * decl.c (match_procedure_decl): Correctly recognize if the interface
- is an intrinsic procedure.
-
-2008-06-08 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35830
- * resolve.c (resolve_symbol): Copy more attributes for
- PROCEDUREs with interfaces.
-
-2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36420
- PR fortran/36422
- * io.c (check_format): Add new error message for zero width.
- Use new error message for FMT_A and with READ, FMT_G. Allow
- FMT_G with WRITE except when -std=F95 and -std=F2003.
-
-2008-06-07 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36437
- * intrinsic.c (add_functions): Implement c_sizeof.
- * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
- create unneeded variable in the scalar case.
- * intrinsic.texi: Add C_SIZEOF documentation.
-
-2008-06-06 Tobias Burnus <burnus@net-b.de>
-
- * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
-
-2008-06-06 Jakub Jelinek <jakub@redhat.com>
-
- * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
- * parse.c (next_free): Allow tab after !$omp.
- (decode_omp_directive): Handle !$omp task, !$omp taskwait
- and !$omp end task.
- (case_executable): Add ST_OMP_TASKWAIT.
- (case_exec_markers): Add ST_OMP_TASK.
- (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
- ST_OMP_TASKWAIT.
- (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
- * gfortran.h (gfc_find_sym_in_expr): New prototype.
- (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
- (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
- OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
- untied fields.
- (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
- * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
- LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
- LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
- * trans.h (gfc_omp_clause_default_ctor): Add another argument.
- (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
- gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
- * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
- BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
- BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
- BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
- BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
- BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
- (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
- than boolean_type_node.
- * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
- EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
- untied and collapse clauses.
- (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
- * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
- EXEC_OMP_TASKWAIT.
- * st.c (gfc_free_statement): Likewise.
- * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
- (find_sym_in_expr): Rename to...
- (gfc_find_sym_in_expr): ... this. No longer static.
- (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
- * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
- prototypes.
- * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
- firstprivate, lastprivate, reduction, copyprivate and copyin
- clauses.
- (omp_current_do_code): Made static.
- (omp_current_do_collapse): New variable.
- (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
- clear omp_current_do_code and omp_current_do_collapse on return.
- (gfc_resolve_do_iterator): Handle collapsed do loops.
- (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
- (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
- (gfc_match_omp_clauses): Handle default (firstprivate),
- schedule (auto), untied and collapse (n) clauses.
- (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
- (OMP_TASK_CLAUSES): Define.
- (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
- * trans-openmp.c (gfc_omp_private_outer_ref): New function.
- (gfc_omp_clause_default_ctor): Add outer argument. For allocatable
- arrays allocate them with the bounds of the outer var if outer
- var is allocated.
- (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
- gfc_omp_clause_dtor): New functions.
- (gfc_trans_omp_array_reduction): If decl is allocatable array,
- allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
- and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
- (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
- for assumed-size arrays.
- (gfc_trans_omp_do): Add par_clauses argument. If dovar is
- present in lastprivate clause and do loop isn't simple,
- set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
- parallel's lastprivate clause, change it to shared and add
- lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
- (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
- (gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
- OMP_FOR from OMP_PARALLEL.
- (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
- OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
- (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
- (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
- EXEC_OMP_TASKWAIT.
-
-2008-06-04 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36322
- PR fortran/36275
- * resolve.c (resolve_symbol): Correctly copy the interface for a
- PROCEDURE declaration.
-
-2008-06-02 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36361
- * symbol.c (gfc_add_allocatable,gfc_add_dimension,
- gfc_add_explicit_interface): Added checks.
- * decl.c (attr_decl1): Added missing "var_locus".
- * parse.c (parse_interface): Checking for errors.
-
-2008-06-02 Daniel Kraft <d@domob.eu>
-
- * gfortran.h: New statement-type ST_FINAL for FINAL declarations.
- (struct gfc_symbol): New member f2k_derived.
- (struct gfc_namespace): New member finalizers, for use in the above
- mentioned f2k_derived namespace.
- (struct gfc_finalizer): New type defined for finalizers linked list.
- * match.h (gfc_match_final_decl): New function header.
- * decl.c (gfc_match_derived_decl): Create f2k_derived namespace on
- constructed symbol node.
- (gfc_match_final_decl): New function to match a FINAL declaration line.
- * parse.c (decode_statement): match-call for keyword FINAL.
- (parse_derived): Parse CONTAINS section and accept FINAL statements.
- * resolve.c (gfc_resolve_finalizers): New function to resolve (that is
- in this case, check) a list of finalizer procedures.
- (resolve_fl_derived): Call gfc_resolve_finalizers here.
- * symbol.c (gfc_get_namespace): Initialize new finalizers to NULL.
- (gfc_free_namespace): Free finalizers list.
- (gfc_new_symbol): Initialize new f2k_derived to NULL.
- (gfc_free_symbol): Free f2k_derived namespace.
- (gfc_free_finalizer): New function to free a single gfc_finalizer node.
- (gfc_free_finalizer_list): New function to free a linked list of
- gfc_finalizer nodes.
-
-2008-06-02 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/36375
- PR fortran/36377
- * cpp.c (gfc_cpp_init): Do not initialize builtins if
- processing already preprocessed input.
- (gfc_cpp_preprocess): Finalize output with newline.
-
-2008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * intrinsic.texi: Revert wrong commit.
-
-2008-05-31 Steven G. Kargl <kargls@comcast.net>
-
- * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
- Cleanup numerical inquiry function initialization.
- (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
- a single mpfr_clears().
- (gfc_check_real_range): Re-arrange logic to eliminate multiple
- unnecessary branching and assignments.
- (gfc_arith_times): Use mpfr_clears() in preference to multiple
- mpfr_clear().
- (gfc_arith_divide): Ditto.
- (complex_reciprocal): Eliminate now unused variables a, re, im.
- Cleanup the mpfr abuse. Use mpfr_clears() in preference to
- multiple mpfr_clear().
- (complex_pow): Fix comment whitespace. Use mpfr_clears() in
- preference to multiple mpfr_clear().
- * simplify.c (gfc_simplify_and): Remove blank line.
- (gfc_simplify_atan2): Move error checking earlier to eliminate
- a now unnecessay gfc_free_expr().
- (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
- (gfc_simplify_bessel_j1): Ditto.
- (gfc_simplify_bessel_jn): Ditto.
- (gfc_simplify_bessel_y0): Ditto.
- (gfc_simplify_bessel_y1): Ditto.
- (gfc_simplify_bessel_yn): Ditto.
- (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
- combine nested if statement rational expressions.
- (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
- mpfr_clear().
- (gfc_simplify_exp): Ditto.
- (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
- special case of 0. Use mpfr_clears() in preference to multiple
- mpfr_clear().
- (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
- (gfc_simplify_lgamma): Ditto.
- (gfc_simplify_log10): Ditto.
- (gfc_simplify_log): Move gfc_set_model_kind () inside switch
- statement. Use mpfr_clears() in preference to multiple mpfr_clear().
- (gfc_simplify_mod): Eliminate now unused variables quot, iquot,
- and term. Simplify the mpfr magic.
- (gfc_simplify_modulo): Ditto.
- (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
- (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
- mpfr_clear().
- (gfc_simplify_sin): Ditto
- (gfc_simplify_sqrt): Ditto
- (gfc_simplify_set_exponent): Move gfc_set_model_kind() to after the
- special case of 0. Use mpfr_clears() in preference to multiple
- mpfr_clear().
-
-2008-05-29 Daniel Franke <franke.daniel@gmail.com>
-
- PR target/36348
- * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
-
-2008-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * scanner.c (load_line): Add first_char argument. Don't call ungetc.
- (gfc_read_orig_filename): Adjust call to load_line. Don't call
- ungetc.
- (load_file): Adjust call to load_line.
-
-2008-05-28 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36325
- PR fortran/35830
- * interface.c (gfc_procedure_use): Enable argument checking for
- external procedures with explicit interface.
- * symbol.c (check_conflict): Fix conflict checking for externals.
- (copy_formal_args): Fix handling of arrays.
- * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
- of intrinsics.
- * parse.c (parse_interface): Non-abstract INTERFACE statement implies
- EXTERNAL attribute.
-
-2008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36319
- * intrinsic.c (gfc_convert_chartype): Don't mark conversion
- function as pure.
- * trans-array.c (gfc_trans_array_ctor_element): Divide element
- size by the size of one character to obtain length.
- * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
- appropriate.
- (gfc_resolve_eoshift): Likewise.
- * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
- (gfc_conv_intrinsic_fdate): Minor beautification.
- (gfc_conv_intrinsic_ttynam): Minor beautification.
- (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
- (size_of_string_in_bytes): New function.
- (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
- character expressions.
- (gfc_conv_intrinsic_sizeof): Likewise.
- (gfc_conv_intrinsic_array_transfer): Likewise.
- (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
- beautification.
- (gfc_conv_intrinsic_repeat): Fix comment typo.
- * simplify.c (gfc_convert_char_constant): Take care of conversion
- of array constructors.
-
-2008-05-27 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36316
- * trans-array.c (gfc_set_loop_bounds_from_array_spec):
- Add missing fold_convert.
-
-2008-05-26 Daniel Franke <franke.daniel@gmail.com>
-
- * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
- added FIXME instead.
-
-2008-05-26 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/18428
- * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
- imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
- o, undef, v): New options.
- * options.c (gfc_init_options): Also initialize preprocessor
- options.
- (gfc_post_options): Also handle post-initialization of preprocessor
- options.
- (gfc_handle_option): Check if option is a preprocessor option.
- If yes, let gfc_cpp_handle_option() handle the option.
- * lang-specs.h: Reorganized to handle new options.
- * scanner.c (gfc_new_file): Read temporary file instead of
- input source if preprocessing is enabled.
- * f95-lang.c (gfc_init): Initialize preprocessor.
- (gfc_finish): Clean up preprocessor.
- * cpp.c: New.
- * cpp.h: New.
- * Make-lang.in: Added new objects and dependencies.
- * gfortran.texi: Updated section "Preprocessing and
- conditional compilation".
- * invoke.texi: Added new section "Preprocessing Options",
- listed and documented the preprocessing options handled
- by gfortran.
-
-2008-05-25 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/32600
- * trans-expr.c (gfc_conv_function_call): Remove library
- call for c_f_pointer with scalar Fortran pointers and for
- c_f_procpointer.
-
-2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36257
- * iresolve.c (check_charlen_present): Don't force the rank to 1.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36265
- * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
- the temporary variable.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
- result variable to avoid warnings.
-
-2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * intrinsic.c (char_conversions, ncharconv): New static variables.
- (find_char_conv): New function.
- (add_functions): Add simplification functions for ADJUSTL and
- ADJUSTR. Don't check the kind of their argument. Add checking for
- LGE, LLE, LGT and LLT.
- (add_subroutines): Fix argument type for SLEEP. Fix argument name
- for SYSTEM.
- (add_char_conversions): New function.
- (gfc_intrinsic_init_1): Call add_char_conversions.
- (gfc_intrinsic_done_1): Free char_conversions.
- (check_arglist): Use kind == 0 as a signal that we don't want
- the kind value to be checked.
- (do_simplify): Also simplify character functions.
- (gfc_convert_chartype): New function
- * trans-array.c (gfc_trans_array_ctor_element): Don't force the
- use of default character type.
- (gfc_trans_array_constructor_value): Likewise.
- (get_array_ctor_var_strlen): Use integer kind to build an integer
- instead of a character kind!
- (gfc_build_constant_array_constructor): Don't force the use of
- default character type.
- (gfc_conv_loop_setup): Likewise.
- * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
- default character type. Allocate enough memory for wide strings.
- (gfc_conv_concat_op): Make sure operand kind are the same.
- (string_to_single_character): Remove gfc_ prefix. Reindent.
- Don't force the use of default character type.
- (gfc_conv_scalar_char_value): Likewise.
- (gfc_build_compare_string): Call string_to_single_character.
- (fill_with_spaces): New function
- (gfc_trans_string_copy): Add kind arguments. Use them to deal
- with wide character kinds.
- (gfc_conv_statement_function): Whitespace fix. Call
- gfc_trans_string_copy with new kind arguments.
- (gfc_conv_substring_expr): Call gfc_build_wide_string_const
- instead of using gfc_widechar_to_char.
- (gfc_conv_string_parameter): Don't force the use of default
- character type.
- (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
- * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
- gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
- * decl.c (gfc_set_constant_character_len): Don't assert the
- existence of a single character kind.
- * trans-array.h (gfc_trans_string_copy): New prototype.
- * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
- New prototypes.
- * error.c (print_wide_char_into_buffer): New function lifting
- code from gfc_print_wide_char. Fix order to output '\x??' instead
- of 'x\??'.
- (gfc_print_wide_char): Call print_wide_char_into_buffer.
- (show_locus): Call print_wide_char_into_buffer with buffer local
- to this function.
- * trans-const.c (gfc_build_wide_string_const): New function.
- (gfc_conv_string_init): Deal with wide characters strings
- constructors.
- (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
- * trans-stmt.c (gfc_trans_label_assign): Likewise.
- (gfc_trans_character_select): Deal with wide strings.
- * expr.c (gfc_check_assign): Allow conversion between character
- kinds on assignment.
- * trans-const.h (gfc_build_wide_string_const): New prototype.
- * trans-types.c (gfc_get_character_type_len_for_eltype,
- gfc_get_character_type_len): Create too variants of the old
- gfc_get_character_type_len, one getting kind argument and the
- other one directly taking a type tree.
- * trans.h (gfor_fndecl_select_string_char4,
- gfor_fndecl_convert_char1_to_char4,
- gfor_fndecl_convert_char4_to_char1): New prototypes.
- * trans-types.h (gfc_get_character_type_len_for_eltype): New
- prototype.
- * resolve.c (resolve_operator): Exit early when kind mismatches
- are detected, because that makes us issue an error message later.
- (validate_case_label_expr): Fix wording of error message.
- * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
- functions.
- (gfc_resolve_pack): Call _char4 variants of library function
- when dealing with wide characters.
- (gfc_resolve_reshape): Likewise.
- (gfc_resolve_spread): Likewise.
- (gfc_resolve_transpose): Likewise.
- (gfc_resolve_unpack): Likewise.
- * target-memory.c (size_character): Take character kind bit size
- correctly into account (not that it changes anything for now, but
- it's more generic).
- (gfc_encode_character): Added gfc_ prefix. Encoding each
- character of a string by calling native_encode_expr for the
- corresponding unsigned integer.
- (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
- * trans-decl.c (gfc_build_intrinsic_function_decls): Build
- gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
- and gfor_fndecl_convert_char4_to_char1.
- * target-memory.h (gfc_encode_character): New prototype.
- * arith.c (gfc_check_character_range): New function.
- (eval_intrinsic): Allow non-default character kinds.
- * check.c (gfc_check_access_func): Only allow default
- character kind arguments.
- (gfc_check_chdir): Likewise.
- (gfc_check_chdir_sub): Likewise.
- (gfc_check_chmod): Likewise.
- (gfc_check_chmod_sub): Likewise.
- (gfc_check_lge_lgt_lle_llt): New function.
- (gfc_check_link): Likewise.
- (gfc_check_link_sub): Likewise.
- (gfc_check_symlnk): Likewise.
- (gfc_check_symlnk_sub): Likewise.
- (gfc_check_rename): Likewise.
- (gfc_check_rename_sub): Likewise.
- (gfc_check_fgetputc_sub): Likewise.
- (gfc_check_fgetput_sub): Likewise.
- (gfc_check_stat): Likewise.
- (gfc_check_stat_sub): Likewise.
- (gfc_check_date_and_time): Likewise.
- (gfc_check_ctime_sub): Likewise.
- (gfc_check_fdate_sub): Likewise.
- (gfc_check_gerror): Likewise.
- (gfc_check_getcwd_sub): Likewise.
- (gfc_check_getarg): Likewise.
- (gfc_check_getlog): Likewise.
- (gfc_check_hostnm): Likewise.
- (gfc_check_hostnm_sub): Likewise.
- (gfc_check_ttynam_sub): Likewise.
- (gfc_check_perror): Likewise.
- (gfc_check_unlink): Likewise.
- (gfc_check_unlink_sub): Likewise.
- (gfc_check_system_sub): Likewise.
- * primary.c (got_delim): Perform correct character range checking
- for all kinds.
- * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
- calls to library functions convert_char4_to_char1 and
- convert_char1_to_char4 for character conversions.
- (gfc_conv_intrinsic_char): Allow all character kings.
- (gfc_conv_intrinsic_strcmp): Fix whitespace.
- (gfc_conv_intrinsic_repeat): Take care of all character kinds.
- * intrinsic.texi: For all GNU intrinsics accepting character
- arguments, mention that they're restricted to the default kind.
- * simplify.c (simplify_achar_char): New function.
- (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
- gfc_simplify_ichar): Don't error out for wide characters.
- (gfc_convert_char_constant): New function.
-
-2008-05-18 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/36251
- * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
- and BIND(C).
- * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
-
-2008-05-17 Tobias Burnus <burnus@net-b.de>
-
- * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
- and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
- GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
- Move LOG_GAMMA after LOG10.
-
-2008-05-17 Tobias Burnus <burnus@net-b.de>
-
- * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
- * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
- ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
- CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
-
-2008-05-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35756
- PR fortran/35759
- * trans-stmt.c (gfc_trans_where): Tighten up the dependency
- check for calling gfc_trans_where_3.
-
- PR fortran/35743
- * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
- if it is calculated to be negative.
-
- PR fortran/35745
- * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
- ss->where for scalar right hand sides.
- * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
- not evaluate scalars outside the loop. Clean up whitespace.
- * trans.h : Add a bitfield 'where' to gfc_ss.
-
-2008-05-16 Tobias Burnus <burnus@net-b.de>
-
- * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
- * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
-
-2008-04-16 Daniel Kraft <d@domob.eu>
-
- PR fortran/27997
- * gfortran.h: Added field "length_from_typespec" to gfc_charlength.
- * aray.c (gfc_match_array_constructor): Added code to parse typespec.
- (check_element_type, check_constructor_type, gfc_check_constructor_type):
- Extended to support explicit typespec on constructor.
- (gfc_resolve_character_array_constructor): Pad strings correctly for
- explicit, constant character length.
- * trans-array.c: New static global variable "typespec_chararray_ctor"
- (gfc_trans_array_constructor): New code to support explicit but dynamic
- character lengths.
-
-2008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34325
- * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
- * expr.c (gfc_specification_expr): Supplement the error message with the
- type that was found.
- * resolve.c (gfc_resolve_index): Likewise.
- * match.c (gfc_match_parens): Clarify error message with "at or before".
- (gfc_match_do): Check for matching pairs of parenthesis.
-
-2008-05-16 Tobias Burnus <burnus@net-b.de
-
- * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
- add missing KIND argument to ACHAR and NINT; and state that
- the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
- ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
-
-2008-05-16 Daniel Kraft <d@domob.eu>
-
- * primary.c: New private structure "gfc_structure_ctor_component".
- (gfc_free_structure_ctor_component): New helper function.
- (gfc_match_structure_constructor): Extended largely to support named
- arguments and default initialization for structure constructors.
-
-2008-05-15 Steven G. Kargl <kargls@comcast.net>
-
- * simplify.c (gfc_simplify_dble, gfc_simplify_float,
- simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
- possible memory leaks.
- (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
- of NULL pointers.
-
-2008-05-15 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/36239
- * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
- rolled integer conversion with gfc_int2int, gfc_real2int, and
- gfc_complex2int.
- (gfc_simplify_intconv): Renamed to simplify_intconv.
-
-2008-05-15 Steven G. Kargl, <kargl@comcast.net>
- * gfortran.dg/and_or_xor.f90: New test
-
- * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
- gfc_simplify_xor): Don't range check logical results.
-
-2008-05-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
- character kinds.
- (gfc_build_compare_string): Add kind argument and use it.
- (gfc_conv_statement_function): Fix indentation.
- * gfortran.h (gfc_character_info): New structure.
- (gfc_character_kinds): New array.
- * trans-types.c (gfc_character_kinds, gfc_character_types,
- gfc_pcharacter_types): New array.
- (gfc_init_kinds): Fill character kinds array.
- (validate_character): Take care of nondefault character kinds.
- (gfc_build_uint_type): New function.
- (gfc_init_types): Take care of nondefault character kinds.
- (gfc_get_char_type, gfc_get_pchar_type): New functions.
- (gfc_get_character_type_len): Use gfc_get_char_type.
- * trans.h (gfc_build_compare_string): Adjust prototype.
- (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
- gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
- gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
- gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
- gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
- prototypes.
- * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
- prototypes.
- * trans-decl.c (gfor_fndecl_compare_string_char4,
- gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
- gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
- gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
- gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
- gfor_fndecl_concat_string_char4): New function decls.
- (gfc_build_intrinsic_function_decls): Define new *_char4 function
- decls.
- * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
- gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
- gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
- gfc_conv_intrinsic_function): Deal with nondefault character kinds.
-
-2008-05-15 Sa Liu <saliu@de.ibm.com>
-
- * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
- All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
- c_int128_t, c_int_least128_t and c_int_fast128_t are added as
- GNU extensions.
- * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
- to macro NAMED_INTCST.
- * symbol.c (std_for_isocbinding_symbol): New helper function to
- return the standard that supports this isocbinding symbol.
- (generate_isocbinding_symbol): Do not generate GNU extension symbols
- if std=f2003. Add new parameter to NAMED_INTCST.
- * module.c (use_iso_fortran_env_module): Add new parameter to
- NAMED_INTCST and new field standard to struct intmod_sym.
- * gfortran.h: Add new parameter to NAMED_INTCST.
- * trans-types.c (init_c_interop_kinds): Add new parameter to
- NAMED_INTCST.
- * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
- and C_INT_FAST128_T.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36059
- * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
- arrays that have the TARGET attribute.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36186
- * simplify.c (only_convert_cmplx_boz): New function.
- (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
- Call only_convert_cmplx_boz.
-
-2008-05-14 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36233
- * interface.c (compare_actual_formal): Do not check sizes if the
- actual is BT_PROCEDURE.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35682
- * trans-array.c (gfc_conv_ss_startstride): Any negative size is
- the same as zero size.
- (gfc_conv_loop_setup): Fix size calculation.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35685
- * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
- handle zero-size sections.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36215
- * scanner.c (preprocessor_line): Allocate enough memory for a
- wide string.
-
-2008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36176
- * target-memory.c (gfc_target_expr_size): Correctly treat
- substrings.
- (gfc_target_encode_expr): Likewise.
- (gfc_interpret_complex): Whitespace change.
-
-2008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/35719
- * trans.c (gfc_call_malloc): If size equals zero, allocate one
- byte; don't return a null pointer.
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36197
- * module.c (quote_string): Fix sprintf format.
-
-2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36162
- * module.c (quote_string, unquote_string,
- mio_allocated_wide_string): New functions.
- (mio_expr): Call mio_allocated_wide_string where needed.
-
-2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
- Rename DECL_IS_PURE to DECL_PURE_P.
-
-2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * arith.c: (gfc_arith_concat, gfc_compare_string,
- gfc_compare_with_Cstring, hollerith2representation,
- gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
- gfc_hollerith2character, gfc_hollerith2logical): Use wide
- characters for character constants.
- * data.c (create_character_intializer): Likewise.
- * decl.c (gfc_set_constant_character_len): Likewise.
- * dump-parse-tree.c (show_char_const): Correctly dump wide
- character strings.
- error.c (print_wide_char): Rename into gfc_print_wide_char.
- (show_locus): Adapt to new prototype of gfc_print_wide_char.
- expr.c (free_expr0): Representation is now disjunct from
- character string value, so we always free it.
- (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
- to wide character strings.
- * gfortran.h (gfc_expr): Make value.character.string a wide string.
- (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
- gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
- (gfc_get_wide_string): New macro.
- (gfc_print_wide_char): New prototype.
- * io.c (format_string): Make a wide string.
- (next_char, gfc_match_format, compare_to_allowed_values,
- gfc_match_open): Deal with wide strings.
- * module.c (mio_expr): Convert between wide strings and ASCII ones.
- * primary.c (match_hollerith_constant, match_charkind_name):
- Handle wide strings.
- * resolve.c (build_default_init_expr): Likewise.
- * scanner.c (gfc_wide_toupper, gfc_wide_memset,
- gfc_char_to_widechar): New functions.
- (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
- Changes in prototypes.
- (gfc_define_undef_line, load_line, preprocessor_line,
- include_line, load_file, gfc_read_orig_filename): Handle wide
- strings.
- * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
- gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
- gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
- gfc_simplify_repeat): Handle wide strings.
- (wide_strspn, wide_strcspn): New helper functions.
- (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
- Handle wide strings.
- * symbol.c (generate_isocbinding_symbol): Likewise.
- * target-memory.c (size_character, gfc_target_expr_size,
- encode_character, gfc_target_encode_expr, gfc_interpret_character,
- gfc_target_interpret_expr): Handle wide strings.
- * trans-const.c (gfc_conv_string_init): Lower wide strings to
- narrow ones.
- (gfc_conv_constant_to_tree): Likewise.
- * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
- * trans-io.c (gfc_new_nml_name_expr): Likewise.
- * trans-stmt.c (gfc_trans_label_assign): Likewise.
-
-2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
- gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
- gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
- with ATTRIBUTE_UNUSED.
-
-2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
- * simplify.c (gfc_simplify_lgamma): Likewise.
-
-2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
- gfc_peek_ascii_char.
- * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
- gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
- match_string_p, match_attr_spec, gfc_match_suffix,
- match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
- Likewise.
- * gfortran.h (gfc_char_t): New type.
- (gfc_linebuf): Make line member a gfc_char_t.
- (locus): Make nextc member a gfc_char_t.
- (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
- gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
- gfc_peek_ascii_char, gfc_check_digit): New prototypes.
- * error.c (print_wide_char): New function.
- (show_locus): Use print_wide_char and gfc_wide_strlen.
- * io.c (next_char): Use gfc_char_t type.
- (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
- * match.c (gfc_match_parens, gfc_match_eos,
- gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
- gfc_match_intrinsic_op, gfc_match_char, gfc_match_return,
- gfc_match_common): Likewise.
- * match.h (gfc_match_special_char): Change prototype.
- * parse.c (decode_specification_statement, decode_statement,
- decode_omp_directive, next_free, next_fixed): Use
- gfc_peek_ascii_char and gfc_next_ascii_char.
- * primary.c (gfc_check_digit): Change name.
- (match_digits, match_hollerith_constant, match_boz_constant,
- match_real_constant, next_string_char, match_charkind_name,
- match_string_constant, match_logical_constant_string,
- match_complex_constant, match_actual_arg, match_varspec,
- gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
- gfc_next_ascii_char.
- * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
- gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
- gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
- wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
- gfc_next_ascii_char, gfc_peek_ascii_char):
- New functions.
- (next_char, gfc_define_undef_line, skip_free_comments,
- gfc_next_char_literal, gfc_next_char, gfc_peek_char,
- gfc_error_recovery, load_line, preprocessor_line, include_line,
- load_file, gfc_read_orig_filename): Use gfc_char_t for source
- characters and the {gfc_,}wide_* functions to manipulate wide
- strings.
-
-2008-05-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36117
- * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
- * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
- * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
- gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
- gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
-
-2008-05-03 Janus Weil <jaydub66@gmail.com>
-
- * misc.c (gfc_clear_ts): Set interface to NULL.
-
-2008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/33268
- * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
- gfc_expr value union. Add io_kind enum to here from io.c.
- * io.c (gfc_free_dt): Free extra_comma.
- (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
- BT_CHARACTER, resolve to format_expr and set default unit. Error if
- io_kind is M_WRITE. (match_io): Match the extra comma and set new
- pointer, extra_comma.
-
-2008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
-
- PR35940/Fortran
- * simplify.c (gfc_simplify_index): Check for direction argument
- being a constant.
-
-2008-05-01 Janus Weil <jaydub66@gmail.com>
-
- * gfortran.h (struct gfc_symbol): Moving "interface" member to
- gfc_typespec (plus fixing a small docu error).
- * interface.c (gfc_procedure_use): Ditto.
- * decl.c (match_procedure_decl): Ditto.
- * resolve.c (resolve_specific_f0,
- resolve_specific_f0, resolve_symbol): Ditto.
-
-2008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
- * intrinsic.h (gfc_check_selected_char_kind,
- gfc_simplify_selected_char_kind): New prototypes.
- * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
- * trans.h (gfor_fndecl_sc_kind): New function decl.
- * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
- * arith.c (gfc_compare_with_Cstring): New function.
- * arith.h (gfc_compare_with_Cstring): New prototype.
- * check.c (gfc_check_selected_char_kind): New function.
- * primary.c (match_string_constant, match_kind_param): Mark
- symbols used as literal constant kind param as referenced.
- * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
- (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
- * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
- * simplify.c (gfc_simplify_selected_char_kind): New function.
-
-2008-04-28 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35997
- * module.c (find_symbol): Do not return a result for a symbol
- that has been renamed in another module.
-
-2008-04-26 George Helffrich <george@gcc.gnu.org>
-
- PR fortran/35892
- PR fortran/35154
- * trans-common.c (create_common): Add decl to function
- chain (if inside one) to preserve identifier scope in debug output.
-
-2008-04-25 Jan Hubicka <jh@suse.cz>
-
- * trans-decl.c (trans_function_start): Update.
-
-2008-04-25 Tobias Burnus <burnus@net-b.de>
- Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35156
- * gfortranspec.c (lang_specific_driver): Deprecate
- -M option; fix ICE when "-M" is last argument and
- make "-M<dir>" work.
- * options.c (gfc_handle_module_path_options):
- Use -J instead of -M in error messages.
- * invoke.texi: Mark -M as depecated.
-
-2008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35994
- * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
- loop counter offset.
-
-2008-04-23 Paolo Bonzini <bonzini@gnu.org>
-
- * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
- * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
- (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
- (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
- (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
- * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
- (create_common): Don't set TREE_INVARIANT.
- * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
- * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
-
-2008-04-21 Steve Ellcey <sje@cup.hp.com>
-
- * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
-
-2008-04-21 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35019
- * gfortranspec.c (lookup_option): Properly handle separated arguments
- in -J option, print missing argument message when necessary.
-
-2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35882
- * scanner.c (skip_fixed_comments): Update continue_line when comment is
- detected. (gfc_next_char_literal): Likewise.
-
-2008-04-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35944
- PR fortran/35946
- PR fortran/35947
- * trans_array.c (gfc_trans_array_constructor): Temporarily
- realign loop, if loop->from is not zero, before creating
- the temporary array and provide an offset.
-
- PR fortran/35959
- * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
- and allow for NULL body. Change all references from
- init_default_dt to gfc_init_default_dt.
- * trans.h : Add prototype for gfc_init_default_dt.
- * trans-array.c (gfc_trans_deferred_vars): After nullification
- call gfc_init_default_dt for derived types with allocatable
- components.
-
-2008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35892
- * trans-common.c (create_common): Revert patch causing regression.
-
-2008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35724
- * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
- optional argument attribute.
-
-2008-04-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35932
- * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
- is not used, the argument must be converted.
-
-2008-04-16 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35662
- * f95-lang.c (gfc_init_builtin_functions): Make sure
- BUILT_IN_SINCOS{,F,L} types aren't varargs.
-
-2008-04-15 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35864
- * expr.c (scalarize_intrinsic_call): Reorder identification of
- array argument so that if one is not found a segfault does not
- occur. Return FAILURE if all scalar arguments.
-
-2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35882
- * options.c (gfc_init_options): Set the default maximum continuation
- lines to 255 for both free and fixed form source for warnings.
- (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
- the -std=f95 free form max continuations to 39 for warnings.
- * scanner.c (gfc_next_char_literal): Adjust the current_line number only
- if it is less than the current locus.
-
-2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/25829 28655
- * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
- round, sign, and id. (match_open_element): Match new tags.
- (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
- for DEFAULT only. Update error messages. (match_dt_element): Fix match
- tag for asynchronous. Update error messages. (gfc_free_inquire): Free
- new expressions. (match_inquire_element): Match new tags.
- (gfc_match_inquire): Add constraint for ID and PENDING.
- (gfc_resolve_inquire): Resolve new tags.
- * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
- mask for ID parameter.
- * ioparm.def: Fix order of parameters for pending, round, and sign.
- NOTE: These must line up with the definitions in libgfortran/io/io.h. or
- things don't work.
-
-2008-04-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35780
- * expr.c (scalarize_intrinsic_call): Identify which argument is
- an array and use that as the template.
- (check_init_expr): Remove tests that first argument is an array
- in the call to scalarize_intrinsic_call.
-
-2008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
-
- PR fortran/35832
- * io.c (io_tag): Add field 'value'. Split 'spec' field in
- existing io_tags.
- (match_etag, match_vtag, match_ltag): Split parsing in two steps
- to give better error messages.
-
-2008-04-06 Tobias Burnus <burnus@net-b.de>
-
- * io.c (check_io_constraints): Add constrains. ID= requires
- asynchronous= and asynchronous= must be init expression.
-
-2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
-
-2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
- gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
- functions and make them static. Add new gfc_dump_parse_tree
- function.
- * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
- (gfc_status, gfc_status_char): Delete prototypes.
- * error.c (gfc_status, gfc_status_char): Remove functions.
- * scanner.c (gfc_new_file): Use printf instead of gfc_status.
- * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
- (gfc_handle_module_path_options): Use gfc_fatal_error instead of
- gfc_status and exit.
- (gfc_handle_option): Rename verbose into dump_parse_tree.
- * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
-
-2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/25829 28655
- * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
- * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
- (gfc_open): Add pointers for decimal, encoding, round, sign,
- asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
- encoding, pending, round, sign, size, id.
- (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
- asynchronous, blank, decimal, delim, pad, round, sign.
- (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
- wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
- * trans-stmt.h (gfc_trans_wait): New function prototype.
- * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
- * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
- ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
- (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
- tags. (gfc_resolve_open): Remove comment around check for allowed
- values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING,
- ROUND, and SIGN. (match_dt_element): Add matching for new tags.
- (gfc_free_wait): New function. (gfc_resolve_wait): New function.
- (match_wait_element): New function. (gfc_match_wait): New function.
- * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
- (resolve_code): Add case for EXEC_WAIT.
- * st.c (gfc_free_statement): Add case for EXEC_WAIT.
- * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
- Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
- (gfc_build_io_library_fndecls): Add function declaration for st_wait.
- (gfc_trans_open): Add mask bits for new I/O tags.
- (gfc_trans_inquire): Add mask bits for new I/O tags.
- (gfc_trans_wait): New translation function.
- (build_dt): Add mask bits for new I/O tags.
- * match.c (gfc_match_if) Add matcher for "wait".
- * match.h (gfc_match_wait): Prototype for new function.
- * ioparm.def: Add new I/O parameter definitions.
- * parse.c (decode_statement): Add match for "wait" statement.
- (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
-
-2008-04-03 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/35786
- * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
- isn't a variable.
-
-2008-04-03 Tom Tromey <tromey@redhat.com>
-
- * Make-lang.in (fortran_OBJS): New variable.
-
-2008-04-03 Paolo Bonzini <bonzini@gnu.org>
-
- * f95-lang.c (insert_block): Kill.
-
-2008-04-01 George Helffrich <george@gcc.gnu.org>
-
- PR fortran/35154, fortran/23057
- * trans-common.c (create_common): Add decl to function
- chain to preserve identifier scope in debug output.
-
-2008-04-01 Joseph Myers <joseph@codesourcery.com>
-
- * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
- * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
- gpl.texi.
-
-2008-03-30 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35740
- * resolve.c (resolve_function, resolve_call): If the procedure
- is elemental do not look for noncopying intrinsics.
-
-2008-03-29 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35698
- * trans-array.c (gfc_array_init_size): Set 'size' zero if
- negative in one dimension.
-
- PR fortran/35702
- * trans-expr.c (gfc_trans_string_copy): Only assign a char
- directly if the lhs and rhs types are the same.
-
-2008-03-28 Daniel Franke <franke.daniel@gmail.com>
- Paul Richard Thomas <paul.richard.thomas@gmail.com>
-
- PR fortran/34714
- * primary.c (match_variable): Improved matching of function
- result variables.
- * resolve.c (resolve_allocate_deallocate): Removed checks if
- the actual argument for STAT is a variable.
-
-2008-03-28 Tobias Burnus <burnus@net-b.de>
-
- * symbol.c (gfc_get_default_type): Fix error message; option
- -fallow_leading_underscore should be -fallow-leading-underscore
-
-2008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35724
- * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
- optional argument attribute.
-
-2008-03-27 Tom Tromey <tromey@redhat.com>
-
- * Make-lang.in: Revert automatic dependency patch.
-
-2008-03-25 Tom Tromey <tromey@redhat.com>
-
- * Make-lang.in: Remove .o targets.
- (fortran_OBJS): New variable.
- (fortran/gfortranspec.o): Move to fortran/. Reduce to variable
- setting.
- (GFORTRAN_D_OBJS): Update.
- (GFORTRAN_TRANS_DEPS): Remove.
-
-2008-03-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34813
- * resolve.c (resolve_structure_cons): It is an error to assign
- NULL to anything other than a pointer or allocatable component.
-
- PR fortran/33295
- * resolve.c (resolve_symbol): If the symbol is a derived type,
- resolve the derived type. If the symbol is a derived type
- function, ensure that the derived type is visible in the same
- namespace as the function.
-
-2008-03-23 Tobias Schlüter <tobi@gcc.gnu.org>
-
- * trans.h: Use fold_build in build1_v, build2_v and build3_v
- macros.
- * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
- Don't use build2_v macro.
-
-2008-03-19 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35152
- * interface.c (gfc_procedure_use): Check for keyworded arguments in
- procedures without explicit interfaces.
-
-2008-03-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35470
- * resolve.c (check_assumed_size_reference): Only visit the
- first reference and look directly at the highest dimension.
-
-2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35184
- * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
- assert.
-
-2008-03-15 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35584
- * resolve.c (resolve_branch): Less strict and pessimistic warning
- message.
-
-2008-03-11 Paolo Bonzini <bonzini@gnu.org>
-
- * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
- (gfc_be_parse_file): Call clear_binding_stack from here.
- (gfc_clear_binding_stack): Rename to clear_binding_stack.
-
-2008-03-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35474
- * module.c (mio_symtree_ref): After providing a symbol for a
- missing equivalence member, resolve and NULL the fixups.
-
-2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * invoke.texi (Error and Warning Options): Document
- -Wline-truncation.
-
-2008-03-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/34956
- * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
- checking bounds of absent optional arguments.
-
-2008-03-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/33197
- * intrinsic.c (add_functions): Add simplification routines for
- ERF, DERF, ERFC and DERFC.
- * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
- extensions into Fortran 2008 features.
- * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
- prototypes.
- * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
-
-2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/33197
- * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
- ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
- ERFC_SCALED, LOG_GAMMA and HYPOT.
- * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
- gfc_resolve_hypot): New prototypes.
- * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
- ACOSH, ASINH and ATANH available.
- * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
- * lang.opt: Add -std=f2008 option.
- * libgfortran.h: Define GFC_STD_F2008.
- * lang-specs.h: Add .f08 and .F08 file suffixes.
- * iresolve.c (gfc_resolve_hypot): New function.
- * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
- * check.c (gfc_check_hypot): New function.
- * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
- * options.c (set_default_std_flags): Allow Fortran 2008 by default.
- (form_from_filename): Add .f08 suffix.
- (gfc_handle_option): Handle -std=f2008 option.
- * simplify.c (gfc_simplify_hypot): New function.
- * gfortran.texi: Document Fortran 2008 status and file extensions.
- * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
- as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
- ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
- * invoke.texi: Document the new -std=f2008 option.
-
-2008-03-02 Jakub Jelinek <jakub@redhat.com>
-
- * gfortranspec.c (lang_specific_driver): Update copyright notice
- dates.
-
-2008-02-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35059
- * expr.c (find_array_element): Modify traversing the constructor to
- avoid trying to access NULL memory pointed to by next for the
- last element. (find_array_section): Exit while loop if cons->next is
- NULL.
- * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
- (gfc_conv_function_call): Same.
- * decl.c (gfc_match_implicit): Same.
- * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
-
-2008-02-28 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/31463
- PR fortran/33950
- PR fortran/34296
- * lang.opt: Added -Wreturn-type.
- * options.c (gfc_handle_option): Recognize -Wreturn-type.
- * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
- where the result value is not set.
- (gfc_generate_function_code): Likewise.
- (generate_local_decl): Emit warnings for funtions whose RESULT
- variable is not set.
-
-2008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/34868
- * trans-expr.c (gfc_conv_variable): Don't build indirect
- references when explicit interface is mandated.
- * resolve.c (resolve_formal_arglist): Set attr.always_explicit
- on the result symbol as well as the procedure symbol.
-
-2008-02-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/33387
- * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
- gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
- gfor_fndecl_math_exponent16.
- * f95-lang.c (build_builtin_fntypes): Add new function types.
- (gfc_init_builtin_functions): Add new builtins for nextafter,
- frexp, ldexp, fabs, scalbn and inf.
- * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
- (gfc_resolve_scale): Don't convert type of second argument.
- (gfc_resolve_set_exponent): Likewise.
- (gfc_resolve_size): Don't add hidden arguments.
- * trans-decl.c: Remove gfor_fndecl_math_exponent4,
- gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
- gfor_fndecl_math_exponent16.
- * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
- for scalbn, fraction, nearest, rrspacing, set_exponent and
- spacing.
- (gfc_conv_intrinsic_exponent): Directly call frexp.
- (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
- gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
- gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
- functions.
- (gfc_conv_intrinsic_function): Use the new functions above.
-
-2008-02-26 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35033
- * interface.c (check_operator_interface): Show better line for error
- messages; fix constrains for user-defined assignment operators.
- (gfc_extend_assign): Fix constrains for user-defined assignment
- operators.
-
-2008-02-26 Tom Tromey <tromey@redhat.com>
-
- * trans-io.c (set_error_locus): Remove old location code.
- * trans-decl.c (gfc_set_decl_location): Remove old location code.
- * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
- * scanner.c (gfc_gobble_whitespace): Remove old location code.
- (get_file): Likewise.
- (preprocessor_line): Likewise.
- (load_file): Likewise.
- (gfc_new_file): Likewise.
- * trans.c (gfc_trans_runtime_check): Remove old location code.
- (gfc_get_backend_locus): Likewise.
- (gfc_set_backend_locus): Likewise.
- * data.c (gfc_assign_data_value): Remove old location code.
- * error.c (show_locus): Remove old location code.
- * gfortran.h (gfc_linebuf): Remove old location code.
- (gfc_linebuf_linenum): Remove old-location variant.
-
-2008-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/34729
- * trans-const.c (gfc_build_string_const): Don't call gettext.
- (gfc_build_localized_string_const): New function.
- * trans-const.h (gfc_build_localized_string_const): New prototype.
- * trans.c (gfc_trans_runtime_check): Use
- gfc_build_localized_string_const instead of gfc_build_string_const.
- (gfc_call_malloc): Likewise.
- (gfc_allocate_with_status): Likewise.
- (gfc_allocate_array_with_status): Likewise.
- (gfc_deallocate_with_status): Likewise.
- (gfc_call_realloc): Likewise.
- * trans-io.c (gfc_trans_io_runtime_check): Likewise.
-
-2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
-
- * arith.c: Update copyright years.
- * arith.h: Likewise.
- * array.c: Likewise.
- * bbt.c: Likewise.
- * check.c: Likewise.
- * data.c: Likewise.
- * data.h: Likewise.
- * decl.c: Likewise.
- * dependency.c: Likewise.
- * dependency.h: Likewise.
- * dump-parse-tree.c: Likewise.
- * error.c: Likewise.
- * expr.c: Likewise.
- * gfc-internals.texi: Likewise.
- * gfortran.h: Likewise.
- * gfortran.texi: Likewise.
- * gfortranspec.c: Likewise.
- * interface.c: Likewise.
- * intrinsic.c: Likewise.
- * intrinsic.h: Likewise.
- * intrinsic.texi: Likewise.
- * invoke.texi: Likewise.
- * io.c: Likewise.
- * iresolve.c: Likewise.
- * iso-c-binding.def: Likewise.
- * iso-fortran-env.def: Likewise.
- * lang-specs.h: Likewise.
- * lang.opt: Likewise.
- * libgfortran.h: Likewise.
- * match.c: Likewise.
- * match.h: Likewise.
- * matchexp.c: Likewise.
- * misc.c: Likewise.
- * module.c: Likewise.
- * openmp.c: Likewise.
- * options.c: Likewise.
- * parse.c: Likewise.
- * parse.h: Likewise.
- * primary.c: Likewise.
- * resolve.c: Likewise.
- * scanner.c: Likewise.
- * simplify.c: Likewise.
- * st.c: Likewise.
- * symbol.c: Likewise.
- * target-memory.c: Likewise.
- * target-memory.h: Likewise.
- * trans-array.h: Likewise.
- * trans-const.h: Likewise.
- * trans-stmt.h: Likewise.
- * trans-types.c: Likewise.
- * trans-types.h: Likewise.
- * types.def: Likewise.
-
-2008-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35223
- * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
- (gfc_simplify_ibset): Remove call to range_check.
- (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
- (gfc_simplify_real): Add call gfc_clear_ts to initialize the
- temporary gfc_typspec variable.
-
-2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
-
- * trans-array.c (gfc_conv_descriptor_data_get,
- gfc_conv_descriptor_data_set_internal,
- gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
- gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
- gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
- gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
- gfc_conv_array_transpose, gfc_grow_array,
- gfc_trans_array_constructor_subarray,
- gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
- gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
- gfc_conv_array_initializer, gfc_trans_array_bounds,
- gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
- gfc_get_dataptr_offset, gfc_conv_array_parameter,
- gfc_trans_dealloc_allocated, get_full_array_size,
- gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
- instead of buildN.
- * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
- gfc_conv_component_ref, gfc_conv_cst_int_power,
- gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
- * trans-common.c (create_common): Likewise.
- * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
- Likewise.
- * trans-const.c (gfc_conv_constant_to_tree): Likewise.
- * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
- gfc_trans_integer_select, gfc_trans_character_select,
- gfc_trans_forall_loop, compute_overall_iter_number,
- gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
- gfc_trans_deallocate): Likewise.
- * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
- gfc_allocate_with_status, gfc_allocate_array_with_status,
- gfc_deallocate_with_status): Likewise.
- * f95-lang.c (gfc_truthvalue_conversion): Likewise.
- * trans-io.c (set_parameter_const, set_parameter_value,
- set_parameter_ref, set_string, set_internal_unit, io_result,
- set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
- * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
- gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
- gfc_generate_function_code): Likewise.
- * convert.c (convert): Likewise.
- * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
- build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
- gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
- gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
- gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
- gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
- gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
- gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
- gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
- gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
- gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
- gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
- gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
- gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
- gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
- gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
- gfc_conv_intrinsic_repeat): Likewise.
-
-2008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR target/25477
- * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
- * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
- * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
- gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
- * trans-decl.c: Likewise.
-
-2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35059
- * expr.c (find_array_element): Modify traversing the constructor to
- avoid trying to access NULL memory pointed to by next for the
- last element. (find_array_section): Exit while loop if cons->next is
- NULL.
-
-2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34907
- * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
- structure.
- (gfc_resolve_aint): Likewise.
- (gfc_resolve_anint): Likewise.
- (gfc_resolve_besn): Likewise.
- (gfc_resolve_cshift): Likewise.
- (gfc_resolve_ctime): Likewise.
- (gfc_resolve_eoshift): Likewise.
- (gfc_resolve_index_func): Likewise.
- (gfc_resolve_isatty): Likewise.
- (gfc_resolve_malloc): Likewise.
- (gfc_resolve_rrspacing): Likewise.
- (gfc_resolve_scale): Likewise.
- (gfc_resolve_set_exponent): Likewise.
- (gfc_resolve_spacing): Likewise.
- (gfc_resolve_spacing): Likewise.
- (gfc_resolve_fgetc): Likewise.
- (gfc_resolve_fputc): Likewise.
- (gfc_resolve_ftell): Likewise.
- (gfc_resolve_ttynam): Likewise.
- (gfc_resolve_alarm_sub): Likewise.
- (gfc_resolve_mvbits): Likewise.
- (gfc_resolve_getarg): Likewise.
- (gfc_resolve_signal_sub): Likewise.
- (gfc_resolve_exit): Likewise.
- (gfc_resolve_flush): Likewise.
- (gfc_resolve_free): Likewise.
- (gfc_resolve_ctime_sub): Likewise.
- (gfc_resolve_fgetc_sub): Likewise.
- (gfc_resolve_fputc_sub): Likewise.
- (gfc_resolve_fseek_sub): Likewise.
- (gfc_resolve_ftell_sub): Likewise.
- (gfc_resolve_ttynam_sub): Likewise.
-
-2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * gfc-internals.texi: Fix typos and markup nits.
- * gfortran.texi: Likewise.
- * intrinsic.texi: Likewise.
-
-2008-02-21 Richard Guenther <rguenther@suse.de>
-
- * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
- as unary PAREN_EXPR for real and complex typed expressions.
- (gfc_conv_unary_op): Fold the built tree.
-
-2008-02-20 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34997
- * match.c (gfc_match_name): Improve error message for '$'.
-
-2008-02-19 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35030
- * expr.c (gfc_check_pointer_assign): Add type and kind information
- to type-mismatch message.
- (gfc_check_assign): Unify error messages.
-
-2008-02-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/34952
- * gfortran.texi: Create new section for unimplemented extensions.
- Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
- Remove "smaller projects" list. Fix a few typos.
-
-2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * intrinsic.texi: Rename INDEX node to avoid clashing with
- index.html on case-insensitive systems.
-
-2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35150
- * trans-expr.c (gfc_conv_function_call): Force evaluation of
- se->expr.
-
-2008-02-10 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35019
- * lang.opt: Allow '-J<dir>' next to '-J <dir>',
- likewise '-I <dir>' and '-I<dir>'.
-
-2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- PR other/35107
- * Make-lang.in (f951): Add $(GMPLIBS).
-
-2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35037
- * trans-common.c (build_field): Mark fields as volatile when needed.
-
-2008-02-05 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35093
- * data.c (gfc_assign_data_value): Only free "size" if
- it has not already been freed.
-
-2008-02-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34945
- * array.c (match_array_element_spec): Remove check for negative
- array size.
- (gfc_resolve_array_spec): Add check for negative size.
-
-2008-02-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/32315
- * data.c (gfc_assign_data_value): Add bounds check for array
- references.
-
-2008-02-04 Daniel Franke <franke.daniel@gmail.com>
-
- * resolve.c (resolve_where): Fix typo.
- (gfc_resolve_where_code_in_forall): Likewise.
-
-2008-02-03 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/32760
- * resolve.c (resolve_allocate_deallocate): New function.
- (resolve_code): Call it for allocate and deallocate.
- * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
- the checking of the STAT tag and put in above new function.
- * primary,c (match_variable): Do not fix flavor of host
- associated symbols yet if the type is not known.
-
-2008-01-31 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34910
- * expr.c (gfc_check_assign): It is an error to assign
- to a sibling procedure.
-
-2008-01-30 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34975
- * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
- delete_symtree to gfc_delete_symtree.
- * gfortran.h : Add prototype for gfc_delete_symtree.
- * module.c (load_generic_interfaces): Transfer symbol to a
- unique symtree and delete old symtree, instead of renaming.
- (read_module): The rsym and the found symbol are the same, so
- the found symtree can be deleted.
-
- PR fortran/34429
- * decl.c (match_char_spec): Remove the constraint on deferred
- matching of functions and free the length expression.
- delete_symtree to gfc_delete_symtree.
- (gfc_match_type_spec): Whitespace.
- (gfc_match_function_decl): Defer characteristic association for
- all types except BT_UNKNOWN.
- * parse.c (decode_specification_statement): Only derived type
- function matching is delayed to the end of specification.
-
-2008-01-28 Tobias Burnus <burnus@net-b.de>
-
- PR libfortran/34980
- * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
-
-2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34990
- * array.c (gfc_check_constructor_type): Revert clearing the expression.
-
-2008-01-26 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34848
- * trans-expr.c (gfc_conv_function_call): Don't call
- gfc_add_interface_mapping if the expression is NULL.
-
-2008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/31610
- * trans-array.c (gfc_trans_create_temp_array): Remove call to
- gcc_assert (integer_zerop (loop->from[n])).
-
-2008-01-25 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34661
- * resolve.c (resolve_where): Added check if user-defined assignment
- operator is an elemental subroutine.
- (gfc_resolve_where_code_in_forall): Likewise.
-
-2008-01-24 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/33375
- PR fortran/34858
- * gfortran.h: Revert changes from 2008-01-17.
- * match.c: Likewise.
- * symbol.c: Likewise.
- (gfc_undo_symbols): Undo namespace changes related to common blocks.
-
-2008-01-24 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34202
- * data.c (formalize_structure_cons): Skip formalization on
- empty structures.
-
-2008-01-24 Daniel Franke <franke.daniel@gmail.com>
-
- * gfortran.texi (OpenMP): Extended existing documentation.
- (contributors): Added major contributors of 2008 that were
- not listed yet.
- (proposed extensions): Removed implemented items.
-
-2008-01-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34872
- * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS is
- seen, check for a statement label and, if present, delete it
- and set the locus to the start of the statement.
-
-2008-01-22 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34875
- * trans-io.c (gfc_trans_transfer): If the array reference in a
- read has a vector subscript, use gfc_conv_subref_array_arg to
- copy back the temporary.
-
-2008-01-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34848
- * interface.c (compare_actual_formal): Fix adding type
- to missing_arg_type for absent optional arguments.
-
-2008-01-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34907
- * parse.c (parse_spec): Change = into ==.
-
-2008-01-22 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34915
- * expr.c (check_elemental): Fix check for valid data types.
-
-2008-01-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34899
- * scanner.c (load_line): Support <tab><digit> continuation lines.
- * invoke.texi (-Wtabs): Document this.
-
-2008-01-22 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34896
- * module.c (read_module): Set use_rename attribute.
-
-2007-01-21 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34901
- * interface.c (compare_parameter): Improved error message
- for arguments of same type and mismatched kinds.
-
-2008-01-20 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34861
- * resolve.c (resolve_entries): Do not do an array bounds check
- if the result symbols are the same.
-
- PR fortran/34854
- * module.c (read_module) : Hide the symtree of the previous
- version of the symbol if this symbol is renamed.
-
-2008-01-20 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34784
- * array.c (gfc_check_constructor_type): Clear the expression ts
- so that the checking starts from the deepest level of array
- constructor.
- * primary.c (match_varspec): If an unknown type is changed to
- default character and the attempt to match a substring fails,
- change it back to unknown.
-
- PR fortran/34785
- * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
- NULL for an array constructor, use the cl.length expression to
- build it.
- (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
- a tree assignment.
-
-2008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/34817
- PR fortran/34838
- * iresolve.c (gfc_resolve_all): Remove conversion of mask
- argument to kind=1 by removing call to resolve_mask_arg().
- (gfc_resolve_any): Likewise.
-
-2008-01-19 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34760
- * primary.c (match_variable): Handle FL_UNKNOWN without
- uneducated guessing.
- (match_variable): Improve error message.
-
-2008-01-18 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/32616
- * interface.c (get_expr_storage_size): Return storage size
- for array element designators.
- (compare_actual_formal): Reject unequal string sizes for
- assumed-shape dummy arguments. And fix error message for
- array-sections with vector subscripts.
-
-2008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34556
- * simplify.c (is_constant_array_expr): New static function that returns
- true if the given expression is an array and is constant.
- (gfc_simplify_reshape): Use new function.
-
-2008-01-17 H.J. Lu <hongjiu.lu@intel.com>
-
- PR fortran/33375
- * symbol.c (free_common_tree): Renamed to ...
- (gfc_free_common_tree): This. Remove static.
- (gfc_free_namespace): Updated.
-
- * gfortran.h (gfc_free_common_tree): New.
-
- * match.c (gfc_match_common): Call gfc_free_common_tree () with
- gfc_current_ns->common_root and set gfc_current_ns->common_root
- to NULL on syntax error.
-
-2008-01-18 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR fortran/34686
- * trans-expr.c (gfc_conv_function_call): Use proper
- type for returned character pointers.
-
-2008-01-17 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34429
- PR fortran/34431
- PR fortran/34471
- * decl.c : Remove gfc_function_kind_locus and
- gfc_function_type_locus. Add gfc_matching_function.
- (match_char_length): If matching a function and the length
- does not match, return MATCH_YES and try again later.
- (gfc_match_kind_spec): The same.
- (match_char_kind): The same.
- (gfc_match_type_spec): The same for numeric and derived types.
- (match_prefix): Rename as gfc_match_prefix.
- (gfc_match_function_decl): Except for function valued character
- lengths, defer applying kind, type and charlen info until the
- end of specification block.
- gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
- parse.c (decode_specification_statement): New function.
- (decode_statement): Call it when a function has kind = -1. Set
- and reset gfc_matching function, as function statement is being
- matched.
- (match_deferred_characteristics): Simplify with a single call
- to gfc_match_prefix. Do appropriate error handling. In any
- case, make sure that kind = -1 is reset or corrected.
- (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
- Throw an error if kind = -1 after last specification statement.
- parse.h : Prototype for gfc_match_prefix.
-
-2008-01-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34796
- * interface.c (compare_parameter): Allow AS_DEFERRED array
- elements and reject attr.pointer array elemenents.
- (get_expr_storage_size): Return storage size of elements of
- assumed-shape and pointer arrays.
-
-2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
-
- * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
- for flag_tree_parallelize_loops.
-
-2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34671
- * iresolve.c (gfc_resolve_all): Call resolve_mask_arg.
- (gfc_resolve_any): Likewise.
- (gfc_resolve_count): Likewise. Don't append kind of
- argument to function name.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34665
- * resolve.c (resolve_actual_arglist): For expressions,
- also check for assume-sized arrays.
- * interface.c (compare_parameter): Move F2003 character checks
- here, print error messages here, reject elements of
- assumed-shape array as argument to dummy arrays.
- (compare_actual_formal): Update for the changes above.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34763
- * decl.c (contained_procedure): Only check directly preceeding state.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34759
- * check.c (gfc_check_shape): Accept array ranges of
- assumed-size arrays.
-
-2008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34432
- * match.c (gfc_match_name): Don't error if leading character is a '(',
- just return MATCH_NO.
-
-2008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34722
- * trans-io.c (create_dummy_iostat): Commit the symbol.
-
-2008-01-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34537
- * simplify.c (gfc_simplify_transfer): Return NULL if the size
- of the element is unavailable and only assign character length
- to the result, if 'mold' is constant.
-
-2008-01-10 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34396
- * trans-array.c (gfc_trans_array_ctor_element): Use gfc_trans_string_copy
- to assign strings and perform bounds checks on the string length.
- (get_array_ctor_strlen): Remove bounds checking.
- (gfc_trans_array_constructor): Initialize string length checking.
- * trans-array.h : Add prototype for gfc_trans_string_copy.
-
-2008-01-08 Richard Guenther <rguenther@suse.de>
-
- PR fortran/34706
- PR tree-optimization/34683
- * trans-types.c (gfc_get_array_type_bounds): Use an array type
- with known size for accesses if that is known.
-
-2008-01-08 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34476
- * expr.c (find_array_element): Check that the array bounds are
- constant before using them. Use lower, as well as upper bound.
- (check_restricted): Allow implied index variable.
-
-2008-01-08 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34681
- * trans_array.c (gfc_trans_deferred_array): Do not null the
- data pointer on entering scope, nor deallocate it on leaving
- scope, if the symbol has the 'save' attribute.
-
- PR fortran/34704
- * trans_decl.c (gfc_finish_var_decl): Derived types with
- allocatable components and an initializer must be TREE_STATIC.
-
-2008-01-07 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34672
- * module.c (write_generic): Rewrite completely.
- (write_module): Change call to write_generic.
-
-2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34659
- * scanner.c (load_line): Do not count ' ' as printable when checking for
- continuations.
-
-2008-01-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34545
- * module.c (load_needed): If the namespace has no proc_name
- give it the module symbol.
-
-2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34387
- * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
- the dummy variable expression, test for NULL, and pass the variable
- address to the called function.
+ PR fortran/35681
+ * ChangeLog-2008: Fix function name.
-2007-01-06 Tobias Burnus <burnus@net-b.de>
+ PR fortran/38487
+ * dependency.c (gfc_check_argument_var_dependency):
+ Move the check for pointerness inside the if block
+ so that it doesn't affect the return value.
- PR fortran/34658
- * match.c (gfc_match_common): Remove blank common in
- DATA BLOCK warning.
- * resolve.c (resolve_common_vars): New function.
- (resolve_common_blocks): Move checks to resolve_common_vars
- and invoke that function.
- (resolve_types): Call resolve_common_vars for blank commons.
+ PR fortran/38669
+ * trans-stmt.c (gfc_trans_call):
+ Add the dependency code after the loop bounds calculation one.
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+2009-01-04 Daniel Franke <franke.daniel@gmail.com>
- PR fortran/34655
- * resolve.c (resolve_equivalence_derived): Reject derived types with
- default initialization if equivalenced with COMMON variable.
+ * intrinsic.c (do_simplify): Removed already implemented TODO.
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+2009-01-04 Daniel Franke <franke.daniel@gmail.com>
- PR fortran/34654
- * io.c (check_io_constraints): Disallow unformatted I/O for
- internal units.
+ PR fortran/38718
+ * simplify.c (gfc_simplify_merge): New.
+ * intrinsic.h (gfc_simplify_merge): New prototype.
+ * intrinsic.c (add_functions): Added simplification for MERGE.
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
- PR fortran/34660
- * resolve.c (resolve_formal_arglist): Reject dummy procedure in
- ELEMENTAL functions.
+ PR fortran/38536
+ * gfortran.h (gfc_is_data_pointer): Added prototype
+ * resolve.c (gfc_iso_c_func_interface):
+ Use gfc_is_data_pointer to test for pointer attribute.
+ * dependency.c (gfc_is_data_pointer):
+ Support pointer-returning functions.
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+2009-01-03 Daniel Franke <franke.daniel@gmail.com>
- PR fortran/34662
- * interface.c (compare_actual_formal): Reject parameter
- actual to intent(out) dummy.
+ * symbol.c (save_symbol): Don't SAVE function results.
-2008-01-04 Tobias Burnus <burnus@net-b.de>
+2009-01-03 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/34557
- * primary.c (match_varspec): Gobble whitespace before
- checking for '('.
+ PR fortran/38594
+ * resolve.c (resolve_call): When searching for proper host
+ association, use symtree rather than symbol. For everything
+ except generic subroutines, substitute the symtree in the call
+ rather than the symbol.
diff --git a/gcc/fortran/ChangeLog-2007 b/gcc/fortran/ChangeLog-2007
index 9c34c79ca02..4597cb58fd3 100644
--- a/gcc/fortran/ChangeLog-2007
+++ b/gcc/fortran/ChangeLog-2007
@@ -87,7 +87,6 @@
* module.c (read_module): Check sym->module is there before
using it in a string comparison.
->>>>>>> .r131138
2007-12-20 Tobias Burnus <burnus@net-b.de>
PR fortran/34482
diff --git a/gcc/fortran/ChangeLog-2008 b/gcc/fortran/ChangeLog-2008
new file mode 100644
index 00000000000..b4b7f2af893
--- /dev/null
+++ b/gcc/fortran/ChangeLog-2008
@@ -0,0 +1,4135 @@
+2008-12-31 Daniel Franke <franke.daniel@gmail.com>
+
+ * check.c (dim_rank_check): Fixed checking of dimension argument
+ if array is of type EXPR_ARRAY.
+
+2008-12-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38602
+ * trans-decl.c (init_intent_out_dt): Allow for optional args.
+
+2008-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38398
+ * io.c: Add error checks for g0 formatting and provide adjustment of
+ error loci for improved error messages.
+
+2008-12-21 Arjen Markus <arjen.markus@wldelft.nl>
+ Daniel Kraft <d@domob.eu>
+
+ PR fortran/37605
+ * gfortran.texi: Fixed some typos and some minor style improvements.
+ * intrinsic.texi: Some clarifications and typo-fixes.
+ * invoke.texi: Better documenation of the behaviour of the
+ -fdefault-*-8 options and some other fixes.
+
+2008-12-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/31822
+ * gfortran.h (gfc_check_same_strlen): Made public.
+ * trans.h (gfc_trans_same_strlen_check): Made public.
+ * check.c (gfc_check_same_strlen): Made public and adapted error
+ message output to be useful not only for intrinsics.
+ (gfc_check_merge): Adapt to gfc_check_same_strlen change.
+ * expr.c (gfc_check_pointer_assign): Use gfc_check_same_strlen for
+ string length compile-time check.
+ * trans-expr.c (gfc_trans_pointer_assignment): Add runtime-check for
+ equal string lengths using gfc_trans_same_strlen_check.
+ * trans-intrinsic.c (gfc_trans_same_strlen_check): Renamed and made
+ public from conv_same_strlen_check.
+ (gfc_conv_intrinsic_merge): Adapted accordingly.
+
+2008-12-17 Daniel Kraft <d@domob.eu>
+
+ PR fortran/38137
+ * trans-intrinsic.c (conv_same_strlen_check): New method.
+ (gfc_conv_intrinsic_merge): Call it here to actually do the check.
+
+2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38487
+ * dependency.c (gfc_is_data_pointer): New function.
+ (gfc_check_argument_var_dependency): Disable the warning
+ in the pointer case.
+ (gfc_check_dependency): Use gfc_is_data_pointer.
+
+2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38113
+ * error.c (show_locus): Start counting columns at 0.
+ * primary.c (match_actual_arg): Eat spaces
+ before copying the current locus.
+ (match_variable): Copy the locus before matching.
+
+2008-12-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35937
+ * trans-expr.c (gfc_finish_interface_mapping): Fold convert the
+ character length to gfc_charlen_type_node.
+
+2008-12-12 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36355
+ * check.c (gfc_check_matmul): Fixed error message for invalid
+ types to correctly identify the offending argument, added check
+ for mismatching types.
+
+2008-12-11 Richard Guenther <rguenther@suse.de>
+
+ * Make-lang.in (install-finclude-dir): Use correct mode argument
+ for mkinstalldirs.
+
+2008-12-09 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36376
+ PR fortran/37468
+ * lang-specs.h: Pass on -i* options to f951 to (probably) report
+ them as unknown. Duplicate gcc.c (cpp_options), but omit
+ -fpch-preprocess on -save-temps.
+
+2008-12-09 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36457
+ * lang.opt: Added option idirafter.
+ * cpp.h (gfc_cpp_add_include_path_after): New prototype.
+ * cpp.c (gfc_cpp_handle_option): Recognize and handle OPT_dirafter.
+ (gfc_cpp_add_include_path_after): New, adds user-defined search path
+ after any other paths.
+ * invoke.texi (idirafter): New.
+ (no-range-check): Fixed entry in option-index.
+
+2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37469
+ * expr.c (find_array_element): Simplify array bounds.
+ Assert that both bounds are constant expressions.
+
+2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35983
+ * trans-expr.c (gfc_trans_subcomponent_assign):
+ Add se's pre and post blocks to current block.
+ (gfc_trans_structure_assign): Remove specific handling
+ of C_NULL_PTR and C_NULL_FUNPTR.
+
+2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38425
+ * io.c (check_io_constraints): Check constraints on REC=, POS=, and
+ internal unit with POS=. Fix punctuation on a few error messages.
+
+2008-12-06 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/38415
+ * expr.c (gfc_check_pointer_assign): Added a check for abstract
+ interfaces in procedure pointer assignments, removed check involving
+ gfc_compare_interfaces until PR38290 is fixed completely.
+
+2008-12-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38291
+ * io.c (match_dt_element): Use dt->pos in matcher.
+ (gfc_free_dt): Free dt->pos after use.
+ (gfc_resolve_dt): Use dt->pos in resolution of stream position tag.
+
+2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR bootstrap/38262
+ * Make-lang.in (f951): Add BACKENDLIBS, remove GMPLIBS.
+
+2008-12-02 Jakub Jelinek <jakub@redhat.com>
+ Diego Novillo <dnovillo@google.com>
+
+ * Make-lang.in (install-finclude-dir): Use mkinstalldirs
+ and don't remove the finclude directory beforehand.
+
+2008-12-02 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36704
+ PR fortran/38290
+ * decl.c (match_result): Result may be a standard variable or a
+ procedure pointer.
+ * expr.c (gfc_check_pointer_assign): Additional checks for procedure
+ pointer assignments.
+ * primary.c (gfc_match_rvalue): Bugfix for procedure pointer
+ assignments.
+ * resolve.c (resolve_function): Check for attr.subroutine.
+ * symbol.c (check_conflict): Addtional checks for RESULT statements.
+ * trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure
+ pointers as function result.
+
+2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38252
+ * parse.c (parse_spec): Skip statement order check in case
+ of a CONTAINS statement.
+
+2008-11-30 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37779
+ * gfortran.h (struct gfc_entry_list): Fixed typo in comment.
+ * resolve.c (is_illegal_recursion): New method.
+ (resolve_procedure_expression): Use new is_illegal_recursion instead of
+ direct check and handle function symbols correctly.
+ (resolve_actual_arglist): Removed useless recursion check.
+ (resolve_function): Use is_illegal_recursion instead of direct check.
+ (resolve_call): Ditto.
+
+2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * trans-array.c (gfc_conv_array_parameter): Guard union access.
+
+2008-11-29 Janus Weil <janus@gcc.gnu.org>
+ Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/38289
+ PR fortran/38290
+ * decl.c (match_procedure_decl): Handle whitespaces.
+ * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
+ interface.
+
+2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * module.c (gfc_dump_module): Report error on unlink only if
+ errno != ENOENT.
+
+2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/36463
+ * expr.c (replace_symbol): Don't replace the symtree
+ if the expresion is an intrinsic function. Don't create
+ non-existent symtrees. Use symbol's name instead of symtree's,
+ different in case of module procedure dummy arguments.
+
+2008-11-25 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ PR fortran/38248
+ * module.c (gfc_dump_module): Check rename/unlink syscalls errors.
+
+2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR fortran/37319
+ * parse.c (match_deferred_characteristics): Make sure 'name' is
+ initialized before reading it.
+
+2008-11-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37803
+ * arith.c (gfc_check_real_range): Add mpfr_check_range.
+ * simplify.c (gfc_simplify_nearest): Add mpfr_check_range.
+
+2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38184
+ * simplify.c (is_constant_array_expr): Return true instead of false
+ if the array constructor is empty.
+
+2008-11-24 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37779
+ * resolve.c (resolve_procedure_expression): New method.
+ (resolve_variable): Call it.
+ (resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments.
+
+2008-11-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34820
+ * trans-expr.c (gfc_conv_function_call): Remove all code to
+ deallocate intent out derived types with allocatable
+ components.
+ (gfc_trans_assignment_1): An assignment from a scalar to an
+ array of derived types with allocatable components, requires
+ a deep copy to each array element and deallocation of the
+ converted rhs expression afterwards.
+ * trans-array.c : Minor whitespace.
+ * trans-decl.c (init_intent_out_dt): Add code to deallocate
+ allocatable components of derived types with intent out.
+ (generate_local_decl): If these types are unused, set them
+ referenced anyway but allow the uninitialized warning.
+
+ PR fortran/34143
+ * trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
+ expression has a null data pointer argument, nullify the
+ allocatable component.
+
+ PR fortran/32795
+ * trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
+ the data pointer if the source is not a variable.
+
+2008-11-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37735
+ * trans-array.c (structure_alloc_comps): Do not duplicate the
+ descriptor if this is a descriptorless array!
+
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38160
+ * trans-types.c (gfc_validate_c_kind): Remove function.
+ * decl.c (gfc_match_kind_spec): Add C kind parameter check.
+ (verify_bind_c_derived_type): Remove gfc_validate_c_kind call.
+ (verify_c_interop_param): Update call.
+ * gfortran.h (verify_bind_c_derived_type): Update prototype.
+ (gfc_validate_c_kind): Remove.
+ * symbol.c (verify_bind_c_derived_type): Update verify_c_interop call.
+ * resolve.c (gfc_iso_c_func_interface): Ditto.
+
+2008-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR libfortran/37839
+ * trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
+ to 16 pointers plus 32 integers. Don't use max integer kind
+ alignment, only gfc_intio_kind's alignment.
+ (gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
+ * ioparm.def: Fix order, bitmasks and types of inquire round, sign
+ and pending fields. Move u in dt before id.
+ * io.c (gfc_free_inquire): Free decimal and size exprs.
+ (match_inquire_element): Match size instead of matching blank twice.
+ (gfc_resolve_inquire): Resolve size.
+
+2008-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/29215
+ * trans-array.c (trans_array_constructor_value,
+ gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.
+
+ * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
+ gfc_index_one_node.
+ (gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.
+
+ PR fortran/38181
+ * trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
+ size if the second argument is not optional and one argument size
+ for rank 1 arrays.
+
+2008-11-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38171
+ * module.c (load_equiv): Regression fix; check that equivalence
+ members come from the same module only.
+
+2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35681
+ * dependency.c (gfc_check_argument_var_dependency): Add
+ elemental check flag. Issue a warning if we find a dependency
+ but don't generate a temporary. Add the case of an elemental
+ function call as actual argument to an elemental procedure.
+ Add the case of an operator expression as actual argument
+ to an elemental procedure.
+ (gfc_check_argument_dependency): Add elemental check flag.
+ Update calls to gfc_check_argument_var_dependency.
+ (gfc_check_fncall_dependency): Add elemental check flag.
+ Update call to gfc_check_argument_dependency.
+ * trans-stmt.c (gfc_trans_call): Make call to
+ gfc_conv_elemental_dependencies unconditional, but with a flag
+ whether we should check dependencies between variables.
+ (gfc_conv_elemental_dependencies): Add elemental check flag.
+ Update call to gfc_check_fncall_dependency.
+ * trans-expr.c (gfc_trans_arrayfunc_assign): Update call to
+ gfc_check_fncall_dependency.
+ * resolve.c (find_noncopying_intrinsics): Update call to
+ gfc_check_fncall_dependency.
+ * dependency.h (enum gfc_dep_check): New enum.
+ (gfc_check_fncall_dependency): Update prototype.
+
+2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37992
+ * gfortran.h (gfc_namespace): Added member old_cl_list,
+ backup of cl_list.
+ (gfc_free_charlen): Added prototype.
+ * symbol.c (gfc_free_charlen): New function.
+ (gfc_free_namespace): Use gfc_free_charlen.
+ * parse.c (next_statement): Backup gfc_current_ns->cl_list.
+ (reject_statement): Restore gfc_current_ns->cl_list.
+ Free cl_list's elements before dropping them.
+
+2008-11-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38095
+ * trans-expr.c (gfc_map_intrinsic_function): Fix pointer access.
+
+2008-11-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38119
+ * trans-array.c (gfc_trans_create_temp_array): Set the
+ loop->from to zero and the renormalisation of loop->to for all
+ dimensions.
+
+2008-11-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37926
+ * trans-expr.c (gfc_free_interface_mapping): Null sym->formal
+ (gfc_add_interface_mapping): Copy the pointer to the formal
+ arglist, rather than using copy_formal_args - fixes regression.
+
+2008-11-15 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37926
+ * trans-expr.c (gfc_add_interface_mapping): Transfer the formal
+ arglist and the always_explicit attribute if the dummy arg is a
+ procedure.
+
+2008-11-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37988
+ * io.c (enum format_token): For readability replace FMT_POS with FMT_T,
+ FMT_TL, and FMT_TR. (format_lex): Use new enumerators. (check_format):
+ Add check for missing positive integer.
+
+2008-10-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38033
+ * trans-array.c (gfc_trans_create_temp_array): Stabilize the
+ 'to' expression.
+ (gfc_conv_loop_setup): Use the end expression for the loop 'to'
+ if it is available.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35366
+ PR fortran/33759
+ * trans-const.c (gfc_conv_constant_to_tree): Warn when
+ converting an integer outside of LOGICAL's range to
+ LOGICAL.
+ * trans-intrinsic.c (gfc_conv_intrinsic_function,
+ gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
+ Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
+ argument of another TRANSFER.
+
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38065
+ * resolve.c (resolve_fntype): Fix private derived type checking.
+
+2008-11-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37836
+ * intrinsic.c (add_functions): Reference gfc_simplify._minval
+ and gfc_simplify_maxval.
+ * intrinsic.h : Add prototypes for gfc_simplify._minval and
+ gfc_simplify_maxval.
+ * simplify.c (min_max_choose): New function extracted from
+ simplify_min_max.
+ (simplify_min_max): Call it.
+ (simplify_minval_maxval, gfc_simplify_minval,
+ gfc_simplify_maxval): New functions.
+
+2008-11-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37597
+ * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
+ when symbol not found.
+
+2008-11-03 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37821
+ * cpp.c (gfc_cpp_add_include_path): Use BRACKET.
+ * scanner.c (add_path_to_list): Argument to add at head.
+ (gfc_add_include_path): Add new argument.
+ (gfc_add_intrinsic_modules_path) Update call.
+ (load_file): Print filename/line in the error message.
+ * gfortran.h (gfc_add_include_path): Update prototype.
+ * options.c (gfc_post_options,gfc_handle_module_path_options,
+ gfc_handle_option): Update call.
+ * lang-spec.h (F951_OPTIONS): Don't insert include path twice.
+
+ * arith.c (arith_error): Add -fno-range-error to the message.
+
+2008-11-03 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37445
+ * resolve.c (resolve_actual_arglist ): Correct comparison of
+ FL_VARIABLE with e->expr_type.
+ (resolve_call): Check that host association is correct.
+ (resolve_actual_arglist ): Remove return is old_sym is use
+ associated. Only reparse expression if old and new symbols
+ have different types.
+
+ PR fortran/PR35769
+ * resolve.c (gfc_resolve_assign_in_forall): Change error to a
+ warning.
+
+2008-11-01 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36426
+ * expr.c (replace_symbol): Replace all symbols which lie in the
+ formal namespace of the interface and copy their attributes.
+ * resolve.c (resolve_symbol): Add charlen to namespace.
+
+2008-11-01 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/19925
+ * trans-array.c (gfc_trans_array_constructor_value): Fix comment.
+ (gfc_conv_array_initializer): Convert internal_error() to gfc_error_now.
+ * array.c: Remove GFC_MAX_AC_EXPAND macro.
+ (gfc_expand_constructor): Use gfc_option.flag_max_array_constructor.
+ * gfortran.h (gfc_option): Add flag_max_array_constructor member.
+ * lang.opt: Add -fmax-array-constructor option.
+ * expr.c (gfc_match_init_expr): Fix error message to mention new option.
+ * invoke.texi: Document new option.
+ * options.c (gfc_init_options): Set default value for new option.
+ (gfc_handle_option): Deal with commandline.
+
+2008-11-01 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35681
+ * gfortran.h (struct gfc_code): New field `resolved_isym'.
+ * trans.h (gfc_build_memcpy_call): Made public.
+ * trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
+ * intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
+ * iresolve.c (create_formal_for_intents): New helper method.
+ (gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
+ * resolve.c (resolve_call): Initialize resolved_isym to NULL.
+ * trans-array.c (gfc_trans_allocate_array_storage): New argument
+ `initial' to allow initializing the allocated storage to some initial
+ value copied from another array.
+ (gfc_trans_create_temp_array): Allow initialization of the temporary
+ with a copy of some other array by using the new extension.
+ (gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
+ (gfc_conv_loop_setup): Ditto.
+ * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
+ * trans-expr.c (gfc_conv_function_call): Ditto.
+ (gfc_build_memcpy_call): Made public.
+ * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
+ temporary for INTENT(INOUT) arguments to the value of the mirrored
+ array and clean up the temporary as very last intructions in the created
+ block.
+ * trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
+ and enable elemental dependency checking if we have.
+
+2008-11-01 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36463
+ * gfortran.h: New function gfc_expr_replace_symbols.
+ * decl.c (match_procedure_decl): Increase reference count for interface.
+ * expr.c: New functions replace_symbol and gfc_expr_replace_symbols.
+ * resolve.c (resolve_symbol): Correctly copy array spec and char len
+ of PROCEDURE declarations from their interface.
+ * symbol.c (gfc_get_default_type): Enhanced error message.
+ (copy_formal_args): Call copy_formal_args recursively for arguments.
+ * trans-expr.c (gfc_conv_function_call): Bugfix.
+
+2008-11-01 Dennis Wassel <dennis.wassel@gmail.com>
+
+ PR fortran/37159
+ * fortran/check.c (gfc_check_random_seed): Check PUT size
+ at compile time.
+
+2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35840
+ * expr.c (gfc_reduce_init_expr): New function, containing checking code
+ from gfc_match_init_expr, so that checking can be deferred.
+ (gfc_match_init_expr): Use gfc_reduce_init_expr.
+ * io.c (check_io_constraints): Use gfc_reduce_init_expr instead of
+ checking that the expression is a constant.
+ * match.h (gfc_reduce_init_expr): Prototype added.
+
+2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35820
+ * resolve.c (gfc_count_forall_iterators): New function.
+ (gfc_resolve_forall): Use gfc_count_forall_iterators to evaluate
+ the needed memory amount to allocate. Don't forget to free allocated
+ memory. Add an assertion to check for memory leaks.
+
+2008-10-30 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/37930
+ * fortran/arith.c (gfc_mpfr_to_mpz): Test for NaN and Inf values.
+ Remove stale comment and kludge code for MPFR 2.0.1 and older.
+ (gfc_real2int): Error on conversion of NaN or Inf.
+ (gfc_complex2int): Ditto.
+ * fortran/arith.h: Update mpfr_to_mpz prototype.
+ * fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor,
+ gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function
+ calls to include locus.
+
+2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37903
+ * trans-array.c (gfc_trans_create_temp_array): If n is less
+ than the temporary dimension, assert that loop->from is
+ zero (reverts to earlier versions). If there is at least one
+ null loop->to[n], it is a callee allocated array so set the
+ size to NULL and break.
+ (gfc_trans_constant_array_constructor): Set the offset to zero.
+ (gfc_trans_array_constructor): Remove loop shifting around the
+ temporary creation.
+ (gfc_conv_loop_setup): Prefer zero-based descriptors if
+ possible. Calculate the translation from loop variables to
+ array indices if an array constructor.
+
+2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37749
+ * trans-array.c (gfc_trans_create_temp_array): If size is NULL
+ use the array bounds for loop->to.
+
+2008-10-28 Tobias Burnus <burnus@net-b.de>
+
+ * intrinsic.texi: Update OpenMP section for OMPv3.
+
+2008-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ * Make-lang.in (check-f95-subtargets, check-fortran-subtargets): New
+ aliases for check-gfortran-subtargets.
+ (lang_checks_parallelized): Add check-gfortran.
+ (check_gfortran_parallelize): New variable.
+
+2008-10-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37723
+ * dependency.c (gfc_dep_resolver ): If we find equal array
+ element references, go on to the next reference.
+
+2008-10-16 Daniel Kraft <d@domob.eu>
+
+ * resolve.c (resolve_elemental_actual): Handle calls to intrinsic
+ subroutines correctly.
+
+2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
+
+2008-10-12 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37688
+ * expr.c (gfc_expr_check_typed): Extend permission of untyped
+ expressions to both top-level variable and basic arithmetic expressions.
+
+2008-10-12 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37787
+ * dependency.c (gfc_are_equivalenced_arrays): Look in symbol
+ namespace rather than current namespace, if it is available.
+
+2008-10-12 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/37792
+ * fortran/resolve.c (resolve_fl_variable): Simplify the
+ initializer if there is one.
+
+2008-10-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37794
+ * module.c (check_for_ambiguous): Remove redundant code.
+
+2008-10-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35723
+ * gfortran.h (gfc_suppress_error): Removed from header.
+ (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
+ * array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors
+ instead of directly changing gfc_suppress_error.
+ * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
+ (gfc_intrinsic_sub_interface): Ditto.
+ * error.c (suppress_errors): Made static from `gfc_suppress_error'.
+ (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
+ (gfc_notify_std), (gfc_error): Use new static name of global.
+ * expr.c (check_arglist), (check_references): New methods.
+ (check_restricted): Check arglists and references of EXPR_FUNCTIONs
+ and EXPR_VARAIBALEs, respectively. Allow PARAMETER symbols.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ * f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
+ * trans-decl.c (gfc_build_qualified_array): Build accurate debug type
+ even if nest.
+ (build_entry_thunks, gfc_generate_function_code,
+ gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
+ with DECL_INITIAL as its BLOCK.
+
+2008-10-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35680
+ * gfortran.h : Add 'error' bit field to gfc_expr structure.
+ * expr.c (check_inquiry): When checking a restricted expression
+ check that arguments are either variables or restricted.
+ (check_restricted): Do not emit error if the expression has
+ 'error' set. Clean up detection of host-associated variable.
+
+2008-10-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37638
+ * gfortran.h (struct gfc_typebound_proc): New flag `error'.
+ * resolve.c (update_arglist_pass): Added assertion.
+ (update_compcall_arglist): Fail early for erraneous procedures to avoid
+ confusion later.
+ (resolve_typebound_generic_call): Ignore erraneous specific targets
+ and added assertions.
+ (resolve_typebound_procedure): Set new `error' flag.
+
+2008-10-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37706
+ * module.c (load_equiv): Check the module before negating the
+ unused flag.
+
+2008-10-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR fortran/37635
+ * intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics.
+ * intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos.
+ * gfortran.h <enum gfc_isym_id>: (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ): New.
+ * f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ,
+ BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and
+ BUILT_IN_CTZLL.
+ * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
+ gfc_conv_intrinsic_trails): New code-generation functions for LEADZ
+ and TRAILZ intrinsics.
+ (gfc_conv_intrinsic_function): Use them
+ * intrinsic.texi: Add documentation for LEADZ and TRAILZ.
+ * simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions.
+
+2008-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36592
+ * symbol.c (check_conflict): If a symbol in a COMMON block is a
+ procedure, it must be a procedure pointer.
+ (gfc_add_in_common): Symbols in COMMON blocks may be variables or
+ procedure pointers.
+ * trans-types.c (gfc_sym_type): Make procedure pointers in COMMON
+ blocks work.
+
+2008-09-25 Jerry DeLisle <jvdelisle@gcc.gnu.org
+
+ PR fortran/37498
+ * trans-io.c (build_dt): Revert previous patch..
+ * ioparm.def: Delete IOPARM_dt_f2003.
+
+2008-09-25 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37504
+ * expr.c (gfc_check_pointer_assign): Allow assignment of
+ protected pointers.
+ * match.c (gfc_match_assignment,gfc_match_pointer_assignment):
+ Remove unreachable code.
+
+2008-09-24 Tobias Burnus <burnus@net-b.de>
+
+ * options.c (set_default_std_flags,gfc_init_options):
+ Add comment: keep in sync with libgfortran.
+
+2008-09-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37626
+ * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate
+ result variables.
+
+2008-09-23 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37588
+ * gfortran.h (gfc_compare_actual_formal): Removed, made private.
+ (gfc_arglist_matches_symbol): New method.
+ * interface.c (compare_actual_formal): Made static.
+ (gfc_procedure_use): Use new name of compare_actual_formal.
+ (gfc_arglist_matches_symbol): New method.
+ (gfc_search_interface): Moved code partially to new
+ gfc_arglist_matches_symbol.
+ * resolve.c (resolve_typebound_generic_call): Resolve actual arglist
+ before checking against formal and use new gfc_arglist_matches_symbol
+ for checking.
+ (resolve_compcall): Set type-spec of generated expression.
+
+2008-09-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37580
+ * expr.c (gfc_check_pointer_assign): Add checks for pointer
+ remapping.
+
+2008-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org
+
+ PR fortran/37498
+ * trans-io.c (gfc_build_io_library_fndecls): Bump pad size.
+ (build_dt): Set mask bit for IOPARM_dt_f2003.
+ * ioparm.def: Add IOPARM_dt_f2003.
+
+2008-09-22 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/37486
+ * gfortran.h (gfc_option_t): New members flag_align_commons and
+ warn_align_commons.
+ * lang.opt: New options falign-commons and Walign-commons.
+ * invoke.texi: Documentation for new options.
+ * options.c (gfc_init_options): Initialize new options.
+ (gfc_handle_options): Handle new options.
+ * trans-common.c (translate_common): Implement new options.
+ (gfc_trans_common): Set correct locus.
+
+2008-09-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37583
+ * decl.c (scalarize_intrinsic_call): Both subroutines and
+ functions can give a true for get_proc_mame's last argument so
+ remove the &&gfc_current_ns->proc_name->attr.function.
+ resolve.c (resolve_actual_arglist): Add check for recursion by
+ reference to procedure as actual argument.
+
+2008-09-21 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35846
+ * trans.h (gfc_conv_string_length): New argument `expr'.
+ * trans-expr.c (flatten_array_ctors_without_strlen): New method.
+ (gfc_conv_string_length): New argument `expr' that is used in a new
+ special case handling if cl->length is NULL.
+ (gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length.
+ * trans-array.c (gfc_conv_expr_descriptor): Ditto.
+ (gfc_trans_auto_array_allocation): Pass NULL as new expr.
+ (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
+ (gfc_trans_deferred_array): Ditto.
+ (gfc_trans_array_constructor): Save and restore old values of globals
+ used for bounds checking.
+ * trans-decl.c (gfc_trans_dummy_character): Ditto.
+ (gfc_trans_auto_character_variable): Ditto.
+
+2008-09-21 Daniel Kraft <d@domob.eu>
+
+ * decl.c (match_procedure_in_type): Changed misleading error message
+ for not yet implemented PROCEDURE(interface) syntax.
+
+2008-09-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35945
+ * resolve.c (resolve_fl_variable_derived): Remove derived type
+ comparison for use associated derived types. Host association
+ of a derived type will not arise if there is a local derived type
+ whose use name is the same.
+
+ PR fortran/36700
+ * match.c (gfc_match_call): Use the existing symbol even if
+ it is a function.
+
+2008-09-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37507
+ * trans.h (gfc_trans_runtime_error): New method.
+ (gfc_trans_runtime_error_vararg): New method.
+ (gfc_allocate_array_with_status): New argument `expr' for locus/varname.
+ (gfc_deallocate_array_with_status): Ditto.
+ * trans-array.h (gfc_array_deallocate): Ditto.
+ * trans.c (gfc_trans_runtime_error): New method.
+ (gfc_trans_runtime_error_vararg): New method, moved parts of the code
+ from gfc_trans_runtime_check here.
+ (gfc_trans_runtime_error_check): Moved code partly to new method.
+ (gfc_call_malloc): Fix tab-indentation.
+ (gfc_allocate_array_with_status): New argument `expr' and call
+ gfc_trans_runtime_error for error reporting to include locus.
+ (gfc_deallocate_with_status): Ditto.
+ * trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
+ * trans-array.c (gfc_array_allocate): Ditto.
+ (gfc_array_deallocate): New argument `expr', passed on.
+ (gfc_trans_dealloc_allocated): Pass NULL for expr.
+ * trans-openmp.c (gfc_omp_clause_default): Ditto.
+
+2008-09-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37274
+ PR fortran/36374
+ * module.c (check_for_ambiguous): New function to test loaded
+ symbol for ambiguity with fixup symbol.
+ (read_module): Call check_for_ambiguous.
+ (write_symtree): Do not write the symtree for symbols coming
+ from an interface body.
+
+ PR fortran/36374
+ * resolve.c (count_specific_procs ): New function to count the
+ number of specific procedures with the same name as the generic
+ and emit appropriate errors for and actual argument reference.
+ (resolve_assumed_size_actual): Add new argument no_formal_args.
+ Correct logic around passing generic procedures as arguments.
+ Call count_specific_procs from two locations.
+ (resolve_function): Evaluate and pass no_formal_args.
+ (resolve call): The same and clean up a bit by using csym more
+ widely.
+
+ PR fortran/36454
+ * symbol.c (gfc_add_access): Access can be updated if use
+ associated and not private.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/37536
+ * trans-stmt.c (gfc_trans_do): Optimize integer type non-simple
+ do loop initialization.
+
+2008-09-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Tobias Burnus <burnus@net.b.de>
+
+ PR fortran/35840
+ * io.c (match_vtag): Add tag name to error message.
+ (match_out_tag): Cleanup whitespace.
+ (gfc_resolve_dt): Resolve id and async tags.
+
+2008-09-13 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35770
+ * primary.c (gfc_match_varspec): Added missing type-spec clearing
+ after wrong implicit character typing.
+
+2008-09-12 Richard Guenther <rguenther@suse.de>
+
+ * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
+ build_fold_addr_expr to properly mark the argument
+ addressable.
+
+2008-09-11 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36214
+ * simplify.c (simplify_cmplx): Added linebreak to long line.
+ * target-memory.c (gfc_convert_boz): Fix indentation.
+ (gfc_interpret_float): Set mpfr precision to right value before
+ calling mpfr_init.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * expr.c (find_array_element): Reformat comment.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * expr.c (find_array_element): Reformat.
+
+2008-09-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37420
+ * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37429
+ * resolve.c (expression_rank): Added assertion to guard against
+ EXPR_COMPCALL expressions.
+ (resolve_compcall): Set expression's rank from the target procedure's.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37411
+ * trans-array.c (gfc_conv_array_parameter): Added assertion that the
+ symbol has an array spec.
+
+2008-09-08 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37199
+ * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
+ (gfc_map_intrinsic_function): Added checks against NULL bounds in
+ array specs.
+
+2008-09-08 Tobias Burnus <burnus@net.b.de>
+
+ PR fortran/37400
+ * symbol.c (gfc_set_default_type): Copy char len.
+
+2008-09-06 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/36153
+ * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
+ UBOUND if 2nd argument is KIND.
+
+2008-09-06 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/33229
+ * resolve.c (resolve_function): An intrinsic subroutine should not be
+ called as a function.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35837
+ * resolve.c (resolve_types): Restore gfc_current_ns on exit.
+ * symbol.c (gfc_save_all): Removed blank line.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36746
+ * primary.c (gfc_match_rvalue): Removed logic to handle implicit
+ typing to a derived-type if a component reference is found.
+ (gfc_match_varspec): Moved it here.
+
+2008-09-04 Richard Guenther <rguenther@suse.de>
+
+ * trans-array.c (gfc_conv_array_parameter): Use correct types
+ in building COND_EXPRs.
+ * trans-expr.c (gfc_conv_missing_dummy): Likewise.
+ * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
+
+2008-09-04 Daniel Kraft <d@domob.eu>
+
+ * PR fortran/37099
+ * expr.c (simplify_const_ref): Update expression's character length
+ when pulling out a substring reference.
+
+2008-09-04 Ian Lance Taylor <iant@google.com>
+
+ * symbol.c (generate_isocbinding_symbol): Compare
+ gfc_notification_std with ERROR rather than FAILURE.
+ * resolve.c (check_assumed_size_reference): Compare array type
+ with AR_FULL rather than DIMEN_ELEMENT.
+ (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
+ FL_VARIABLE.
+
+2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37228
+ * io.c (check_format): Allow specifying precision with g0 format.
+
+2008-09-02 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
+ (gfc_add_abstract): New method.
+ * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
+ (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
+ * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
+ only to allow for ABSTRACT types.
+ * parse.c (parse_interface): Use new gfc_add_abstract.
+ * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
+ type is constructed.
+ * resolve.c (resolve_typespec_used): New method.
+ (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
+ check that no component is of an ABSTRACT type.
+ (resolve_symbol): Check that no symbol is of an ABSTRACT type.
+ (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
+ * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
+ (gfc_add_abstract): New method.
+
+2008-09-01 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37193
+ * module.c (read_module): Initialize use_only flag on used symbols.
+
+2008-09-01 Daniel Kraft <d@domob.eu>
+
+ * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
+ and section to document the internals of type-bound procedures.
+ (gfc_expr): Document EXPR_COMPCALL.
+ * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
+ * dump-parse-tree.c (show_compcall): New method.
+ (show_expr): Call it for EXPR_COMPCALL.
+ (show_typebound), (show_f2k_derived): New methods.
+ (show_symbol): Call show_f2k_derived.
+ (show_code_node): Handle EXEC_COMPCALL.
+ * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
+ primary->value.compcall.
+
+2008-08-31 Richard Guenther <rguenther@suse.de>
+
+ * trans-expr.c (gfc_trans_string_copy): Use the correct types
+ to compute slen and dlen.
+
+2008-08-31 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
+ (struct gfc_tbp_generic): New type.
+ (struct gfc_typebound_proc): Removed `target' and added union with
+ `specific' and `generic' members; new members `overridden',
+ `subroutine', `function' and `is_generic'.
+ (struct gfc_expr): New members `derived' and `name' in compcall union
+ member and changed type of `tbp' to gfc_typebound_proc.
+ (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
+ * match.h (gfc_typebound_default_access): New global.
+ (gfc_match_generic): New method.
+ * decl.c (gfc_match_generic): New method.
+ (match_binding_attributes): New argument `generic' and handle it.
+ (match_procedure_in_type): Mark matched binding as non-generic.
+ * interface.c (gfc_compare_interfaces): Made public.
+ (gfc_compare_actual_formal): Ditto.
+ (check_interface_1), (compare_parameter): Use new public names.
+ (gfc_procedure_use), (gfc_search_interface): Ditto.
+ * match.c (match_typebound_call): Set base-symbol referenced.
+ * module.c (binding_generic): New global array.
+ (current_f2k_derived): New global.
+ (mio_typebound_proc): Handle IO of GENERIC bindings.
+ (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
+ * parse.c (decode_statement): Handle GENERIC statement.
+ (gfc_ascii_statement): Ditto.
+ (typebound_default_access), (set_typebound_default_access): Removed.
+ (gfc_typebound_default_access): New global.
+ (parse_derived_contains): New default-access implementation and handle
+ GENERIC statements encountered.
+ * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
+ structure and removed check for SUBROUTINE/FUNCTION from here.
+ * resolve.c (extract_compcall_passed_object): New method.
+ (update_compcall_arglist): Use it.
+ (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
+ (resolve_typebound_generic_call): New method.
+ (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
+ to GENERIC bindings.
+ (resolve_compcall): Ditto (check for target being FUNCTION).
+ (check_typebound_override): Handle GENERIC bindings.
+ (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
+ (resolve_typebound_procedure): Handle GENERIC bindings and set new
+ attributes subroutine, function and overridden in gfc_typebound_proc.
+ (resolve_fl_derived): Ensure extended type is resolved before the
+ extending one is.
+ * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
+ * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * parse.c (parse_interface): Silence uninitialized var warning.
+
+2008-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ * trans.h (struct lang_type): Add span.
+ (GFC_TYPE_ARRAY_SPAN): Define.
+ * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
+ copy TREE_STATIC from decl to span instead of setting it
+ unconditionally, set DECL_ARTIFICIAL, fix type of initializer
+ and set GFC_TYPE_ARRAY_SPAN on decl's type.
+ * trans-types.c (gfc_get_array_descr_info): If
+ GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
+
+ * trans-decl.c (check_constant_initializer,
+ gfc_emit_parameter_debug_info): New functions.
+ (gfc_generate_module_vars, gfc_generate_function_code): Emit
+ PARAMETERs and unreferenced variables with initializers into
+ debug info.
+
+ * gfortran.h (gfc_use_list): Add where field.
+ * module.c (use_locus): New static variable.
+ (gfc_match_use): Set it.
+ (gfc_use_module): Copy it to gfc_use_list's where field.
+ * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
+ (gfc_trans_use_stmts): Set backend locus before calling the debug
+ hook. Allow non-VAR_DECLs to be created even for non-external
+ module. Don't emit anything so far for renames from different
+ modules.
+
+ PR fortran/24790
+ * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
+ PARM_DECLs with pointer or reference type.
+
+ * trans-decl.c (gfc_build_qualified_array): Build non-flat
+ array type for debug info purposes.
+
+ PR fortran/29635
+ PR fortran/23057
+ * f95-lang.c (gfc_init_ts): New function.
+ (LANG_HOOKS_INIT_TS): Define.
+ * gfortran.h (gfc_use_rename): New type, moved from module.c.
+ (gfc_get_use_rename): New macro, moved from module.c.
+ (gfc_use_list): New type.
+ (gfc_get_use_list): New macro.
+ (gfc_namespace): Add use_stmts field.
+ (gfc_free_use_stmts): New prototype.
+ * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
+ * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
+ gfortran.h.
+ (gfc_use_module): Chain the USE statement info to
+ ns->use_stmts.
+ (gfc_free_use_stmts): New function.
+ * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
+ * trans.h (struct module_htab_entry): New type.
+ (gfc_find_module, gfc_module_add_decl): New functions.
+ * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
+ the module, adjust DECL_CONTEXTs of module procedures and
+ call gfc_module_add_decl for them.
+ * trans-common.c (build_common_decl): Set DECL_IGNORED_P
+ on the common variable.
+ (create_common): Set DECL_IGNORED_P for use associated vars.
+ * trans-decl.c: Include debug.h.
+ (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
+ modules.
+ (build_function_decl): Allow current_function_decl's context
+ to be a NAMESPACE_DECL.
+ (module_htab, cur_module): New variables.
+ (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
+ module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
+ functions.
+ (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
+ variables and types and call gfc_module_add_decl for them.
+ (gfc_generate_module_vars): Temporarily set cur_module.
+ (gfc_trans_use_stmts): New function.
+ (gfc_generate_function_code): Call it.
+ (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
+ * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
+ and TYPE_CONTEXT of module derived types.
+
+2008-08-28 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
+ (gfc_get_typebound_proc): New macro.
+ (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
+ (enum gfc_exec_op): New value `EXEC_COMPCALL'.
+ (gfc_find_typebound_proc): New argument.
+ (gfc_copy_ref), (gfc_match_varspec): Made public.
+ * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
+ * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
+ (gfc_copy_ref): Made public and use new name.
+ (simplify_const_ref): Use new name of gfc_copy_ref.
+ (simplify_parameter_variable): Ditto.
+ (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
+ * match.c (match_typebound_call): New method.
+ (gfc_match_call): Allow for CALL's to typebound procedures.
+ * module.c (binding_passing), (binding_overriding): New variables.
+ (expr_types): Add EXPR_COMPCALL.
+ (mio_expr): gcc_unreachable for EXPR_COMPCALL.
+ (mio_typebound_proc), (mio_typebound_symtree): New methods.
+ (mio_f2k_derived): Handle type-bound procedures.
+ * primary.c (gfc_match_varspec): Made public and parse trailing
+ references to type-bound procedures; new argument `sub_flag'.
+ (gfc_match_rvalue): New name and argument of gfc_match_varspec.
+ (match_variable): Ditto.
+ * resolve.c (update_arglist_pass): New method.
+ (update_compcall_arglist), (resolve_typebound_static): New methods.
+ (resolve_typebound_call), (resolve_compcall): New methods.
+ (gfc_resolve_expr): Handle EXPR_COMPCALL.
+ (resolve_code): Handle EXEC_COMPCALL.
+ (resolve_fl_derived): New argument to gfc_find_typebound_proc.
+ (resolve_typebound_procedure): Ditto and removed not-implemented error.
+ * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
+ * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
+ implement access-checking.
+ * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
+ on EXPR_COMPCALL.
+ * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
+ * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
+ intialization of ref->type.
+
+2008-08-28 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/37253
+ * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
+ saving attr.procedure and attr.proc_ptr to the module file.
+
+2008-08-25 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (gfc_find_component): Add new arguments.
+ * parse.c (parse_derived_contains): Check if the derived-type containing
+ the CONTAINS section is SEQUENCE/BIND(C).
+ * resolve.c (resolve_typebound_procedure): Check for name collision with
+ components.
+ (resolve_fl_derived): Check for name collision with inherited
+ type-bound procedures.
+ * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
+ (gfc_add_component): Adapt for new arguments.
+ * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
+
+2008-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37201
+ * decl.c (verify_bind_c_sym): Reject array/string returning
+ functions.
+
+2008-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37201
+ * trans-expr.c (gfc_conv_function_call): Add string_length
+ for character-returning bind(C) functions.
+
+2008-08-24 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (gfc_typebound_proc): New struct.
+ (gfc_symtree): New member typebound.
+ (gfc_find_typebound_proc): Prototype for new method.
+ (gfc_get_derived_super_type): Prototype for new method.
+ * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS.
+ * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type
+ CONTAINS section.
+ (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS.
+ (gfc_match_private): Ditto.
+ (match_binding_attributes), (match_procedure_in_type): New methods.
+ (gfc_match_final_decl): Rewrote to make use of new
+ COMP_DERIVED_CONTAINS parser state.
+ * parse.c (typebound_default_access): New global helper variable.
+ (set_typebound_default_access): New callback method.
+ (parse_derived_contains): New method.
+ (parse_derived): Extracted handling of CONTAINS to new parser state
+ and parse_derived_contains.
+ * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New.
+ (check_typebound_override), (resolve_typebound_procedure): New methods.
+ (resolve_typebound_procedures): New method.
+ (resolve_fl_derived): Call new resolving method for typebound procs.
+ * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL.
+ (gfc_find_typebound_proc): New method.
+ (gfc_get_derived_super_type): New method.
+
+2008-08-23 Janus Weil <janus@gcc.gnu.org>
+
+ * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
+ fields "pointer", "allocatable", "dimension", "access".
+ Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
+ * interface.c (gfc_compare_derived_types): Ditto.
+ * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
+ * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
+ gfc_conv_structure): Ditto.
+ * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
+ gfc_get_component_attr,verify_bind_c_derived_type,
+ generate_isocbinding_symbol): Ditto.
+ * decl.c (build_struct): Ditto.
+ * dump-parse-tree.c (show_components): Ditto.
+ * trans-stmt.c (gfc_trans_deallocate): Ditto.
+ * expr.c (gfc_check_assign,gfc_check_pointer_assign,
+ gfc_default_initializer): Ditto.
+ * module.c (mio_component): Ditto.
+ * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
+ * resolve.c (has_default_initializer,resolve_structure_cons,
+ gfc_iso_c_func_interface,find_array_spec,resolve_ref,
+ resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
+ resolve_equivalence_derived): Ditto.
+ * trans-io.c (transfer_expr): Ditto.
+ * parse.c (parse_derived): Ditto.
+ * dependency.c (gfc_check_dependency): Ditto.
+ * primary.c (gfc_variable_attr): Ditto.
+
+2008-08-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37076
+ * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
+
+2008-08-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37025
+ * target-memory.c (gfc_interpret_character): Support
+ kind=4 characters.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/30239
+ * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
+ type is re-declared but neither -pedantic nor -std=f* is given and so
+ this is no error.
+ * invoke.texi (-Wsurprising): Document this new behaviour.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (in_prefix): Removed from this header.
+ * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
+ * decl.c (in_prefix): Removed from here.
+ (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
+ * symbol.c (gfc_check_symbol_typed): Ditto.
+ * expr.c (check_typed_ns): New helper variable.
+ (expr_check_typed_help): New helper method.
+ (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
+ work, fixing a minor problem.
+ * match.c (gfc_matching_prefix): New variable.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/32095
+ PR fortran/34228
+ * gfortran.h (in_prefix): New global.
+ (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
+ * array.c (match_array_element_spec): Check that bounds-expressions
+ don't have symbols not-yet-typed in them.
+ * decl.c (var_element): Check that variable used is already typed.
+ (char_len_param_value): Check that expression does not contain
+ not-yet-typed symbols.
+ (in_prefix): New global.
+ (gfc_match_prefix): Record using `in_prefix' if we're at the moment
+ parsing a prefix or not.
+ * expr.c (gfc_expr_check_typed): New method.
+ * parse.c (verify_st_order): New argument to disable error output.
+ (check_function_result_typed): New helper method.
+ (parse_spec): Check that the function-result declaration, if given in
+ a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
+ parsed.
+ * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
+ a type associated to it, otherwise use the IMPLICIT rules or signal
+ an error.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * f95-lang.c: Update all calls to pedwarn.
+
+2008-08-18 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/37032
+ * gfortran.texi: Document decision on include file handling in
+ preprocessed files.
+
+2008-08-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36825
+ * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
+
+2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35863
+ * io.c (gfc_match_open): Enable UTF-8 in checks.
+ * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
+
+2008-08-14 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36705
+ * symbol.c (check_conflict): Move conflict checks for (procedure,save)
+ and (procedure,intent) to resolve_fl_procedure.
+ * resolve.c (resolve_fl_procedure): Ditto.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 36901
+ * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
+ 'pedwarn0'.
+
+2008-08-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37011
+ * symbol.c (gfc_add_extension): New function.
+ * decl.c (gfc_get_type_attr_spec): Call it.
+ (gfc_match_derived_decl): Set symbol extension attribute from
+ attr.extension.
+ * gfortran.h : Add prototype for gfc_add_extension.
+
+2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28875
+ * options.c (set_Wall): Replace set_Wunused by warn_unused.
+
+2008-08-08 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (gfc_finalizer): Replaced member `procedure' by two
+ new members `proc_sym' and `proc_tree' to store the symtree after
+ resolution.
+ (gfc_find_sym_in_symtree): Made public.
+ * decl.c (gfc_match_final_decl): Adapted for new member name.
+ * interface.c (gfc_find_sym_in_symtree): Made public.
+ (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly.
+ * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
+ New methods for module-file IO of f2k_derived.
+ (mio_symbol): Do IO of f2k_derived namespace.
+ * resolve.c (gfc_resolve_finalizers): Adapted for new member name and
+ finding the symtree for the symbol here.
+ * symbol.c (gfc_free_finalizer): Adapted for new members.
+
+2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as
+ Invariant Section.
+ * gfortran.texi: Likewise.
+ * intrinsic.texi: Do not list GPL as Invariant Section.
+ * invoke.texi: Likewise. Update copyright years.
+
+2008-07-29 Paul Thomas <pault@gcc.gnu.org>
+
+ * trans-expr.c (conv_parent_component_references): New function
+ to build missing parent references.
+ (gfc_conv_variable): Call it
+ * symbol.c (gfc_add_component): Check that component name in a
+ derived type extension does not appear in parent.
+ (gfc_find_component): For a derived type extension, check if
+ the component appears in the parent derived type by calling
+ self. Separate errors for private components and private types.
+ * decl.c (match_data_constant): Add extra arg to call to
+ gfc_match_structure_constructor.
+ (check_extended_derived_type): New function to check that a
+ parent derived type exists and that it is OK for exension.
+ (gfc_get_type_attr_spec): Add extra argument 'name' and return
+ it if extends is specified.
+ (gfc_match_derived_decl): Match derived type extension and
+ build a first component of the parent derived type if OK. Add
+ the f2k namespace if not present.
+ * gfortran.h : Add the extension attribute.
+ * module.c : Handle attribute 'extension'.
+ * match.h : Modify prototypes for gfc_get_type_attr_spec and
+ gfc_match_structure_constructor.
+ * primary.c (build_actual_constructor): New function extracted
+ from gfc_match_structure_constructor and modified to call self
+ iteratively to build derived type extensions, when f2k named
+ components are used.
+ (gfc_match_structure_constructor): Do not throw error for too
+ many components if a parent type is being handled. Use
+ gfc_find_component to generate errors for non-existent or
+ private components. Iteratively call self for derived type
+ extensions so that parent constructor is built. If extension
+ and components left over, throw error.
+ (gfc_match_rvalue): Add extra arg to call to
+ gfc_match_structure_constructor.
+
+ * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
+ are the same symbol, aliassing does not matter.
+
+2008-07-29 Jan Hubicka <jh@suse.cz>
+
+ * options.c (gfc_post_options): Do not set flag_no_inline.
+
+2008-07-29 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36403
+ * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method
+ to append a string-length even if the string argument is missing, e.g.
+ for EOSHIFT.
+ (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK
+ and RESHAPE.
+
+2008-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gfortran.h (try): Remove macro. Replace try with gfc_try
+ throughout.
+ * array.c: Likewise.
+ * check.c: Likewise.
+ * cpp.c: Likewise.
+ * cpp.h: Likewise.
+ * data.c: Likewise.
+ * data.h: Likewise.
+ * decl.c: Likewise.
+ * error.c: Likewise.
+ * expr.c: Likewise.
+ * interface.c: Likewise.
+ * intrinsic.c: Likewise.
+ * intrinsic.h: Likewise.
+ * io.c: Likewise.
+ * match.h: Likewise.
+ * parse.c: Likewise.
+ * parse.h: Likewise.
+ * resolve.c: Likewise.
+ * scanner.c: Likewise.
+ * simplify.c: Likewise.
+ * symbol.c: Likewise.
+ * trans-openmp.c: Likewise.
+ * trans-types.c: Likewise.
+
+2008-07-28 Tobias Burnus <burnus@net-b.de>
+
+ * Make-lang.in: Remove -Wno-* from fortran-warn.
+
+2008-07-28 Richard Guenther <rguenther@suse.de>
+
+ Merge from gimple-tuples-branch.
+
+ 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
+
+ * trans-expr.c: Include gimple.h instead of tree-gimple.h.
+ * trans-array.c: Same.
+ * trans-openmp.c: Same.
+ * trans-stmt.c: Same.
+ * f95-lang.c: Same.
+ * trans-io.c: Same.
+ * trans-decl.c: Same.
+ * trans-intrinsic.c: Same.
+ * trans.c: Same. Include tree-iterator.h.
+ * Make-lang.in (trans.o): Depend on tree-iterator.h
+
+ 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
+
+ * trans-array.h (gfc_conv_descriptor_data_set_internal):
+ Rename to gfc_conv_descriptor_data_set.
+ (gfc_conv_descriptor_data_set_tuples): Remove.
+ * trans-array.c (gfc_conv_descriptor_data_get): Rename
+ from gfc_conv_descriptor_data_set_internal.
+ Remove last argument to gfc_add_modify.
+ (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
+ gfc_add_modify.
+ (gfc_trans_create_temp_array): Same.
+ (gfc_conv_array_transpose): Same.
+ (gfc_grow_array): Same.
+ (gfc_put_offset_into_var): Same.
+ (gfc_trans_array_ctor_element): Same.
+ (gfc_trans_array_constructor_subarray): Same.
+ (gfc_trans_array_constructor_value): Same.
+ (gfc_trans_scalarized_loop_end): Same.
+ (gfc_array_init_size): Same.
+ (gfc_array_allocate): Same.
+ (gfc_trans_array_bounds): Same.
+ (gfc_trans_auto_array_allocation): Same.
+ (gfc_trans_g77_array): Same.
+ (gfc_trans_dummy_array_bias): Same.
+ (gfc_conv_expr_descriptor): Same.
+ (structure_alloc_comps): Same.
+ * trans-expr.c: Same.
+ * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
+ Rename gfc_conv_descriptor_data_set_tuples to
+ gfc_conv_descriptor_data_set.
+ (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
+ build2_v.
+ (gfc_omp_clause_assign_op): Same.
+ (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
+ gfc_add_modify.
+ (gfc_trans_omp_atomic): Same.
+ (gfc_trans_omp_do): Same. Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
+ Rename gfc_add_modify_stmt to gfc_add_modify.
+ * trans-stmt.c: Rename gfc_add_modify_expr to
+ gfc_add_modify.
+ * trans.c: Rename gfc_add_modify_expr to
+ gfc_add_modify.
+ (gfc_add_modify): Remove last argument.
+ Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
+ * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
+ Add prototype for gfc_add_modify.
+ * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
+ * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
+ * trans-io.c: Same.
+ * trans-intrinsic.c: Same.
+
+ 2008-02-25 Aldy Hernandez <aldyh@redhat.com>
+
+ * Make-lang.in (fortran-warn): Add -Wno-format.
+
+ 2008-02-19 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
+
+ * fortran/Make-lang.in (fortran-warn): Remove.
+
+ 2007-11-22 Aldy Hernandez <aldyh@redhat.com>
+
+ * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
+ memset.
+
+ 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * Make-lang.in (fortran-warn): Set to -Wno-format.
+ * trans.c (gfc_trans_code): Update comment to say GENERIC.
+ Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
+
+2008-07-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36132
+ PR fortran/29952
+ PR fortran/36909
+ * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
+ run-time error.
+ * trans.h (gfc_trans_runtime_check): Update declaration.
+ * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
+ gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
+ Updated gfc_trans_runtime_check calls.
+ (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
+ fix packing/unpacking for nonpresent optional actuals to optional
+ formals.
+ * trans-array.h (gfc_conv_array_parameter): Update declaration.
+ * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
+ gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
+ (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
+ * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
+ calls.
+ * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
+ (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
+ gfc_conv_array_parameter.
+ * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
+ * trans-decl.c (gfc_build_builtin_function_decls): Add
+ gfor_fndecl_runtime_warning_at.
+ * lang.opt: New option fcheck-array-temporaries.
+ * gfortran.h (gfc_options): New flag_check_array_temporaries.
+ * options.c (gfc_init_options, gfc_handle_option): Handle flag.
+ * invoke.texi: New option fcheck-array-temporaries.
+
+2008-07-24 Jan Hubicka <jh@suse.cz>
+
+ * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
+
+2008-07-24 Daniel Kraft <d@domob.eu>
+
+ PR fortran/33141
+ * lang.opt (Wnonstd-intrinsics): Removed option.
+ (Wintrinsics-std), (Wintrinsic-shadow): New options.
+ * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics
+ from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
+ (Error and Warning Options): Documented the new options and removed
+ the documentation for -Wnonstd-intrinsics.
+ * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and
+ warn_intrinsics_std, removed warn_nonstd_intrinsics.
+ (gfc_is_intrinsic): Renamed from gfc_intrinsic_name.
+ (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New.
+ * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by
+ the new name gfc_is_intrinsic.
+ (warn_intrinsic_shadow): New helper method.
+ (gfc_match_function_decl), (gfc_match_subroutine): Call the new method
+ warn_intrinsic_shadow to check the just-parsed procedure.
+ * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether
+ the function called is really an intrinsic in the selected standard.
+ * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and
+ extended to take into account the selected standard settings when trying
+ to find out whether a symbol is an intrinsic or not.
+ (gfc_check_intrinsic_standard): Made public and extended.
+ (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed
+ the calls to check_intrinsic_standard, this check now happens inside
+ gfc_is_intrinsic.
+ (gfc_warn_intrinsic_shadow): New method defined.
+ * options.c (gfc_init_options): Initialize new warning flags to false
+ and removed intialization of Wnonstd-intrinsics flag.
+ (gfc_post_options): Removed logic for Wnonstd-intrinsics flag.
+ (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag.
+ (gfc_handle_option): Handle the new flags and removed handling of the
+ old Wnonstd-intrinsics flag.
+ * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by
+ the new name gfc_is_intrinsic.
+ * resolve.c (resolve_actual_arglist): Ditto.
+ (resolve_generic_f), (resolve_unknown_f): Ditto.
+ (is_external_proc): Ditto.
+ (resolve_generic_s), (resolve_unknown_s): Ditto.
+ (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that
+ they are really available in the selected standard setting.
+
+2008-07-24 Daniel Kraft <d@domob.eu>
+
+ * match.c (gfc_match): Add assertion to catch wrong calls trying to
+ match upper-case characters.
+
+2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/29952
+ * gfortran.h: Add "warn_array_temp" to gfc_option_t.
+ * lang.opt: Add -Warray-temporaries.
+ * invoke.texi: Document -Warray-temporaries
+ * trans-array.h (gfc_trans_create_temp_array): Add argument of
+ type *locus.
+ (gfc_conv_loop_setup): Likewise.
+ * trans-array.c (gfc_trans_create_temp_array): If
+ -Warray-temporaries is given and locus is present, warn about
+ creation of array temporaries.
+ (gfc_trans_array_constructor_subarray): Add locus to call
+ of gfc_conv_loop_setup.
+ (gfc_trans_array_constructor): Add where argument. Pass where
+ argument to call of gfc_trans_create_temp_array.
+ (gfc_add_loop_ss_code): Add where argument. Pass where argument
+ to recursive call of gfc_add_loop_ss_code and to call of
+ gfc_trans_array_constructor.
+ (gfc_conv_loop_setup): Add where argument. Pass where argument
+ to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
+ (gfc_conv_expr_descriptor): Pass location to call of
+ gfc_conv_loop_setup.
+ (gfc_conv_array_parameter): If -Warray-temporaries is given,
+ warn about creation of temporary arrays.
+ * trans-expr.c (gfc_conv_subref_array_arg): Add where argument
+ to call to gfc_conv_loop_setup.
+ (gfc_conv_function_call): Add where argument to call to
+ gfc_trans_creat_temp_array.
+ (gfc_trans_subarray_assign): Likewise.
+ (gfc_trans_assignment_1): Add where argument to call to
+ gfc_conv_loop_setup.
+ * trans-stmt.c (gfc_conv_elemental_dependencies): Add where
+ argument to call to gfc_trans_create_temp_array.
+ (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup.
+ (generate_loop_for_temp_to_lhs): Likewise.
+ (generate_loop_for_rhs_to_temp): Likewise.
+ (compute_inner_temp_size): Likewise.
+ (gfc_trans-pointer_assign_need_temp): Likewise.
+ (gfc_evaluate_where_mask): Likewise.
+ (gfc_trans_where_assign): Likewise.
+ (gfc_trans_where_3): Likewise.
+ * trans-io.c (transfer_srray_component): Add where argument
+ to function. Add where argument to call to gfc_conv_loop_setup.
+ (transfer_expr): Add where argument to call to
+ transfer_array_component.
+ (gfc_trans_transfer): Add where expression to call to
+ gfc_conv_loop_setup.
+ * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add
+ where argument to call to gfc_conv_loop_setup.
+ (gfc_conv_intrinsic_count): Likewise.
+ (gfc_conv_intrinsic_arith): Likewise.
+ (gfc_conv_intrinsic_dot_product): Likewise.
+ (gfc_conv_intrinsic_minmaxloc): Likewise.
+ (gfc_conv_intrinsic_minmaxval): Likewise.
+ (gfc_conv_intrinsic_array_transfer): Warn about
+ creation of temporary array.
+ Add where argument to call to gfc_trans_create_temp_array.
+ * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp.
+ (gfc_handle_option): Set gfc_option.warn_array_temp.
+
+2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35058
+ * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
+
+2008-07-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/29835
+ * io.c (error_element), (format_locus): New static globals.
+ (unexpected_element): Spelled out this message fully.
+ (next_char): Keep track of locus when not MODE_STRING.
+ (next_char_not_space): Remember last parsed element in error_element.
+ (format_lex): Fix two indentation errors.
+ (check_format): Use format_locus and possibly error_element for a
+ slightly better error message on invalid format.
+ (check_format_string): Set format_locus to start of the string
+ expression used as format.
+
+2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * expr.c (gfc_check_pointer_assign): Fix typo in string.
+ * io.c (check_format): Fix typo in string. Fix comment typos.
+ * parse.c (gfc_global_used): Likewise.
+ * resolve.c (resolve_allocate_expr): Likewise.
+ * symbol.c (gfc_set_default_type): Likewise.
+ * arith.c: Fix typos in comments.
+ * array.c: Likewise.
+ * data.c: Likewise.
+ * decl.c: Likewise.
+ * dependency.c: Likewise.
+ * f95-lang.c: Likewise.
+ * gfortran.h: Likewise.
+ * matchexp.c: Likewise.
+ * module.c: Likewise.
+ * primary.c: Likewise.
+ * scanner.c: Likewise.
+ * trans-array.c: Likewise.
+ * trans-common.c: Likewise.
+ * trans-decl.c: Likewise.
+ * trans-expr.c: Likewise.
+ * trans-intrinsic.c: Likewise.
+ * trans-types.c: Likewise.
+ * trans.c: Likewise.
+ * trans.h: Likewise.
+
+2008-07-19 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36795
+ * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
+ which caused the generation of wrong code.
+
+2008-07-19 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36342
+ * scanner.c (load_file): Add argument to destinguish between
+ true filename and displayed filename.
+ (include_line,gfc_new_file): Adapt accordingly.
+
+2008-07-19 Tobias Burnus <burnus@net-b.de>
+
+ * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
+ checks for cshift's shift and eoshift's shift and boundary args.
+ (gfc_check_unpack): Add rank and shape tests for unpack.
+
+2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gfortran.h (new): Remove macro.
+ * array.c (gfc_append_constructor, match_array_list,
+ gfc_match_array_constructor): Likewise.
+ * bbt.c (insert, gfc_insert_bbt): Likewise.
+ * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
+ get_proc_name): Likewise.
+ * expr.c (gfc_copy_actual_arglist): Likewise.
+ * interface.c (compare_actual_formal, check_new_interface,
+ gfc_add_interface): Likewise.
+ * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
+ Likewise.
+ * io.c (match_io_iterator, match_io_list): Likewise.
+ * match.c (match_forall_header): Likewise.
+ * matchexp.c (build_node): Likewise.
+ * module.c (gfc_match_use): Likewise.
+ * scanner.c (load_file): Likewise.
+ * st.c (gfc_append_code): Likewise.
+ * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
+ gfc_commit_symbols): Likewise.
+ * trans-common.c (build_field): Likewise.
+ * trans-decl.c (gfc_finish_var_decl): Likewise.
+ * trans-expr.c (gfc_free_interface_mapping,
+ gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
+ gfc_finish_interface_mapping,
+ gfc_apply_interface_mapping_to_expr): Likewise.
+ * trans.h (gfc_interface_sym_mapping): Likewise.
+
+2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gfortran.h (operator): Remove macro.
+ (gfc_namespace, gfc_expr): Avoid C++ keywords.
+ * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
+ Likewise.
+ * decl.c (access_attr_decl): Likewise.
+ * dependency.c (gfc_dep_compare_expr): Likewise.
+ * dump-parse-tree.c (show_expr, show_uop, show_namespace):
+ Likewise.
+ * expr.c (gfc_copy_expr, gfc_type_convert_binary,
+ simplify_intrinsic_op, check_intrinsic_op): Likewise.
+ * interface.c (fold_unary, gfc_match_generic_spec,
+ gfc_match_interface, gfc_match_end_interface,
+ check_operator_interface, check_uop_interfaces,
+ gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
+ gfc_add_interface, gfc_current_interface_head,
+ gfc_set_current_interface_head): Likewise.
+ * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
+ Likewise.
+ * matchexp.c (gfc_get_parentheses, build_node): Likewise.
+ * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
+ number_use_names, mio_expr, load_operator_interfaces, read_module,
+ write_operator, write_module): Likewise.
+ * openmp.c (resolve_omp_atomic): Likewise.
+ * resolve.c (resolve_operator, gfc_resolve_character_operator,
+ gfc_resolve_uops): Likewise.
+ * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
+ * trans-expr.c (gfc_conv_expr_op): Likewise.
+ * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
+
+2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gfortran.h (protected): Remove macro.
+ * dump-parse-tree.c (show_attr): Avoid C++ keywords.
+ * expr.c (gfc_check_pointer_assign): Likewise.
+ * interface.c (compare_parameter_protected): Likewise.
+ * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
+ add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
+ add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
+ add_sym_5s): Likewise.
+ * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
+ Likewise.
+ * module.c (mio_symbol_attribute): Likewise.
+ * primary.c (match_variable): Likewise.
+ * resolve.c (resolve_equivalence): Likewise.
+ * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
+ Likewise.
+ * trans-types.c (gfc_get_array_type_bounds): Likewise.
+
+2008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
+ * gfortran.h (try, protected, operator, new): Likewise.
+
+2008-07-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36825
+ PR fortran/36824
+ * array.c (gfc_match_array_spec): Fix array-rank check.
+ * resolve.c (resolve_fl_derived): Fix constentness check
+ for the array dimensions.
+
+2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Make-lang.in (gfortranspec.o): Fix dependencies.
+
+2008-07-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36725
+ * io.c: Add error check for g0 edit descriptor followed by '.'.
+
+2008-07-12 Daniel Kraft <d@domob.eu>
+
+ * resolve.c (resolve_fl_derived): Allow pointer components to empty
+ derived types fixing a missing part of PR fortran/33221.
+
+2008-07-10 Daniel Kraft <d@domob.eu>
+
+ * gfc-internals.texi (section gfc_expr): Created documentation about
+ the gfc_expr internal data structure.
+
+2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36670
+ * iresolve.c (gfc_resolve_product): Set shape of return
+ value from array.
+ (gfc_resolve_sum): Likewise.
+
+2008-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36726
+ * f95-lang.c (poplevel): Don't ever add subblocks to
+ global_binding_level.
+
+2008-07-02 Janus Weil <janus@gcc.gnu.org>
+ Tobias Burnus <burnus@net-b.de>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/32580
+ * gfortran.h (struct gfc_symbol): New member "proc_pointer".
+ * check.c (gfc_check_associated,gfc_check_null): Implement
+ procedure pointers.
+ * decl.c (match_procedure_decl): Ditto.
+ * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
+ * interface.c (compare_actual_formal): Ditto.
+ * match.h: Ditto.
+ * match.c (gfc_match_pointer_assignment): Ditto.
+ * parse.c (parse_interface): Ditto.
+ * primary.c (gfc_match_rvalue,match_variable): Ditto.
+ * resolve.c (resolve_fl_procedure): Ditto.
+ * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
+ gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
+ * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
+ create_function_arglist): Ditto.
+ * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
+ gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
+
+2008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36590
+ PR fortran/36681
+ * iresolve.c (resolve_mask_arg): Don't convert mask to
+ kind=1 logical if it is of that type already.
+
+2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36341
+ * iresolve.c (gfc_resolve_matmul): Copy shapes
+ from arguments.
+
+2008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * invoke.texi: Add documentation for runtime behavior of
+ -fno-range-check.
+
+2008-06-28 Daniel Kraft <d@domob.eu>
+
+ * gfc-internals.texi (section gfc_code): Extended documentation about
+ gfc_code in the internal datastructures chapter including details about
+ how IF, DO and SELECT blocks look like and an example for how the
+ block-chaining works.
+
+2008-06-25 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36526
+ * interface.c (check_intents): Correct error where the actual
+ arg was checked for a pointer argument, rather than the formal.
+
+2008-06-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34371
+ * expr.c (gfc_check_assign): Change message and locus for
+ error when conform == 0.
+
+2008-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/36597
+ * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
+
+2008-06-20 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+ Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34908
+ PR fortran/36276
+ * scanner.c (preprocessor_line): do not call gfc_free for
+ current_file->filename if it differs from filename.
+
+2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * arith.c (hollerith2representation): Fix for -Wc++-compat.
+ * array.c (gfc_get_constructor): Likewise.
+ * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
+ create_enum_history, gfc_match_final_decl): Likewise.
+ * error.c (error_char): Likewise.
+ * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
+ * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
+ gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
+ gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
+ gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
+ gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
+ gfc_get_alloc, gfc_get_wide_string): Likewise.
+ * interface.c (count_types_test): Likewise.
+ * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
+ Likewise.
+ * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
+ gfc_match_inquire, gfc_match_wait): Likewise.
+ * match.c (gfc_match, match_forall_iterator): Likewise.
+ * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
+ add_true_name, parse_string, write_atom, quote_string,
+ mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
+ * options.c (gfc_post_options): Likewise.
+ * primary.c (match_integer_constant, match_hollerith_constant,
+ match_boz_constant, match_real_constant,
+ gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
+ * scanner.c (gfc_widechar_to_char, add_path_to_list,
+ add_file_change, load_line, get_file, preprocessor_line,
+ load_file, unescape_filename, gfc_read_orig_filename): Likewise.
+ * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
+ gfc_simplify_ishftc): Likewise.
+ * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
+ gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
+ Likewise.
+ * target-memory.c (gfc_target_interpret_expr): Likewise.
+ * trans-const.c (gfc_build_wide_string_const): Likewise.
+ * trans-expr.c (gfc_add_interface_mapping): Likewise.
+ * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
+ gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
+ gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
+ gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
+ gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
+ gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
+ gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
+ * trans.c (gfc_get_backend_locus): Likewise.
+ * trans.h (gfc_get_ss): Likewise.
+
+2008-06-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36517, fortran/36492
+ * array.c (gfc_resolve_character_array_constructor): Call
+ gfc_set_constant_character_len with changed length-chec argument.
+ * decl.c (gfc_set_constant_character_len): Changed array argument to
+ be a generic length-checking argument that can be used for correct
+ checking with typespec and in special cases where the should-be length
+ is different from the target length.
+ (build_struct): Call gfc_set_constant_character_len with changed length
+ checking argument and introduced additional checks for exceptional
+ conditions on invalid code.
+ (add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len
+ with changed argument.
+ * match.h (gfc_set_constant_character_len): Changed third argument to
+ int for the should-be length rather than bool.
+
+2008-06-17 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36112
+ * array.c (gfc_resolve_character_array_constructor): Check that all
+ elements with constant character length have the same one rather than
+ fixing it if no typespec is given, emit an error if they don't. Changed
+ return type to "try" and return FAILURE for the case above.
+ (gfc_resolve_array_constructor): Removed unneeded call to
+ gfc_resolve_character_array_constructor in this function.
+ * gfortran.h (gfc_resolve_character_array_constructor): Returns try.
+ * trans-array.c (get_array_ctor_strlen): Return length of first element
+ rather than last element.
+ * resolve.c (gfc_resolve_expr): Handle FAILURE return from
+ gfc_resolve_character_array_constructor.
+
+2008-06-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34396
+ * resolve.c (add_dt_to_dt_list): New function.
+ (resolve_fl_derived): Call new function for pointer components
+ and when derived type resolved.
+
+2008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36515
+ * trans-decl.c (gfc_generate_function_code): Add range_check to options
+ array.
+
+2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * gfc-internals.texi: Expand TABs, drop indentation outside examples.
+ * gfortran.texi: Likewise.
+ * intrinsic.texi: Likewise.
+ * invoke.texi: Likewise.
+
+2008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35863
+ * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
+ transfer_character_wide which includes passing in the character kind to
+ support wide character IO. (transfer_expr): If the kind == 4, create the
+ argument and build the call.
+ * gfortran.texi: Fix typo.
+
+2008-06-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36476
+ * decl.c (do_parm): Handle init expression for len=*.
+
+2008-06-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36462
+ * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
+ Fix passing of the BACK= argument.
+
+2008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * cpp.c: Add copyright notice.
+ * cpp.h: Add copyright notice.
+
+2008-06-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36459
+ * decl.c (match_procedure_decl): Correctly recognize if the interface
+ is an intrinsic procedure.
+
+2008-06-08 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35830
+ * resolve.c (resolve_symbol): Copy more attributes for
+ PROCEDUREs with interfaces.
+
+2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36420
+ PR fortran/36422
+ * io.c (check_format): Add new error message for zero width.
+ Use new error message for FMT_A and with READ, FMT_G. Allow
+ FMT_G with WRITE except when -std=F95 and -std=F2003.
+
+2008-06-07 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36437
+ * intrinsic.c (add_functions): Implement c_sizeof.
+ * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
+ create unneeded variable in the scalar case.
+ * intrinsic.texi: Add C_SIZEOF documentation.
+
+2008-06-06 Tobias Burnus <burnus@net-b.de>
+
+ * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
+
+2008-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
+ * parse.c (next_free): Allow tab after !$omp.
+ (decode_omp_directive): Handle !$omp task, !$omp taskwait
+ and !$omp end task.
+ (case_executable): Add ST_OMP_TASKWAIT.
+ (case_exec_markers): Add ST_OMP_TASK.
+ (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
+ ST_OMP_TASKWAIT.
+ (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
+ * gfortran.h (gfc_find_sym_in_expr): New prototype.
+ (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
+ (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
+ OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
+ untied fields.
+ (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
+ * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
+ LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
+ LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
+ * trans.h (gfc_omp_clause_default_ctor): Add another argument.
+ (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
+ gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
+ * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
+ BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
+ BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
+ BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
+ BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
+ BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
+ (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
+ than boolean_type_node.
+ * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
+ EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
+ untied and collapse clauses.
+ (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
+ * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
+ EXEC_OMP_TASKWAIT.
+ * st.c (gfc_free_statement): Likewise.
+ * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
+ (find_sym_in_expr): Rename to...
+ (gfc_find_sym_in_expr): ... this. No longer static.
+ (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
+ * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
+ prototypes.
+ * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
+ firstprivate, lastprivate, reduction, copyprivate and copyin
+ clauses.
+ (omp_current_do_code): Made static.
+ (omp_current_do_collapse): New variable.
+ (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
+ clear omp_current_do_code and omp_current_do_collapse on return.
+ (gfc_resolve_do_iterator): Handle collapsed do loops.
+ (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
+ (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
+ (gfc_match_omp_clauses): Handle default (firstprivate),
+ schedule (auto), untied and collapse (n) clauses.
+ (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
+ (OMP_TASK_CLAUSES): Define.
+ (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
+ * trans-openmp.c (gfc_omp_private_outer_ref): New function.
+ (gfc_omp_clause_default_ctor): Add outer argument. For allocatable
+ arrays allocate them with the bounds of the outer var if outer
+ var is allocated.
+ (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
+ gfc_omp_clause_dtor): New functions.
+ (gfc_trans_omp_array_reduction): If decl is allocatable array,
+ allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
+ and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
+ (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
+ for assumed-size arrays.
+ (gfc_trans_omp_do): Add par_clauses argument. If dovar is
+ present in lastprivate clause and do loop isn't simple,
+ set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
+ parallel's lastprivate clause, change it to shared and add
+ lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
+ (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
+ (gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
+ OMP_FOR from OMP_PARALLEL.
+ (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
+ OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
+ (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
+ (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
+ EXEC_OMP_TASKWAIT.
+
+2008-06-04 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36275
+ * resolve.c (resolve_symbol): Correctly copy the interface for a
+ PROCEDURE declaration.
+
+2008-06-02 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36361
+ * symbol.c (gfc_add_allocatable,gfc_add_dimension,
+ gfc_add_explicit_interface): Added checks.
+ * decl.c (attr_decl1): Added missing "var_locus".
+ * parse.c (parse_interface): Checking for errors.
+
+2008-06-02 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h: New statement-type ST_FINAL for FINAL declarations.
+ (struct gfc_symbol): New member f2k_derived.
+ (struct gfc_namespace): New member finalizers, for use in the above
+ mentioned f2k_derived namespace.
+ (struct gfc_finalizer): New type defined for finalizers linked list.
+ * match.h (gfc_match_final_decl): New function header.
+ * decl.c (gfc_match_derived_decl): Create f2k_derived namespace on
+ constructed symbol node.
+ (gfc_match_final_decl): New function to match a FINAL declaration line.
+ * parse.c (decode_statement): match-call for keyword FINAL.
+ (parse_derived): Parse CONTAINS section and accept FINAL statements.
+ * resolve.c (gfc_resolve_finalizers): New function to resolve (that is
+ in this case, check) a list of finalizer procedures.
+ (resolve_fl_derived): Call gfc_resolve_finalizers here.
+ * symbol.c (gfc_get_namespace): Initialize new finalizers to NULL.
+ (gfc_free_namespace): Free finalizers list.
+ (gfc_new_symbol): Initialize new f2k_derived to NULL.
+ (gfc_free_symbol): Free f2k_derived namespace.
+ (gfc_free_finalizer): New function to free a single gfc_finalizer node.
+ (gfc_free_finalizer_list): New function to free a linked list of
+ gfc_finalizer nodes.
+
+2008-06-02 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36375
+ PR fortran/36377
+ * cpp.c (gfc_cpp_init): Do not initialize builtins if
+ processing already preprocessed input.
+ (gfc_cpp_preprocess): Finalize output with newline.
+
+2008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * intrinsic.texi: Revert wrong commit.
+
+2008-05-31 Steven G. Kargl <kargls@comcast.net>
+
+ * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
+ Cleanup numerical inquiry function initialization.
+ (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
+ a single mpfr_clears().
+ (gfc_check_real_range): Re-arrange logic to eliminate multiple
+ unnecessary branching and assignments.
+ (gfc_arith_times): Use mpfr_clears() in preference to multiple
+ mpfr_clear().
+ (gfc_arith_divide): Ditto.
+ (complex_reciprocal): Eliminate now unused variables a, re, im.
+ Cleanup the mpfr abuse. Use mpfr_clears() in preference to
+ multiple mpfr_clear().
+ (complex_pow): Fix comment whitespace. Use mpfr_clears() in
+ preference to multiple mpfr_clear().
+ * simplify.c (gfc_simplify_and): Remove blank line.
+ (gfc_simplify_atan2): Move error checking earlier to eliminate
+ a now unnecessay gfc_free_expr().
+ (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
+ (gfc_simplify_bessel_j1): Ditto.
+ (gfc_simplify_bessel_jn): Ditto.
+ (gfc_simplify_bessel_y0): Ditto.
+ (gfc_simplify_bessel_y1): Ditto.
+ (gfc_simplify_bessel_yn): Ditto.
+ (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
+ combine nested if statement rational expressions.
+ (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
+ mpfr_clear().
+ (gfc_simplify_exp): Ditto.
+ (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
+ special case of 0. Use mpfr_clears() in preference to multiple
+ mpfr_clear().
+ (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
+ (gfc_simplify_lgamma): Ditto.
+ (gfc_simplify_log10): Ditto.
+ (gfc_simplify_log): Move gfc_set_model_kind () inside switch
+ statement. Use mpfr_clears() in preference to multiple mpfr_clear().
+ (gfc_simplify_mod): Eliminate now unused variables quot, iquot,
+ and term. Simplify the mpfr magic.
+ (gfc_simplify_modulo): Ditto.
+ (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
+ (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
+ mpfr_clear().
+ (gfc_simplify_sin): Ditto
+ (gfc_simplify_sqrt): Ditto
+ (gfc_simplify_set_exponent): Move gfc_set_model_kind() to after the
+ special case of 0. Use mpfr_clears() in preference to multiple
+ mpfr_clear().
+
+2008-05-29 Daniel Franke <franke.daniel@gmail.com>
+
+ PR target/36348
+ * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
+
+2008-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * scanner.c (load_line): Add first_char argument. Don't call ungetc.
+ (gfc_read_orig_filename): Adjust call to load_line. Don't call
+ ungetc.
+ (load_file): Adjust call to load_line.
+
+2008-05-28 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36325
+ PR fortran/35830
+ * interface.c (gfc_procedure_use): Enable argument checking for
+ external procedures with explicit interface.
+ * symbol.c (check_conflict): Fix conflict checking for externals.
+ (copy_formal_args): Fix handling of arrays.
+ * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
+ of intrinsics.
+ * parse.c (parse_interface): Non-abstract INTERFACE statement implies
+ EXTERNAL attribute.
+
+2008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36319
+ * intrinsic.c (gfc_convert_chartype): Don't mark conversion
+ function as pure.
+ * trans-array.c (gfc_trans_array_ctor_element): Divide element
+ size by the size of one character to obtain length.
+ * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
+ appropriate.
+ (gfc_resolve_eoshift): Likewise.
+ * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
+ (gfc_conv_intrinsic_fdate): Minor beautification.
+ (gfc_conv_intrinsic_ttynam): Minor beautification.
+ (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
+ (size_of_string_in_bytes): New function.
+ (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
+ character expressions.
+ (gfc_conv_intrinsic_sizeof): Likewise.
+ (gfc_conv_intrinsic_array_transfer): Likewise.
+ (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
+ beautification.
+ (gfc_conv_intrinsic_repeat): Fix comment typo.
+ * simplify.c (gfc_convert_char_constant): Take care of conversion
+ of array constructors.
+
+2008-05-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36316
+ * trans-array.c (gfc_set_loop_bounds_from_array_spec):
+ Add missing fold_convert.
+
+2008-05-26 Daniel Franke <franke.daniel@gmail.com>
+
+ * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
+ added FIXME instead.
+
+2008-05-26 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/18428
+ * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
+ imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
+ o, undef, v): New options.
+ * options.c (gfc_init_options): Also initialize preprocessor
+ options.
+ (gfc_post_options): Also handle post-initialization of preprocessor
+ options.
+ (gfc_handle_option): Check if option is a preprocessor option.
+ If yes, let gfc_cpp_handle_option() handle the option.
+ * lang-specs.h: Reorganized to handle new options.
+ * scanner.c (gfc_new_file): Read temporary file instead of
+ input source if preprocessing is enabled.
+ * f95-lang.c (gfc_init): Initialize preprocessor.
+ (gfc_finish): Clean up preprocessor.
+ * cpp.c: New.
+ * cpp.h: New.
+ * Make-lang.in: Added new objects and dependencies.
+ * gfortran.texi: Updated section "Preprocessing and
+ conditional compilation".
+ * invoke.texi: Added new section "Preprocessing Options",
+ listed and documented the preprocessing options handled
+ by gfortran.
+
+2008-05-25 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/32600
+ * trans-expr.c (gfc_conv_function_call): Remove library
+ call for c_f_pointer with scalar Fortran pointers and for
+ c_f_procpointer.
+
+2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36257
+ * iresolve.c (check_charlen_present): Don't force the rank to 1.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36265
+ * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
+ the temporary variable.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
+ result variable to avoid warnings.
+
+2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * intrinsic.c (char_conversions, ncharconv): New static variables.
+ (find_char_conv): New function.
+ (add_functions): Add simplification functions for ADJUSTL and
+ ADJUSTR. Don't check the kind of their argument. Add checking for
+ LGE, LLE, LGT and LLT.
+ (add_subroutines): Fix argument type for SLEEP. Fix argument name
+ for SYSTEM.
+ (add_char_conversions): New function.
+ (gfc_intrinsic_init_1): Call add_char_conversions.
+ (gfc_intrinsic_done_1): Free char_conversions.
+ (check_arglist): Use kind == 0 as a signal that we don't want
+ the kind value to be checked.
+ (do_simplify): Also simplify character functions.
+ (gfc_convert_chartype): New function
+ * trans-array.c (gfc_trans_array_ctor_element): Don't force the
+ use of default character type.
+ (gfc_trans_array_constructor_value): Likewise.
+ (get_array_ctor_var_strlen): Use integer kind to build an integer
+ instead of a character kind!
+ (gfc_build_constant_array_constructor): Don't force the use of
+ default character type.
+ (gfc_conv_loop_setup): Likewise.
+ * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
+ default character type. Allocate enough memory for wide strings.
+ (gfc_conv_concat_op): Make sure operand kind are the same.
+ (string_to_single_character): Remove gfc_ prefix. Reindent.
+ Don't force the use of default character type.
+ (gfc_conv_scalar_char_value): Likewise.
+ (gfc_build_compare_string): Call string_to_single_character.
+ (fill_with_spaces): New function
+ (gfc_trans_string_copy): Add kind arguments. Use them to deal
+ with wide character kinds.
+ (gfc_conv_statement_function): Whitespace fix. Call
+ gfc_trans_string_copy with new kind arguments.
+ (gfc_conv_substring_expr): Call gfc_build_wide_string_const
+ instead of using gfc_widechar_to_char.
+ (gfc_conv_string_parameter): Don't force the use of default
+ character type.
+ (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
+ * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
+ gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
+ * decl.c (gfc_set_constant_character_len): Don't assert the
+ existence of a single character kind.
+ * trans-array.h (gfc_trans_string_copy): New prototype.
+ * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
+ New prototypes.
+ * error.c (print_wide_char_into_buffer): New function lifting
+ code from gfc_print_wide_char. Fix order to output '\x??' instead
+ of 'x\??'.
+ (gfc_print_wide_char): Call print_wide_char_into_buffer.
+ (show_locus): Call print_wide_char_into_buffer with buffer local
+ to this function.
+ * trans-const.c (gfc_build_wide_string_const): New function.
+ (gfc_conv_string_init): Deal with wide characters strings
+ constructors.
+ (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
+ * trans-stmt.c (gfc_trans_label_assign): Likewise.
+ (gfc_trans_character_select): Deal with wide strings.
+ * expr.c (gfc_check_assign): Allow conversion between character
+ kinds on assignment.
+ * trans-const.h (gfc_build_wide_string_const): New prototype.
+ * trans-types.c (gfc_get_character_type_len_for_eltype,
+ gfc_get_character_type_len): Create too variants of the old
+ gfc_get_character_type_len, one getting kind argument and the
+ other one directly taking a type tree.
+ * trans.h (gfor_fndecl_select_string_char4,
+ gfor_fndecl_convert_char1_to_char4,
+ gfor_fndecl_convert_char4_to_char1): New prototypes.
+ * trans-types.h (gfc_get_character_type_len_for_eltype): New
+ prototype.
+ * resolve.c (resolve_operator): Exit early when kind mismatches
+ are detected, because that makes us issue an error message later.
+ (validate_case_label_expr): Fix wording of error message.
+ * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
+ functions.
+ (gfc_resolve_pack): Call _char4 variants of library function
+ when dealing with wide characters.
+ (gfc_resolve_reshape): Likewise.
+ (gfc_resolve_spread): Likewise.
+ (gfc_resolve_transpose): Likewise.
+ (gfc_resolve_unpack): Likewise.
+ * target-memory.c (size_character): Take character kind bit size
+ correctly into account (not that it changes anything for now, but
+ it's more generic).
+ (gfc_encode_character): Added gfc_ prefix. Encoding each
+ character of a string by calling native_encode_expr for the
+ corresponding unsigned integer.
+ (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
+ * trans-decl.c (gfc_build_intrinsic_function_decls): Build
+ gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
+ and gfor_fndecl_convert_char4_to_char1.
+ * target-memory.h (gfc_encode_character): New prototype.
+ * arith.c (gfc_check_character_range): New function.
+ (eval_intrinsic): Allow non-default character kinds.
+ * check.c (gfc_check_access_func): Only allow default
+ character kind arguments.
+ (gfc_check_chdir): Likewise.
+ (gfc_check_chdir_sub): Likewise.
+ (gfc_check_chmod): Likewise.
+ (gfc_check_chmod_sub): Likewise.
+ (gfc_check_lge_lgt_lle_llt): New function.
+ (gfc_check_link): Likewise.
+ (gfc_check_link_sub): Likewise.
+ (gfc_check_symlnk): Likewise.
+ (gfc_check_symlnk_sub): Likewise.
+ (gfc_check_rename): Likewise.
+ (gfc_check_rename_sub): Likewise.
+ (gfc_check_fgetputc_sub): Likewise.
+ (gfc_check_fgetput_sub): Likewise.
+ (gfc_check_stat): Likewise.
+ (gfc_check_stat_sub): Likewise.
+ (gfc_check_date_and_time): Likewise.
+ (gfc_check_ctime_sub): Likewise.
+ (gfc_check_fdate_sub): Likewise.
+ (gfc_check_gerror): Likewise.
+ (gfc_check_getcwd_sub): Likewise.
+ (gfc_check_getarg): Likewise.
+ (gfc_check_getlog): Likewise.
+ (gfc_check_hostnm): Likewise.
+ (gfc_check_hostnm_sub): Likewise.
+ (gfc_check_ttynam_sub): Likewise.
+ (gfc_check_perror): Likewise.
+ (gfc_check_unlink): Likewise.
+ (gfc_check_unlink_sub): Likewise.
+ (gfc_check_system_sub): Likewise.
+ * primary.c (got_delim): Perform correct character range checking
+ for all kinds.
+ * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
+ calls to library functions convert_char4_to_char1 and
+ convert_char1_to_char4 for character conversions.
+ (gfc_conv_intrinsic_char): Allow all character kings.
+ (gfc_conv_intrinsic_strcmp): Fix whitespace.
+ (gfc_conv_intrinsic_repeat): Take care of all character kinds.
+ * intrinsic.texi: For all GNU intrinsics accepting character
+ arguments, mention that they're restricted to the default kind.
+ * simplify.c (simplify_achar_char): New function.
+ (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
+ gfc_simplify_ichar): Don't error out for wide characters.
+ (gfc_convert_char_constant): New function.
+
+2008-05-18 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/36251
+ * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
+ and BIND(C).
+ * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
+
+2008-05-17 Tobias Burnus <burnus@net-b.de>
+
+ * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
+ and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
+ GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
+ Move LOG_GAMMA after LOG10.
+
+2008-05-17 Tobias Burnus <burnus@net-b.de>
+
+ * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
+ * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
+ ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
+ CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
+
+2008-05-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35756
+ PR fortran/35759
+ * trans-stmt.c (gfc_trans_where): Tighten up the dependency
+ check for calling gfc_trans_where_3.
+
+ PR fortran/35743
+ * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
+ if it is calculated to be negative.
+
+ PR fortran/35745
+ * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
+ ss->where for scalar right hand sides.
+ * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
+ not evaluate scalars outside the loop. Clean up whitespace.
+ * trans.h : Add a bitfield 'where' to gfc_ss.
+
+2008-05-16 Tobias Burnus <burnus@net-b.de>
+
+ * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
+ * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
+
+2008-04-16 Daniel Kraft <d@domob.eu>
+
+ PR fortran/27997
+ * gfortran.h: Added field "length_from_typespec" to gfc_charlength.
+ * aray.c (gfc_match_array_constructor): Added code to parse typespec.
+ (check_element_type, check_constructor_type, gfc_check_constructor_type):
+ Extended to support explicit typespec on constructor.
+ (gfc_resolve_character_array_constructor): Pad strings correctly for
+ explicit, constant character length.
+ * trans-array.c: New static global variable "typespec_chararray_ctor"
+ (gfc_trans_array_constructor): New code to support explicit but dynamic
+ character lengths.
+
+2008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34325
+ * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
+ * expr.c (gfc_specification_expr): Supplement the error message with the
+ type that was found.
+ * resolve.c (gfc_resolve_index): Likewise.
+ * match.c (gfc_match_parens): Clarify error message with "at or before".
+ (gfc_match_do): Check for matching pairs of parenthesis.
+
+2008-05-16 Tobias Burnus <burnus@net-b.de
+
+ * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
+ add missing KIND argument to ACHAR and NINT; and state that
+ the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
+ ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
+
+2008-05-16 Daniel Kraft <d@domob.eu>
+
+ * primary.c: New private structure "gfc_structure_ctor_component".
+ (gfc_free_structure_ctor_component): New helper function.
+ (gfc_match_structure_constructor): Extended largely to support named
+ arguments and default initialization for structure constructors.
+
+2008-05-15 Steven G. Kargl <kargls@comcast.net>
+
+ * simplify.c (gfc_simplify_dble, gfc_simplify_float,
+ simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
+ possible memory leaks.
+ (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
+ of NULL pointers.
+
+2008-05-15 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/36239
+ * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
+ rolled integer conversion with gfc_int2int, gfc_real2int, and
+ gfc_complex2int.
+ (gfc_simplify_intconv): Renamed to simplify_intconv.
+
+2008-05-15 Steven G. Kargl, <kargl@comcast.net>
+ * gfortran.dg/and_or_xor.f90: New test
+
+ * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
+ gfc_simplify_xor): Don't range check logical results.
+
+2008-05-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
+ character kinds.
+ (gfc_build_compare_string): Add kind argument and use it.
+ (gfc_conv_statement_function): Fix indentation.
+ * gfortran.h (gfc_character_info): New structure.
+ (gfc_character_kinds): New array.
+ * trans-types.c (gfc_character_kinds, gfc_character_types,
+ gfc_pcharacter_types): New array.
+ (gfc_init_kinds): Fill character kinds array.
+ (validate_character): Take care of nondefault character kinds.
+ (gfc_build_uint_type): New function.
+ (gfc_init_types): Take care of nondefault character kinds.
+ (gfc_get_char_type, gfc_get_pchar_type): New functions.
+ (gfc_get_character_type_len): Use gfc_get_char_type.
+ * trans.h (gfc_build_compare_string): Adjust prototype.
+ (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
+ gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
+ gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
+ gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
+ gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
+ prototypes.
+ * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
+ prototypes.
+ * trans-decl.c (gfor_fndecl_compare_string_char4,
+ gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
+ gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
+ gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
+ gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
+ gfor_fndecl_concat_string_char4): New function decls.
+ (gfc_build_intrinsic_function_decls): Define new *_char4 function
+ decls.
+ * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
+ gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
+ gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
+ gfc_conv_intrinsic_function): Deal with nondefault character kinds.
+
+2008-05-15 Sa Liu <saliu@de.ibm.com>
+
+ * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
+ All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
+ c_int128_t, c_int_least128_t and c_int_fast128_t are added as
+ GNU extensions.
+ * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
+ to macro NAMED_INTCST.
+ * symbol.c (std_for_isocbinding_symbol): New helper function to
+ return the standard that supports this isocbinding symbol.
+ (generate_isocbinding_symbol): Do not generate GNU extension symbols
+ if std=f2003. Add new parameter to NAMED_INTCST.
+ * module.c (use_iso_fortran_env_module): Add new parameter to
+ NAMED_INTCST and new field standard to struct intmod_sym.
+ * gfortran.h: Add new parameter to NAMED_INTCST.
+ * trans-types.c (init_c_interop_kinds): Add new parameter to
+ NAMED_INTCST.
+ * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
+ and C_INT_FAST128_T.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36059
+ * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
+ arrays that have the TARGET attribute.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36186
+ * simplify.c (only_convert_cmplx_boz): New function.
+ (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
+ Call only_convert_cmplx_boz.
+
+2008-05-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36233
+ * interface.c (compare_actual_formal): Do not check sizes if the
+ actual is BT_PROCEDURE.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35682
+ * trans-array.c (gfc_conv_ss_startstride): Any negative size is
+ the same as zero size.
+ (gfc_conv_loop_setup): Fix size calculation.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35685
+ * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
+ handle zero-size sections.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36215
+ * scanner.c (preprocessor_line): Allocate enough memory for a
+ wide string.
+
+2008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36176
+ * target-memory.c (gfc_target_expr_size): Correctly treat
+ substrings.
+ (gfc_target_encode_expr): Likewise.
+ (gfc_interpret_complex): Whitespace change.
+
+2008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/35719
+ * trans.c (gfc_call_malloc): If size equals zero, allocate one
+ byte; don't return a null pointer.
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36197
+ * module.c (quote_string): Fix sprintf format.
+
+2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36162
+ * module.c (quote_string, unquote_string,
+ mio_allocated_wide_string): New functions.
+ (mio_expr): Call mio_allocated_wide_string where needed.
+
+2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
+ Rename DECL_IS_PURE to DECL_PURE_P.
+
+2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * arith.c: (gfc_arith_concat, gfc_compare_string,
+ gfc_compare_with_Cstring, hollerith2representation,
+ gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
+ gfc_hollerith2character, gfc_hollerith2logical): Use wide
+ characters for character constants.
+ * data.c (create_character_intializer): Likewise.
+ * decl.c (gfc_set_constant_character_len): Likewise.
+ * dump-parse-tree.c (show_char_const): Correctly dump wide
+ character strings.
+ error.c (print_wide_char): Rename into gfc_print_wide_char.
+ (show_locus): Adapt to new prototype of gfc_print_wide_char.
+ expr.c (free_expr0): Representation is now disjunct from
+ character string value, so we always free it.
+ (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
+ to wide character strings.
+ * gfortran.h (gfc_expr): Make value.character.string a wide string.
+ (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
+ gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
+ (gfc_get_wide_string): New macro.
+ (gfc_print_wide_char): New prototype.
+ * io.c (format_string): Make a wide string.
+ (next_char, gfc_match_format, compare_to_allowed_values,
+ gfc_match_open): Deal with wide strings.
+ * module.c (mio_expr): Convert between wide strings and ASCII ones.
+ * primary.c (match_hollerith_constant, match_charkind_name):
+ Handle wide strings.
+ * resolve.c (build_default_init_expr): Likewise.
+ * scanner.c (gfc_wide_toupper, gfc_wide_memset,
+ gfc_char_to_widechar): New functions.
+ (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
+ Changes in prototypes.
+ (gfc_define_undef_line, load_line, preprocessor_line,
+ include_line, load_file, gfc_read_orig_filename): Handle wide
+ strings.
+ * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
+ gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
+ gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
+ gfc_simplify_repeat): Handle wide strings.
+ (wide_strspn, wide_strcspn): New helper functions.
+ (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
+ Handle wide strings.
+ * symbol.c (generate_isocbinding_symbol): Likewise.
+ * target-memory.c (size_character, gfc_target_expr_size,
+ encode_character, gfc_target_encode_expr, gfc_interpret_character,
+ gfc_target_interpret_expr): Handle wide strings.
+ * trans-const.c (gfc_conv_string_init): Lower wide strings to
+ narrow ones.
+ (gfc_conv_constant_to_tree): Likewise.
+ * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
+ * trans-io.c (gfc_new_nml_name_expr): Likewise.
+ * trans-stmt.c (gfc_trans_label_assign): Likewise.
+
+2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
+ gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
+ gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
+ with ATTRIBUTE_UNUSED.
+
+2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
+ * simplify.c (gfc_simplify_lgamma): Likewise.
+
+2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
+ gfc_peek_ascii_char.
+ * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
+ gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
+ match_string_p, match_attr_spec, gfc_match_suffix,
+ match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
+ Likewise.
+ * gfortran.h (gfc_char_t): New type.
+ (gfc_linebuf): Make line member a gfc_char_t.
+ (locus): Make nextc member a gfc_char_t.
+ (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
+ gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
+ gfc_peek_ascii_char, gfc_check_digit): New prototypes.
+ * error.c (print_wide_char): New function.
+ (show_locus): Use print_wide_char and gfc_wide_strlen.
+ * io.c (next_char): Use gfc_char_t type.
+ (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
+ * match.c (gfc_match_parens, gfc_match_eos,
+ gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
+ gfc_match_intrinsic_op, gfc_match_char, gfc_match_return,
+ gfc_match_common): Likewise.
+ * match.h (gfc_match_special_char): Change prototype.
+ * parse.c (decode_specification_statement, decode_statement,
+ decode_omp_directive, next_free, next_fixed): Use
+ gfc_peek_ascii_char and gfc_next_ascii_char.
+ * primary.c (gfc_check_digit): Change name.
+ (match_digits, match_hollerith_constant, match_boz_constant,
+ match_real_constant, next_string_char, match_charkind_name,
+ match_string_constant, match_logical_constant_string,
+ match_complex_constant, match_actual_arg, match_varspec,
+ gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
+ gfc_next_ascii_char.
+ * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
+ gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
+ gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
+ wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
+ gfc_next_ascii_char, gfc_peek_ascii_char):
+ New functions.
+ (next_char, gfc_define_undef_line, skip_free_comments,
+ gfc_next_char_literal, gfc_next_char, gfc_peek_char,
+ gfc_error_recovery, load_line, preprocessor_line, include_line,
+ load_file, gfc_read_orig_filename): Use gfc_char_t for source
+ characters and the {gfc_,}wide_* functions to manipulate wide
+ strings.
+
+2008-05-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36117
+ * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
+ * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
+ * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
+ gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
+ gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
+
+2008-05-03 Janus Weil <jaydub66@gmail.com>
+
+ * misc.c (gfc_clear_ts): Set interface to NULL.
+
+2008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/33268
+ * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
+ gfc_expr value union. Add io_kind enum to here from io.c.
+ * io.c (gfc_free_dt): Free extra_comma.
+ (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
+ BT_CHARACTER, resolve to format_expr and set default unit. Error if
+ io_kind is M_WRITE. (match_io): Match the extra comma and set new
+ pointer, extra_comma.
+
+2008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
+
+ PR35940/Fortran
+ * simplify.c (gfc_simplify_index): Check for direction argument
+ being a constant.
+
+2008-05-01 Janus Weil <jaydub66@gmail.com>
+
+ * gfortran.h (struct gfc_symbol): Moving "interface" member to
+ gfc_typespec (plus fixing a small docu error).
+ * interface.c (gfc_procedure_use): Ditto.
+ * decl.c (match_procedure_decl): Ditto.
+ * resolve.c (resolve_specific_f0,
+ resolve_specific_f0, resolve_symbol): Ditto.
+
+2008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
+ * intrinsic.h (gfc_check_selected_char_kind,
+ gfc_simplify_selected_char_kind): New prototypes.
+ * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
+ * trans.h (gfor_fndecl_sc_kind): New function decl.
+ * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
+ * arith.c (gfc_compare_with_Cstring): New function.
+ * arith.h (gfc_compare_with_Cstring): New prototype.
+ * check.c (gfc_check_selected_char_kind): New function.
+ * primary.c (match_string_constant, match_kind_param): Mark
+ symbols used as literal constant kind param as referenced.
+ * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
+ (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
+ * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
+ * simplify.c (gfc_simplify_selected_char_kind): New function.
+
+2008-04-28 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35997
+ * module.c (find_symbol): Do not return a result for a symbol
+ that has been renamed in another module.
+
+2008-04-26 George Helffrich <george@gcc.gnu.org>
+
+ PR fortran/35892
+ PR fortran/35154
+ * trans-common.c (create_common): Add decl to function
+ chain (if inside one) to preserve identifier scope in debug output.
+
+2008-04-25 Jan Hubicka <jh@suse.cz>
+
+ * trans-decl.c (trans_function_start): Update.
+
+2008-04-25 Tobias Burnus <burnus@net-b.de>
+ Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35156
+ * gfortranspec.c (lang_specific_driver): Deprecate
+ -M option; fix ICE when "-M" is last argument and
+ make "-M<dir>" work.
+ * options.c (gfc_handle_module_path_options):
+ Use -J instead of -M in error messages.
+ * invoke.texi: Mark -M as depecated.
+
+2008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35994
+ * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
+ loop counter offset.
+
+2008-04-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
+ * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
+ (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
+ (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
+ (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
+ * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
+ (create_common): Don't set TREE_INVARIANT.
+ * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
+ * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
+
+2008-04-21 Steve Ellcey <sje@cup.hp.com>
+
+ * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
+
+2008-04-21 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35019
+ * gfortranspec.c (lookup_option): Properly handle separated arguments
+ in -J option, print missing argument message when necessary.
+
+2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35882
+ * scanner.c (skip_fixed_comments): Update continue_line when comment is
+ detected. (gfc_next_char_literal): Likewise.
+
+2008-04-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35944
+ PR fortran/35946
+ PR fortran/35947
+ * trans_array.c (gfc_trans_array_constructor): Temporarily
+ realign loop, if loop->from is not zero, before creating
+ the temporary array and provide an offset.
+
+ PR fortran/35959
+ * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
+ and allow for NULL body. Change all references from
+ init_default_dt to gfc_init_default_dt.
+ * trans.h : Add prototype for gfc_init_default_dt.
+ * trans-array.c (gfc_trans_deferred_vars): After nullification
+ call gfc_init_default_dt for derived types with allocatable
+ components.
+
+2008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35892
+ * trans-common.c (create_common): Revert patch causing regression.
+
+2008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35724
+ * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
+ optional argument attribute.
+
+2008-04-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35932
+ * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
+ is not used, the argument must be converted.
+
+2008-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35662
+ * f95-lang.c (gfc_init_builtin_functions): Make sure
+ BUILT_IN_SINCOS{,F,L} types aren't varargs.
+
+2008-04-15 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35864
+ * expr.c (scalarize_intrinsic_call): Reorder identification of
+ array argument so that if one is not found a segfault does not
+ occur. Return FAILURE if all scalar arguments.
+
+2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35882
+ * options.c (gfc_init_options): Set the default maximum continuation
+ lines to 255 for both free and fixed form source for warnings.
+ (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
+ the -std=f95 free form max continuations to 39 for warnings.
+ * scanner.c (gfc_next_char_literal): Adjust the current_line number only
+ if it is less than the current locus.
+
+2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/25829 28655
+ * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
+ round, sign, and id. (match_open_element): Match new tags.
+ (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
+ for DEFAULT only. Update error messages. (match_dt_element): Fix match
+ tag for asynchronous. Update error messages. (gfc_free_inquire): Free
+ new expressions. (match_inquire_element): Match new tags.
+ (gfc_match_inquire): Add constraint for ID and PENDING.
+ (gfc_resolve_inquire): Resolve new tags.
+ * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
+ mask for ID parameter.
+ * ioparm.def: Fix order of parameters for pending, round, and sign.
+ NOTE: These must line up with the definitions in libgfortran/io/io.h. or
+ things don't work.
+
+2008-04-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35780
+ * expr.c (scalarize_intrinsic_call): Identify which argument is
+ an array and use that as the template.
+ (check_init_expr): Remove tests that first argument is an array
+ in the call to scalarize_intrinsic_call.
+
+2008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ PR fortran/35832
+ * io.c (io_tag): Add field 'value'. Split 'spec' field in
+ existing io_tags.
+ (match_etag, match_vtag, match_ltag): Split parsing in two steps
+ to give better error messages.
+
+2008-04-06 Tobias Burnus <burnus@net-b.de>
+
+ * io.c (check_io_constraints): Add constrains. ID= requires
+ asynchronous= and asynchronous= must be init expression.
+
+2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
+
+2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
+ gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
+ functions and make them static. Add new gfc_dump_parse_tree
+ function.
+ * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
+ (gfc_status, gfc_status_char): Delete prototypes.
+ * error.c (gfc_status, gfc_status_char): Remove functions.
+ * scanner.c (gfc_new_file): Use printf instead of gfc_status.
+ * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
+ (gfc_handle_module_path_options): Use gfc_fatal_error instead of
+ gfc_status and exit.
+ (gfc_handle_option): Rename verbose into dump_parse_tree.
+ * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
+
+2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/25829 28655
+ * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
+ * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
+ (gfc_open): Add pointers for decimal, encoding, round, sign,
+ asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
+ encoding, pending, round, sign, size, id.
+ (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
+ asynchronous, blank, decimal, delim, pad, round, sign.
+ (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
+ wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
+ * trans-stmt.h (gfc_trans_wait): New function prototype.
+ * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
+ * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
+ ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
+ (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
+ tags. (gfc_resolve_open): Remove comment around check for allowed
+ values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING,
+ ROUND, and SIGN. (match_dt_element): Add matching for new tags.
+ (gfc_free_wait): New function. (gfc_resolve_wait): New function.
+ (match_wait_element): New function. (gfc_match_wait): New function.
+ * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
+ (resolve_code): Add case for EXEC_WAIT.
+ * st.c (gfc_free_statement): Add case for EXEC_WAIT.
+ * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
+ Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
+ (gfc_build_io_library_fndecls): Add function declaration for st_wait.
+ (gfc_trans_open): Add mask bits for new I/O tags.
+ (gfc_trans_inquire): Add mask bits for new I/O tags.
+ (gfc_trans_wait): New translation function.
+ (build_dt): Add mask bits for new I/O tags.
+ * match.c (gfc_match_if) Add matcher for "wait".
+ * match.h (gfc_match_wait): Prototype for new function.
+ * ioparm.def: Add new I/O parameter definitions.
+ * parse.c (decode_statement): Add match for "wait" statement.
+ (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/35786
+ * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
+ isn't a variable.
+
+2008-04-03 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in (fortran_OBJS): New variable.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * f95-lang.c (insert_block): Kill.
+
+2008-04-01 George Helffrich <george@gcc.gnu.org>
+
+ PR fortran/35154, fortran/23057
+ * trans-common.c (create_common): Add decl to function
+ chain to preserve identifier scope in debug output.
+
+2008-04-01 Joseph Myers <joseph@codesourcery.com>
+
+ * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
+ * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
+ gpl.texi.
+
+2008-03-30 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35740
+ * resolve.c (resolve_function, resolve_call): If the procedure
+ is elemental do not look for noncopying intrinsics.
+
+2008-03-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35698
+ * trans-array.c (gfc_array_init_size): Set 'size' zero if
+ negative in one dimension.
+
+ PR fortran/35702
+ * trans-expr.c (gfc_trans_string_copy): Only assign a char
+ directly if the lhs and rhs types are the same.
+
+2008-03-28 Daniel Franke <franke.daniel@gmail.com>
+ Paul Richard Thomas <paul.richard.thomas@gmail.com>
+
+ PR fortran/34714
+ * primary.c (match_variable): Improved matching of function
+ result variables.
+ * resolve.c (resolve_allocate_deallocate): Removed checks if
+ the actual argument for STAT is a variable.
+
+2008-03-28 Tobias Burnus <burnus@net-b.de>
+
+ * symbol.c (gfc_get_default_type): Fix error message; option
+ -fallow_leading_underscore should be -fallow-leading-underscore
+
+2008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35724
+ * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
+ optional argument attribute.
+
+2008-03-27 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in: Revert automatic dependency patch.
+
+2008-03-25 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in: Remove .o targets.
+ (fortran_OBJS): New variable.
+ (fortran/gfortranspec.o): Move to fortran/. Reduce to variable
+ setting.
+ (GFORTRAN_D_OBJS): Update.
+ (GFORTRAN_TRANS_DEPS): Remove.
+
+2008-03-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34813
+ * resolve.c (resolve_structure_cons): It is an error to assign
+ NULL to anything other than a pointer or allocatable component.
+
+ PR fortran/33295
+ * resolve.c (resolve_symbol): If the symbol is a derived type,
+ resolve the derived type. If the symbol is a derived type
+ function, ensure that the derived type is visible in the same
+ namespace as the function.
+
+2008-03-23 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * trans.h: Use fold_build in build1_v, build2_v and build3_v
+ macros.
+ * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
+ Don't use build2_v macro.
+
+2008-03-19 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35152
+ * interface.c (gfc_procedure_use): Check for keyworded arguments in
+ procedures without explicit interfaces.
+
+2008-03-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35470
+ * resolve.c (check_assumed_size_reference): Only visit the
+ first reference and look directly at the highest dimension.
+
+2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35184
+ * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
+ assert.
+
+2008-03-15 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35584
+ * resolve.c (resolve_branch): Less strict and pessimistic warning
+ message.
+
+2008-03-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
+ (gfc_be_parse_file): Call clear_binding_stack from here.
+ (gfc_clear_binding_stack): Rename to clear_binding_stack.
+
+2008-03-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35474
+ * module.c (mio_symtree_ref): After providing a symbol for a
+ missing equivalence member, resolve and NULL the fixups.
+
+2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * invoke.texi (Error and Warning Options): Document
+ -Wline-truncation.
+
+2008-03-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34956
+ * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
+ checking bounds of absent optional arguments.
+
+2008-03-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33197
+ * intrinsic.c (add_functions): Add simplification routines for
+ ERF, DERF, ERFC and DERFC.
+ * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
+ extensions into Fortran 2008 features.
+ * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
+ prototypes.
+ * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
+
+2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33197
+ * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
+ ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
+ ERFC_SCALED, LOG_GAMMA and HYPOT.
+ * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
+ gfc_resolve_hypot): New prototypes.
+ * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
+ ACOSH, ASINH and ATANH available.
+ * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
+ * lang.opt: Add -std=f2008 option.
+ * libgfortran.h: Define GFC_STD_F2008.
+ * lang-specs.h: Add .f08 and .F08 file suffixes.
+ * iresolve.c (gfc_resolve_hypot): New function.
+ * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
+ * check.c (gfc_check_hypot): New function.
+ * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
+ * options.c (set_default_std_flags): Allow Fortran 2008 by default.
+ (form_from_filename): Add .f08 suffix.
+ (gfc_handle_option): Handle -std=f2008 option.
+ * simplify.c (gfc_simplify_hypot): New function.
+ * gfortran.texi: Document Fortran 2008 status and file extensions.
+ * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
+ as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
+ ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
+ * invoke.texi: Document the new -std=f2008 option.
+
+2008-03-02 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortranspec.c (lang_specific_driver): Update copyright notice
+ dates.
+
+2008-02-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35059
+ * expr.c (find_array_element): Modify traversing the constructor to
+ avoid trying to access NULL memory pointed to by next for the
+ last element. (find_array_section): Exit while loop if cons->next is
+ NULL.
+ * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
+ (gfc_conv_function_call): Same.
+ * decl.c (gfc_match_implicit): Same.
+ * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
+
+2008-02-28 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/31463
+ PR fortran/33950
+ PR fortran/34296
+ * lang.opt: Added -Wreturn-type.
+ * options.c (gfc_handle_option): Recognize -Wreturn-type.
+ * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
+ where the result value is not set.
+ (gfc_generate_function_code): Likewise.
+ (generate_local_decl): Emit warnings for funtions whose RESULT
+ variable is not set.
+
+2008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34868
+ * trans-expr.c (gfc_conv_variable): Don't build indirect
+ references when explicit interface is mandated.
+ * resolve.c (resolve_formal_arglist): Set attr.always_explicit
+ on the result symbol as well as the procedure symbol.
+
+2008-02-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33387
+ * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
+ gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
+ gfor_fndecl_math_exponent16.
+ * f95-lang.c (build_builtin_fntypes): Add new function types.
+ (gfc_init_builtin_functions): Add new builtins for nextafter,
+ frexp, ldexp, fabs, scalbn and inf.
+ * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
+ (gfc_resolve_scale): Don't convert type of second argument.
+ (gfc_resolve_set_exponent): Likewise.
+ (gfc_resolve_size): Don't add hidden arguments.
+ * trans-decl.c: Remove gfor_fndecl_math_exponent4,
+ gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
+ gfor_fndecl_math_exponent16.
+ * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
+ for scalbn, fraction, nearest, rrspacing, set_exponent and
+ spacing.
+ (gfc_conv_intrinsic_exponent): Directly call frexp.
+ (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
+ gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
+ gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
+ functions.
+ (gfc_conv_intrinsic_function): Use the new functions above.
+
+2008-02-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35033
+ * interface.c (check_operator_interface): Show better line for error
+ messages; fix constrains for user-defined assignment operators.
+ (gfc_extend_assign): Fix constrains for user-defined assignment
+ operators.
+
+2008-02-26 Tom Tromey <tromey@redhat.com>
+
+ * trans-io.c (set_error_locus): Remove old location code.
+ * trans-decl.c (gfc_set_decl_location): Remove old location code.
+ * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
+ * scanner.c (gfc_gobble_whitespace): Remove old location code.
+ (get_file): Likewise.
+ (preprocessor_line): Likewise.
+ (load_file): Likewise.
+ (gfc_new_file): Likewise.
+ * trans.c (gfc_trans_runtime_check): Remove old location code.
+ (gfc_get_backend_locus): Likewise.
+ (gfc_set_backend_locus): Likewise.
+ * data.c (gfc_assign_data_value): Remove old location code.
+ * error.c (show_locus): Remove old location code.
+ * gfortran.h (gfc_linebuf): Remove old location code.
+ (gfc_linebuf_linenum): Remove old-location variant.
+
+2008-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34729
+ * trans-const.c (gfc_build_string_const): Don't call gettext.
+ (gfc_build_localized_string_const): New function.
+ * trans-const.h (gfc_build_localized_string_const): New prototype.
+ * trans.c (gfc_trans_runtime_check): Use
+ gfc_build_localized_string_const instead of gfc_build_string_const.
+ (gfc_call_malloc): Likewise.
+ (gfc_allocate_with_status): Likewise.
+ (gfc_allocate_array_with_status): Likewise.
+ (gfc_deallocate_with_status): Likewise.
+ (gfc_call_realloc): Likewise.
+ * trans-io.c (gfc_trans_io_runtime_check): Likewise.
+
+2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * arith.c: Update copyright years.
+ * arith.h: Likewise.
+ * array.c: Likewise.
+ * bbt.c: Likewise.
+ * check.c: Likewise.
+ * data.c: Likewise.
+ * data.h: Likewise.
+ * decl.c: Likewise.
+ * dependency.c: Likewise.
+ * dependency.h: Likewise.
+ * dump-parse-tree.c: Likewise.
+ * error.c: Likewise.
+ * expr.c: Likewise.
+ * gfc-internals.texi: Likewise.
+ * gfortran.h: Likewise.
+ * gfortran.texi: Likewise.
+ * gfortranspec.c: Likewise.
+ * interface.c: Likewise.
+ * intrinsic.c: Likewise.
+ * intrinsic.h: Likewise.
+ * intrinsic.texi: Likewise.
+ * invoke.texi: Likewise.
+ * io.c: Likewise.
+ * iresolve.c: Likewise.
+ * iso-c-binding.def: Likewise.
+ * iso-fortran-env.def: Likewise.
+ * lang-specs.h: Likewise.
+ * lang.opt: Likewise.
+ * libgfortran.h: Likewise.
+ * match.c: Likewise.
+ * match.h: Likewise.
+ * matchexp.c: Likewise.
+ * misc.c: Likewise.
+ * module.c: Likewise.
+ * openmp.c: Likewise.
+ * options.c: Likewise.
+ * parse.c: Likewise.
+ * parse.h: Likewise.
+ * primary.c: Likewise.
+ * resolve.c: Likewise.
+ * scanner.c: Likewise.
+ * simplify.c: Likewise.
+ * st.c: Likewise.
+ * symbol.c: Likewise.
+ * target-memory.c: Likewise.
+ * target-memory.h: Likewise.
+ * trans-array.h: Likewise.
+ * trans-const.h: Likewise.
+ * trans-stmt.h: Likewise.
+ * trans-types.c: Likewise.
+ * trans-types.h: Likewise.
+ * types.def: Likewise.
+
+2008-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35223
+ * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
+ (gfc_simplify_ibset): Remove call to range_check.
+ (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
+ (gfc_simplify_real): Add call gfc_clear_ts to initialize the
+ temporary gfc_typspec variable.
+
+2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * trans-array.c (gfc_conv_descriptor_data_get,
+ gfc_conv_descriptor_data_set_internal,
+ gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
+ gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
+ gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
+ gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
+ gfc_conv_array_transpose, gfc_grow_array,
+ gfc_trans_array_constructor_subarray,
+ gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
+ gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
+ gfc_conv_array_initializer, gfc_trans_array_bounds,
+ gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
+ gfc_get_dataptr_offset, gfc_conv_array_parameter,
+ gfc_trans_dealloc_allocated, get_full_array_size,
+ gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
+ instead of buildN.
+ * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
+ gfc_conv_component_ref, gfc_conv_cst_int_power,
+ gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
+ * trans-common.c (create_common): Likewise.
+ * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
+ Likewise.
+ * trans-const.c (gfc_conv_constant_to_tree): Likewise.
+ * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
+ gfc_trans_integer_select, gfc_trans_character_select,
+ gfc_trans_forall_loop, compute_overall_iter_number,
+ gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
+ gfc_trans_deallocate): Likewise.
+ * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
+ gfc_allocate_with_status, gfc_allocate_array_with_status,
+ gfc_deallocate_with_status): Likewise.
+ * f95-lang.c (gfc_truthvalue_conversion): Likewise.
+ * trans-io.c (set_parameter_const, set_parameter_value,
+ set_parameter_ref, set_string, set_internal_unit, io_result,
+ set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
+ * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
+ gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
+ gfc_generate_function_code): Likewise.
+ * convert.c (convert): Likewise.
+ * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
+ build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
+ gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
+ gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
+ gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
+ gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
+ gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
+ gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
+ gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
+ gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
+ gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
+ gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
+ gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
+ gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
+ gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
+ gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
+ gfc_conv_intrinsic_repeat): Likewise.
+
+2008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR target/25477
+ * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
+ * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
+ * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
+ gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
+ * trans-decl.c: Likewise.
+
+2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35059
+ * expr.c (find_array_element): Modify traversing the constructor to
+ avoid trying to access NULL memory pointed to by next for the
+ last element. (find_array_section): Exit while loop if cons->next is
+ NULL.
+
+2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34907
+ * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
+ structure.
+ (gfc_resolve_aint): Likewise.
+ (gfc_resolve_anint): Likewise.
+ (gfc_resolve_besn): Likewise.
+ (gfc_resolve_cshift): Likewise.
+ (gfc_resolve_ctime): Likewise.
+ (gfc_resolve_eoshift): Likewise.
+ (gfc_resolve_index_func): Likewise.
+ (gfc_resolve_isatty): Likewise.
+ (gfc_resolve_malloc): Likewise.
+ (gfc_resolve_rrspacing): Likewise.
+ (gfc_resolve_scale): Likewise.
+ (gfc_resolve_set_exponent): Likewise.
+ (gfc_resolve_spacing): Likewise.
+ (gfc_resolve_spacing): Likewise.
+ (gfc_resolve_fgetc): Likewise.
+ (gfc_resolve_fputc): Likewise.
+ (gfc_resolve_ftell): Likewise.
+ (gfc_resolve_ttynam): Likewise.
+ (gfc_resolve_alarm_sub): Likewise.
+ (gfc_resolve_mvbits): Likewise.
+ (gfc_resolve_getarg): Likewise.
+ (gfc_resolve_signal_sub): Likewise.
+ (gfc_resolve_exit): Likewise.
+ (gfc_resolve_flush): Likewise.
+ (gfc_resolve_free): Likewise.
+ (gfc_resolve_ctime_sub): Likewise.
+ (gfc_resolve_fgetc_sub): Likewise.
+ (gfc_resolve_fputc_sub): Likewise.
+ (gfc_resolve_fseek_sub): Likewise.
+ (gfc_resolve_ftell_sub): Likewise.
+ (gfc_resolve_ttynam_sub): Likewise.
+
+2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * gfc-internals.texi: Fix typos and markup nits.
+ * gfortran.texi: Likewise.
+ * intrinsic.texi: Likewise.
+
+2008-02-21 Richard Guenther <rguenther@suse.de>
+
+ * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
+ as unary PAREN_EXPR for real and complex typed expressions.
+ (gfc_conv_unary_op): Fold the built tree.
+
+2008-02-20 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34997
+ * match.c (gfc_match_name): Improve error message for '$'.
+
+2008-02-19 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35030
+ * expr.c (gfc_check_pointer_assign): Add type and kind information
+ to type-mismatch message.
+ (gfc_check_assign): Unify error messages.
+
+2008-02-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34952
+ * gfortran.texi: Create new section for unimplemented extensions.
+ Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
+ Remove "smaller projects" list. Fix a few typos.
+
+2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * intrinsic.texi: Rename INDEX node to avoid clashing with
+ index.html on case-insensitive systems.
+
+2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35150
+ * trans-expr.c (gfc_conv_function_call): Force evaluation of
+ se->expr.
+
+2008-02-10 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35019
+ * lang.opt: Allow '-J<dir>' next to '-J <dir>',
+ likewise '-I <dir>' and '-I<dir>'.
+
+2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR other/35107
+ * Make-lang.in (f951): Add $(GMPLIBS).
+
+2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35037
+ * trans-common.c (build_field): Mark fields as volatile when needed.
+
+2008-02-05 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35093
+ * data.c (gfc_assign_data_value): Only free "size" if
+ it has not already been freed.
+
+2008-02-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34945
+ * array.c (match_array_element_spec): Remove check for negative
+ array size.
+ (gfc_resolve_array_spec): Add check for negative size.
+
+2008-02-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/32315
+ * data.c (gfc_assign_data_value): Add bounds check for array
+ references.
+
+2008-02-04 Daniel Franke <franke.daniel@gmail.com>
+
+ * resolve.c (resolve_where): Fix typo.
+ (gfc_resolve_where_code_in_forall): Likewise.
+
+2008-02-03 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/32760
+ * resolve.c (resolve_allocate_deallocate): New function.
+ (resolve_code): Call it for allocate and deallocate.
+ * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
+ the checking of the STAT tag and put in above new function.
+ * primary,c (match_variable): Do not fix flavor of host
+ associated symbols yet if the type is not known.
+
+2008-01-31 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34910
+ * expr.c (gfc_check_assign): It is an error to assign
+ to a sibling procedure.
+
+2008-01-30 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34975
+ * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
+ delete_symtree to gfc_delete_symtree.
+ * gfortran.h : Add prototype for gfc_delete_symtree.
+ * module.c (load_generic_interfaces): Transfer symbol to a
+ unique symtree and delete old symtree, instead of renaming.
+ (read_module): The rsym and the found symbol are the same, so
+ the found symtree can be deleted.
+
+ PR fortran/34429
+ * decl.c (match_char_spec): Remove the constraint on deferred
+ matching of functions and free the length expression.
+ delete_symtree to gfc_delete_symtree.
+ (gfc_match_type_spec): Whitespace.
+ (gfc_match_function_decl): Defer characteristic association for
+ all types except BT_UNKNOWN.
+ * parse.c (decode_specification_statement): Only derived type
+ function matching is delayed to the end of specification.
+
+2008-01-28 Tobias Burnus <burnus@net-b.de>
+
+ PR libfortran/34980
+ * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
+
+2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34990
+ * array.c (gfc_check_constructor_type): Revert clearing the expression.
+
+2008-01-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34848
+ * trans-expr.c (gfc_conv_function_call): Don't call
+ gfc_add_interface_mapping if the expression is NULL.
+
+2008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/31610
+ * trans-array.c (gfc_trans_create_temp_array): Remove call to
+ gcc_assert (integer_zerop (loop->from[n])).
+
+2008-01-25 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34661
+ * resolve.c (resolve_where): Added check if user-defined assignment
+ operator is an elemental subroutine.
+ (gfc_resolve_where_code_in_forall): Likewise.
+
+2008-01-24 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/33375
+ PR fortran/34858
+ * gfortran.h: Revert changes from 2008-01-17.
+ * match.c: Likewise.
+ * symbol.c: Likewise.
+ (gfc_undo_symbols): Undo namespace changes related to common blocks.
+
+2008-01-24 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34202
+ * data.c (formalize_structure_cons): Skip formalization on
+ empty structures.
+
+2008-01-24 Daniel Franke <franke.daniel@gmail.com>
+
+ * gfortran.texi (OpenMP): Extended existing documentation.
+ (contributors): Added major contributors of 2008 that were
+ not listed yet.
+ (proposed extensions): Removed implemented items.
+
+2008-01-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34872
+ * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS is
+ seen, check for a statement label and, if present, delete it
+ and set the locus to the start of the statement.
+
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34875
+ * trans-io.c (gfc_trans_transfer): If the array reference in a
+ read has a vector subscript, use gfc_conv_subref_array_arg to
+ copy back the temporary.
+
+2008-01-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34848
+ * interface.c (compare_actual_formal): Fix adding type
+ to missing_arg_type for absent optional arguments.
+
+2008-01-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34907
+ * parse.c (parse_spec): Change = into ==.
+
+2008-01-22 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34915
+ * expr.c (check_elemental): Fix check for valid data types.
+
+2008-01-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34899
+ * scanner.c (load_line): Support <tab><digit> continuation lines.
+ * invoke.texi (-Wtabs): Document this.
+
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34896
+ * module.c (read_module): Set use_rename attribute.
+
+2007-01-21 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34901
+ * interface.c (compare_parameter): Improved error message
+ for arguments of same type and mismatched kinds.
+
+2008-01-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34861
+ * resolve.c (resolve_entries): Do not do an array bounds check
+ if the result symbols are the same.
+
+ PR fortran/34854
+ * module.c (read_module) : Hide the symtree of the previous
+ version of the symbol if this symbol is renamed.
+
+2008-01-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34784
+ * array.c (gfc_check_constructor_type): Clear the expression ts
+ so that the checking starts from the deepest level of array
+ constructor.
+ * primary.c (match_varspec): If an unknown type is changed to
+ default character and the attempt to match a substring fails,
+ change it back to unknown.
+
+ PR fortran/34785
+ * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
+ NULL for an array constructor, use the cl.length expression to
+ build it.
+ (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
+ a tree assignment.
+
+2008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/34817
+ PR fortran/34838
+ * iresolve.c (gfc_resolve_all): Remove conversion of mask
+ argument to kind=1 by removing call to resolve_mask_arg().
+ (gfc_resolve_any): Likewise.
+
+2008-01-19 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34760
+ * primary.c (match_variable): Handle FL_UNKNOWN without
+ uneducated guessing.
+ (match_variable): Improve error message.
+
+2008-01-18 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/32616
+ * interface.c (get_expr_storage_size): Return storage size
+ for array element designators.
+ (compare_actual_formal): Reject unequal string sizes for
+ assumed-shape dummy arguments. And fix error message for
+ array-sections with vector subscripts.
+
+2008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34556
+ * simplify.c (is_constant_array_expr): New static function that returns
+ true if the given expression is an array and is constant.
+ (gfc_simplify_reshape): Use new function.
+
+2008-01-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR fortran/33375
+ * symbol.c (free_common_tree): Renamed to ...
+ (gfc_free_common_tree): This. Remove static.
+ (gfc_free_namespace): Updated.
+
+ * gfortran.h (gfc_free_common_tree): New.
+
+ * match.c (gfc_match_common): Call gfc_free_common_tree () with
+ gfc_current_ns->common_root and set gfc_current_ns->common_root
+ to NULL on syntax error.
+
+2008-01-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR fortran/34686
+ * trans-expr.c (gfc_conv_function_call): Use proper
+ type for returned character pointers.
+
+2008-01-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34429
+ PR fortran/34431
+ PR fortran/34471
+ * decl.c : Remove gfc_function_kind_locus and
+ gfc_function_type_locus. Add gfc_matching_function.
+ (match_char_length): If matching a function and the length
+ does not match, return MATCH_YES and try again later.
+ (gfc_match_kind_spec): The same.
+ (match_char_kind): The same.
+ (gfc_match_type_spec): The same for numeric and derived types.
+ (match_prefix): Rename as gfc_match_prefix.
+ (gfc_match_function_decl): Except for function valued character
+ lengths, defer applying kind, type and charlen info until the
+ end of specification block.
+ gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
+ parse.c (decode_specification_statement): New function.
+ (decode_statement): Call it when a function has kind = -1. Set
+ and reset gfc_matching function, as function statement is being
+ matched.
+ (match_deferred_characteristics): Simplify with a single call
+ to gfc_match_prefix. Do appropriate error handling. In any
+ case, make sure that kind = -1 is reset or corrected.
+ (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
+ Throw an error if kind = -1 after last specification statement.
+ parse.h : Prototype for gfc_match_prefix.
+
+2008-01-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34796
+ * interface.c (compare_parameter): Allow AS_DEFERRED array
+ elements and reject attr.pointer array elemenents.
+ (get_expr_storage_size): Return storage size of elements of
+ assumed-shape and pointer arrays.
+
+2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
+ for flag_tree_parallelize_loops.
+
+2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34671
+ * iresolve.c (gfc_resolve_all): Call resolve_mask_arg.
+ (gfc_resolve_any): Likewise.
+ (gfc_resolve_count): Likewise. Don't append kind of
+ argument to function name.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34665
+ * resolve.c (resolve_actual_arglist): For expressions,
+ also check for assume-sized arrays.
+ * interface.c (compare_parameter): Move F2003 character checks
+ here, print error messages here, reject elements of
+ assumed-shape array as argument to dummy arrays.
+ (compare_actual_formal): Update for the changes above.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34763
+ * decl.c (contained_procedure): Only check directly preceeding state.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34759
+ * check.c (gfc_check_shape): Accept array ranges of
+ assumed-size arrays.
+
+2008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34432
+ * match.c (gfc_match_name): Don't error if leading character is a '(',
+ just return MATCH_NO.
+
+2008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34722
+ * trans-io.c (create_dummy_iostat): Commit the symbol.
+
+2008-01-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34537
+ * simplify.c (gfc_simplify_transfer): Return NULL if the size
+ of the element is unavailable and only assign character length
+ to the result, if 'mold' is constant.
+
+2008-01-10 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34396
+ * trans-array.c (gfc_trans_array_ctor_element): Use gfc_trans_string_copy
+ to assign strings and perform bounds checks on the string length.
+ (get_array_ctor_strlen): Remove bounds checking.
+ (gfc_trans_array_constructor): Initialize string length checking.
+ * trans-array.h : Add prototype for gfc_trans_string_copy.
+
+2008-01-08 Richard Guenther <rguenther@suse.de>
+
+ PR fortran/34706
+ PR tree-optimization/34683
+ * trans-types.c (gfc_get_array_type_bounds): Use an array type
+ with known size for accesses if that is known.
+
+2008-01-08 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34476
+ * expr.c (find_array_element): Check that the array bounds are
+ constant before using them. Use lower, as well as upper bound.
+ (check_restricted): Allow implied index variable.
+
+2008-01-08 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34681
+ * trans_array.c (gfc_trans_deferred_array): Do not null the
+ data pointer on entering scope, nor deallocate it on leaving
+ scope, if the symbol has the 'save' attribute.
+
+ PR fortran/34704
+ * trans_decl.c (gfc_finish_var_decl): Derived types with
+ allocatable components and an initializer must be TREE_STATIC.
+
+2008-01-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34672
+ * module.c (write_generic): Rewrite completely.
+ (write_module): Change call to write_generic.
+
+2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34659
+ * scanner.c (load_line): Do not count ' ' as printable when checking for
+ continuations.
+
+2008-01-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34545
+ * module.c (load_needed): If the namespace has no proc_name
+ give it the module symbol.
+
+2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34387
+ * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
+ the dummy variable expression, test for NULL, and pass the variable
+ address to the called function.
+
+2007-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34658
+ * match.c (gfc_match_common): Remove blank common in
+ DATA BLOCK warning.
+ * resolve.c (resolve_common_vars): New function.
+ (resolve_common_blocks): Move checks to resolve_common_vars
+ and invoke that function.
+ (resolve_types): Call resolve_common_vars for blank commons.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34655
+ * resolve.c (resolve_equivalence_derived): Reject derived types with
+ default initialization if equivalenced with COMMON variable.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34654
+ * io.c (check_io_constraints): Disallow unformatted I/O for
+ internal units.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34660
+ * resolve.c (resolve_formal_arglist): Reject dummy procedure in
+ ELEMENTAL functions.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34662
+ * interface.c (compare_actual_formal): Reject parameter
+ actual to intent(out) dummy.
+
+2008-01-04 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34557
+ * primary.c (match_varspec): Gobble whitespace before
+ checking for '('.
diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in
index ff5d03e65ee..1600d18b36a 100644
--- a/gcc/fortran/Make-lang.in
+++ b/gcc/fortran/Make-lang.in
@@ -211,7 +211,7 @@ doc/gfc-internals.pdf: $(GFC_INTERNALS_TEXI)
# Create or recreate the gfortran private include file directory.
install-finclude-dir: installdirs
- $(mkinstalldirs) -m a+rx $(DESTDIR)$(libsubdir)/finclude
+ $(mkinstalldirs) -m 0755 $(DESTDIR)$(libsubdir)/finclude
#
# Install hooks:
# f951 is installed elsewhere as part of $(COMPILERS).
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index de507676491..db29264e9a6 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -1,5 +1,5 @@
/* Check functions
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
@@ -339,16 +339,21 @@ dim_rank_check (gfc_expr *dim, gfc_expr *array, int allow_assumed)
gfc_array_ref *ar;
int rank;
- if (dim->expr_type != EXPR_CONSTANT || array->expr_type != EXPR_VARIABLE)
+ if (dim->expr_type != EXPR_CONSTANT
+ || (array->expr_type != EXPR_VARIABLE
+ && array->expr_type != EXPR_ARRAY))
return SUCCESS;
- ar = gfc_find_array_ref (array);
rank = array->rank;
- if (ar->as->type == AS_ASSUMED_SIZE
- && !allow_assumed
- && ar->type != AR_ELEMENT
- && ar->type != AR_SECTION)
- rank--;
+ if (array->expr_type == EXPR_VARIABLE)
+ {
+ ar = gfc_find_array_ref (array);
+ if (ar->as->type == AS_ASSUMED_SIZE
+ && !allow_assumed
+ && ar->type != AR_ELEMENT
+ && ar->type != AR_SECTION)
+ rank--;
+ }
if (mpz_cmp_ui (dim->value.integer, 1) < 0
|| mpz_cmp_ui (dim->value.integer, rank) > 0)
@@ -396,8 +401,8 @@ identical_dimen_shape (gfc_expr *a, int ai, gfc_expr *b, int bi)
/* Check whether two character expressions have the same length;
returns SUCCESS if they have or if the length cannot be determined. */
-static gfc_try
-check_same_strlen (const gfc_expr *a, const gfc_expr *b, const char *name)
+gfc_try
+gfc_check_same_strlen (const gfc_expr *a, const gfc_expr *b, const char *name)
{
long len_a, len_b;
len_a = len_b = -1;
@@ -423,8 +428,8 @@ check_same_strlen (const gfc_expr *a, const gfc_expr *b, const char *name)
if (len_a == len_b)
return SUCCESS;
- gfc_error ("Unequal character lengths (%ld and %ld) in %s intrinsic "
- "at %L", len_a, len_b, name, &a->where);
+ gfc_error ("Unequal character lengths (%ld/%ld) in %s at %L",
+ len_a, len_b, name, &a->where);
return FAILURE;
}
@@ -1794,7 +1799,7 @@ gfc_check_malloc (gfc_expr *size)
gfc_try
gfc_check_matmul (gfc_expr *matrix_a, gfc_expr *matrix_b)
{
- if ((matrix_a->ts.type != BT_LOGICAL) && !gfc_numeric_ts (&matrix_b->ts))
+ if ((matrix_a->ts.type != BT_LOGICAL) && !gfc_numeric_ts (&matrix_a->ts))
{
gfc_error ("'%s' argument of '%s' intrinsic at %L must be numeric "
"or LOGICAL", gfc_current_intrinsic_arg[0],
@@ -1802,7 +1807,7 @@ gfc_check_matmul (gfc_expr *matrix_a, gfc_expr *matrix_b)
return FAILURE;
}
- if ((matrix_b->ts.type != BT_LOGICAL) && !gfc_numeric_ts (&matrix_a->ts))
+ if ((matrix_b->ts.type != BT_LOGICAL) && !gfc_numeric_ts (&matrix_b->ts))
{
gfc_error ("'%s' argument of '%s' intrinsic at %L must be numeric "
"or LOGICAL", gfc_current_intrinsic_arg[1],
@@ -1810,6 +1815,15 @@ gfc_check_matmul (gfc_expr *matrix_a, gfc_expr *matrix_b)
return FAILURE;
}
+ if ((matrix_a->ts.type == BT_LOGICAL && gfc_numeric_ts (&matrix_b->ts))
+ || (gfc_numeric_ts (&matrix_a->ts) && matrix_b->ts.type == BT_LOGICAL))
+ {
+ gfc_error ("Argument types of '%s' intrinsic at %L must match (%s/%s)",
+ gfc_current_intrinsic, &matrix_a->where,
+ gfc_typename(&matrix_a->ts), gfc_typename(&matrix_b->ts));
+ return FAILURE;
+ }
+
switch (matrix_a->rank)
{
case 1:
@@ -2002,7 +2016,7 @@ gfc_check_merge (gfc_expr *tsource, gfc_expr *fsource, gfc_expr *mask)
return FAILURE;
if (tsource->ts.type == BT_CHARACTER)
- return check_same_strlen (tsource, fsource, "MERGE");
+ return gfc_check_same_strlen (tsource, fsource, "MERGE intrinsic");
return SUCCESS;
}
@@ -3122,14 +3136,15 @@ gfc_check_random_seed (gfc_expr *size, gfc_expr *put, gfc_expr *get)
{
unsigned int nargs = 0, kiss_size;
locus *where = NULL;
- mpz_t put_size;
+ mpz_t put_size, get_size;
bool have_gfc_real_16; /* Try and mimic HAVE_GFC_REAL_16 in libgfortran. */
have_gfc_real_16 = gfc_validate_kind (BT_REAL, 16, true) != -1;
- /* Keep these values in sync with kiss_size in libgfortran/random.c. */
- kiss_size = have_gfc_real_16 ? 12 : 8;
-
+ /* Keep the number of bytes in sync with kiss_size in
+ libgfortran/intrinsics/random.c. */
+ kiss_size = (have_gfc_real_16 ? 48 : 32) / gfc_default_integer_kind;
+
if (size != NULL)
{
if (size->expr_type != EXPR_VARIABLE
@@ -3172,9 +3187,10 @@ gfc_check_random_seed (gfc_expr *size, gfc_expr *put, gfc_expr *get)
if (gfc_array_size (put, &put_size) == SUCCESS
&& mpz_get_ui (put_size) < kiss_size)
- gfc_error ("Array PUT of intrinsic %s is too small (%i/%i) at %L",
- gfc_current_intrinsic, (int) mpz_get_ui (put_size),
- kiss_size, where);
+ gfc_error ("Size of '%s' argument of '%s' intrinsic at %L "
+ "too small (%i/%i)",
+ gfc_current_intrinsic_arg[1], gfc_current_intrinsic, where,
+ (int) mpz_get_ui (put_size), kiss_size);
}
if (get != NULL)
@@ -3200,6 +3216,13 @@ gfc_check_random_seed (gfc_expr *size, gfc_expr *put, gfc_expr *get)
if (kind_value_check (get, 2, gfc_default_integer_kind) == FAILURE)
return FAILURE;
+
+ if (gfc_array_size (get, &get_size) == SUCCESS
+ && mpz_get_ui (get_size) < kiss_size)
+ gfc_error ("Size of '%s' argument of '%s' intrinsic at %L "
+ "too small (%i/%i)",
+ gfc_current_intrinsic_arg[2], gfc_current_intrinsic, where,
+ (int) mpz_get_ui (get_size), kiss_size);
}
/* RANDOM_SEED may not have more than one non-optional argument. */
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c
index cd768becb8a..265cf20f3d4 100644
--- a/gcc/fortran/dependency.c
+++ b/gcc/fortran/dependency.c
@@ -1,5 +1,5 @@
/* Dependency analysis
- Copyright (C) 2000, 2001, 2002, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Paul Brook <paul@nowt.org>
@@ -422,6 +422,28 @@ gfc_ref_needs_temporary_p (gfc_ref *ref)
}
+int
+gfc_is_data_pointer (gfc_expr *e)
+{
+ gfc_ref *ref;
+
+ if (e->expr_type != EXPR_VARIABLE && e->expr_type != EXPR_FUNCTION)
+ return 0;
+
+ /* No subreference if it is a function */
+ gcc_assert (e->expr_type == EXPR_VARIABLE || !e->ref);
+
+ if (e->symtree->n.sym->attr.pointer)
+ return 1;
+
+ for (ref = e->ref; ref; ref = ref->next)
+ if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
+ return 1;
+
+ return 0;
+}
+
+
/* Return true if array variable VAR could be passed to the same function
as argument EXPR without interfering with EXPR. INTENT is the intent
of VAR.
@@ -449,19 +471,23 @@ gfc_check_argument_var_dependency (gfc_expr *var, sym_intent intent,
{
if (elemental == ELEM_DONT_CHECK_VARIABLE)
{
- /* Elemental procedures forbid unspecified intents,
- and we don't check dependencies for INTENT_IN args. */
- gcc_assert (intent == INTENT_OUT || intent == INTENT_INOUT);
-
- /* We are told not to check dependencies.
- We do it, however, and issue a warning in case we find one.
- If a dependency is found in the case
- elemental == ELEM_CHECK_VARIABLE, we will generate
- a temporary, so we don't need to bother the user. */
- gfc_warning ("INTENT(%s) actual argument at %L might interfere "
- "with actual argument at %L.",
- intent == INTENT_OUT ? "OUT" : "INOUT",
- &var->where, &expr->where);
+ /* Too many false positive with pointers. */
+ if (!gfc_is_data_pointer (var) && !gfc_is_data_pointer (expr))
+ {
+ /* Elemental procedures forbid unspecified intents,
+ and we don't check dependencies for INTENT_IN args. */
+ gcc_assert (intent == INTENT_OUT || intent == INTENT_INOUT);
+
+ /* We are told not to check dependencies.
+ We do it, however, and issue a warning in case we find one.
+ If a dependency is found in the case
+ elemental == ELEM_CHECK_VARIABLE, we will generate
+ a temporary, so we don't need to bother the user. */
+ gfc_warning ("INTENT(%s) actual argument at %L might "
+ "interfere with actual argument at %L.",
+ intent == INTENT_OUT ? "OUT" : "INOUT",
+ &var->where, &expr->where);
+ }
return 0;
}
else
@@ -664,7 +690,6 @@ gfc_check_dependency (gfc_expr *expr1, gfc_expr *expr2, bool identical)
{
gfc_actual_arglist *actual;
gfc_constructor *c;
- gfc_ref *ref;
int n;
gcc_assert (expr1->expr_type == EXPR_VARIABLE);
@@ -700,17 +725,8 @@ gfc_check_dependency (gfc_expr *expr1, gfc_expr *expr2, bool identical)
/* If either variable is a pointer, assume the worst. */
/* TODO: -fassume-no-pointer-aliasing */
- if (expr1->symtree->n.sym->attr.pointer)
- return 1;
- for (ref = expr1->ref; ref; ref = ref->next)
- if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
- return 1;
-
- if (expr2->symtree->n.sym->attr.pointer)
+ if (gfc_is_data_pointer (expr1) || gfc_is_data_pointer (expr2))
return 1;
- for (ref = expr2->ref; ref; ref = ref->next)
- if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
- return 1;
/* Otherwise distinct symbols have no dependencies. */
return 0;
diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c
index a7005e9fbb6..29efbd1fee0 100644
--- a/gcc/fortran/error.c
+++ b/gcc/fortran/error.c
@@ -307,14 +307,6 @@ show_locus (locus *loc, int c1, int c2)
offset = 0;
- /* When the loci is not associated with a column, it will have a
- value of zero. We adjust this to 1 so that it will appear. */
-
- if (c1 == 0)
- c1 = 1;
- if (c2 == 0)
- c2 = 1;
-
/* If the two loci would appear in the same column, we shift
'2' one column to the right, so as to print '12' rather than
just '1'. We do this here so it will be accounted for in the
@@ -361,7 +353,7 @@ show_locus (locus *loc, int c1, int c2)
c1 -= offset;
c2 -= offset;
- for (i = 1; i <= cmax; i++)
+ for (i = 0; i <= cmax; i++)
{
if (i == c1)
error_char ('1');
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 4bdee7c6a8c..8a992ca9e8f 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -3179,15 +3179,11 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
if (rvalue->expr_type == EXPR_NULL)
return SUCCESS;
- if (lvalue->ts.type == BT_CHARACTER
- && lvalue->ts.cl && rvalue->ts.cl
- && lvalue->ts.cl->length && rvalue->ts.cl->length
- && abs (gfc_dep_compare_expr (lvalue->ts.cl->length,
- rvalue->ts.cl->length)) == 1)
+ if (lvalue->ts.type == BT_CHARACTER)
{
- gfc_error ("Different character lengths in pointer "
- "assignment at %L", &lvalue->where);
- return FAILURE;
+ gfc_try t = gfc_check_same_strlen (lvalue, rvalue, "pointer assignment");
+ if (t == FAILURE)
+ return FAILURE;
}
if (rvalue->expr_type == EXPR_VARIABLE && is_subref_array (rvalue))
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 13701245446..920fbd9bffe 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -1553,6 +1553,10 @@ typedef struct gfc_expr
/* Sometimes, when an error has been emitted, it is necessary to prevent
it from recurring. */
unsigned int error : 1;
+
+ /* Mark and expression where a user operator has been substituted by
+ a function call in interface.c(gfc_extend_expr). */
+ unsigned int user_operator : 1;
/* Used to quickly find a given constructor by its offset. */
splay_tree con_by_offset;
@@ -2579,5 +2583,9 @@ void gfc_global_used (gfc_gsymbol *, locus *);
/* dependency.c */
int gfc_dep_compare_expr (gfc_expr *, gfc_expr *);
+int gfc_is_data_pointer (gfc_expr *);
+
+/* check.c */
+gfc_try gfc_check_same_strlen (const gfc_expr*, const gfc_expr*, const char*);
#endif /* GCC_GFORTRAN_H */
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index 933ed45b5cd..e5b46ce6c16 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -263,14 +263,13 @@ code designed to be efficiently translated and processed
by a machine such as your computer.
Humans usually aren't as good writing machine code
as they are at writing Fortran (or C++, Ada, or Java),
-because is easy to make tiny mistakes writing machine code.
+because it is easy to make tiny mistakes writing machine code.
@item
Provide the user with information about the reasons why
the compiler is unable to create a binary from the source code.
Usually this will be the case if the source code is flawed.
-When writing Fortran, it is easy to make big mistakes.
-The Fortran 90 requires that the compiler can point out
+The Fortran 90 standard requires that the compiler can point out
mistakes to the user.
An incorrect usage of the language causes an @dfn{error message}.
@@ -986,8 +985,14 @@ equivalent to the standard-conforming declaration
TYPESPEC(k) x,y,z
@end smallexample
@noindent
-where @code{k} is equal to @code{size} for most types, but is equal to
-@code{size/2} for the @code{COMPLEX} type.
+where @code{k} is the kind parameter suitable for the intended precision. As
+kind parameters are implementation-dependent, use the @code{KIND},
+@code{SELECTED_INT_KIND} and @code{SELECTED_REAL_KIND} intrinsics to retrieve
+the correct value, for instance @code{REAL*8 x} can be replaced by:
+@smallexample
+INTEGER, PARAMETER :: dbl = KIND(1.0d0)
+REAL(KIND=dbl) :: x
+@end smallexample
@node Old-style variable initialization
@subsection Old-style variable initialization
@@ -1561,9 +1566,9 @@ worth a look.
The long history of the Fortran language, its wide use and broad
userbase, the large number of different compiler vendors and the lack of
some features crucial to users in the first standards have lead to the
-existence of an important number of extensions to the language. While
+existence of a number of important extensions to the language. While
some of the most useful or popular extensions are supported by the GNU
-Fortran compiler, not all existing extensions are supported. This section
+Fortran compiler, not all existing extensions are supported. This section
aims at listing these extensions and offering advice on how best make
code that uses them running with the GNU Fortran compiler.
@@ -1617,7 +1622,7 @@ store_catalog(7).id = 7831
store_catalog(7).description = "milk bottle"
store_catalog(7).price = 1.2
-! We can also manipulates the whole structure
+! We can also manipulate the whole structure
store_catalog(12) = pear
print *, store_catalog(12)
@end example
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 17f70331286..5b2bdd10665 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -1,5 +1,5 @@
/* Deal with interfaces.
- Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -2411,9 +2411,12 @@ void
gfc_procedure_use (gfc_symbol *sym, gfc_actual_arglist **ap, locus *where)
{
- /* Warn about calls with an implicit interface. */
+ /* Warn about calls with an implicit interface. Special case
+ for calling a ISO_C_BINDING becase c_loc and c_funloc
+ are pseudo-unknown. */
if (gfc_option.warn_implicit_interface
- && sym->attr.if_source == IFSRC_UNKNOWN)
+ && sym->attr.if_source == IFSRC_UNKNOWN
+ && ! sym->attr.is_iso_c)
gfc_warning ("Procedure '%s' called with an implicit interface at %L",
sym->name, where);
@@ -2670,6 +2673,7 @@ gfc_extend_expr (gfc_expr *e)
e->value.function.esym = NULL;
e->value.function.isym = NULL;
e->value.function.name = NULL;
+ e->user_operator = 1;
if (gfc_pure (NULL) && !gfc_pure (sym))
{
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index f5bfcf996e6..481a938fedb 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -1,6 +1,6 @@
/* Build up a list of intrinsic subroutines and functions for the
name-resolution stage.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
@@ -1974,7 +1974,7 @@ add_functions (void)
make_generic ("mclock8", GFC_ISYM_MCLOCK8, GFC_STD_GNU);
add_sym_3 ("merge", GFC_ISYM_MERGE, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F95,
- gfc_check_merge, NULL, gfc_resolve_merge,
+ gfc_check_merge, gfc_simplify_merge, gfc_resolve_merge,
ts, BT_REAL, dr, REQUIRED, fs, BT_REAL, dr, REQUIRED,
msk, BT_LOGICAL, dl, REQUIRED);
@@ -3335,9 +3335,6 @@ do_simplify (gfc_intrinsic_sym *specific, gfc_expr *e)
goto finish;
}
- /* TODO: Warn if -pedantic and initialization expression and arg
- types not integer or character */
-
if (arg == NULL)
result = (*specific->simplify.f1) (a1);
else
diff --git a/gcc/fortran/intrinsic.h b/gcc/fortran/intrinsic.h
index 0e0bd3a3493..83c5207785b 100644
--- a/gcc/fortran/intrinsic.h
+++ b/gcc/fortran/intrinsic.h
@@ -1,6 +1,6 @@
/* Header file for intrinsics check, resolve and simplify function
prototypes.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
@@ -270,6 +270,7 @@ gfc_expr *gfc_simplify_llt (gfc_expr *, gfc_expr *);
gfc_expr *gfc_simplify_log (gfc_expr *);
gfc_expr *gfc_simplify_log10 (gfc_expr *);
gfc_expr *gfc_simplify_logical (gfc_expr *, gfc_expr *);
+gfc_expr *gfc_simplify_merge (gfc_expr *, gfc_expr *, gfc_expr *);
gfc_expr *gfc_simplify_min (gfc_expr *);
gfc_expr *gfc_simplify_minval (gfc_expr *, gfc_expr*, gfc_expr*);
gfc_expr *gfc_simplify_max (gfc_expr *);
diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi
index e4c0abc6386..8db47e9ba88 100644
--- a/gcc/fortran/intrinsic.texi
+++ b/gcc/fortran/intrinsic.texi
@@ -318,8 +318,10 @@ the applicable standard for each intrinsic procedure is noted.
@table @asis
@item @emph{Description}:
@code{ABORT} causes immediate termination of the program. On operating
-systems that support a core dump, @code{ABORT} will produce a core dump,
-which is suitable for debugging purposes.
+systems that support a core dump, @code{ABORT} will produce a core dump even if
+the option @option{-fno-dump-core} is in effect, which is suitable for debugging
+purposes.
+@c TODO: Check if this (with -fno-dump-core) is correct.
@item @emph{Standard}:
GNU extension
@@ -540,7 +542,7 @@ Elemental function
@item @emph{Arguments}:
@multitable @columnfractions .15 .70
@item @var{X} @tab The type shall be @code{REAL} with a magnitude that is
-less than one.
+less than or equal to one.
@end multitable
@item @emph{Return value}:
@@ -632,7 +634,7 @@ Inverse function: @ref{COSH}
Spaces are inserted at the end of the string as needed.
@item @emph{Standard}:
-Fortran 95 and later
+Fortran 90 and later
@item @emph{Class}:
Elemental function
@@ -973,7 +975,7 @@ is @code{.TRUE.}; otherwise, it returns @code{.FALSE.}
program test_allocated
integer :: i = 4
real(4), allocatable :: x(:)
- if (allocated(x) .eqv. .false.) allocate(x(i))
+ if (.not. allocated(x)) allocate(x(i))
end program test_allocated
@end smallexample
@end table
@@ -1179,7 +1181,7 @@ Elemental function
@item @emph{Arguments}:
@multitable @columnfractions .15 .70
@item @var{X} @tab The type shall be @code{REAL}, and a magnitude that is
-less than one.
+less than or equal to one.
@end multitable
@item @emph{Return value}:
@@ -1797,7 +1799,8 @@ end program test_besyn
@table @asis
@item @emph{Description}:
@code{BIT_SIZE(I)} returns the number of bits (integer precision plus sign bit)
-represented by the type of @var{I}.
+represented by the type of @var{I}. The result of @code{BIT_SIZE(I)} is
+independent of the actual value of @var{I}.
@item @emph{Standard}:
Fortran 95 and later
@@ -1837,7 +1840,7 @@ end program test_bit_size
@table @asis
@item @emph{Description}:
@code{BTEST(I,POS)} returns logical @code{.TRUE.} if the bit at @var{POS}
-in @var{I} is set.
+in @var{I} is set. The counting of the bits starts at 0.
@item @emph{Standard}:
Fortran 95 and later
@@ -2688,8 +2691,9 @@ Elemental function
@item @emph{Return value}:
The return value is of type @code{REAL} and it is positive
-(@math{ \cosh (x) \geq 0 }. The return value is of the same
-kind as @var{X}.
+(@math{ \cosh (x) \geq 0 }). For a @code{REAL} argument @var{X},
+@math{ \cosh (x) \geq 1 }.
+The return value is of the same kind as @var{X}.
@item @emph{Example}:
@smallexample
@@ -2724,7 +2728,7 @@ Inverse function: @ref{ACOSH}
@code{COUNT(MASK [, DIM [, KIND]])} counts the number of @code{.TRUE.}
elements of @var{MASK} along the dimension of @var{DIM}. If @var{DIM} is
-omitted it is taken to be @code{1}. @var{DIM} is a scaler of type
+omitted it is taken to be @code{1}. @var{DIM} is a scalar of type
@code{INTEGER} in the range of @math{1 /leq DIM /leq n)} where @math{n}
is the rank of @var{MASK}.
@@ -2844,7 +2848,7 @@ end program test_cpu_time
@item @emph{Description}:
@code{CSHIFT(ARRAY, SHIFT [, DIM])} performs a circular shift on elements of
@var{ARRAY} along the dimension of @var{DIM}. If @var{DIM} is omitted it is
-taken to be @code{1}. @var{DIM} is a scaler of type @code{INTEGER} in the
+taken to be @code{1}. @var{DIM} is a scalar of type @code{INTEGER} in the
range of @math{1 /leq DIM /leq n)} where @math{n} is the rank of @var{ARRAY}.
If the rank of @var{ARRAY} is one, then all elements of @var{ARRAY} are shifted
by @var{SHIFT} places. If rank is greater than one, then all complete rank one
@@ -3155,14 +3159,14 @@ end program test_dfloat
@node DIGITS
-@section @code{DIGITS} --- Significant digits function
+@section @code{DIGITS} --- Significant binary digits function
@fnindex DIGITS
@cindex model representation, significant digits
@table @asis
@item @emph{Description}:
-@code{DIGITS(X)} returns the number of significant digits of the internal model
-representation of @var{X}. For example, on a system using a 32-bit
+@code{DIGITS(X)} returns the number of significant binary digits of the internal
+model representation of @var{X}. For example, on a system using a 32-bit
floating point representation, a default real number would likely return 24.
@item @emph{Standard}:
@@ -3282,7 +3286,7 @@ Transformational function
@end multitable
@item @emph{Return value}:
-If the arguments are numeric, the return value is a scaler of numeric type,
+If the arguments are numeric, the return value is a scalar of numeric type,
@code{INTEGER}, @code{REAL}, or @code{COMPLEX}. If the arguments are
@code{LOGICAL}, the return value is @code{.TRUE.} or @code{.FALSE.}.
@@ -3483,7 +3487,7 @@ end program test_dtime
@item @emph{Description}:
@code{EOSHIFT(ARRAY, SHIFT[, BOUNDARY, DIM])} performs an end-off shift on
elements of @var{ARRAY} along the dimension of @var{DIM}. If @var{DIM} is
-omitted it is taken to be @code{1}. @var{DIM} is a scaler of type
+omitted it is taken to be @code{1}. @var{DIM} is a scalar of type
@code{INTEGER} in the range of @math{1 /leq DIM /leq n)} where @math{n} is the
rank of @var{ARRAY}. If the rank of @var{ARRAY} is one, then all elements of
@var{ARRAY} are shifted by @var{SHIFT} places. If rank is greater than one,
@@ -3511,7 +3515,7 @@ Transformational function
@item @emph{Arguments}:
@multitable @columnfractions .15 .70
-@item @var{ARRAY} @tab May be any type, not scaler.
+@item @var{ARRAY} @tab May be any type, not scalar.
@item @var{SHIFT} @tab The type shall be @code{INTEGER}.
@item @var{BOUNDARY} @tab Same type as @var{ARRAY}.
@item @var{DIM} @tab The type shall be @code{INTEGER}.
@@ -3546,7 +3550,8 @@ end program test_eoshift
@table @asis
@item @emph{Description}:
-@code{EPSILON(X)} returns a nearly negligible number relative to @code{1}.
+@code{EPSILON(X)} returns the smallest number @var{E} of the same kind
+as @var{X} such that @math{1 + E > 1}.
@item @emph{Standard}:
Fortran 95 and later
@@ -4875,11 +4880,12 @@ After @code{GET_COMMAND_ARGUMENT} returns, the @var{VALUE} argument holds the
@var{NUMBER}-th command line argument. If @var{VALUE} can not hold the argument, it is
truncated to fit the length of @var{VALUE}. If there are less than @var{NUMBER}
arguments specified at the command line, @var{VALUE} will be filled with blanks.
-If @math{@var{NUMBER} = 0}, @var{VALUE} is set to the name of the program (on systems
-that support this feature). The @var{LENGTH} argument contains the length of the
-@var{NUMBER}-th command line argument. If the argument retrival fails, @var{STATUS}
-is a positiv number; if @var{VALUE} contains a truncated command line argument,
-@var{STATUS} is -1; and otherwise the @var{STATUS} is zero.
+If @math{@var{NUMBER} = 0}, @var{VALUE} is set to the name of the program (on
+systems that support this feature). The @var{LENGTH} argument contains the
+length of the @var{NUMBER}-th command line argument. If the argument retrieval
+fails, @var{STATUS} is a positive number; if @var{VALUE} contains a truncated
+command line argument, @var{STATUS} is -1; and otherwise the @var{STATUS} is
+zero.
@item @emph{Example}:
@smallexample
@@ -5722,7 +5728,7 @@ the kind shall be the default integer kind.
@end multitable
@item @emph{Return value}:
-Does not return.
+Does not return anything.
@item @emph{Example}:
@smallexample
@@ -6368,7 +6374,7 @@ and the kind shall be the default integer kind.
@end multitable
@item @emph{Return value}:
-Does not return.
+Does not return anything.
@item @emph{Example}:
@@ -6957,6 +6963,8 @@ Elemental function
@item @emph{Return value}:
The return value is of type @code{REAL} or @code{COMPLEX}.
The kind type parameter is the same as @var{X}.
+If @var{X} is @code{COMPLEX}, the imaginary part @math{\omega} is in the range
+@math{-\pi \leq \omega \leq \pi}.
@item @emph{Example}:
@smallexample
@@ -7563,9 +7571,9 @@ the @var{DIM} argument is supplied, determines the maximum value along
each row of the array in the @var{DIM} direction. If @var{MASK} is
present, only the elements for which @var{MASK} is @code{.TRUE.} are
considered. If the array has zero size, or all of the elements of
-@var{MASK} are @code{.FALSE.}, then the result is the most negative
-number of the type and kind of @var{ARRAY} if @var{ARRAY} is numeric, or
-a string of nulls if @var{ARRAY} is of character type.
+@var{MASK} are @code{.FALSE.}, then the result is @code{-HUGE(ARRAY)}
+if @var{ARRAY} is numeric, or a string of nulls if @var{ARRAY} is of character
+type.
@item @emph{Standard}:
Fortran 95 and later
@@ -9472,8 +9480,8 @@ end program large_integers
@table @asis
@item @emph{Description}:
-@code{SELECTED_REAL_KIND(P,R)} return the kind value of a real data type
-with decimal precision greater of at least @code{P} digits and exponent
+@code{SELECTED_REAL_KIND(P,R)} returns the kind value of a real data type
+with decimal precision of at least @code{P} digits and exponent
range greater at least @code{R}.
@item @emph{Standard}:
@@ -9709,6 +9717,7 @@ Subroutine, function
@item @var{STATUS} @tab (Optional) @var{STATUS} shall be a scalar
integer. It has @code{INTENT(OUT)}.
@end multitable
+@c TODO: What should the interface of the handler be? Does it take arguments?
@item @emph{Return value}:
The @code{SIGNAL} function returns the value returned by @code{signal(2)}.
@@ -10173,7 +10182,7 @@ Subroutine
@end multitable
@item @emph{Return value}:
-Does not return.
+Does not return anything.
@item @emph{Example}:
See @code{RAND} and @code{IRAND} for examples.
@@ -11242,6 +11251,8 @@ manual.
@item @code{C_FUNLOC}
@item @code{C_LOC}
@end table
+@c TODO: Vertical spacing between C_FUNLOC and C_LOC wrong in PDF,
+@c don't really know why.
The @code{ISO_C_BINDING} module provides the following named constants of the
type integer, which can be used as KIND type parameter. Note that GNU
@@ -11290,7 +11301,7 @@ C_INT_LEAST128_T, C_INT_FAST128_T}.
@item @code{CHARACTER}@tab @code{C_CHAR} @tab @code{char}
@end multitable
-Additionally, the following @code{(CHARACTER(KIND=C_CHAR)} are
+Additionally, the following @code{(CHARACTER(KIND=C_CHAR))} are
defined.
@multitable @columnfractions .20 .45 .15
diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi
index 675413cf6fd..8e18dd2342c 100644
--- a/gcc/fortran/invoke.texi
+++ b/gcc/fortran/invoke.texi
@@ -210,12 +210,12 @@ form is determined by the file extension.
@item -fall-intrinsics
@opindex @code{fall-intrinsics}
-Accept all of the intrinsic procedures provided in libgfortran
-without regard to the setting of @option{-std}. In particular,
-this option can be quite useful with @option{-std=f95}. Additionally,
-@command{gfortran} will ignore @option{-Wintrinsics-std} and will never try
-to link to an @code{EXTERNAL} version if the intrinsic is not included in the
-selected standard.
+This option causes all intrinsic procedures (including the GNU-specific
+extensions) to be accepted. This can be useful with @option{-std=f95} to
+force standard-compliance but get access to the full range of intrinsics
+available with @command{gfortran}. As a consequence, @option{-Wintrinsics-std}
+will be ignored and no user-defined procedure with the same name as any
+intrinsic will be called except when it is explicitly declared @code{EXTERNAL}.
@item -fd-lines-as-code
@item -fd-lines-as-comments
@@ -229,17 +229,26 @@ comment lines.
@item -fdefault-double-8
@opindex @code{fdefault-double-8}
-Set the @code{DOUBLE PRECISION} type to an 8 byte wide type.
+Set the @code{DOUBLE PRECISION} type to an 8 byte wide type. If
+@option{-fdefault-real-8} is given, @code{DOUBLE PRECISION} would
+instead be promoted to 16 bytes if possible, and @option{-fdefault-double-8}
+can be used to prevent this. The kind of real constants like @code{1.d0} will
+not be changed by @option{-fdefault-real-8} though, so also
+@option{-fdefault-double-8} does not affect it.
@item -fdefault-integer-8
@opindex @code{fdefault-integer-8}
Set the default integer and logical types to an 8 byte wide type.
-Do nothing if this is already the default.
+Do nothing if this is already the default. This option also affects
+the kind of integer constants like @code{42}.
@item -fdefault-real-8
@opindex @code{fdefault-real-8}
Set the default real type to an 8 byte wide type.
-Do nothing if this is already the default.
+Do nothing if this is already the default. This option also affects
+the kind of non-double real constants like @code{1.0}, and does promote
+the default width of @code{DOUBLE PRECISION} to 16 bytes if possible, unless
+@code{-fdefault-double-8} is given, too.
@item -fdollar-ok
@opindex @code{fdollar-ok}
@@ -861,7 +870,7 @@ zero), @samp{overflow} (overflow in a floating point operation),
(operation produced a denormal value).
Some of the routines in the Fortran runtime library, like
-@samp{CPU_TIME}, are likely to to trigger floating point exceptions when
+@samp{CPU_TIME}, are likely to trigger floating point exceptions when
@code{ffpe-trap=precision} is used. For this reason, the use of
@code{ffpe-trap=precision} is not recommended.
@@ -1183,13 +1192,15 @@ by use of the @option{-ff2c} option.
Enable generation of run-time checks for array subscripts
and against the declared minimum and maximum values. It also
checks array indices for assumed and deferred
-shape arrays against the actual allocated bounds.
+shape arrays against the actual allocated bounds and ensures that all string
+lengths are equal for character array constructors without an explicit
+typespec.
Some checks require that @option{-fbounds-check} is set for
the compilation of the main program.
-In the future this may also include other forms of checking, e.g., checking
-substring references.
+Note: In the future this may also include other forms of checking, e.g.,
+checking substring references.
@item fcheck-array-temporaries
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 98112fcb8a8..57e65f85422 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -118,6 +118,7 @@ format_token;
used to back up by a single format token during the parsing
process. */
static gfc_char_t *format_string;
+static int format_string_pos;
static int format_length, use_last_char;
static char error_element;
static locus format_locus;
@@ -170,6 +171,8 @@ next_char (int in_string)
if (mode != MODE_STRING)
format_locus = gfc_current_locus;
+ format_string_pos++;
+
c = gfc_wide_toupper (c);
return c;
}
@@ -503,6 +506,7 @@ check_format (bool is_input)
level = 0;
repeat = 0;
rv = SUCCESS;
+ format_string_pos = 0;
t = format_lex ();
if (t == FMT_ERROR)
@@ -729,15 +733,19 @@ data_desc:
saved_token = u;
break;
}
-
u = format_lex ();
- if (u == FMT_ERROR)
- goto fail;
if (u != FMT_POSINT)
{
error = posint_required;
goto syntax;
}
+ u = format_lex ();
+ if (u == FMT_E)
+ {
+ error = _("E specifier not allowed with g0 descriptor");
+ goto syntax;
+ }
+ saved_token = u;
break;
}
@@ -983,6 +991,8 @@ extension_optional_comma:
goto format_item;
syntax:
+ if (mode != MODE_FORMAT)
+ format_locus.nextc += format_string_pos;
if (error == unexpected_element)
gfc_error (error, error_element, &format_locus);
else
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 1b32ee2755d..44ad3758f84 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -1,6 +1,6 @@
/* Handle modules, which amounts to loading and saving symbols and
their attendant structures.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -4337,6 +4337,7 @@ write_common_0 (gfc_symtree *st)
{
gfc_common_head *p;
const char * name;
+ const char * lname;
int flags;
const char *label;
struct written_common *w;
@@ -4349,6 +4350,9 @@ write_common_0 (gfc_symtree *st)
/* We will write out the binding label, or the name if no label given. */
name = st->n.common->name;
+
+ /* Use the symtree(local)name to check if the common has been written. */
+ lname = st->name;
p = st->n.common;
label = p->is_bind_c ? p->binding_label : p->name;
@@ -4356,7 +4360,7 @@ write_common_0 (gfc_symtree *st)
w = written_commons;
while (w)
{
- int c = strcmp (name, w->name);
+ int c = strcmp (lname, w->name);
c = (c != 0 ? c : strcmp (label, w->label));
if (c == 0)
write_me = false;
@@ -4384,7 +4388,7 @@ write_common_0 (gfc_symtree *st)
/* Record that we have written this common. */
w = XCNEW (struct written_common);
- w->name = p->name;
+ w->name = lname;
w->label = label;
gfc_insert_bbt (&written_commons, w, compare_written_commons);
}
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 032fa9024b4..c7ca861a273 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1360,6 +1360,7 @@ match_actual_arg (gfc_expr **result)
gfc_expr *e;
char c;
+ gfc_gobble_whitespace ();
where = gfc_current_locus;
switch (gfc_match_name (name))
@@ -2820,10 +2821,10 @@ match_variable (gfc_expr **result, int equiv_flag, int host_flag)
|| gfc_current_state () == COMP_CONTAINS)
host_flag = 0;
+ where = gfc_current_locus;
m = gfc_match_sym_tree (&st, host_flag);
if (m != MATCH_YES)
return m;
- where = gfc_current_locus;
sym = st->n.sym;
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 0b6fe4c13a9..3148b0de9ff 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1,5 +1,5 @@
/* Perform type resolution on the various structures.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -2047,12 +2047,10 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args,
{
char name[GFC_MAX_SYMBOL_LEN + 1];
char binding_label[GFC_MAX_BINDING_LABEL_LEN + 1];
- int optional_arg = 0;
+ int optional_arg = 0, is_pointer = 0;
gfc_try retval = SUCCESS;
gfc_symbol *args_sym;
gfc_typespec *arg_ts;
- gfc_ref *parent_ref;
- gfc_ref *curr_ref;
if (args->expr->expr_type == EXPR_CONSTANT
|| args->expr->expr_type == EXPR_OP
@@ -2070,32 +2068,8 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args,
the actual expression could be a part-ref of the expr symbol. */
arg_ts = &(args->expr->ts);
- /* Get the parent reference (if any) for the expression. This happens for
- cases such as a%b%c. */
- parent_ref = args->expr->ref;
- curr_ref = NULL;
- if (parent_ref != NULL)
- {
- curr_ref = parent_ref->next;
- while (curr_ref != NULL && curr_ref->next != NULL)
- {
- parent_ref = curr_ref;
- curr_ref = curr_ref->next;
- }
- }
-
- /* If curr_ref is non-NULL, we had a part-ref expression. If the curr_ref
- is for a REF_COMPONENT, then we need to use it as the parent_ref for
- the name, etc. Otherwise, the current parent_ref should be correct. */
- if (curr_ref != NULL && curr_ref->type == REF_COMPONENT)
- parent_ref = curr_ref;
-
- if (parent_ref == args->expr->ref)
- parent_ref = NULL;
- else if (parent_ref != NULL && parent_ref->type != REF_COMPONENT)
- gfc_internal_error ("Unexpected expression reference type in "
- "gfc_iso_c_func_interface");
-
+ is_pointer = gfc_is_data_pointer (args->expr);
+
if (sym->intmod_sym_id == ISOCBINDING_ASSOCIATED)
{
/* If the user gave two args then they are providing something for
@@ -2137,10 +2111,7 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args,
else if (sym->intmod_sym_id == ISOCBINDING_LOC)
{
/* Make sure we have either the target or pointer attribute. */
- if (!(args_sym->attr.target)
- && !(args_sym->attr.pointer)
- && (parent_ref == NULL ||
- !parent_ref->u.c.component->attr.pointer))
+ if (!args_sym->attr.target && !is_pointer)
{
gfc_error_now ("Parameter '%s' to '%s' at %L must be either "
"a TARGET or an associated pointer",
@@ -2223,9 +2194,7 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args,
}
}
}
- else if ((args_sym->attr.pointer == 1 ||
- (parent_ref != NULL
- && parent_ref->u.c.component->attr.pointer))
+ else if (is_pointer
&& is_scalar_expr_ptr (args->expr) != SUCCESS)
{
/* Case 1c, section 15.1.2.5, J3/04-007: an associated
@@ -2944,15 +2913,20 @@ resolve_call (gfc_code *c)
if (csym && gfc_current_ns->parent && csym->ns != gfc_current_ns)
{
- gfc_find_symbol (csym->name, gfc_current_ns, 1, &sym);
+ gfc_symtree *st;
+ gfc_find_sym_tree (csym->name, gfc_current_ns, 1, &st);
+ sym = st ? st->n.sym : NULL;
if (sym && csym != sym
&& sym->ns == gfc_current_ns
&& sym->attr.flavor == FL_PROCEDURE
&& sym->attr.contained)
{
sym->refs++;
- csym = sym;
- c->symtree->n.sym = sym;
+ if (csym->attr.generic)
+ c->symtree->n.sym = sym;
+ else
+ c->symtree = st;
+ csym = c->symtree->n.sym;
}
}
@@ -4326,7 +4300,12 @@ check_host_association (gfc_expr *e)
int n;
bool retval = e->expr_type == EXPR_FUNCTION;
- if (e->symtree == NULL || e->symtree->n.sym == NULL)
+ /* If the expression is the result of substitution in
+ interface.c(gfc_extend_expr) because there is no way in
+ which the host association can be wrong. */
+ if (e->symtree == NULL
+ || e->symtree->n.sym == NULL
+ || e->user_operator)
return retval;
old_sym = e->symtree->n.sym;
@@ -4334,7 +4313,7 @@ check_host_association (gfc_expr *e)
if (gfc_current_ns->parent
&& old_sym->ns != gfc_current_ns)
{
- gfc_find_symbol (old_sym->name, gfc_current_ns, 1, &sym);
+ gfc_find_symbol (e->symtree->name, gfc_current_ns, 1, &sym);
if (sym && old_sym != sym
&& sym->ts.type == old_sym->ts.type
&& sym->attr.flavor == FL_PROCEDURE
@@ -4362,6 +4341,11 @@ check_host_association (gfc_expr *e)
gfc_free (e->shape);
}
+/* TODO - Replace this gfc_match_rvalue with a straight replacement of
+ actual arglists for function to function substitutions and with a
+ conversion of the reference list to an actual arglist in the case of
+ a variable to function replacement. This should be quite easy since
+ only integers and vectors can be involved. */
gfc_match_rvalue (&expr);
gfc_clear_error ();
gfc_buffer_error (0);
@@ -9263,6 +9247,7 @@ resolve_symbol (gfc_symbol *sym)
module function and is not PRIVATE. */
if (sym->ts.type == BT_DERIVED
&& sym->ts.derived->attr.use_assoc
+ && sym->ns->proc_name
&& sym->ns->proc_name->attr.flavor == FL_MODULE)
{
gfc_symbol *ds;
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 6904960eb94..90c91ae4e85 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -1,5 +1,5 @@
/* Simplify intrinsic functions at compile-time.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
@@ -2619,6 +2619,18 @@ gfc_simplify_logical (gfc_expr *e, gfc_expr *k)
}
+gfc_expr *
+gfc_simplify_merge (gfc_expr *tsource, gfc_expr *fsource, gfc_expr *mask)
+{
+ if (tsource->expr_type != EXPR_CONSTANT
+ || fsource->expr_type != EXPR_CONSTANT
+ || mask->expr_type != EXPR_CONSTANT)
+ return NULL;
+
+ return gfc_copy_expr (mask->value.logical ? tsource : fsource);
+}
+
+
/* Selects bewteen current value and extremum for simplify_min_max
and simplify_minval_maxval. */
static void
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index 7c79ef80afa..ca9d0a3fe53 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -1,5 +1,5 @@
/* Maintain binary trees of symbols.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -3197,6 +3197,7 @@ save_symbol (gfc_symbol *sym)
if (sym->attr.in_common
|| sym->attr.dummy
+ || sym->attr.result
|| sym->attr.flavor != FL_VARIABLE)
return;
/* Automatic objects are not saved. */
@@ -4168,6 +4169,7 @@ generate_isocbinding_symbol (const char *mod_name, iso_c_binding_symbol s,
tmp_sym->result = tmp_sym;
tmp_sym->attr.external = 1;
tmp_sym->attr.use_assoc = 0;
+ tmp_sym->attr.pure = 1;
tmp_sym->attr.if_source = IFSRC_UNKNOWN;
tmp_sym->attr.proc = PROC_UNKNOWN;
}
diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c
index 72bd6eff214..dc10b53d926 100644
--- a/gcc/fortran/target-memory.c
+++ b/gcc/fortran/target-memory.c
@@ -1,5 +1,5 @@
/* Simulate storage of variables into target memory.
- Copyright (C) 2007, 2008
+ Copyright (C) 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Paul Thomas and Brooks Moses
@@ -220,8 +220,13 @@ encode_derived (gfc_expr *source, unsigned char *buffer, size_t buffer_size)
continue;
ptr = TREE_INT_CST_LOW(DECL_FIELD_OFFSET(cmp->backend_decl))
+ TREE_INT_CST_LOW(DECL_FIELD_BIT_OFFSET(cmp->backend_decl))/8;
- gfc_target_encode_expr (ctr->expr, &buffer[ptr],
- buffer_size - ptr);
+
+ if (ctr->expr->expr_type == EXPR_NULL)
+ memset (&buffer[ptr], 0,
+ int_size_in_bytes (TREE_TYPE (cmp->backend_decl)));
+ else
+ gfc_target_encode_expr (ctr->expr, &buffer[ptr],
+ buffer_size - ptr);
}
return int_size_in_bytes (type);
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 91db5df5840..af6d01a00ac 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -2791,6 +2791,7 @@ init_intent_out_dt (gfc_symbol * proc_sym, tree body)
stmtblock_t fnblock;
gfc_formal_arglist *f;
tree tmp;
+ tree present;
gfc_init_block (&fnblock);
for (f = proc_sym->formal; f; f = f->next)
@@ -2802,6 +2803,11 @@ init_intent_out_dt (gfc_symbol * proc_sym, tree body)
tmp = gfc_deallocate_alloc_comp (f->sym->ts.derived,
f->sym->backend_decl,
f->sym->as ? f->sym->as->rank : 0);
+
+ present = gfc_conv_expr_present (f->sym);
+ tmp = build3 (COND_EXPR, TREE_TYPE (tmp), present,
+ tmp, build_empty_stmt ());
+
gfc_add_expr_to_block (&fnblock, tmp);
}
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 4ecfa0839d0..5d41145df06 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -1830,7 +1830,7 @@ gfc_finish_interface_mapping (gfc_interface_mapping * mapping,
gfc_apply_interface_mapping_to_expr (mapping, expr);
gfc_init_se (&se, NULL);
gfc_conv_expr (&se, expr);
-
+ se.expr = fold_convert (gfc_charlen_type_node, se.expr);
se.expr = gfc_evaluate_now (se.expr, &se.pre);
gfc_add_block_to_block (pre, &se.pre);
gfc_add_block_to_block (post, &se.post);
@@ -4016,7 +4016,6 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
tree tmp;
tree decl;
-
gfc_start_block (&block);
gfc_init_se (&lse, NULL);
@@ -4039,15 +4038,32 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
gfc_add_block_to_block (&block, &lse.pre);
gfc_add_block_to_block (&block, &rse.pre);
+
+ /* Check character lengths if character expression. The test is only
+ really added if -fbounds-check is enabled. */
+ if (expr1->ts.type == BT_CHARACTER && expr2->expr_type != EXPR_NULL)
+ {
+ gcc_assert (expr2->ts.type == BT_CHARACTER);
+ gcc_assert (lse.string_length && rse.string_length);
+ gfc_trans_same_strlen_check ("pointer assignment", &expr1->where,
+ lse.string_length, rse.string_length,
+ &block);
+ }
+
gfc_add_modify (&block, lse.expr,
fold_convert (TREE_TYPE (lse.expr), rse.expr));
+
gfc_add_block_to_block (&block, &rse.post);
gfc_add_block_to_block (&block, &lse.post);
}
else
{
+ tree strlen_lhs;
+ tree strlen_rhs = NULL_TREE;
+
/* Array pointer. */
gfc_conv_expr_descriptor (&lse, expr1, lss);
+ strlen_lhs = lse.string_length;
switch (expr2->expr_type)
{
case EXPR_NULL:
@@ -4057,8 +4073,9 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
case EXPR_VARIABLE:
/* Assign directly to the pointer's descriptor. */
- lse.direct_byref = 1;
+ lse.direct_byref = 1;
gfc_conv_expr_descriptor (&lse, expr2, rss);
+ strlen_rhs = lse.string_length;
/* If this is a subreference array pointer assignment, use the rhs
descriptor element size for the lhs span. */
@@ -4071,7 +4088,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
tmp = gfc_get_element_type (TREE_TYPE (rse.expr));
tmp = fold_convert (gfc_array_index_type, size_in_bytes (tmp));
if (!INTEGER_CST_P (tmp))
- gfc_add_block_to_block (&lse.post, &rse.pre);
+ gfc_add_block_to_block (&lse.post, &rse.pre);
gfc_add_modify (&lse.post, GFC_DECL_SPAN(decl), tmp);
}
@@ -4086,10 +4103,23 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
lse.expr = tmp;
lse.direct_byref = 1;
gfc_conv_expr_descriptor (&lse, expr2, rss);
+ strlen_rhs = lse.string_length;
gfc_add_modify (&lse.pre, desc, tmp);
break;
- }
+ }
+
gfc_add_block_to_block (&block, &lse.pre);
+
+ /* Check string lengths if applicable. The check is only really added
+ to the output code if -fbounds-check is enabled. */
+ if (expr1->ts.type == BT_CHARACTER && expr2->expr_type != EXPR_NULL)
+ {
+ gcc_assert (expr2->ts.type == BT_CHARACTER);
+ gcc_assert (strlen_lhs && strlen_rhs);
+ gfc_trans_same_strlen_check ("pointer assignment", &expr1->where,
+ strlen_lhs, strlen_rhs, &block);
+ }
+
gfc_add_block_to_block (&block, &lse.post);
}
return gfc_finish_block (&block);
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 629ec0afb03..e006ea718a8 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -746,6 +746,35 @@ gfc_conv_intrinsic_lib_function (gfc_se * se, gfc_expr * expr)
se->expr = build_call_array (rettype, fndecl, num_args, args);
}
+
+/* If bounds-checking is enabled, create code to verify at runtime that the
+ string lengths for both expressions are the same (needed for e.g. MERGE).
+ If bounds-checking is not enabled, does nothing. */
+
+void
+gfc_trans_same_strlen_check (const char* intr_name, locus* where,
+ tree a, tree b, stmtblock_t* target)
+{
+ tree cond;
+ tree name;
+
+ /* If bounds-checking is disabled, do nothing. */
+ if (!flag_bounds_check)
+ return;
+
+ /* Compare the two string lengths. */
+ cond = fold_build2 (NE_EXPR, boolean_type_node, a, b);
+
+ /* Output the runtime-check. */
+ name = gfc_build_cstring_const (intr_name);
+ name = gfc_build_addr_expr (pchar_type_node, name);
+ gfc_trans_runtime_check (true, false, cond, target, where,
+ "Unequal character lengths (%ld/%ld) in %s",
+ fold_convert (long_integer_type_node, a),
+ fold_convert (long_integer_type_node, b), name);
+}
+
+
/* The EXPONENT(s) intrinsic function is translated into
int ret;
frexp (s, &ret);
@@ -3026,7 +3055,7 @@ gfc_conv_intrinsic_merge (gfc_se * se, gfc_expr * expr)
tree fsource;
tree mask;
tree type;
- tree len;
+ tree len, len2;
tree *args;
unsigned int num_args;
@@ -3047,9 +3076,12 @@ gfc_conv_intrinsic_merge (gfc_se * se, gfc_expr * expr)
also have to set the string length for the result. */
len = args[0];
tsource = args[1];
+ len2 = args[2];
fsource = args[3];
mask = args[4];
+ gfc_trans_same_strlen_check ("MERGE intrinsic", &expr->where, len, len2,
+ &se->pre);
se->string_length = len;
}
type = TREE_TYPE (tsource);
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 9505dfb67eb..031fe88a496 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1,5 +1,5 @@
/* Statement translation -- generate GCC trees from gfc_code.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Paul Brook <paul@nowt.org>
and Steven Bosscher <s.bosscher@student.tudelft.nl>
@@ -386,6 +386,7 @@ gfc_trans_call (gfc_code * code, bool dependency_check)
stmtblock_t body;
stmtblock_t block;
gfc_se loopse;
+ gfc_se depse;
/* gfc_walk_elemental_function_args renders the ss chain in the
reverse order to the actual argument order. */
@@ -413,9 +414,14 @@ gfc_trans_call (gfc_code * code, bool dependency_check)
check_variable = ELEM_CHECK_VARIABLE;
else
check_variable = ELEM_DONT_CHECK_VARIABLE;
- gfc_conv_elemental_dependencies (&se, &loopse, code->resolved_sym,
+
+ gfc_init_se (&depse, NULL);
+ gfc_conv_elemental_dependencies (&depse, &loopse, code->resolved_sym,
code->ext.actual, check_variable);
+ gfc_add_block_to_block (&loop.pre, &depse.pre);
+ gfc_add_block_to_block (&loop.post, &depse.post);
+
/* Generate the loop body. */
gfc_start_scalarized_body (&loop, &body);
gfc_init_block (&block);
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index e1ff5aadde5..de76486ab03 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1,5 +1,5 @@
/* Backend support for Fortran 95 basic types and derived types.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Paul Brook <paul@nowt.org>
and Steven Bosscher <s.bosscher@student.tudelft.nl>
@@ -1930,7 +1930,8 @@ gfc_get_derived_type (gfc_symbol * derived)
gfc_finish_type (typenode);
gfc_set_decl_location (TYPE_STUB_DECL (typenode), &derived->declared_at);
- if (derived->module && derived->ns->proc_name->attr.flavor == FL_MODULE)
+ if (derived->module && derived->ns->proc_name
+ && derived->ns->proc_name->attr.flavor == FL_MODULE)
{
if (derived->ns->proc_name->backend_decl
&& TREE_CODE (derived->ns->proc_name->backend_decl)
diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h
index 23d61ea04d9..aa217751a33 100644
--- a/gcc/fortran/trans.h
+++ b/gcc/fortran/trans.h
@@ -458,6 +458,10 @@ tree gfc_trans_runtime_error_vararg (bool, locus*, const char*, va_list);
void gfc_trans_runtime_check (bool, bool, tree, stmtblock_t *, locus *,
const char *, ...);
+/* Generate a runtime check for same string length. */
+void gfc_trans_same_strlen_check (const char*, locus*, tree, tree,
+ stmtblock_t*);
+
/* Generate a call to free() after checking that its arg is non-NULL. */
tree gfc_call_free (tree);
diff --git a/gcc/function.c b/gcc/function.c
index 29fe1b0b52d..7701042c77d 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -132,61 +132,6 @@ static VEC(int,heap) *epilogue;
in this function. */
static VEC(int,heap) *sibcall_epilogue;
-/* In order to evaluate some expressions, such as function calls returning
- structures in memory, we need to temporarily allocate stack locations.
- We record each allocated temporary in the following structure.
-
- Associated with each temporary slot is a nesting level. When we pop up
- one level, all temporaries associated with the previous level are freed.
- Normally, all temporaries are freed after the execution of the statement
- in which they were created. However, if we are inside a ({...}) grouping,
- the result may be in a temporary and hence must be preserved. If the
- result could be in a temporary, we preserve it if we can determine which
- one it is in. If we cannot determine which temporary may contain the
- result, all temporaries are preserved. A temporary is preserved by
- pretending it was allocated at the previous nesting level.
-
- Automatic variables are also assigned temporary slots, at the nesting
- level where they are defined. They are marked a "kept" so that
- free_temp_slots will not free them. */
-
-struct temp_slot GTY(())
-{
- /* Points to next temporary slot. */
- struct temp_slot *next;
- /* Points to previous temporary slot. */
- struct temp_slot *prev;
-
- /* The rtx to used to reference the slot. */
- rtx slot;
- /* The rtx used to represent the address if not the address of the
- slot above. May be an EXPR_LIST if multiple addresses exist. */
- rtx address;
- /* The alignment (in bits) of the slot. */
- unsigned int align;
- /* The size, in units, of the slot. */
- HOST_WIDE_INT size;
- /* The type of the object in the slot, or zero if it doesn't correspond
- to a type. We use this to determine whether a slot can be reused.
- It can be reused if objects of the type of the new slot will always
- conflict with objects of the type of the old slot. */
- tree type;
- /* Nonzero if this temporary is currently in use. */
- char in_use;
- /* Nonzero if this temporary has its address taken. */
- char addr_taken;
- /* Nesting level at which this slot is being used. */
- int level;
- /* Nonzero if this should survive a call to free_temp_slots. */
- int keep;
- /* The offset of the slot from the frame_pointer, including extra space
- for alignment. This info is for combine_temp_slots. */
- HOST_WIDE_INT base_offset;
- /* The size of the slot, including extra space for alignment. This
- info is for combine_temp_slots. */
- HOST_WIDE_INT full_size;
-};
-
/* Forward declarations. */
static struct temp_slot *find_temp_slot_from_address (rtx);
@@ -486,6 +431,70 @@ assign_stack_local (enum machine_mode mode, HOST_WIDE_INT size, int align)
return assign_stack_local_1 (mode, size, align, false);
}
+
+/* In order to evaluate some expressions, such as function calls returning
+ structures in memory, we need to temporarily allocate stack locations.
+ We record each allocated temporary in the following structure.
+
+ Associated with each temporary slot is a nesting level. When we pop up
+ one level, all temporaries associated with the previous level are freed.
+ Normally, all temporaries are freed after the execution of the statement
+ in which they were created. However, if we are inside a ({...}) grouping,
+ the result may be in a temporary and hence must be preserved. If the
+ result could be in a temporary, we preserve it if we can determine which
+ one it is in. If we cannot determine which temporary may contain the
+ result, all temporaries are preserved. A temporary is preserved by
+ pretending it was allocated at the previous nesting level.
+
+ Automatic variables are also assigned temporary slots, at the nesting
+ level where they are defined. They are marked a "kept" so that
+ free_temp_slots will not free them. */
+
+struct temp_slot GTY(())
+{
+ /* Points to next temporary slot. */
+ struct temp_slot *next;
+ /* Points to previous temporary slot. */
+ struct temp_slot *prev;
+ /* The rtx to used to reference the slot. */
+ rtx slot;
+ /* The alignment (in bits) of the slot. */
+ unsigned int align;
+ /* The size, in units, of the slot. */
+ HOST_WIDE_INT size;
+ /* The type of the object in the slot, or zero if it doesn't correspond
+ to a type. We use this to determine whether a slot can be reused.
+ It can be reused if objects of the type of the new slot will always
+ conflict with objects of the type of the old slot. */
+ tree type;
+ /* Nonzero if this temporary is currently in use. */
+ char in_use;
+ /* Nonzero if this temporary has its address taken. */
+ char addr_taken;
+ /* Nesting level at which this slot is being used. */
+ int level;
+ /* Nonzero if this should survive a call to free_temp_slots. */
+ int keep;
+ /* The offset of the slot from the frame_pointer, including extra space
+ for alignment. This info is for combine_temp_slots. */
+ HOST_WIDE_INT base_offset;
+ /* The size of the slot, including extra space for alignment. This
+ info is for combine_temp_slots. */
+ HOST_WIDE_INT full_size;
+};
+
+/* A table of addresses that represent a stack slot. The table is a mapping
+ from address RTXen to a temp slot. */
+static GTY((param_is(struct temp_slot_address_entry))) htab_t temp_slot_address_table;
+
+/* Entry for the above hash table. */
+struct temp_slot_address_entry GTY(())
+{
+ hashval_t hash;
+ rtx address;
+ struct temp_slot *temp_slot;
+};
+
/* Removes temporary slot TEMP from LIST. */
static void
@@ -555,6 +564,114 @@ make_slot_available (struct temp_slot *temp)
temp->in_use = 0;
temp->level = -1;
}
+
+/* Compute the hash value for an address -> temp slot mapping.
+ The value is cached on the mapping entry. */
+static hashval_t
+temp_slot_address_compute_hash (struct temp_slot_address_entry *t)
+{
+ int do_not_record = 0;
+ return hash_rtx (t->address, GET_MODE (t->address),
+ &do_not_record, NULL, false);
+}
+
+/* Return the hash value for an address -> temp slot mapping. */
+static hashval_t
+temp_slot_address_hash (const void *p)
+{
+ const struct temp_slot_address_entry *t;
+ t = (const struct temp_slot_address_entry *) p;
+ return t->hash;
+}
+
+/* Compare two address -> temp slot mapping entries. */
+static int
+temp_slot_address_eq (const void *p1, const void *p2)
+{
+ const struct temp_slot_address_entry *t1, *t2;
+ t1 = (const struct temp_slot_address_entry *) p1;
+ t2 = (const struct temp_slot_address_entry *) p2;
+ return exp_equiv_p (t1->address, t2->address, 0, true);
+}
+
+/* Add ADDRESS as an alias of TEMP_SLOT to the addess -> temp slot mapping. */
+static void
+insert_temp_slot_address (rtx address, struct temp_slot *temp_slot)
+{
+ void **slot;
+ struct temp_slot_address_entry *t = GGC_NEW (struct temp_slot_address_entry);
+ t->address = address;
+ t->temp_slot = temp_slot;
+ t->hash = temp_slot_address_compute_hash (t);
+ slot = htab_find_slot_with_hash (temp_slot_address_table, t, t->hash, INSERT);
+ *slot = t;
+}
+
+/* Remove an address -> temp slot mapping entry if the temp slot is
+ not in use anymore. Callback for remove_unused_temp_slot_addresses. */
+static int
+remove_unused_temp_slot_addresses_1 (void **slot, void *data ATTRIBUTE_UNUSED)
+{
+ const struct temp_slot_address_entry *t;
+ t = (const struct temp_slot_address_entry *) *slot;
+ if (! t->temp_slot->in_use)
+ *slot = NULL;
+ return 1;
+}
+
+/* Remove all mappings of addresses to unused temp slots. */
+static void
+remove_unused_temp_slot_addresses (void)
+{
+ htab_traverse (temp_slot_address_table,
+ remove_unused_temp_slot_addresses_1,
+ NULL);
+}
+
+/* Find the temp slot corresponding to the object at address X. */
+
+static struct temp_slot *
+find_temp_slot_from_address (rtx x)
+{
+ struct temp_slot *p;
+ struct temp_slot_address_entry tmp, *t;
+
+ /* First try the easy way:
+ See if X exists in the address -> temp slot mapping. */
+ tmp.address = x;
+ tmp.temp_slot = NULL;
+ tmp.hash = temp_slot_address_compute_hash (&tmp);
+ t = (struct temp_slot_address_entry *)
+ htab_find_with_hash (temp_slot_address_table, &tmp, tmp.hash);
+ if (t)
+ return t->temp_slot;
+
+ /* If we have a sum involving a register, see if it points to a temp
+ slot. */
+ if (GET_CODE (x) == PLUS && REG_P (XEXP (x, 0))
+ && (p = find_temp_slot_from_address (XEXP (x, 0))) != 0)
+ return p;
+ else if (GET_CODE (x) == PLUS && REG_P (XEXP (x, 1))
+ && (p = find_temp_slot_from_address (XEXP (x, 1))) != 0)
+ return p;
+
+ /* Last resort: Address is a virtual stack var address. */
+ if (GET_CODE (x) == PLUS
+ && XEXP (x, 0) == virtual_stack_vars_rtx
+ && GET_CODE (XEXP (x, 1)) == CONST_INT)
+ {
+ int i;
+ for (i = max_slot_level (); i >= 0; i--)
+ for (p = *temp_slots_at_level (i); p; p = p->next)
+ {
+ if (INTVAL (XEXP (x, 1)) >= p->base_offset
+ && INTVAL (XEXP (x, 1)) < p->base_offset + p->full_size)
+ return p;
+ }
+ }
+
+ return NULL;
+}
/* Allocate a temporary stack slot and record it for possible later
reuse.
@@ -641,7 +758,6 @@ assign_stack_temp_for_type (enum machine_mode mode, HOST_WIDE_INT size,
p->full_size = best_p->full_size - rounded_size;
p->slot = adjust_address_nv (best_p->slot, BLKmode, rounded_size);
p->align = best_p->align;
- p->address = 0;
p->type = best_p->type;
insert_slot_to_list (p, &avail_temp_slots);
@@ -700,7 +816,6 @@ assign_stack_temp_for_type (enum machine_mode mode, HOST_WIDE_INT size,
p->base_offset = frame_offset_old;
p->full_size = frame_offset - frame_offset_old;
}
- p->address = 0;
selected = p;
}
@@ -714,6 +829,7 @@ assign_stack_temp_for_type (enum machine_mode mode, HOST_WIDE_INT size,
pp = temp_slots_at_level (p->level);
insert_slot_to_list (p, pp);
+ insert_temp_slot_address (XEXP (p->slot, 0), p);
/* Create a new MEM rtx to avoid clobbering MEM flags of old slots. */
slot = gen_rtx_MEM (mode, XEXP (p->slot, 0));
@@ -882,45 +998,6 @@ combine_temp_slots (void)
}
}
-/* Find the temp slot corresponding to the object at address X. */
-
-static struct temp_slot *
-find_temp_slot_from_address (rtx x)
-{
- struct temp_slot *p;
- rtx next;
- int i;
-
- for (i = max_slot_level (); i >= 0; i--)
- for (p = *temp_slots_at_level (i); p; p = p->next)
- {
- if (XEXP (p->slot, 0) == x
- || p->address == x
- || (GET_CODE (x) == PLUS
- && XEXP (x, 0) == virtual_stack_vars_rtx
- && GET_CODE (XEXP (x, 1)) == CONST_INT
- && INTVAL (XEXP (x, 1)) >= p->base_offset
- && INTVAL (XEXP (x, 1)) < p->base_offset + p->full_size))
- return p;
-
- else if (p->address != 0 && GET_CODE (p->address) == EXPR_LIST)
- for (next = p->address; next; next = XEXP (next, 1))
- if (XEXP (next, 0) == x)
- return p;
- }
-
- /* If we have a sum involving a register, see if it points to a temp
- slot. */
- if (GET_CODE (x) == PLUS && REG_P (XEXP (x, 0))
- && (p = find_temp_slot_from_address (XEXP (x, 0))) != 0)
- return p;
- else if (GET_CODE (x) == PLUS && REG_P (XEXP (x, 1))
- && (p = find_temp_slot_from_address (XEXP (x, 1))) != 0)
- return p;
-
- return 0;
-}
-
/* Indicate that NEW_RTX is an alternate way of referring to the temp
slot that previously was known by OLD_RTX. */
@@ -967,15 +1044,7 @@ update_temp_slot_address (rtx old_rtx, rtx new_rtx)
}
/* Otherwise add an alias for the temp's address. */
- else if (p->address == 0)
- p->address = new_rtx;
- else
- {
- if (GET_CODE (p->address) != EXPR_LIST)
- p->address = gen_rtx_EXPR_LIST (VOIDmode, p->address, NULL_RTX);
-
- p->address = gen_rtx_EXPR_LIST (VOIDmode, new_rtx, p->address);
- }
+ insert_temp_slot_address (new_rtx, p);
}
/* If X could be a reference to a temporary slot, mark the fact that its
@@ -1103,6 +1172,7 @@ free_temp_slots (void)
make_slot_available (p);
}
+ remove_unused_temp_slot_addresses ();
combine_temp_slots ();
}
@@ -1128,6 +1198,7 @@ pop_temp_slots (void)
make_slot_available (p);
}
+ remove_unused_temp_slot_addresses ();
combine_temp_slots ();
temp_slot_level--;
@@ -1142,6 +1213,15 @@ init_temp_slots (void)
avail_temp_slots = 0;
used_temp_slots = 0;
temp_slot_level = 0;
+
+ /* Set up the table to map addresses to temp slots. */
+ if (! temp_slot_address_table)
+ temp_slot_address_table = htab_create_ggc (32,
+ temp_slot_address_hash,
+ temp_slot_address_eq,
+ NULL);
+ else
+ htab_empty (temp_slot_address_table);
}
/* These routines are responsible for converting virtual register references
@@ -4035,6 +4115,7 @@ static void
prepare_function_start (void)
{
gcc_assert (!crtl->emit.x_last_insn);
+ init_temp_slots ();
init_emit ();
init_varasm_status ();
init_expr ();
diff --git a/gcc/function.h b/gcc/function.h
index 68df55e1a6e..f78d737b05f 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -444,6 +444,9 @@ struct rtl_data GTY(())
/* Nonzero if function stack realignment has been finalized, namely
stack_realign_needed flag has been set and finalized after reload. */
bool stack_realign_finalized;
+
+ /* True if dbr_schedule has already been called for this function. */
+ bool dbr_scheduled_p;
};
#define return_label (crtl->x_return_label)
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 5481d0d4f44..e85d25de708 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1,6 +1,6 @@
/* Compiler driver program that can handle many languages.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -3371,8 +3371,10 @@ process_command (int argc, const char **argv)
Use heuristic that all configuration names must have at least
one dash '-'. This allows us to pass options starting with -b. */
if (argc > 1 && argv[1][0] == '-'
- && (argv[1][1] == 'V' ||
- ((argv[1][1] == 'b') && (NULL != strchr(argv[1] + 2,'-')))))
+ && (argv[1][1] == 'V'
+ || (argv[1][1] == 'b'
+ && (argv[1][2] == '\0'
+ || NULL != strchr (argv[1] + 2, '-')))))
{
const char *new_version = DEFAULT_TARGET_VERSION;
const char *new_machine = DEFAULT_TARGET_MACHINE;
@@ -3380,10 +3382,15 @@ process_command (int argc, const char **argv)
char **new_argv;
char *new_argv0;
int baselen;
+ int status = 0;
+ int err = 0;
+ const char *errmsg;
while (argc > 1 && argv[1][0] == '-'
- && (argv[1][1] == 'V' ||
- ((argv[1][1] == 'b') && ( NULL != strchr(argv[1] + 2,'-')))))
+ && (argv[1][1] == 'V'
+ || (argv[1][1] == 'b'
+ && (argv[1][2] == '\0'
+ || NULL != strchr (argv[1] + 2, '-')))))
{
char opt = argv[1][1];
const char *arg;
@@ -3420,8 +3427,18 @@ process_command (int argc, const char **argv)
new_argv = XDUPVEC (char *, argv, argc + 1);
new_argv[0] = new_argv0;
- execvp (new_argv0, new_argv);
- fatal ("couldn't run '%s': %s", new_argv0, xstrerror (errno));
+ errmsg = pex_one (PEX_SEARCH, new_argv0, new_argv, progname, NULL,
+ NULL, &status, &err);
+
+ if (errmsg)
+ {
+ if (err == 0)
+ fatal ("couldn't run '%s': %s", new_argv0, errmsg);
+ else
+ fatal ("couldn't run '%s': %s: %s", new_argv0, errmsg,
+ xstrerror (err));
+ }
+ exit (status);
}
/* Set up the default search paths. If there is no GCC_EXEC_PREFIX,
@@ -3842,7 +3859,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
switch (c)
{
case 'b':
- if (NULL == strchr(argv[i] + 2, '-'))
+ if (p[1] && NULL == strchr (argv[i] + 2, '-'))
goto normal_switch;
/* Fall through. */
diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l
index 822c84cbed4..027ba4d87ef 100644
--- a/gcc/gengtype-lex.l
+++ b/gcc/gengtype-lex.l
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "gengtype.h"
+#define YY_NO_INPUT
#define YY_DECL int yylex (const char **yylval)
#define yyterminate() return EOF_TOKEN
diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c
index d334d856982..733a449cace 100644
--- a/gcc/gimple-pretty-print.c
+++ b/gcc/gimple-pretty-print.c
@@ -1,5 +1,5 @@
/* Pretty formatting of GIMPLE statements and expressions.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com> and
Diego Novillo <dnovillo@google.com>
@@ -257,10 +257,17 @@ dump_unary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
case FIX_TRUNC_EXPR:
case FLOAT_EXPR:
CASE_CONVERT:
- pp_string (buffer, "(");
+ pp_character (buffer, '(');
dump_generic_node (buffer, TREE_TYPE (lhs), spc, flags, false);
pp_string (buffer, ") ");
- dump_generic_node (buffer, rhs, spc, flags, false);
+ if (op_prio (rhs) < op_code_prio (rhs_code))
+ {
+ pp_character (buffer, '(');
+ dump_generic_node (buffer, rhs, spc, flags, false);
+ pp_character (buffer, ')');
+ }
+ else
+ dump_generic_node (buffer, rhs, spc, flags, false);
break;
case PAREN_EXPR:
@@ -272,7 +279,7 @@ dump_unary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
case ABS_EXPR:
pp_string (buffer, "ABS_EXPR <");
dump_generic_node (buffer, rhs, spc, flags, false);
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
break;
default:
@@ -282,21 +289,31 @@ dump_unary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
|| rhs_code == SSA_NAME
|| rhs_code == ADDR_EXPR
|| rhs_code == CONSTRUCTOR)
- ; /* do nothing. */
+ {
+ dump_generic_node (buffer, rhs, spc, flags, false);
+ break;
+ }
else if (rhs_code == BIT_NOT_EXPR)
- pp_string (buffer, "~");
+ pp_character (buffer, '~');
else if (rhs_code == TRUTH_NOT_EXPR)
- pp_string (buffer, "!");
+ pp_character (buffer, '!');
else if (rhs_code == NEGATE_EXPR)
- pp_string (buffer, "-");
+ pp_character (buffer, '-');
else
{
- pp_string (buffer, "[");
+ pp_character (buffer, '[');
pp_string (buffer, tree_code_name [rhs_code]);
pp_string (buffer, "] ");
}
- dump_generic_node (buffer, rhs, spc, flags, false);
+ if (op_prio (rhs) < op_code_prio (rhs_code))
+ {
+ pp_character (buffer, '(');
+ dump_generic_node (buffer, rhs, spc, flags, false);
+ pp_character (buffer, ')');
+ }
+ else
+ dump_generic_node (buffer, rhs, spc, flags, false);
break;
}
}
@@ -308,38 +325,53 @@ dump_unary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
static void
dump_binary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
{
- switch (gimple_assign_rhs_code (gs))
+ const char *p;
+ enum tree_code code = gimple_assign_rhs_code (gs);
+ switch (code)
{
case COMPLEX_EXPR:
- pp_string (buffer, "COMPLEX_EXPR <");
- dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
- pp_string (buffer, ", ");
- dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags, false);
- pp_string (buffer, ">");
- break;
-
case MIN_EXPR:
- pp_string (buffer, "MIN_EXPR <");
- dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
- pp_string (buffer, ", ");
- dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags, false);
- pp_string (buffer, ">");
- break;
-
case MAX_EXPR:
- pp_string (buffer, "MAX_EXPR <");
+ case VEC_WIDEN_MULT_HI_EXPR:
+ case VEC_WIDEN_MULT_LO_EXPR:
+ case VEC_PACK_TRUNC_EXPR:
+ case VEC_PACK_SAT_EXPR:
+ case VEC_PACK_FIX_TRUNC_EXPR:
+ case VEC_EXTRACT_EVEN_EXPR:
+ case VEC_EXTRACT_ODD_EXPR:
+ case VEC_INTERLEAVE_HIGH_EXPR:
+ case VEC_INTERLEAVE_LOW_EXPR:
+ for (p = tree_code_name [(int) code]; *p; p++)
+ pp_character (buffer, TOUPPER (*p));
+ pp_string (buffer, " <");
dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
pp_string (buffer, ", ");
dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags, false);
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
break;
default:
- dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
+ if (op_prio (gimple_assign_rhs1 (gs)) <= op_code_prio (code))
+ {
+ pp_character (buffer, '(');
+ dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags,
+ false);
+ pp_character (buffer, ')');
+ }
+ else
+ dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
pp_space (buffer);
pp_string (buffer, op_symbol_code (gimple_assign_rhs_code (gs)));
pp_space (buffer);
- dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags, false);
+ if (op_prio (gimple_assign_rhs2 (gs)) <= op_code_prio (code))
+ {
+ pp_character (buffer, '(');
+ dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags,
+ false);
+ pp_character (buffer, ')');
+ }
+ else
+ dump_generic_node (buffer, gimple_assign_rhs2 (gs), spc, flags, false);
}
}
@@ -462,7 +494,7 @@ dump_gimple_call (pretty_printer *buffer, gimple gs, int spc, int flags)
pp_string (buffer, ", ");
dump_gimple_call_args (buffer, gs, flags);
}
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
}
else
{
@@ -479,7 +511,7 @@ dump_gimple_call (pretty_printer *buffer, gimple gs, int spc, int flags)
dump_generic_node (buffer, gimple_call_fn (gs), spc, flags, false);
pp_string (buffer, " (");
dump_gimple_call_args (buffer, gs, flags);
- pp_string (buffer, ")");
+ pp_character (buffer, ')');
if (!(flags & TDF_RHS_ONLY))
pp_semicolon (buffer);
}
@@ -525,12 +557,12 @@ dump_gimple_switch (pretty_printer *buffer, gimple gs, int spc, int flags)
continue;
dump_generic_node (buffer, case_label, spc, flags, false);
- pp_string (buffer, " ");
+ pp_character (buffer, ' ');
dump_generic_node (buffer, CASE_LABEL (case_label), spc, flags, false);
if (i < gimple_switch_num_labels (gs) - 1)
pp_string (buffer, ", ");
}
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
}
@@ -556,7 +588,7 @@ dump_gimple_cond (pretty_printer *buffer, gimple gs, int spc, int flags)
dump_generic_node (buffer, gimple_cond_rhs (gs), spc, flags, false);
if (!(flags & TDF_RHS_ONLY))
{
- pp_string (buffer, ")");
+ pp_character (buffer, ')');
if (gimple_cond_true_label (gs))
{
@@ -590,7 +622,7 @@ dump_gimple_label (pretty_printer *buffer, gimple gs, int spc, int flags)
else
{
dump_generic_node (buffer, label, spc, flags, false);
- pp_string (buffer, ":");
+ pp_character (buffer, ':');
}
if (DECL_NONLOCAL (label))
pp_string (buffer, " [non-local]");
@@ -668,26 +700,26 @@ dump_gimple_try (pretty_printer *buffer, gimple gs, int spc, int flags)
{
pp_string (buffer, "try");
newline_and_indent (buffer, spc + 2);
- pp_string (buffer, "{");
+ pp_character (buffer, '{');
pp_newline (buffer);
dump_gimple_seq (buffer, gimple_try_eval (gs), spc + 4, flags);
newline_and_indent (buffer, spc + 2);
- pp_string (buffer, "}");
+ pp_character (buffer, '}');
if (gimple_try_kind (gs) == GIMPLE_TRY_CATCH)
{
newline_and_indent (buffer, spc);
pp_string (buffer, "catch");
newline_and_indent (buffer, spc + 2);
- pp_string (buffer, "{");
+ pp_character (buffer, '{');
}
else if (gimple_try_kind (gs) == GIMPLE_TRY_FINALLY)
{
newline_and_indent (buffer, spc);
pp_string (buffer, "finally");
newline_and_indent (buffer, spc + 2);
- pp_string (buffer, "{");
+ pp_character (buffer, '{');
}
else
pp_string (buffer, " <UNKNOWN GIMPLE_TRY> {");
@@ -1119,10 +1151,10 @@ dump_symbols (pretty_printer *buffer, bitmap syms, int flags)
{
tree sym = referenced_var_lookup (i);
dump_generic_node (buffer, sym, 0, flags, false);
- pp_string (buffer, " ");
+ pp_character (buffer, ' ');
}
- pp_string (buffer, "}");
+ pp_character (buffer, '}');
}
}
@@ -1147,13 +1179,13 @@ dump_gimple_phi (pretty_printer *buffer, gimple phi, int spc, int flags)
{
dump_generic_node (buffer, gimple_phi_arg_def (phi, i), spc, flags,
false);
- pp_string (buffer, "(");
+ pp_character (buffer, '(');
pp_decimal_int (buffer, gimple_phi_arg_edge (phi, i)->src->index);
- pp_string (buffer, ")");
+ pp_character (buffer, ')');
if (i < gimple_phi_num_args (phi) - 1)
pp_string (buffer, ", ");
}
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
}
@@ -1391,7 +1423,7 @@ dump_gimple_mem_ops (pretty_printer *buffer, gimple gs, int spc, int flags)
pp_string (buffer, ", ");
}
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
if (flags & TDF_MEMSYMS)
dump_symbols (buffer, gimple_loaded_syms (gs), flags);
@@ -1415,7 +1447,7 @@ dump_gimple_mem_ops (pretty_printer *buffer, gimple gs, int spc, int flags)
pp_string (buffer, ", ");
}
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
if ((flags & TDF_MEMSYMS) && vdefs->next == NULL)
dump_symbols (buffer, gimple_stored_syms (gs), flags);
@@ -1640,7 +1672,7 @@ dump_bb_header (pretty_printer *buffer, basic_block bb, int indent, int flags)
FOR_EACH_EDGE (e, ei, bb->preds)
if (flags & TDF_SLIM)
{
- pp_string (buffer, " ");
+ pp_character (buffer, ' ');
if (e->src == ENTRY_BLOCK_PTR)
pp_string (buffer, "ENTRY");
else
@@ -1682,7 +1714,7 @@ dump_bb_end (pretty_printer *buffer, basic_block bb, int indent, int flags)
FOR_EACH_EDGE (e, ei, bb->succs)
if (flags & TDF_SLIM)
{
- pp_string (buffer, " ");
+ pp_character (buffer, ' ');
if (e->dest == EXIT_BLOCK_PTR)
pp_string (buffer, "EXIT");
else
@@ -1728,12 +1760,12 @@ pp_cfg_jump (pretty_printer *buffer, basic_block bb)
pp_string (buffer, "goto <bb ");
pp_decimal_int (buffer, bb->index);
- pp_string (buffer, ">");
+ pp_character (buffer, '>');
if (stmt && gimple_code (stmt) == GIMPLE_LABEL)
{
pp_string (buffer, " (");
dump_generic_node (buffer, gimple_label_label (stmt), 0, 0, false);
- pp_string (buffer, ")");
+ pp_character (buffer, ')');
pp_semicolon (buffer);
}
else
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 8f8e49b61b3..7760e247aa9 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -297,7 +297,9 @@ struct gimple_statement_base GTY(())
in there. */
unsigned int subcode : 16;
- /* UID of this statement. */
+ /* UID of this statement. This is used by passes that want to
+ assign IDs to statements. It must be assigned and used by each
+ pass. By default it should be assumed to contain garbage. */
unsigned uid;
/* [ WORD 2 ]
@@ -1204,7 +1206,7 @@ gimple_plf (gimple stmt, enum plf_mask plf)
}
-/* Set the uid of statement */
+/* Set the UID of statement. */
static inline void
gimple_set_uid (gimple g, unsigned uid)
@@ -1213,7 +1215,7 @@ gimple_set_uid (gimple g, unsigned uid)
}
-/* Return the uid of statement */
+/* Return the UID of statement. */
static inline unsigned
gimple_uid (const_gimple g)
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 607743b73f0..5aef12875aa 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -3610,7 +3610,9 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
else
align = TYPE_ALIGN (type);
- if (size > 0 && !can_move_by_pieces (size, align))
+ if (size > 0
+ && num_nonzero_elements > 1
+ && !can_move_by_pieces (size, align))
{
tree new_tree;
@@ -7378,6 +7380,10 @@ gimple_regimplify_operands (gimple stmt, gimple_stmt_iterator *gsi_p)
gimplify_expr (gimple_cond_rhs_ptr (stmt), &pre, NULL,
is_gimple_val, fb_rvalue);
break;
+ case GIMPLE_SWITCH:
+ gimplify_expr (gimple_switch_index_ptr (stmt), &pre, NULL,
+ is_gimple_val, fb_rvalue);
+ break;
case GIMPLE_OMP_ATOMIC_LOAD:
gimplify_expr (gimple_omp_atomic_load_rhs_ptr (stmt), &pre, NULL,
is_gimple_val, fb_rvalue);
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
index 5d9f918e838..e6b1bfbb184 100644
--- a/gcc/ginclude/float.h
+++ b/gcc/ginclude/float.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2007, 2009 Free Software Foundation, Inc.
This file is part of GCC.
@@ -214,13 +214,13 @@ Boston, MA 02110-1301, USA. */
#define DEC64_MIN __DEC64_MIN__
#define DEC128_MIN __DEC128_MIN__
-/* Minimum denormalized positive floating-point number. */
-#undef DEC32_DEN
-#undef DEC64_DEN
-#undef DEC128_DEN
-#define DEC32_DEN __DEC32_DEN__
-#define DEC64_DEN __DEC64_DEN__
-#define DEC128_DEN __DEC128_DEN__
+/* Minimum subnormal positive floating-point number. */
+#undef DEC32_SUBNORMAL_MIN
+#undef DEC64_SUBNORMAL_MIN
+#undef DEC128_SUBNORMAL_MIN
+#define DEC32_SUBNORMAL_MIN __DEC32_SUBNORMAL_MIN__
+#define DEC64_SUBNORMAL_MIN __DEC64_SUBNORMAL_MIN__
+#define DEC128_SUBNORMAL_MIN __DEC128_SUBNORMAL_MIN__
/* The floating-point expression evaluation method.
-1 indeterminate
diff --git a/gcc/global.c b/gcc/global.c
index 824fcf0f702..abf070d91c2 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
#include "vecprim.h"
#include "dbgcnt.h"
#include "ra.h"
+#include "ira.h"
/* This pass of the compiler performs global register allocation.
It assigns hard register numbers to all the pseudo registers
@@ -1394,7 +1395,7 @@ pseudo_for_reload_consideration_p (int regno)
/* Consider spilled pseudos too for IRA because they still have a
chance to get hard-registers in the reload when IRA is used. */
return (reg_renumber[regno] >= 0
- || (flag_ira && optimize && flag_ira_share_spill_slots));
+ || (flag_ira && ira_conflicts_p && flag_ira_share_spill_slots));
}
/* Walk the insns of the current function and build reload_insn_chain,
@@ -1483,7 +1484,7 @@ build_insn_chain (void)
if ((regno < FIRST_PSEUDO_REGISTER
|| reg_renumber[regno] >= 0
- || (flag_ira && optimize))
+ || (flag_ira && ira_conflicts_p))
&& (!DF_REF_FLAGS_IS_SET (def, DF_REF_CONDITIONAL)))
{
rtx reg = DF_REF_REG (def);
diff --git a/gcc/graphite.c b/gcc/graphite.c
index 78485a2c833..116349b7202 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -1,5 +1,5 @@
/* Gimple Represented as Polyhedra.
- Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Sebastian Pop <sebastian.pop@inria.fr>.
This file is part of GCC.
@@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-scalar-evolution.h"
#include "tree-pass.h"
#include "domwalk.h"
+#include "value-prof.h"
#include "pointer-set.h"
#include "gimple.h"
@@ -63,9 +64,9 @@ static VEC (scop_p, heap) *current_scops;
/* Converts a GMP constant V to a tree and returns it. */
static tree
-gmp_cst_to_tree (Value v)
+gmp_cst_to_tree (tree type, Value v)
{
- return build_int_cst (integer_type_node, value_get_si (v));
+ return build_int_cst (type, value_get_si (v));
}
/* Debug the list of old induction variables for this SCOP. */
@@ -167,13 +168,9 @@ static tree
loop_iv_stack_get_iv (loop_iv_stack stack, int index)
{
iv_stack_entry_p entry = VEC_index (iv_stack_entry_p, *stack, index);
+ iv_stack_entry_data data = entry->data;
- tree result = NULL;
-
- if (entry->kind != iv_stack_entry_const)
- result = entry->data.iv->t;
-
- return result;
+ return iv_stack_entry_is_iv (entry) ? data.iv->t : data.constant;
}
/* Get the IV from its NAME in STACK. */
@@ -247,6 +244,98 @@ free_loop_iv_stack (loop_iv_stack stack)
VEC_free (iv_stack_entry_p, heap, *stack);
}
+
+
+/* Structure containing the mapping between the CLooG's induction
+ variable and the type of the old induction variable. */
+typedef struct ivtype_map_elt
+{
+ tree type;
+ const char *cloog_iv;
+} *ivtype_map_elt;
+
+/* Print to stderr the element ELT. */
+
+static void
+debug_ivtype_elt (ivtype_map_elt elt)
+{
+ fprintf (stderr, "(%s, ", elt->cloog_iv);
+ print_generic_expr (stderr, elt->type, 0);
+ fprintf (stderr, ")\n");
+}
+
+/* Helper function for debug_ivtype_map. */
+
+static int
+debug_ivtype_map_1 (void **slot, void *s ATTRIBUTE_UNUSED)
+{
+ struct ivtype_map_elt *entry = (struct ivtype_map_elt *) *slot;
+ debug_ivtype_elt (entry);
+ return 1;
+}
+
+/* Print to stderr all the elements of MAP. */
+
+void
+debug_ivtype_map (htab_t map)
+{
+ htab_traverse (map, debug_ivtype_map_1, NULL);
+}
+
+/* Constructs a new SCEV_INFO_STR structure for VAR and INSTANTIATED_BELOW. */
+
+static inline ivtype_map_elt
+new_ivtype_map_elt (const char *cloog_iv, tree type)
+{
+ ivtype_map_elt res;
+
+ res = XNEW (struct ivtype_map_elt);
+ res->cloog_iv = cloog_iv;
+ res->type = type;
+
+ return res;
+}
+
+/* Computes a hash function for database element ELT. */
+
+static hashval_t
+ivtype_map_elt_info (const void *elt)
+{
+ return htab_hash_pointer (((const struct ivtype_map_elt *) elt)->cloog_iv);
+}
+
+/* Compares database elements E1 and E2. */
+
+static int
+eq_ivtype_map_elts (const void *e1, const void *e2)
+{
+ const struct ivtype_map_elt *elt1 = (const struct ivtype_map_elt *) e1;
+ const struct ivtype_map_elt *elt2 = (const struct ivtype_map_elt *) e2;
+
+ return (elt1->cloog_iv == elt2->cloog_iv);
+}
+
+
+
+/* Given a CLOOG_IV, returns the type that it should have in GCC land.
+ If the information is not available, i.e. in the case one of the
+ transforms created the loop, just return integer_type_node. */
+
+static tree
+gcc_type_for_cloog_iv (const char *cloog_iv, graphite_bb_p gbb)
+{
+ struct ivtype_map_elt tmp;
+ PTR *slot;
+
+ tmp.cloog_iv = cloog_iv;
+ slot = htab_find_slot (GBB_CLOOG_IV_TYPES (gbb), &tmp, NO_INSERT);
+
+ if (slot && *slot)
+ return ((ivtype_map_elt) *slot)->type;
+
+ return integer_type_node;
+}
+
/* Inserts constants derived from the USER_STMT argument list into the
STACK. This is needed to map old ivs to constants when loops have
been eliminated. */
@@ -257,16 +346,23 @@ loop_iv_stack_patch_for_consts (loop_iv_stack stack,
{
struct clast_stmt *t;
int index = 0;
+ CloogStatement *cs = user_stmt->statement;
+ graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
+
for (t = user_stmt->substitutions; t; t = t->next)
{
- struct clast_term *term = (struct clast_term*)
+ struct clast_expr *expr = (struct clast_expr *)
((struct clast_assignment *)t)->RHS;
+ struct clast_term *term = (struct clast_term *) expr;
/* FIXME: What should be done with expr_bin, expr_red? */
- if (((struct clast_assignment *)t)->RHS->type == expr_term
+ if (expr->type == expr_term
&& !term->var)
{
- tree value = gmp_cst_to_tree (term->val);
+ loop_p loop = gbb_loop_at_index (gbb, index);
+ tree oldiv = oldiv_for_loop (GBB_SCOP (gbb), loop);
+ tree type = oldiv ? TREE_TYPE (oldiv) : integer_type_node;
+ tree value = gmp_cst_to_tree (type, term->val);
loop_iv_stack_insert_constant (stack, index, value);
}
index = index + 1;
@@ -293,33 +389,6 @@ loop_iv_stack_remove_constants (loop_iv_stack stack)
}
}
-/* In SCOP, get the induction variable from NAME. OLD is the original
- loop that contained the definition of NAME. */
-
-static name_tree
-get_old_iv_from_ssa_name (scop_p scop, loop_p old, tree name)
-{
- tree var = SSA_NAME_VAR (name);
- int i;
- name_tree oldiv;
-
- for (i = 0; VEC_iterate (name_tree, SCOP_OLDIVS (scop), i, oldiv); i++)
- {
- loop_p current = old;
-
- while (current)
- {
- if (var == oldiv->t
- && oldiv->loop == current)
- return oldiv;
-
- current = loop_outer (current);
- }
- }
- return NULL;
-
-}
-
/* Returns a new loop_to_cloog_loop_str structure. */
static inline struct loop_to_cloog_loop_str *
@@ -610,14 +679,6 @@ debug_scops (int verbosity)
print_scops (stderr, verbosity);
}
-/* Return true when BB is contained in SCOP. */
-
-static inline bool
-bb_in_scop_p (basic_block bb, scop_p scop)
-{
- return bitmap_bit_p (SCOP_BBS_B (scop), bb->index);
-}
-
/* Pretty print to FILE the SCOP in DOT format. */
static void
@@ -818,15 +879,6 @@ dot_all_scops (void)
#endif
}
-/* Returns true when LOOP is in SCOP. */
-
-static inline bool
-loop_in_scop_p (struct loop *loop, scop_p scop)
-{
- return (bb_in_scop_p (loop->header, scop)
- && bb_in_scop_p (loop->latch, scop));
-}
-
/* Returns the outermost loop in SCOP that contains BB. */
static struct loop *
@@ -1025,23 +1077,87 @@ harmful_stmt_in_bb (basic_block scop_entry, basic_block bb)
return NULL;
}
+/* Returns true when BB will be represented in graphite. Return false
+ for the basic blocks that contain code eliminated in the code
+ generation pass: i.e. induction variables and exit conditions. */
+
+static bool
+graphite_stmt_p (scop_p scop, basic_block bb,
+ VEC (data_reference_p, heap) *drs)
+{
+ gimple_stmt_iterator gsi;
+ loop_p loop = bb->loop_father;
+
+ if (VEC_length (data_reference_p, drs) > 0)
+ return true;
+
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ gimple stmt = gsi_stmt (gsi);
+
+ switch (gimple_code (stmt))
+ {
+ /* Control flow expressions can be ignored, as they are
+ represented in the iteration domains and will be
+ regenerated by graphite. */
+ case GIMPLE_COND:
+ case GIMPLE_GOTO:
+ case GIMPLE_SWITCH:
+ break;
+
+ case GIMPLE_ASSIGN:
+ {
+ tree var = gimple_assign_lhs (stmt);
+ var = analyze_scalar_evolution (loop, var);
+ var = instantiate_scev (block_before_scop (scop), loop, var);
+
+ if (chrec_contains_undetermined (var))
+ return true;
+
+ break;
+ }
+
+ default:
+ return true;
+ }
+ }
+
+ return false;
+}
+
/* Store the GRAPHITE representation of BB. */
static void
new_graphite_bb (scop_p scop, basic_block bb)
{
- struct graphite_bb *gbb = XNEW (struct graphite_bb);
+ struct graphite_bb *gbb;
+ VEC (data_reference_p, heap) *drs = VEC_alloc (data_reference_p, heap, 5);
+ struct loop *nest = outermost_loop_in_scop (scop, bb);
+ gimple_stmt_iterator gsi;
+
+ bitmap_set_bit (SCOP_BBS_B (scop), bb->index);
+
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ find_data_references_in_stmt (nest, gsi_stmt (gsi), &drs);
+
+ if (!graphite_stmt_p (scop, bb, drs))
+ {
+ free_data_refs (drs);
+ return;
+ }
+ gbb = XNEW (struct graphite_bb);
bb->aux = gbb;
GBB_BB (gbb) = bb;
GBB_SCOP (gbb) = scop;
- GBB_DATA_REFS (gbb) = NULL;
+ GBB_DATA_REFS (gbb) = drs;
GBB_DOMAIN (gbb) = NULL;
GBB_CONDITIONS (gbb) = NULL;
GBB_CONDITION_CASES (gbb) = NULL;
GBB_LOOPS (gbb) = NULL;
+ GBB_STATIC_SCHEDULE (gbb) = NULL;
+ GBB_CLOOG_IV_TYPES (gbb) = NULL;
VEC_safe_push (graphite_bb_p, heap, SCOP_BBS (scop), gbb);
- bitmap_set_bit (SCOP_BBS_B (scop), bb->index);
}
/* Frees GBB. */
@@ -1052,15 +1168,245 @@ free_graphite_bb (struct graphite_bb *gbb)
if (GBB_DOMAIN (gbb))
cloog_matrix_free (GBB_DOMAIN (gbb));
- free_data_refs (GBB_DATA_REFS (gbb));
+ if (GBB_CLOOG_IV_TYPES (gbb))
+ htab_delete (GBB_CLOOG_IV_TYPES (gbb));
+
+ /* FIXME: free_data_refs is disabled for the moment, but should be
+ enabled.
+
+ free_data_refs (GBB_DATA_REFS (gbb)); */
+
VEC_free (gimple, heap, GBB_CONDITIONS (gbb));
VEC_free (gimple, heap, GBB_CONDITION_CASES (gbb));
VEC_free (loop_p, heap, GBB_LOOPS (gbb));
-
GBB_BB (gbb)->aux = 0;
XDELETE (gbb);
}
+
+
+/* Structure containing the mapping between the old names and the new
+ names used after block copy in the new loop context. */
+typedef struct rename_map_elt
+{
+ tree old_name, new_name;
+} *rename_map_elt;
+
+
+/* Print to stderr the element ELT. */
+
+static void
+debug_rename_elt (rename_map_elt elt)
+{
+ fprintf (stderr, "(");
+ print_generic_expr (stderr, elt->old_name, 0);
+ fprintf (stderr, ", ");
+ print_generic_expr (stderr, elt->new_name, 0);
+ fprintf (stderr, ")\n");
+}
+
+/* Helper function for debug_rename_map. */
+
+static int
+debug_rename_map_1 (void **slot, void *s ATTRIBUTE_UNUSED)
+{
+ struct rename_map_elt *entry = (struct rename_map_elt *) *slot;
+ debug_rename_elt (entry);
+ return 1;
+}
+
+/* Print to stderr all the elements of MAP. */
+
+void
+debug_rename_map (htab_t map)
+{
+ htab_traverse (map, debug_rename_map_1, NULL);
+}
+
+/* Constructs a new SCEV_INFO_STR structure for VAR and INSTANTIATED_BELOW. */
+
+static inline rename_map_elt
+new_rename_map_elt (tree old_name, tree new_name)
+{
+ rename_map_elt res;
+
+ res = XNEW (struct rename_map_elt);
+ res->old_name = old_name;
+ res->new_name = new_name;
+
+ return res;
+}
+
+/* Computes a hash function for database element ELT. */
+
+static hashval_t
+rename_map_elt_info (const void *elt)
+{
+ return htab_hash_pointer (((const struct rename_map_elt *) elt)->old_name);
+}
+
+/* Compares database elements E1 and E2. */
+
+static int
+eq_rename_map_elts (const void *e1, const void *e2)
+{
+ const struct rename_map_elt *elt1 = (const struct rename_map_elt *) e1;
+ const struct rename_map_elt *elt2 = (const struct rename_map_elt *) e2;
+
+ return (elt1->old_name == elt2->old_name);
+}
+
+/* Returns the new name associated to OLD_NAME in MAP. */
+
+static tree
+get_new_name_from_old_name (htab_t map, tree old_name)
+{
+ struct rename_map_elt tmp;
+ PTR *slot;
+
+ tmp.old_name = old_name;
+ slot = htab_find_slot (map, &tmp, NO_INSERT);
+
+ if (slot && *slot)
+ return ((rename_map_elt) *slot)->new_name;
+
+ return old_name;
+}
+
+
+
+/* Returns true when BB is in REGION. */
+
+static bool
+bb_in_sese_p (basic_block bb, sese region)
+{
+ return pointer_set_contains (SESE_REGION_BBS (region), bb);
+}
+
+/* For a USE in BB, if BB is outside REGION, mark the USE in the
+ SESE_LIVEIN and SESE_LIVEOUT sets. */
+
+static void
+sese_build_livein_liveouts_use (sese region, basic_block bb, tree use)
+{
+ unsigned ver;
+ basic_block def_bb;
+
+ if (TREE_CODE (use) != SSA_NAME)
+ return;
+
+ ver = SSA_NAME_VERSION (use);
+ def_bb = gimple_bb (SSA_NAME_DEF_STMT (use));
+ if (!def_bb
+ || !bb_in_sese_p (def_bb, region)
+ || bb_in_sese_p (bb, region))
+ return;
+
+ if (!SESE_LIVEIN_VER (region, ver))
+ SESE_LIVEIN_VER (region, ver) = BITMAP_ALLOC (NULL);
+
+ bitmap_set_bit (SESE_LIVEIN_VER (region, ver), bb->index);
+ bitmap_set_bit (SESE_LIVEOUT (region), ver);
+}
+
+/* Marks for rewrite all the SSA_NAMES defined in REGION and that are
+ used in BB that is outside of the REGION. */
+
+static void
+sese_build_livein_liveouts_bb (sese region, basic_block bb)
+{
+ gimple_stmt_iterator bsi;
+ edge e;
+ edge_iterator ei;
+ ssa_op_iter iter;
+ tree var;
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ for (bsi = gsi_start_phis (e->dest); !gsi_end_p (bsi); gsi_next (&bsi))
+ sese_build_livein_liveouts_use (region, bb,
+ PHI_ARG_DEF_FROM_EDGE (gsi_stmt (bsi), e));
+
+ for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
+ FOR_EACH_SSA_TREE_OPERAND (var, gsi_stmt (bsi), iter, SSA_OP_ALL_USES)
+ sese_build_livein_liveouts_use (region, bb, var);
+}
+
+/* Build the SESE_LIVEIN and SESE_LIVEOUT for REGION. */
+
+void
+sese_build_livein_liveouts (sese region)
+{
+ basic_block bb;
+
+ SESE_LIVEOUT (region) = BITMAP_ALLOC (NULL);
+ SESE_NUM_VER (region) = num_ssa_names;
+ SESE_LIVEIN (region) = XCNEWVEC (bitmap, SESE_NUM_VER (region));
+
+ FOR_EACH_BB (bb)
+ sese_build_livein_liveouts_bb (region, bb);
+}
+
+/* Register basic blocks belonging to a region in a pointer set. */
+
+static void
+register_bb_in_sese (basic_block entry_bb, basic_block exit_bb, sese region)
+{
+ edge_iterator ei;
+ edge e;
+ basic_block bb = entry_bb;
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ {
+ if (!pointer_set_contains (SESE_REGION_BBS (region), e->dest) &&
+ e->dest->index != exit_bb->index)
+ {
+ pointer_set_insert (SESE_REGION_BBS (region), e->dest);
+ register_bb_in_sese (e->dest, exit_bb, region);
+ }
+ }
+}
+
+/* Builds a new SESE region from edges ENTRY and EXIT. */
+
+sese
+new_sese (edge entry, edge exit)
+{
+ sese res = XNEW (struct sese);
+
+ SESE_ENTRY (res) = entry;
+ SESE_EXIT (res) = exit;
+ SESE_REGION_BBS (res) = pointer_set_create ();
+ register_bb_in_sese (entry->dest, exit->dest, res);
+
+ SESE_LIVEOUT (res) = NULL;
+ SESE_NUM_VER (res) = 0;
+ SESE_LIVEIN (res) = NULL;
+
+ return res;
+}
+
+/* Deletes REGION. */
+
+void
+free_sese (sese region)
+{
+ int i;
+
+ for (i = 0; i < SESE_NUM_VER (region); i++)
+ BITMAP_FREE (SESE_LIVEIN_VER (region, i));
+
+ if (SESE_LIVEIN (region))
+ free (SESE_LIVEIN (region));
+
+ if (SESE_LIVEOUT (region))
+ BITMAP_FREE (SESE_LIVEOUT (region));
+
+ pointer_set_destroy (SESE_REGION_BBS (region));
+ XDELETE (region);
+}
+
+
+
/* Creates a new scop starting with ENTRY. */
static scop_p
@@ -1070,20 +1416,21 @@ new_scop (edge entry, edge exit)
gcc_assert (entry && exit);
- SCOP_REGION (scop) = XNEW (struct sese);
- SESE_ENTRY (SCOP_REGION (scop)) = entry;
- SESE_EXIT (SCOP_REGION (scop)) = exit;
+ SCOP_REGION (scop) = new_sese (entry, exit);
SCOP_BBS (scop) = VEC_alloc (graphite_bb_p, heap, 3);
SCOP_OLDIVS (scop) = VEC_alloc (name_tree, heap, 3);
SCOP_BBS_B (scop) = BITMAP_ALLOC (NULL);
SCOP_LOOPS (scop) = BITMAP_ALLOC (NULL);
SCOP_LOOP_NEST (scop) = VEC_alloc (loop_p, heap, 3);
+ SCOP_ADD_PARAMS (scop) = true;
SCOP_PARAMS (scop) = VEC_alloc (name_tree, heap, 3);
SCOP_PROG (scop) = cloog_program_malloc ();
cloog_program_set_names (SCOP_PROG (scop), cloog_names_malloc ());
SCOP_LOOP2CLOOG_LOOP (scop) = htab_create (10, hash_loop_to_cloog_loop,
eq_loop_to_cloog_loop,
free);
+ SCOP_LIVEOUT_RENAMES (scop) = htab_create (10, rename_map_elt_info,
+ eq_rename_map_elts, free);
return scop;
}
@@ -1115,7 +1462,8 @@ free_scop (scop_p scop)
VEC_free (name_tree, heap, SCOP_PARAMS (scop));
cloog_program_free (SCOP_PROG (scop));
htab_delete (SCOP_LOOP2CLOOG_LOOP (scop));
- XDELETE (SCOP_REGION (scop));
+ htab_delete (SCOP_LIVEOUT_RENAMES (scop));
+ free_sese (SCOP_REGION (scop));
XDELETE (scop);
}
@@ -1231,6 +1579,17 @@ move_sd_regions (VEC (sd_region, heap) **source, VEC (sd_region, heap) **target)
VEC_free (sd_region, heap, *source);
}
+/* Return true when it is not possible to represent the upper bound of
+ LOOP in the polyhedral representation. */
+
+static bool
+graphite_cannot_represent_loop_niter (loop_p loop)
+{
+ tree niter = number_of_latch_executions (loop);
+
+ return chrec_contains_undetermined (niter)
+ || !scev_is_linear_expression (niter);
+}
/* Store information needed by scopdet_* functions. */
struct scopdet_info
@@ -1302,8 +1661,7 @@ scopdet_basic_block_info (basic_block bb, VEC (sd_region, heap) **scops,
if (result.last->loop_father != loop)
result.next = NULL;
- if (TREE_CODE (number_of_latch_executions (loop))
- == SCEV_NOT_KNOWN)
+ if (graphite_cannot_represent_loop_niter (loop))
result.difficult = true;
if (sinfo.difficult)
@@ -1499,7 +1857,6 @@ scopdet_basic_block_info (basic_block bb, VEC (sd_region, heap) **scops,
static struct scopdet_info
build_scops_1 (basic_block current, VEC (sd_region, heap) **scops, loop_p loop)
{
-
bool in_scop = false;
sd_region open_scop;
struct scopdet_info sinfo;
@@ -1511,6 +1868,8 @@ build_scops_1 (basic_block current, VEC (sd_region, heap) **scops, loop_p loop)
result.next = NULL;
result.last = NULL;
open_scop.entry = NULL;
+ open_scop.exit = NULL;
+ sinfo.last = NULL;
/* Loop over the dominance tree. If we meet a difficult bb, close
the current SCoP. Loop and condition header start a new layer,
@@ -1799,6 +2158,30 @@ mark_exit_edges (VEC (sd_region, heap) *regions)
e->aux = s;
}
+/* Free and compute again all the dominators information. */
+
+static inline void
+recompute_all_dominators (void)
+{
+ mark_irreducible_loops ();
+ free_dominance_info (CDI_DOMINATORS);
+ free_dominance_info (CDI_POST_DOMINATORS);
+ calculate_dominance_info (CDI_DOMINATORS);
+ calculate_dominance_info (CDI_POST_DOMINATORS);
+}
+
+/* Verifies properties that GRAPHITE should maintain during translation. */
+
+static inline void
+graphite_verify (void)
+{
+#ifdef ENABLE_CHECKING
+ verify_loop_structure ();
+ verify_dominators (CDI_DOMINATORS);
+ verify_dominators (CDI_POST_DOMINATORS);
+ verify_ssa (false);
+#endif
+}
/* Create for all scop regions a single entry and a single exit edge. */
@@ -1818,6 +2201,8 @@ create_sese_edges (VEC (sd_region, heap) *regions)
unmark_exit_edges (regions);
+ fix_loop_structure (NULL);
+
#ifdef ENABLE_CHECKING
verify_loop_structure ();
verify_dominators (CDI_DOMINATORS);
@@ -1937,64 +2322,107 @@ build_scop_bbs (scop_p scop)
sbitmap_free (visited);
}
+/* Returns the number of reduction phi nodes in LOOP. */
+
+static int
+nb_reductions_in_loop (loop_p loop)
+{
+ int res = 0;
+ gimple_stmt_iterator gsi;
-/* Record LOOP as occuring in SCOP. */
+ for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ gimple phi = gsi_stmt (gsi);
+ tree scev;
+ affine_iv iv;
-static void
-scop_record_loop (scop_p scop, struct loop *loop)
+ if (!is_gimple_reg (PHI_RESULT (phi)))
+ continue;
+
+ scev = analyze_scalar_evolution (loop, PHI_RESULT (phi));
+ scev = instantiate_parameters (loop, scev);
+ if (!simple_iv (loop, phi, PHI_RESULT (phi), &iv, true))
+ res++;
+ }
+
+ return res;
+}
+
+/* A LOOP is in normal form when it contains only one scalar phi node
+ that defines the main induction variable of the loop, only one
+ increment of the IV, and only one exit condition. */
+
+static tree
+graphite_loop_normal_form (loop_p loop)
{
- loop_p parent;
- tree induction_var;
+ struct tree_niter_desc niter;
+ tree nit;
+ gimple_seq stmts;
+ edge exit = single_dom_exit (loop);
- if (bitmap_bit_p (SCOP_LOOPS (scop), loop->num))
- return;
+ gcc_assert (number_of_iterations_exit (loop, exit, &niter, false));
+ nit = force_gimple_operand (unshare_expr (niter.niter), &stmts, true,
+ NULL_TREE);
+ if (stmts)
+ gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop), stmts);
- parent = loop_outer (loop);
- induction_var = find_induction_var_from_exit_cond (loop);
+ /* One IV per loop. */
+ if (nb_reductions_in_loop (loop) > 0)
+ return NULL_TREE;
- if (!bb_in_scop_p (parent->latch, scop))
- parent = NULL;
+ return canonicalize_loop_ivs (loop, NULL, nit);
+}
- if (induction_var != NULL_TREE)
- {
- name_tree oldiv = XNEW (struct name_tree);
- oldiv->t = SSA_NAME_VAR (induction_var);
- if (DECL_NAME (oldiv->t))
- oldiv->name = IDENTIFIER_POINTER (DECL_NAME (oldiv->t));
- else
- {
- int len = 2 + 16;
- char *n = XNEWVEC (char, len);
- snprintf (n, len, "D.%u", DECL_UID (oldiv->t));
- oldiv->name = n;
- }
- oldiv->loop = loop;
+/* Record LOOP as occuring in SCOP. Returns true when the operation
+ was successful. */
- VEC_safe_push (name_tree, heap, SCOP_OLDIVS (scop), oldiv);
- }
+static bool
+scop_record_loop (scop_p scop, loop_p loop)
+{
+ tree induction_var;
+ name_tree oldiv;
+
+ if (bitmap_bit_p (SCOP_LOOPS (scop), loop->num))
+ return true;
bitmap_set_bit (SCOP_LOOPS (scop), loop->num);
VEC_safe_push (loop_p, heap, SCOP_LOOP_NEST (scop), loop);
+
+ induction_var = graphite_loop_normal_form (loop);
+ if (!induction_var)
+ return false;
+
+ oldiv = XNEW (struct name_tree);
+ oldiv->t = induction_var;
+ oldiv->name = get_name (SSA_NAME_VAR (oldiv->t));
+ oldiv->loop = loop;
+ VEC_safe_push (name_tree, heap, SCOP_OLDIVS (scop), oldiv);
+ return true;
}
-/* Build the loop nests contained in SCOP. */
+/* Build the loop nests contained in SCOP. Returns true when the
+ operation was successful. */
-static void
+static bool
build_scop_loop_nests (scop_p scop)
{
unsigned i;
- graphite_bb_p gb;
+ basic_block bb;
struct loop *loop0, *loop1;
- for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
- {
- struct loop *loop = gbb_loop (gb);
+ FOR_EACH_BB (bb)
+ if (bb_in_scop_p (bb, scop))
+ {
+ struct loop *loop = bb->loop_father;
- /* Only add loops, if they are completely contained in the SCoP. */
- if (loop->header == GBB_BB (gb)
- && bb_in_scop_p (loop->latch, scop))
- scop_record_loop (scop, gbb_loop (gb));
- }
+ /* Only add loops if they are completely contained in the SCoP. */
+ if (loop->header == bb
+ && bb_in_scop_p (loop->latch, scop))
+ {
+ if (!scop_record_loop (scop, loop))
+ return false;
+ }
+ }
/* Make sure that the loops in the SCOP_LOOP_NEST are ordered. It
can be the case that an inner loop is inserted before an outer
@@ -2011,20 +2439,37 @@ build_scop_loop_nests (scop_p scop)
VEC_replace (loop_p, SCOP_LOOP_NEST (scop), i + 1, loop0);
}
}
+
+ return true;
}
-/* Calculate the number of loops around GB in the current SCOP. */
+/* Build dynamic schedules for all the BBs. */
-static inline int
-nb_loops_around_gb (graphite_bb_p gb)
+static void
+build_scop_dynamic_schedules (scop_p scop)
{
- scop_p scop = GBB_SCOP (gb);
- struct loop *l = gbb_loop (gb);
- int d = 0;
+ int i, dim, loop_num, row, col;
+ graphite_bb_p gb;
- for (; loop_in_scop_p (l, scop); d++, l = loop_outer (l));
+ for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
+ {
+ loop_num = GBB_BB (gb)->loop_father->num;
- return d;
+ if (loop_num != 0)
+ {
+ dim = nb_loops_around_gb (gb);
+ GBB_DYNAMIC_SCHEDULE (gb) = cloog_matrix_alloc (dim, dim);
+
+ for (row = 0; row < GBB_DYNAMIC_SCHEDULE (gb)->NbRows; row++)
+ for (col = 0; col < GBB_DYNAMIC_SCHEDULE (gb)->NbColumns; col++)
+ if (row == col)
+ value_set_si (GBB_DYNAMIC_SCHEDULE (gb)->p[row][col], 1);
+ else
+ value_set_si (GBB_DYNAMIC_SCHEDULE (gb)->p[row][col], 0);
+ }
+ else
+ GBB_DYNAMIC_SCHEDULE (gb) = NULL;
+ }
}
/* Build for BB the static schedule.
@@ -2138,6 +2583,8 @@ param_index (tree var, scop_p scop)
if (p->t == var)
return i;
+ gcc_assert (SCOP_ADD_PARAMS (scop));
+
nvar = XNEW (struct name_tree);
nvar->t = var;
nvar->name = NULL;
@@ -2217,26 +2664,28 @@ scan_tree_for_params (scop_p s, tree e, CloogMatrix *c, int r, Value k,
case MULT_EXPR:
if (chrec_contains_symbols (TREE_OPERAND (e, 0)))
{
- Value val;
-
- gcc_assert (host_integerp (TREE_OPERAND (e, 1), 0));
-
- value_init (val);
- value_set_si (val, int_cst_value (TREE_OPERAND (e, 1)));
- value_multiply (k, k, val);
- value_clear (val);
+ if (c)
+ {
+ Value val;
+ gcc_assert (host_integerp (TREE_OPERAND (e, 1), 0));
+ value_init (val);
+ value_set_si (val, int_cst_value (TREE_OPERAND (e, 1)));
+ value_multiply (k, k, val);
+ value_clear (val);
+ }
scan_tree_for_params (s, TREE_OPERAND (e, 0), c, r, k, subtract);
}
else
{
- Value val;
-
- gcc_assert (host_integerp (TREE_OPERAND (e, 0), 0));
-
- value_init (val);
- value_set_si (val, int_cst_value (TREE_OPERAND (e, 0)));
- value_multiply (k, k, val);
- value_clear (val);
+ if (c)
+ {
+ Value val;
+ gcc_assert (host_integerp (TREE_OPERAND (e, 0), 0));
+ value_init (val);
+ value_set_si (val, int_cst_value (TREE_OPERAND (e, 0)));
+ value_multiply (k, k, val);
+ value_clear (val);
+ }
scan_tree_for_params (s, TREE_OPERAND (e, 1), c, r, k, subtract);
}
break;
@@ -2291,8 +2740,7 @@ scan_tree_for_params (scop_p s, tree e, CloogMatrix *c, int r, Value k,
}
break;
- case NOP_EXPR:
- case CONVERT_EXPR:
+ CASE_CONVERT:
case NON_LVALUE_EXPR:
scan_tree_for_params (s, TREE_OPERAND (e, 0), c, r, k, subtract);
break;
@@ -2347,58 +2795,43 @@ idx_record_params (tree base, tree *idx, void *dta)
access functions, conditions and loop bounds. */
static void
-find_params_in_bb (scop_p scop, basic_block bb)
+find_params_in_bb (scop_p scop, graphite_bb_p gb)
{
int i;
data_reference_p dr;
- VEC (data_reference_p, heap) *drs;
- gimple_stmt_iterator gsi;
- struct loop *nest = outermost_loop_in_scop (scop, bb);
-
- /* Find the parameters used in the memory access functions. */
- drs = VEC_alloc (data_reference_p, heap, 5);
- for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
- find_data_references_in_stmt (nest, gsi_stmt (gsi), &drs);
+ gimple stmt;
+ loop_p father = GBB_BB (gb)->loop_father;
- for (i = 0; VEC_iterate (data_reference_p, drs, i, dr); i++)
+ for (i = 0; VEC_iterate (data_reference_p, GBB_DATA_REFS (gb), i, dr); i++)
{
struct irp_data irp;
- irp.loop = bb->loop_father;
+ irp.loop = father;
irp.scop = scop;
for_each_index (&dr->ref, idx_record_params, &irp);
- free_data_ref (dr);
}
- VEC_free (data_reference_p, heap, drs);
-
/* Find parameters in conditional statements. */
- gsi = gsi_last_bb (bb);
- if (!gsi_end_p (gsi))
+ for (i = 0; VEC_iterate (gimple, GBB_CONDITIONS (gb), i, stmt); i++)
{
- gimple stmt = gsi_stmt (gsi);
+ Value one;
+ loop_p loop = father;
- if (gimple_code (stmt) == GIMPLE_COND)
- {
- Value one;
- loop_p loop = bb->loop_father;
-
- tree lhs, rhs;
-
- lhs = gimple_cond_lhs (stmt);
- lhs = analyze_scalar_evolution (loop, lhs);
- lhs = instantiate_scev (block_before_scop (scop), loop, lhs);
-
- rhs = gimple_cond_rhs (stmt);
- rhs = analyze_scalar_evolution (loop, rhs);
- rhs = instantiate_scev (block_before_scop (scop), loop, rhs);
-
- value_init (one);
- scan_tree_for_params (scop, lhs, NULL, 0, one, false);
- value_set_si (one, 1);
- scan_tree_for_params (scop, rhs, NULL, 0, one, false);
- value_clear (one);
- }
+ tree lhs, rhs;
+
+ lhs = gimple_cond_lhs (stmt);
+ lhs = analyze_scalar_evolution (loop, lhs);
+ lhs = instantiate_scev (block_before_scop (scop), loop, lhs);
+
+ rhs = gimple_cond_rhs (stmt);
+ rhs = analyze_scalar_evolution (loop, rhs);
+ rhs = instantiate_scev (block_before_scop (scop), loop, rhs);
+
+ value_init (one);
+ scan_tree_for_params (scop, lhs, NULL, 0, one, false);
+ value_set_si (one, 1);
+ scan_tree_for_params (scop, rhs, NULL, 0, one, false);
+ value_clear (one);
}
}
@@ -2522,7 +2955,9 @@ find_scop_parameters (scop_p scop)
/* Find the parameters used in data accesses. */
for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
- find_params_in_bb (scop, GBB_BB (gb));
+ find_params_in_bb (scop, gb);
+
+ SCOP_ADD_PARAMS (scop) = false;
}
/* Build the context constraints for SCOP: constraints and relations
@@ -2554,24 +2989,6 @@ gbb_from_bb (basic_block bb)
return (graphite_bb_p) bb->aux;
}
-/* Add DOMAIN to all the basic blocks in LOOP. */
-
-static void
-add_bb_domains (struct loop *loop, CloogMatrix *domain)
-{
- basic_block *bbs = get_loop_body (loop);
- unsigned i;
-
- for (i = 0; i < loop->num_nodes; i++)
- if (bbs[i]->loop_father == loop)
- {
- graphite_bb_p gbb = gbb_from_bb (bbs[i]);
- GBB_DOMAIN (gbb) = cloog_matrix_copy (domain);
- }
-
- free (bbs);
-}
-
/* Builds the constraint matrix for LOOP in SCOP. NB_OUTER_LOOPS is the
number of loops surrounding LOOP in SCOP. OUTER_CSTR gives the
constraints matrix for the surrounding loops. */
@@ -2582,6 +2999,7 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
{
int i, j, row;
CloogMatrix *cstr;
+ graphite_bb_p gb;
int nb_rows = outer_cstr->NbRows + 1;
int nb_cols = outer_cstr->NbColumns + 1;
@@ -2662,7 +3080,9 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
if (nb_outer_loops != 0 && loop->next && loop_in_scop_p (loop->next, scop))
build_loop_iteration_domains (scop, loop->next, outer_cstr, nb_outer_loops);
- add_bb_domains (loop, cstr);
+ for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
+ if (gbb_loop (gb) == loop)
+ GBB_DOMAIN (gb) = cloog_matrix_copy (cstr);
cloog_matrix_free (cstr);
}
@@ -2865,13 +3285,63 @@ add_conditions_to_domain (graphite_bb_p gb)
}
}
-/* Helper recursive function. */
+/* Returns true when PHI defines an induction variable in the loop
+ containing the PHI node. */
-static void
+static bool
+phi_node_is_iv (gimple phi)
+{
+ loop_p loop = gimple_bb (phi)->loop_father;
+ tree scev = analyze_scalar_evolution (loop, gimple_phi_result (phi));
+
+ return tree_contains_chrecs (scev, NULL);
+}
+
+/* Returns true when BB contains scalar phi nodes that are not an
+ induction variable of a loop. */
+
+static bool
+bb_contains_non_iv_scalar_phi_nodes (basic_block bb)
+{
+ gimple phi = NULL;
+ gimple_stmt_iterator si;
+
+ for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
+ if (is_gimple_reg (gimple_phi_result (gsi_stmt (si))))
+ {
+ /* Store the unique scalar PHI node: at this point, loops
+ should be in cannonical form, so we expect to see at most
+ one scalar phi node in the loop header. */
+ if (phi
+ || bb != bb->loop_father->header)
+ return true;
+
+ phi = gsi_stmt (si);
+ }
+
+ if (!phi
+ || phi_node_is_iv (phi))
+ return false;
+
+ return true;
+}
+
+/* Helper recursive function. Record in CONDITIONS and CASES all
+ conditions from 'if's and 'switch'es occurring in BB from SCOP.
+
+ Returns false when the conditions contain scalar computations that
+ depend on the condition, i.e. when there are scalar phi nodes on
+ the junction after the condition. Only the computations occurring
+ on memory can be handled in the polyhedral model: operations that
+ define scalar evolutions in conditions, that can potentially be
+ used to index memory, can't be handled by the polyhedral model. */
+
+static bool
build_scop_conditions_1 (VEC (gimple, heap) **conditions,
VEC (gimple, heap) **cases, basic_block bb,
scop_p scop)
{
+ bool res = true;
int i, j;
graphite_bb_p gbb;
gimple_stmt_iterator gsi;
@@ -2880,14 +3350,18 @@ build_scop_conditions_1 (VEC (gimple, heap) **conditions,
/* Make sure we are in the SCoP. */
if (!bb_in_scop_p (bb, scop))
- return;
+ return true;
- /* Record conditions in graphite_bb. */
- gbb = gbb_from_bb (bb);
- GBB_CONDITIONS (gbb) = VEC_copy (gimple, heap, *conditions);
- GBB_CONDITION_CASES (gbb) = VEC_copy (gimple, heap, *cases);
+ if (bb_contains_non_iv_scalar_phi_nodes (bb))
+ return false;
- add_conditions_to_domain (gbb);
+ gbb = gbb_from_bb (bb);
+ if (gbb)
+ {
+ GBB_CONDITIONS (gbb) = VEC_copy (gimple, heap, *conditions);
+ GBB_CONDITION_CASES (gbb) = VEC_copy (gimple, heap, *cases);
+ add_conditions_to_domain (gbb);
+ }
dom = get_dominated_by (CDI_DOMINATORS, bb);
@@ -2916,13 +3390,18 @@ build_scop_conditions_1 (VEC (gimple, heap) **conditions,
/* Recursively scan the then or else part. */
if (e->flags & EDGE_TRUE_VALUE)
VEC_safe_push (gimple, heap, *cases, stmt);
- else if (e->flags & EDGE_FALSE_VALUE)
- VEC_safe_push (gimple, heap, *cases, NULL);
- else
- gcc_unreachable ();
+ else
+ {
+ gcc_assert (e->flags & EDGE_FALSE_VALUE);
+ VEC_safe_push (gimple, heap, *cases, NULL);
+ }
VEC_safe_push (gimple, heap, *conditions, stmt);
- build_scop_conditions_1 (conditions, cases, e->dest, scop);
+ if (!build_scop_conditions_1 (conditions, cases, e->dest, scop))
+ {
+ res = false;
+ goto done;
+ }
VEC_pop (gimple, *conditions);
VEC_pop (gimple, *cases);
}
@@ -2943,43 +3422,45 @@ build_scop_conditions_1 (VEC (gimple, heap) **conditions,
bb_child = label_to_block
(CASE_LABEL (gimple_switch_label (stmt, i)));
- /* Do not handle multiple values for the same block. */
for (k = 0; k < n; k++)
if (i != k
&& label_to_block
(CASE_LABEL (gimple_switch_label (stmt, k))) == bb_child)
break;
- if (k != n)
- continue;
-
- /* Switch cases with more than one predecessor are not
- handled. */
- if (VEC_length (edge, bb_child->preds) != 1)
- continue;
+ /* Switches with multiple case values for the same
+ block are not handled. */
+ if (k != n
+ /* Switch cases with more than one predecessor are
+ not handled. */
+ || VEC_length (edge, bb_child->preds) != 1)
+ {
+ res = false;
+ goto done;
+ }
/* Recursively scan the corresponding 'case' block. */
-
for (gsi_search_gimple_label = gsi_start_bb (bb_child);
!gsi_end_p (gsi_search_gimple_label);
gsi_next (&gsi_search_gimple_label))
{
- gimple stmt_gimple_label
- = gsi_stmt (gsi_search_gimple_label);
+ gimple label = gsi_stmt (gsi_search_gimple_label);
- if (gimple_code (stmt_gimple_label) == GIMPLE_LABEL)
+ if (gimple_code (label) == GIMPLE_LABEL)
{
- tree t = gimple_label_label (stmt_gimple_label);
+ tree t = gimple_label_label (label);
- if (t == gimple_switch_label (stmt, i))
- VEC_replace (gimple, *cases, n_cases,
- stmt_gimple_label);
- else
- gcc_unreachable ();
+ gcc_assert (t == gimple_switch_label (stmt, i));
+ VEC_replace (gimple, *cases, n_cases, label);
+ break;
}
}
- build_scop_conditions_1 (conditions, cases, bb_child, scop);
+ if (!build_scop_conditions_1 (conditions, cases, bb_child, scop))
+ {
+ res = false;
+ goto done;
+ }
/* Remove the scanned block from the dominator successors. */
for (j = 0; VEC_iterate (basic_block, dom, j, bb_iter); j++)
@@ -2987,13 +3468,14 @@ build_scop_conditions_1 (VEC (gimple, heap) **conditions,
{
VEC_unordered_remove (basic_block, dom, j);
break;
- }
+ }
}
VEC_pop (gimple, *conditions);
VEC_pop (gimple, *cases);
break;
}
+
default:
break;
}
@@ -3001,23 +3483,38 @@ build_scop_conditions_1 (VEC (gimple, heap) **conditions,
/* Scan all immediate dominated successors. */
for (i = 0; VEC_iterate (basic_block, dom, i, bb_child); i++)
- build_scop_conditions_1 (conditions, cases, bb_child, scop);
+ if (!build_scop_conditions_1 (conditions, cases, bb_child, scop))
+ {
+ res = false;
+ goto done;
+ }
+ done:
VEC_free (basic_block, heap, dom);
+ return res;
}
-/* Record all 'if' and 'switch' conditions in each gbb of SCOP. */
+/* Record all conditions from SCOP.
-static void
+ Returns false when the conditions contain scalar computations that
+ depend on the condition, i.e. when there are scalar phi nodes on
+ the junction after the condition. Only the computations occurring
+ on memory can be handled in the polyhedral model: operations that
+ define scalar evolutions in conditions, that can potentially be
+ used to index memory, can't be handled by the polyhedral model. */
+
+static bool
build_scop_conditions (scop_p scop)
{
+ bool res;
VEC (gimple, heap) *conditions = NULL;
VEC (gimple, heap) *cases = NULL;
- build_scop_conditions_1 (&conditions, &cases, SCOP_ENTRY (scop), scop);
+ res = build_scop_conditions_1 (&conditions, &cases, SCOP_ENTRY (scop), scop);
VEC_free (gimple, heap, conditions);
VEC_free (gimple, heap, cases);
+ return res;
}
/* Build the current domain matrix: the loops belonging to the current
@@ -3049,27 +3546,31 @@ build_scop_iteration_domain (scop_p scop)
}
/* Initializes an equation CY of the access matrix using the
- information for a subscript from ACCESS_FUN, relatively to the loop
+ information for a subscript from AF, relatively to the loop
indexes from LOOP_NEST and parameter indexes from PARAMS. NDIM is
the dimension of the array access, i.e. the number of
subscripts. Returns true when the operation succeeds. */
static bool
-build_access_matrix_with_af (tree access_fun, lambda_vector cy,
+build_access_matrix_with_af (tree af, lambda_vector cy,
scop_p scop, int ndim)
{
- switch (TREE_CODE (access_fun))
+ int param_col;
+
+ switch (TREE_CODE (af))
{
case POLYNOMIAL_CHREC:
{
- tree left = CHREC_LEFT (access_fun);
- tree right = CHREC_RIGHT (access_fun);
+ struct loop *outer_loop;
+ tree left = CHREC_LEFT (af);
+ tree right = CHREC_RIGHT (af);
int var;
if (TREE_CODE (right) != INTEGER_CST)
return false;
-
- var = loop_iteration_vector_dim (CHREC_VARIABLE (access_fun), scop);
+
+ outer_loop = get_loop (CHREC_VARIABLE (af));
+ var = nb_loops_around_loop_in_scop (outer_loop, scop);
cy[var] = int_cst_value (right);
switch (TREE_CODE (left))
@@ -3082,12 +3583,27 @@ build_access_matrix_with_af (tree access_fun, lambda_vector cy,
return true;
default:
- /* FIXME: access_fn can have parameters. */
- return false;
+ return build_access_matrix_with_af (left, cy, scop, ndim);
}
}
+
+ case PLUS_EXPR:
+ build_access_matrix_with_af (TREE_OPERAND (af, 0), cy, scop, ndim);
+ build_access_matrix_with_af (TREE_OPERAND (af, 1), cy, scop, ndim);
+ return true;
+
+ case MINUS_EXPR:
+ build_access_matrix_with_af (TREE_OPERAND (af, 0), cy, scop, ndim);
+ build_access_matrix_with_af (TREE_OPERAND (af, 1), cy, scop, ndim);
+ return true;
+
case INTEGER_CST:
- cy[ndim - 1] = int_cst_value (access_fun);
+ cy[ndim - 1] = int_cst_value (af);
+ return true;
+
+ case SSA_NAME:
+ param_col = param_index (af, scop);
+ cy [ndim - scop_nb_params (scop) + param_col - 1] = 1;
return true;
default:
@@ -3106,7 +3622,7 @@ build_access_matrix (data_reference_p ref, graphite_bb_p gb)
int i, ndim = DR_NUM_DIMENSIONS (ref);
struct access_matrix *am = GGC_NEW (struct access_matrix);
- AM_MATRIX (am) = VEC_alloc (lambda_vector, heap, ndim);
+ AM_MATRIX (am) = VEC_alloc (lambda_vector, gc, ndim);
DR_SCOP (ref) = GBB_SCOP (gb);
for (i = 0; i < ndim; i++)
@@ -3118,7 +3634,7 @@ build_access_matrix (data_reference_p ref, graphite_bb_p gb)
if (!build_access_matrix_with_af (af, v, scop, ref_nb_loops (ref)))
return false;
- VEC_safe_push (lambda_vector, heap, AM_MATRIX (am), v);
+ VEC_quick_push (lambda_vector, AM_MATRIX (am), v);
}
DR_ACCESS_MATRIX (ref) = am;
@@ -3133,23 +3649,14 @@ build_scop_data_accesses (scop_p scop)
int i;
graphite_bb_p gb;
+ /* FIXME: Construction of access matrix is disabled until some
+ pass, like the data dependence analysis, is using it. */
+ return;
+
for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
{
int j;
- gimple_stmt_iterator gsi;
data_reference_p dr;
- struct loop *nest = outermost_loop_in_scop (scop, GBB_BB (gb));
-
- /* On each statement of the basic block, gather all the occurences
- to read/write memory. */
- GBB_DATA_REFS (gb) = VEC_alloc (data_reference_p, heap, 5);
- for (gsi = gsi_start_bb (GBB_BB (gb)); !gsi_end_p (gsi); gsi_next (&gsi))
- find_data_references_in_stmt (nest, gsi_stmt (gsi),
- &GBB_DATA_REFS (gb));
-
- /* FIXME: Construction of access matrix is disabled until some
- pass, like the data dependence analysis, is using it. */
- continue;
/* Construct the access matrix for each data ref, with respect to
the loop nest of the current BB in the considered SCOP. */
@@ -3188,9 +3695,10 @@ clast_name_to_gcc (const char *name, VEC (name_tree, heap) *params,
name_tree t;
tree iv;
- for (i = 0; VEC_iterate (name_tree, params, i, t); i++)
- if (!strcmp (name, t->name))
- return t->t;
+ if (params)
+ for (i = 0; VEC_iterate (name_tree, params, i, t); i++)
+ if (!strcmp (name, t->name))
+ return t->t;
iv = loop_iv_stack_get_iv_from_name (ivstack, name);
if (iv)
@@ -3199,17 +3707,24 @@ clast_name_to_gcc (const char *name, VEC (name_tree, heap) *params,
gcc_unreachable ();
}
-/* Converts a Cloog AST expression E back to a GCC expression tree. */
+/* Returns the maximal precision type for expressions E1 and E2. */
+
+static inline tree
+max_precision_type (tree e1, tree e2)
+{
+ tree type1 = TREE_TYPE (e1);
+ tree type2 = TREE_TYPE (e2);
+ return TYPE_PRECISION (type1) > TYPE_PRECISION (type2) ? type1 : type2;
+}
+
+/* Converts a Cloog AST expression E back to a GCC expression tree
+ of type TYPE. */
static tree
-clast_to_gcc_expression (struct clast_expr *e,
+clast_to_gcc_expression (tree type, struct clast_expr *e,
VEC (name_tree, heap) *params,
loop_iv_stack ivstack)
{
- tree type = integer_type_node;
-
- gcc_assert (e);
-
switch (e->type)
{
case expr_term:
@@ -3219,53 +3734,62 @@ clast_to_gcc_expression (struct clast_expr *e,
if (t->var)
{
if (value_one_p (t->val))
- return clast_name_to_gcc (t->var, params, ivstack);
+ {
+ tree name = clast_name_to_gcc (t->var, params, ivstack);
+ return fold_convert (type, name);
+ }
else if (value_mone_p (t->val))
- return fold_build1 (NEGATE_EXPR, type,
- clast_name_to_gcc (t->var, params, ivstack));
+ {
+ tree name = clast_name_to_gcc (t->var, params, ivstack);
+ name = fold_convert (type, name);
+ return fold_build1 (NEGATE_EXPR, type, name);
+ }
else
- return fold_build2 (MULT_EXPR, type,
- gmp_cst_to_tree (t->val),
- clast_name_to_gcc (t->var, params, ivstack));
+ {
+ tree name = clast_name_to_gcc (t->var, params, ivstack);
+ tree cst = gmp_cst_to_tree (type, t->val);
+ name = fold_convert (type, name);
+ return fold_build2 (MULT_EXPR, type, cst, name);
+ }
}
else
- return gmp_cst_to_tree (t->val);
+ return gmp_cst_to_tree (type, t->val);
}
case expr_red:
{
struct clast_reduction *r = (struct clast_reduction *) e;
- tree left, right;
switch (r->type)
{
case clast_red_sum:
if (r->n == 1)
- return clast_to_gcc_expression (r->elts[0], params, ivstack);
+ return clast_to_gcc_expression (type, r->elts[0], params, ivstack);
else
{
+ tree tl = clast_to_gcc_expression (type, r->elts[0], params, ivstack);
+ tree tr = clast_to_gcc_expression (type, r->elts[1], params, ivstack);
+
gcc_assert (r->n >= 1
&& r->elts[0]->type == expr_term
&& r->elts[1]->type == expr_term);
- left = clast_to_gcc_expression (r->elts[0], params, ivstack);
- right = clast_to_gcc_expression (r->elts[1], params, ivstack);
- return fold_build2 (PLUS_EXPR, type, left, right);
+ return fold_build2 (PLUS_EXPR, type, tl, tr);
}
break;
case clast_red_min:
if (r->n == 1)
- return clast_to_gcc_expression (r->elts[0], params, ivstack);
+ return clast_to_gcc_expression (type, r->elts[0], params, ivstack);
else if (r->n == 2)
{
- left = clast_to_gcc_expression (r->elts[0], params, ivstack);
- right = clast_to_gcc_expression (r->elts[1], params, ivstack);
- return fold_build2 (MIN_EXPR, type, left, right);
+ tree tl = clast_to_gcc_expression (type, r->elts[0], params, ivstack);
+ tree tr = clast_to_gcc_expression (type, r->elts[1], params, ivstack);
+ return fold_build2 (MIN_EXPR, type, tl, tr);
}
else
@@ -3275,13 +3799,13 @@ clast_to_gcc_expression (struct clast_expr *e,
case clast_red_max:
if (r->n == 1)
- return clast_to_gcc_expression (r->elts[0], params, ivstack);
+ return clast_to_gcc_expression (type, r->elts[0], params, ivstack);
else if (r->n == 2)
{
- left = clast_to_gcc_expression (r->elts[0], params, ivstack);
- right = clast_to_gcc_expression (r->elts[1], params, ivstack);
- return fold_build2 (MAX_EXPR, type, left, right);
+ tree tl = clast_to_gcc_expression (type, r->elts[0], params, ivstack);
+ tree tr = clast_to_gcc_expression (type, r->elts[1], params, ivstack);
+ return fold_build2 (MAX_EXPR, type, tl, tr);
}
else
@@ -3299,15 +3823,8 @@ clast_to_gcc_expression (struct clast_expr *e,
{
struct clast_binary *b = (struct clast_binary *) e;
struct clast_expr *lhs = (struct clast_expr *) b->LHS;
- struct clast_expr *rhs = (struct clast_expr *) b->RHS;
- tree tl = clast_to_gcc_expression (lhs, params, ivstack);
-
- /* FIXME: The next statement produces a warning: Cloog assumes
- that the RHS is a constant, but this is a "void *" pointer
- that should be casted into a Value, but this cast cannot be
- done as Value is a GMP type, that is an array. Cloog must
- be fixed for removing this warning. */
- tree tr = gmp_cst_to_tree (rhs);
+ tree tl = clast_to_gcc_expression (type, lhs, params, ivstack);
+ tree tr = gmp_cst_to_tree (type, b->RHS);
switch (b->type)
{
@@ -3335,6 +3852,72 @@ clast_to_gcc_expression (struct clast_expr *e,
return NULL_TREE;
}
+/* Returns the type for the expression E. */
+
+static tree
+gcc_type_for_clast_expr (struct clast_expr *e,
+ VEC (name_tree, heap) *params,
+ loop_iv_stack ivstack)
+{
+ switch (e->type)
+ {
+ case expr_term:
+ {
+ struct clast_term *t = (struct clast_term *) e;
+
+ if (t->var)
+ return TREE_TYPE (clast_name_to_gcc (t->var, params, ivstack));
+ else
+ return NULL_TREE;
+ }
+
+ case expr_red:
+ {
+ struct clast_reduction *r = (struct clast_reduction *) e;
+
+ if (r->n == 1)
+ return gcc_type_for_clast_expr (r->elts[0], params, ivstack);
+ else
+ {
+ int i;
+ for (i = 0; i < r->n; i++)
+ {
+ tree type = gcc_type_for_clast_expr (r->elts[i], params, ivstack);
+ if (type)
+ return type;
+ }
+ return NULL_TREE;
+ }
+ }
+
+ case expr_bin:
+ {
+ struct clast_binary *b = (struct clast_binary *) e;
+ struct clast_expr *lhs = (struct clast_expr *) b->LHS;
+ return gcc_type_for_clast_expr (lhs, params, ivstack);
+ }
+
+ default:
+ gcc_unreachable ();
+ }
+
+ return NULL_TREE;
+}
+
+/* Returns the type for the equation CLEQ. */
+
+static tree
+gcc_type_for_clast_eq (struct clast_equation *cleq,
+ VEC (name_tree, heap) *params,
+ loop_iv_stack ivstack)
+{
+ tree type = gcc_type_for_clast_expr (cleq->LHS, params, ivstack);
+ if (type)
+ return type;
+
+ return gcc_type_for_clast_expr (cleq->RHS, params, ivstack);
+}
+
/* Translates a clast equation CLEQ to a tree. */
static tree
@@ -3343,8 +3926,9 @@ graphite_translate_clast_equation (scop_p scop,
loop_iv_stack ivstack)
{
enum tree_code comp;
- tree lhs = clast_to_gcc_expression (cleq->LHS, SCOP_PARAMS (scop), ivstack);
- tree rhs = clast_to_gcc_expression (cleq->RHS, SCOP_PARAMS (scop), ivstack);
+ tree type = gcc_type_for_clast_eq (cleq, SCOP_PARAMS (scop), ivstack);
+ tree lhs = clast_to_gcc_expression (type, cleq->LHS, SCOP_PARAMS (scop), ivstack);
+ tree rhs = clast_to_gcc_expression (type, cleq->RHS, SCOP_PARAMS (scop), ivstack);
if (cleq->sign == 0)
comp = EQ_EXPR;
@@ -3355,7 +3939,7 @@ graphite_translate_clast_equation (scop_p scop,
else
comp = LE_EXPR;
- return fold_build2 (comp, integer_type_node, lhs, rhs);
+ return fold_build2 (comp, type, lhs, rhs);
}
/* Creates the test for the condition in STMT. */
@@ -3372,7 +3956,7 @@ graphite_create_guard_cond_expr (scop_p scop, struct clast_guard *stmt,
tree eq = graphite_translate_clast_equation (scop, &stmt->eq[i], ivstack);
if (cond)
- cond = fold_build2 (TRUTH_AND_EXPR, integer_type_node, cond, eq);
+ cond = fold_build2 (TRUTH_AND_EXPR, TREE_TYPE (eq), cond, eq);
else
cond = eq;
}
@@ -3392,6 +3976,41 @@ graphite_create_new_guard (scop_p scop, edge entry_edge,
return exit_edge;
}
+/* Walks a CLAST and returns the first statement in the body of a
+ loop. */
+
+static struct clast_user_stmt *
+clast_get_body_of_loop (struct clast_stmt *stmt)
+{
+ if (!stmt
+ || CLAST_STMT_IS_A (stmt, stmt_user))
+ return (struct clast_user_stmt *) stmt;
+
+ if (CLAST_STMT_IS_A (stmt, stmt_for))
+ return clast_get_body_of_loop (((struct clast_for *) stmt)->body);
+
+ if (CLAST_STMT_IS_A (stmt, stmt_guard))
+ return clast_get_body_of_loop (((struct clast_guard *) stmt)->then);
+
+ if (CLAST_STMT_IS_A (stmt, stmt_block))
+ return clast_get_body_of_loop (((struct clast_block *) stmt)->body);
+
+ gcc_unreachable ();
+}
+
+/* Returns the induction variable for the loop that gets translated to
+ STMT. */
+
+static tree
+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for)
+{
+ struct clast_user_stmt *stmt = clast_get_body_of_loop ((struct clast_stmt *) stmt_for);
+ const char *cloog_iv = stmt_for->iterator;
+ CloogStatement *cs = stmt->statement;
+ graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
+
+ return gcc_type_for_cloog_iv (cloog_iv, gbb);
+}
/* Creates a new LOOP corresponding to Cloog's STMT. Inserts an induction
variable for the new LOOP. New LOOP is attached to CFG starting at
@@ -3403,63 +4022,26 @@ graphite_create_new_loop (scop_p scop, edge entry_edge,
struct clast_for *stmt, loop_iv_stack ivstack,
loop_p outer)
{
- struct loop *loop;
- tree ivvar;
- tree stride, lowb, upb;
+ tree type = gcc_type_for_iv_of_clast_loop (stmt);
+ VEC (name_tree, heap) *params = SCOP_PARAMS (scop);
+ tree lb = clast_to_gcc_expression (type, stmt->LB, params, ivstack);
+ tree ub = clast_to_gcc_expression (type, stmt->UB, params, ivstack);
+ tree stride = gmp_cst_to_tree (type, stmt->stride);
+ tree ivvar = create_tmp_var (type, "graphiteIV");
tree iv_before;
+ loop_p loop = create_empty_loop_on_edge
+ (entry_edge, lb, stride, ub, ivvar, &iv_before,
+ outer ? outer : entry_edge->src->loop_father);
- gcc_assert (stmt->LB
- && stmt->UB);
-
- stride = gmp_cst_to_tree (stmt->stride);
- lowb = clast_to_gcc_expression (stmt->LB, SCOP_PARAMS (scop), ivstack);
- ivvar = create_tmp_var (integer_type_node, "graphiteIV");
add_referenced_var (ivvar);
-
- upb = clast_to_gcc_expression (stmt->UB, SCOP_PARAMS (scop), ivstack);
- loop = create_empty_loop_on_edge (entry_edge, lowb, stride, upb, ivvar,
- &iv_before, outer ? outer
- : entry_edge->src->loop_father);
-
loop_iv_stack_push_iv (ivstack, iv_before, stmt->iterator);
-
return loop;
}
-/* Remove all the edges from EDGES except the edge KEEP. */
-
-static void
-remove_all_edges_1 (VEC (edge, gc) *edges, edge keep)
-{
- edge e;
- edge_iterator ei;
-
- for (ei = ei_start (edges); (e = ei_safe_edge (ei)); )
- {
- if (e != keep)
- {
- remove_edge (e);
- e = ei_safe_edge (ei);
- }
- else
- ei_next (&ei);
- }
-}
-
-/* Remove all the edges from BB except the edge KEEP. */
-
-static void
-remove_all_edges (basic_block bb, edge keep)
-{
- remove_all_edges_1 (bb->succs, keep);
- remove_all_edges_1 (bb->preds, keep);
-}
-
/* Rename the SSA_NAMEs used in STMT and that appear in IVSTACK. */
static void
-graphite_rename_ivs_stmt (gimple stmt, graphite_bb_p gbb, scop_p scop,
- loop_p old, loop_iv_stack ivstack)
+rename_variables_in_stmt (gimple stmt, htab_t map)
{
ssa_op_iter iter;
use_operand_p use_p;
@@ -3467,16 +4049,12 @@ graphite_rename_ivs_stmt (gimple stmt, graphite_bb_p gbb, scop_p scop,
FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
{
tree use = USE_FROM_PTR (use_p);
- tree new_iv = NULL;
- name_tree old_iv = get_old_iv_from_ssa_name (scop, old, use);
-
- if (old_iv)
- new_iv = loop_iv_stack_get_iv (ivstack,
- gbb_loop_index (gbb, old_iv->loop));
+ tree new_name = get_new_name_from_old_name (map, use);
- if (new_iv)
- SET_USE (use_p, new_iv);
+ replace_exp (use_p, new_name);
}
+
+ update_stmt (stmt);
}
/* Returns true if SSA_NAME is a parameter of SCOP. */
@@ -3495,43 +4073,132 @@ is_parameter (scop_p scop, tree ssa_name)
return false;
}
-/* Returns true if NAME is an old induction variable in SCOP. OLD is
- the original loop that contained the definition of NAME. */
+/* Returns true if NAME is an induction variable. */
static bool
-is_old_iv (scop_p scop, loop_p old, tree name)
+is_iv (tree name)
{
- return get_old_iv_from_ssa_name (scop, old, name) != NULL;
-
+ return gimple_code (SSA_NAME_DEF_STMT (name)) == GIMPLE_PHI;
}
-static void expand_scalar_variables_stmt (gimple, graphite_bb_p, scop_p, loop_p,
- loop_iv_stack);
+static void expand_scalar_variables_stmt (gimple, basic_block, scop_p,
+ htab_t);
+static tree
+expand_scalar_variables_expr (tree, tree, enum tree_code, tree, basic_block,
+ scop_p, htab_t, gimple_stmt_iterator *);
-/* Constructs a tree which only contains old_ivs and parameters. Any
- other variables that are defined outside GBB will be eliminated by
- using their definitions in the constructed tree. OLD_LOOP_FATHER
- is the original loop that contained GBB. */
+/* Copies at GSI all the scalar computations on which the ssa_name OP0
+ depends on in the SCOP: these are all the scalar variables used in
+ the definition of OP0, that are defined outside BB and still in the
+ SCOP, i.e. not a parameter of the SCOP. The expression that is
+ returned contains only induction variables from the generated code:
+ MAP contains the induction variables renaming mapping, and is used
+ to translate the names of induction variables. */
+
+static tree
+expand_scalar_variables_ssa_name (tree op0, basic_block bb,
+ scop_p scop, htab_t map,
+ gimple_stmt_iterator *gsi)
+{
+ tree var0, var1, type;
+ gimple def_stmt;
+ enum tree_code subcode;
+
+ if (is_parameter (scop, op0)
+ || is_iv (op0))
+ return get_new_name_from_old_name (map, op0);
+
+ def_stmt = SSA_NAME_DEF_STMT (op0);
+
+ if (gimple_bb (def_stmt) == bb)
+ {
+ /* If the defining statement is in the basic block already
+ we do not need to create a new expression for it, we
+ only need to ensure its operands are expanded. */
+ expand_scalar_variables_stmt (def_stmt, bb, scop, map);
+ return get_new_name_from_old_name (map, op0);
+ }
+ else
+ {
+ if (gimple_code (def_stmt) != GIMPLE_ASSIGN
+ || !bb_in_scop_p (gimple_bb (def_stmt), scop))
+ return get_new_name_from_old_name (map, op0);
+
+ var0 = gimple_assign_rhs1 (def_stmt);
+ subcode = gimple_assign_rhs_code (def_stmt);
+ var1 = gimple_assign_rhs2 (def_stmt);
+ type = gimple_expr_type (def_stmt);
+
+ return expand_scalar_variables_expr (type, var0, subcode, var1, bb, scop,
+ map, gsi);
+ }
+}
+
+/* Copies at GSI all the scalar computations on which the expression
+ OP0 CODE OP1 depends on in the SCOP: these are all the scalar
+ variables used in OP0 and OP1, defined outside BB and still defined
+ in the SCOP, i.e. not a parameter of the SCOP. The expression that
+ is returned contains only induction variables from the generated
+ code: MAP contains the induction variables renaming mapping, and is
+ used to translate the names of induction variables. */
static tree
expand_scalar_variables_expr (tree type, tree op0, enum tree_code code,
- tree op1, graphite_bb_p gbb, scop_p scop,
- loop_p old_loop_father, loop_iv_stack ivstack)
+ tree op1, basic_block bb, scop_p scop,
+ htab_t map, gimple_stmt_iterator *gsi)
{
- if ((TREE_CODE_CLASS (code) == tcc_constant
- && code == INTEGER_CST)
- || TREE_CODE_CLASS (code) == tcc_reference)
+ if (TREE_CODE_CLASS (code) == tcc_constant
+ || TREE_CODE_CLASS (code) == tcc_declaration)
return op0;
+ /* For data references we have to duplicate also its memory
+ indexing. */
+ if (TREE_CODE_CLASS (code) == tcc_reference)
+ {
+ switch (code)
+ {
+ case INDIRECT_REF:
+ {
+ tree old_name = TREE_OPERAND (op0, 0);
+ tree expr = expand_scalar_variables_ssa_name
+ (old_name, bb, scop, map, gsi);
+ tree new_name = force_gimple_operand_gsi (gsi, expr, true, NULL,
+ true, GSI_SAME_STMT);
+
+ set_symbol_mem_tag (SSA_NAME_VAR (new_name),
+ symbol_mem_tag (SSA_NAME_VAR (old_name)));
+ return fold_build1 (code, type, new_name);
+ }
+
+ case ARRAY_REF:
+ {
+ tree op00 = TREE_OPERAND (op0, 0);
+ tree op01 = TREE_OPERAND (op0, 1);
+ tree op02 = TREE_OPERAND (op0, 2);
+ tree op03 = TREE_OPERAND (op0, 3);
+ tree base = expand_scalar_variables_expr
+ (TREE_TYPE (op00), op00, TREE_CODE (op00), NULL, bb, scop,
+ map, gsi);
+ tree subscript = expand_scalar_variables_expr
+ (TREE_TYPE (op01), op01, TREE_CODE (op01), NULL, bb, scop,
+ map, gsi);
+
+ return build4 (ARRAY_REF, type, base, subscript, op02, op03);
+ }
+
+ default:
+ /* The above cases should catch everything. */
+ gcc_unreachable ();
+ }
+ }
+
if (TREE_CODE_CLASS (code) == tcc_unary)
{
tree op0_type = TREE_TYPE (op0);
enum tree_code op0_code = TREE_CODE (op0);
- tree op0_expr =
- expand_scalar_variables_expr (op0_type, op0, op0_code,
- NULL, gbb, scop, old_loop_father,
- ivstack);
-
+ tree op0_expr = expand_scalar_variables_expr (op0_type, op0, op0_code,
+ NULL, bb, scop, map, gsi);
+
return fold_build1 (code, type, op0_expr);
}
@@ -3539,162 +4206,88 @@ expand_scalar_variables_expr (tree type, tree op0, enum tree_code code,
{
tree op0_type = TREE_TYPE (op0);
enum tree_code op0_code = TREE_CODE (op0);
- tree op0_expr =
- expand_scalar_variables_expr (op0_type, op0, op0_code,
- NULL, gbb, scop, old_loop_father,
- ivstack);
+ tree op0_expr = expand_scalar_variables_expr (op0_type, op0, op0_code,
+ NULL, bb, scop, map, gsi);
tree op1_type = TREE_TYPE (op1);
enum tree_code op1_code = TREE_CODE (op1);
- tree op1_expr =
- expand_scalar_variables_expr (op1_type, op1, op1_code,
- NULL, gbb, scop, old_loop_father,
- ivstack);
+ tree op1_expr = expand_scalar_variables_expr (op1_type, op1, op1_code,
+ NULL, bb, scop, map, gsi);
return fold_build2 (code, type, op0_expr, op1_expr);
}
if (code == SSA_NAME)
- {
- tree var0, var1;
- gimple def_stmt;
- enum tree_code subcode;
-
- if(is_parameter (scop, op0) ||
- is_old_iv (scop, old_loop_father, op0))
- return op0;
-
- def_stmt = SSA_NAME_DEF_STMT (op0);
-
- if (gimple_bb (def_stmt) == GBB_BB (gbb))
- {
- /* If the defining statement is in the basic block already
- we do not need to create a new expression for it, we
- only need to ensure its operands are expanded. */
- expand_scalar_variables_stmt (def_stmt, gbb, scop,
- old_loop_father, ivstack);
- return op0;
-
- }
- else
- {
- if (gimple_code (def_stmt) != GIMPLE_ASSIGN)
- return op0;
-
- var0 = gimple_assign_rhs1 (def_stmt);
- subcode = gimple_assign_rhs_code (def_stmt);
- var1 = gimple_assign_rhs2 (def_stmt);
-
- return expand_scalar_variables_expr (type, var0, subcode, var1,
- gbb, scop, old_loop_father,
- ivstack);
- }
- }
+ return expand_scalar_variables_ssa_name (op0, bb, scop, map, gsi);
gcc_unreachable ();
return NULL;
}
-/* Replicates any uses of non-parameters and non-old-ivs variablesthat
- are defind outside GBB with code that is inserted in GBB.
- OLD_LOOP_FATHER is the original loop that contained STMT. */
+/* Copies at the beginning of BB all the scalar computations on which
+ STMT depends on in the SCOP: these are all the scalar variables used
+ in STMT, defined outside BB and still defined in the SCOP, i.e. not a
+ parameter of the SCOP. The expression that is returned contains
+ only induction variables from the generated code: MAP contains the
+ induction variables renaming mapping, and is used to translate the
+ names of induction variables. */
static void
-expand_scalar_variables_stmt (gimple stmt, graphite_bb_p gbb, scop_p scop,
- loop_p old_loop_father, loop_iv_stack ivstack)
+expand_scalar_variables_stmt (gimple stmt, basic_block bb, scop_p scop,
+ htab_t map)
{
ssa_op_iter iter;
use_operand_p use_p;
- basic_block bb = GBB_BB (gbb);
+ gimple_stmt_iterator gsi = gsi_after_labels (bb);
FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
{
tree use = USE_FROM_PTR (use_p);
tree type = TREE_TYPE (use);
- enum tree_code code = TREE_CODE (use);
- tree use_expr = expand_scalar_variables_expr (type, use, code, NULL,
- gbb, scop, old_loop_father,
- ivstack);
+ enum tree_code code = TREE_CODE (use);
+ tree use_expr = expand_scalar_variables_expr (type, use, code, NULL, bb,
+ scop, map, &gsi);
if (use_expr != use)
{
- gimple_stmt_iterator gsi = gsi_after_labels (bb);
tree new_use =
force_gimple_operand_gsi (&gsi, use_expr, true, NULL,
true, GSI_NEW_STMT);
- SET_USE (use_p, new_use);
+ replace_exp (use_p, new_use);
}
}
+
+ update_stmt (stmt);
}
-/* Copies the definitions outside of GBB of variables that are not
- induction variables nor parameters. GBB must only contain
- "external" references to these types of variables. OLD_LOOP_FATHER
- is the original loop that contained GBB. */
+/* Copies at the beginning of BB all the scalar computations on which
+ BB depends on in the SCOP: these are all the scalar variables used
+ in BB, defined outside BB and still defined in the SCOP, i.e. not a
+ parameter of the SCOP. The expression that is returned contains
+ only induction variables from the generated code: MAP contains the
+ induction variables renaming mapping, and is used to translate the
+ names of induction variables. */
static void
-expand_scalar_variables (graphite_bb_p gbb, scop_p scop,
- loop_p old_loop_father, loop_iv_stack ivstack)
+expand_scalar_variables (basic_block bb, scop_p scop, htab_t map)
{
- basic_block bb = GBB_BB (gbb);
gimple_stmt_iterator gsi;
for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi);)
{
gimple stmt = gsi_stmt (gsi);
- expand_scalar_variables_stmt (stmt, gbb, scop, old_loop_father,
- ivstack);
+ expand_scalar_variables_stmt (stmt, bb, scop, map);
gsi_next (&gsi);
}
}
-/* Rename all the SSA_NAMEs from block GBB that appear in IVSTACK in
- terms of new induction variables. OLD_LOOP_FATHER is the original
- loop that contained GBB. */
+/* Rename all the SSA_NAMEs from block BB according to the MAP. */
static void
-graphite_rename_ivs (graphite_bb_p gbb, scop_p scop, loop_p old_loop_father,
- loop_iv_stack ivstack)
+rename_variables (basic_block bb, htab_t map)
{
- basic_block bb = GBB_BB (gbb);
gimple_stmt_iterator gsi;
- for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi);)
- {
- gimple stmt = gsi_stmt (gsi);
-
- if (gimple_get_lhs (stmt)
- && TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME
- && get_old_iv_from_ssa_name (scop, old_loop_father,
- gimple_get_lhs (stmt)))
- gsi_remove (&gsi, false);
- else
- {
- graphite_rename_ivs_stmt (stmt, gbb, scop, old_loop_father, ivstack);
- gsi_next (&gsi);
- }
- }
-}
-
-/* Move all the PHI nodes from block FROM to block TO.
- OLD_LOOP_FATHER is the original loop that contained FROM. */
-
-static void
-move_phi_nodes (scop_p scop, loop_p old_loop_father, basic_block from,
- basic_block to)
-{
- gimple_stmt_iterator gsi;
-
- for (gsi = gsi_start_phis (from); !gsi_end_p (gsi);)
- {
- gimple phi = gsi_stmt (gsi);
- tree op = gimple_phi_result (phi);
-
- if (get_old_iv_from_ssa_name (scop, old_loop_father, op) == NULL)
- {
- gimple new_phi = make_phi_node (op, 0);
- add_phi_node_to_bb (new_phi, to);
- }
- remove_phi_node (&gsi, false);
- }
+ for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ rename_variables_in_stmt (gsi_stmt (gsi), map);
}
/* Remove condition from BB. */
@@ -3727,10 +4320,294 @@ get_true_edge_from_guard_bb (basic_block bb)
return NULL;
}
-/* Translates a CLAST statement STMT to GCC representation. NEXT_E is
- the edge where new generated code should be attached. BB_EXIT is the last
- basic block that defines the scope of code generation. CONTEXT_LOOP is the
- loop in which the generated code will be placed (might be NULL). */
+/* Returns the first successor edge of BB with EDGE_TRUE_VALUE flag cleared. */
+
+static edge
+get_false_edge_from_guard_bb (basic_block bb)
+{
+ edge e;
+ edge_iterator ei;
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ if (!(e->flags & EDGE_TRUE_VALUE))
+ return e;
+
+ gcc_unreachable ();
+ return NULL;
+}
+
+/* Inserts in MAP a tuple (OLD_NAME, NEW_NAME) for the induction
+ variables of the loops around GBB in SCOP, i.e. GBB_LOOPS.
+ NEW_NAME is obtained from IVSTACK. IVSTACK has the same stack
+ ordering as GBB_LOOPS. */
+
+static void
+build_iv_mapping (loop_iv_stack ivstack, htab_t map, gbb_p gbb, scop_p scop)
+{
+ int i;
+ name_tree iv;
+ PTR *slot;
+
+ for (i = 0; VEC_iterate (name_tree, SCOP_OLDIVS (scop), i, iv); i++)
+ {
+ struct rename_map_elt tmp;
+
+ if (!flow_bb_inside_loop_p (iv->loop, GBB_BB (gbb)))
+ continue;
+
+ tmp.old_name = iv->t;
+ slot = htab_find_slot (map, &tmp, INSERT);
+
+ if (!*slot)
+ {
+ tree new_name = loop_iv_stack_get_iv (ivstack,
+ gbb_loop_index (gbb, iv->loop));
+ *slot = new_rename_map_elt (iv->t, new_name);
+ }
+ }
+}
+
+/* Register in MAP the tuple (old_name, new_name). */
+
+static void
+register_old_and_new_names (htab_t map, tree old_name, tree new_name)
+{
+ struct rename_map_elt tmp;
+ PTR *slot;
+
+ tmp.old_name = old_name;
+ slot = htab_find_slot (map, &tmp, INSERT);
+
+ if (!*slot)
+ *slot = new_rename_map_elt (old_name, new_name);
+}
+
+/* Create a duplicate of the basic block BB. NOTE: This does not
+ preserve SSA form. */
+
+static void
+graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb, htab_t map)
+{
+ gimple_stmt_iterator gsi, gsi_tgt;
+
+ gsi_tgt = gsi_start_bb (new_bb);
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ def_operand_p def_p;
+ ssa_op_iter op_iter;
+ int region;
+ gimple stmt = gsi_stmt (gsi);
+ gimple copy;
+
+ if (gimple_code (stmt) == GIMPLE_LABEL)
+ continue;
+
+ /* Create a new copy of STMT and duplicate STMT's virtual
+ operands. */
+ copy = gimple_copy (stmt);
+ gsi_insert_after (&gsi_tgt, copy, GSI_NEW_STMT);
+ mark_symbols_for_renaming (copy);
+
+ region = lookup_stmt_eh_region (stmt);
+ if (region >= 0)
+ add_stmt_to_eh_region (copy, region);
+ gimple_duplicate_stmt_histograms (cfun, copy, cfun, stmt);
+
+ /* Create new names for all the definitions created by COPY and
+ add replacement mappings for each new name. */
+ FOR_EACH_SSA_DEF_OPERAND (def_p, copy, op_iter, SSA_OP_DEF)
+ {
+ tree old_name = DEF_FROM_PTR (def_p);
+ tree new_name = create_new_def_for (old_name, copy, def_p);
+ register_old_and_new_names (map, old_name, new_name);
+ }
+ }
+}
+
+/* Records in SCOP_LIVEOUT_RENAMES the names that are live out of
+ the SCOP and that appear in the RENAME_MAP. */
+
+static void
+register_scop_liveout_renames (scop_p scop, htab_t rename_map)
+{
+ int i;
+ sese region = SCOP_REGION (scop);
+
+ for (i = 0; i < SESE_NUM_VER (region); i++)
+ if (bitmap_bit_p (SESE_LIVEOUT (region), i)
+ && is_gimple_reg (ssa_name (i)))
+ {
+ tree old_name = ssa_name (i);
+ tree new_name = get_new_name_from_old_name (rename_map, old_name);
+
+ register_old_and_new_names (SCOP_LIVEOUT_RENAMES (scop),
+ old_name, new_name);
+ }
+}
+
+/* Copies BB and includes in the copied BB all the statements that can
+ be reached following the use-def chains from the memory accesses,
+ and returns the next edge following this new block. */
+
+static edge
+copy_bb_and_scalar_dependences (basic_block bb, scop_p scop,
+ edge next_e, htab_t map)
+{
+ basic_block new_bb = split_edge (next_e);
+
+ next_e = single_succ_edge (new_bb);
+ graphite_copy_stmts_from_block (bb, new_bb, map);
+ remove_condition (new_bb);
+ rename_variables (new_bb, map);
+ remove_phi_nodes (new_bb);
+ expand_scalar_variables (new_bb, scop, map);
+ register_scop_liveout_renames (scop, map);
+
+ return next_e;
+}
+
+/* Helper function for htab_traverse in insert_loop_close_phis. */
+
+static int
+add_loop_exit_phis (void **slot, void *s)
+{
+ struct rename_map_elt *entry = (struct rename_map_elt *) *slot;
+ tree new_name = entry->new_name;
+ basic_block bb = (basic_block) s;
+ gimple phi = create_phi_node (new_name, bb);
+ tree res = create_new_def_for (gimple_phi_result (phi), phi,
+ gimple_phi_result_ptr (phi));
+
+ add_phi_arg (phi, new_name, single_pred_edge (bb));
+
+ entry->new_name = res;
+ *slot = entry;
+ return 1;
+}
+
+/* Iterate over the SCOP_LIVEOUT_RENAMES (SCOP) and get tuples of the
+ form (OLD_NAME, NEW_NAME). Insert in BB "RES = phi (NEW_NAME)",
+ and finally register in SCOP_LIVEOUT_RENAMES (scop) the tuple
+ (OLD_NAME, RES). */
+
+static void
+insert_loop_close_phis (scop_p scop, basic_block bb)
+{
+ update_ssa (TODO_update_ssa);
+ htab_traverse (SCOP_LIVEOUT_RENAMES (scop), add_loop_exit_phis, bb);
+ update_ssa (TODO_update_ssa);
+}
+
+/* Helper structure for htab_traverse in insert_guard_phis. */
+
+struct igp {
+ basic_block bb;
+ edge true_edge, false_edge;
+ htab_t liveout_before_guard;
+};
+
+/* Return the default name that is before the guard. */
+
+static tree
+default_liveout_before_guard (htab_t liveout_before_guard, tree old_name)
+{
+ tree res = get_new_name_from_old_name (liveout_before_guard, old_name);
+
+ if (res == old_name)
+ {
+ if (is_gimple_reg (res))
+ return fold_convert (TREE_TYPE (res), integer_zero_node);
+ return gimple_default_def (cfun, res);
+ }
+
+ return res;
+}
+
+/* Helper function for htab_traverse in insert_guard_phis. */
+
+static int
+add_guard_exit_phis (void **slot, void *s)
+{
+ struct rename_map_elt *entry = (struct rename_map_elt *) *slot;
+ struct igp *i = (struct igp *) s;
+ basic_block bb = i->bb;
+ edge true_edge = i->true_edge;
+ edge false_edge = i->false_edge;
+ tree name1 = entry->new_name;
+ tree name2 = default_liveout_before_guard (i->liveout_before_guard,
+ entry->old_name);
+ gimple phi = create_phi_node (name1, bb);
+ tree res = create_new_def_for (gimple_phi_result (phi), phi,
+ gimple_phi_result_ptr (phi));
+
+ add_phi_arg (phi, name1, true_edge);
+ add_phi_arg (phi, name2, false_edge);
+
+ entry->new_name = res;
+ *slot = entry;
+ return 1;
+}
+
+/* Iterate over the SCOP_LIVEOUT_RENAMES (SCOP) and get tuples of the
+ form (OLD_NAME, NAME1). If there is a correspondent tuple of
+ OLD_NAME in LIVEOUT_BEFORE_GUARD, i.e. (OLD_NAME, NAME2) then
+ insert in BB
+
+ | RES = phi (NAME1 (on TRUE_EDGE), NAME2 (on FALSE_EDGE))"
+
+ if there is no tuple for OLD_NAME in LIVEOUT_BEFORE_GUARD, insert
+
+ | RES = phi (NAME1 (on TRUE_EDGE),
+ | DEFAULT_DEFINITION of NAME1 (on FALSE_EDGE))".
+
+ Finally register in SCOP_LIVEOUT_RENAMES (scop) the tuple
+ (OLD_NAME, RES). */
+
+static void
+insert_guard_phis (scop_p scop, basic_block bb, edge true_edge,
+ edge false_edge, htab_t liveout_before_guard)
+{
+ struct igp i;
+ i.bb = bb;
+ i.true_edge = true_edge;
+ i.false_edge = false_edge;
+ i.liveout_before_guard = liveout_before_guard;
+
+ update_ssa (TODO_update_ssa);
+ htab_traverse (SCOP_LIVEOUT_RENAMES (scop), add_guard_exit_phis, &i);
+ update_ssa (TODO_update_ssa);
+}
+
+/* Helper function for htab_traverse. */
+
+static int
+copy_renames (void **slot, void *s)
+{
+ struct rename_map_elt *entry = (struct rename_map_elt *) *slot;
+ htab_t res = (htab_t) s;
+ tree old_name = entry->old_name;
+ tree new_name = entry->new_name;
+ struct rename_map_elt tmp;
+ PTR *x;
+
+ tmp.old_name = old_name;
+ x = htab_find_slot (res, &tmp, INSERT);
+
+ if (!*x)
+ *x = new_rename_map_elt (old_name, new_name);
+
+ return 1;
+}
+
+/* Translates a CLAST statement STMT to GCC representation in the
+ context of a SCOP.
+
+ - NEXT_E is the edge where new generated code should be attached.
+ - CONTEXT_LOOP is the loop in which the generated code will be placed
+ (might be NULL).
+ - IVSTACK contains the surrounding loops around the statement to be
+ translated.
+*/
static edge
translate_clast (scop_p scop, struct loop *context_loop,
@@ -3744,35 +4621,23 @@ translate_clast (scop_p scop, struct loop *context_loop,
if (CLAST_STMT_IS_A (stmt, stmt_user))
{
+ htab_t map;
CloogStatement *cs = ((struct clast_user_stmt *) stmt)->statement;
graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
- basic_block bb = gbb->bb;
- loop_p old_loop_father = bb->loop_father;
- if (bb == ENTRY_BLOCK_PTR)
+ if (GBB_BB (gbb) == ENTRY_BLOCK_PTR)
return next_e;
- remove_condition (bb);
- expand_scalar_variables (gbb, scop, old_loop_father, ivstack);
- remove_all_edges (bb, next_e);
- move_phi_nodes (scop, old_loop_father, bb, next_e->src);
- redirect_edge_succ_nodup (next_e, bb);
-
- if (context_loop)
- {
- remove_bb_from_loops (bb);
- add_bb_to_loop (bb, context_loop);
- }
-
- set_immediate_dominator (CDI_DOMINATORS, next_e->dest, next_e->src);
- mark_virtual_ops_in_bb (bb);
- next_e = make_edge (bb,
- context_loop ? context_loop->latch : EXIT_BLOCK_PTR,
- EDGE_FALLTHRU);
- loop_iv_stack_patch_for_consts (ivstack,
- (struct clast_user_stmt *) stmt);
- graphite_rename_ivs (gbb, scop, old_loop_father, ivstack);
+ map = htab_create (10, rename_map_elt_info, eq_rename_map_elts, free);
+ loop_iv_stack_patch_for_consts (ivstack, (struct clast_user_stmt *) stmt);
+ build_iv_mapping (ivstack, map, gbb, scop);
+ next_e = copy_bb_and_scalar_dependences (GBB_BB (gbb), scop,
+ next_e, map);
+ htab_delete (map);
loop_iv_stack_remove_constants (ivstack);
+ update_ssa (TODO_update_ssa);
+ recompute_all_dominators ();
+ graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, next_e, ivstack);
}
@@ -3783,27 +4648,45 @@ translate_clast (scop_p scop, struct loop *context_loop,
ivstack, context_loop ? context_loop
: get_loop (0));
edge last_e = single_exit (loop);
-
+
next_e = translate_clast (scop, loop, ((struct clast_for *) stmt)->body,
single_pred_edge (loop->latch), ivstack);
redirect_edge_succ_nodup (next_e, loop->latch);
-
+
set_immediate_dominator (CDI_DOMINATORS, next_e->dest, next_e->src);
loop_iv_stack_pop (ivstack);
+ last_e = single_succ_edge (split_edge (last_e));
+ insert_loop_close_phis (scop, last_e->src);
+ recompute_all_dominators ();
+ graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, last_e, ivstack);
}
if (CLAST_STMT_IS_A (stmt, stmt_guard))
{
+ htab_t liveout_before_guard = htab_create (10, rename_map_elt_info,
+ eq_rename_map_elts, free);
edge last_e = graphite_create_new_guard (scop, next_e,
((struct clast_guard *) stmt),
ivstack);
edge true_e = get_true_edge_from_guard_bb (next_e->dest);
+ edge false_e = get_false_edge_from_guard_bb (next_e->dest);
+ edge exit_true_e = single_succ_edge (true_e->dest);
+ edge exit_false_e = single_succ_edge (false_e->dest);
+
+ htab_traverse (SCOP_LIVEOUT_RENAMES (scop), copy_renames,
+ liveout_before_guard);
+
next_e = translate_clast (scop, context_loop,
((struct clast_guard *) stmt)->then,
true_e, ivstack);
- redirect_edge_succ_nodup (next_e, last_e->src);
+ insert_guard_phis (scop, last_e->src, exit_true_e, exit_false_e,
+ liveout_before_guard);
+ htab_delete (liveout_before_guard);
+ recompute_all_dominators ();
+ graphite_verify ();
+
return translate_clast (scop, context_loop, stmt->next, last_e, ivstack);
}
@@ -3812,6 +4695,8 @@ translate_clast (scop_p scop, struct loop *context_loop,
next_e = translate_clast (scop, context_loop,
((struct clast_block *) stmt)->body,
next_e, ivstack);
+ recompute_all_dominators ();
+ graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, next_e, ivstack);
}
@@ -4026,295 +4911,509 @@ find_transform (scop_p scop)
return stmt;
}
-/* Return a vector of all the virtual phi nodes in the current
- function. */
-
-static VEC (gimple, heap) *
-collect_virtual_phis (void)
+/* Returns true when it is possible to generate code for this STMT.
+ For the moment we cannot generate code when Cloog decides to
+ duplicate a statement, as we do not do a copy, but a move.
+ USED_BASIC_BLOCKS records the blocks that have already been seen.
+ We return false if we have to generate code twice for the same
+ block. */
+
+static bool
+can_generate_code_stmt (struct clast_stmt *stmt,
+ struct pointer_set_t *used_basic_blocks)
{
- gimple_stmt_iterator si;
- gimple_vec phis = VEC_alloc (gimple, heap, 3);
- basic_block bb;
+ if (!stmt)
+ return true;
- FOR_EACH_BB (bb)
- for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
- /* The phis we moved will have 0 arguments because the
- original edges were removed. */
- if (gimple_phi_num_args (gsi_stmt (si)) == 0)
- VEC_safe_push (gimple, heap, phis, gsi_stmt (si));
+ if (CLAST_STMT_IS_A (stmt, stmt_root))
+ return can_generate_code_stmt (stmt->next, used_basic_blocks);
- /* Deallocate if we did not find any. */
- if (VEC_length (gimple, phis) == 0)
+ if (CLAST_STMT_IS_A (stmt, stmt_user))
{
- VEC_free (gimple, heap, phis);
- phis = NULL;
+ CloogStatement *cs = ((struct clast_user_stmt *) stmt)->statement;
+ graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
+
+ if (pointer_set_contains (used_basic_blocks, gbb))
+ return false;
+ pointer_set_insert (used_basic_blocks, gbb);
+ return can_generate_code_stmt (stmt->next, used_basic_blocks);
}
- return phis;
+ if (CLAST_STMT_IS_A (stmt, stmt_for))
+ return can_generate_code_stmt (((struct clast_for *) stmt)->body,
+ used_basic_blocks)
+ && can_generate_code_stmt (stmt->next, used_basic_blocks);
+
+ if (CLAST_STMT_IS_A (stmt, stmt_guard))
+ return can_generate_code_stmt (((struct clast_guard *) stmt)->then,
+ used_basic_blocks);
+
+ if (CLAST_STMT_IS_A (stmt, stmt_block))
+ return can_generate_code_stmt (((struct clast_block *) stmt)->body,
+ used_basic_blocks)
+ && can_generate_code_stmt (stmt->next, used_basic_blocks);
+
+ return false;
}
-/* Find a virtual definition for variable VAR in BB. */
+/* Returns true when it is possible to generate code for this STMT. */
-static tree
-find_vdef_for_var_in_bb (basic_block bb, tree var)
+static bool
+can_generate_code (struct clast_stmt *stmt)
{
- gimple_stmt_iterator gsi;
- gimple phi;
- def_operand_p def_var;
- vuse_vec_p vv;
- ssa_op_iter op_iter;
-
- for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi))
- FOR_EACH_SSA_VDEF_OPERAND (def_var, vv, gsi_stmt (gsi), op_iter)
- if (SSA_NAME_VAR (*def_var) == var)
- return *def_var;
-
- for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi))
- FOR_EACH_SSA_DEF_OPERAND (def_var, gsi_stmt (gsi), op_iter, SSA_OP_DEF)
- if (SSA_NAME_VAR (*def_var) == var)
- return *def_var;
-
- for (gsi = gsi_start_phis (bb); !gsi_end_p(gsi); gsi_next (&gsi))
- {
- phi = gsi_stmt (gsi);
- if (SSA_NAME_VAR (PHI_RESULT (phi)) == var)
- return PHI_RESULT (phi);
- }
+ bool result;
+ struct pointer_set_t *used_basic_blocks = pointer_set_create ();
- return NULL;
+ result = can_generate_code_stmt (stmt, used_basic_blocks);
+ pointer_set_destroy (used_basic_blocks);
+ return result;
}
-/* Recursive helper. */
+/* Remove from the CFG the REGION. */
-static tree
-find_vdef_for_var_1 (basic_block bb, struct pointer_set_t *visited, tree var)
+static inline void
+remove_sese_region (sese region)
{
- tree result = NULL;
- edge_iterator ei;
- edge pred_edge;
-
- if (pointer_set_contains (visited, bb))
- return NULL;
+ VEC (basic_block, heap) *bbs = NULL;
+ basic_block entry_bb = SESE_ENTRY (region)->dest;
+ basic_block exit_bb = SESE_EXIT (region)->dest;
+ basic_block bb;
+ int i;
- pointer_set_insert (visited, bb);
- result = find_vdef_for_var_in_bb (bb, var);
+ VEC_safe_push (basic_block, heap, bbs, entry_bb);
+ gather_blocks_in_sese_region (entry_bb, exit_bb, &bbs);
- if (!result)
- FOR_EACH_EDGE (pred_edge, ei, bb->preds)
- if (!result)
- result = find_vdef_for_var_1 (pred_edge->src, visited, var);
+ for (i = 0; VEC_iterate (basic_block, bbs, i, bb); i++)
+ delete_basic_block (bb);
- return result;
+ VEC_free (basic_block, heap, bbs);
}
-/* Finds a virtual definition for variable VAR. */
+typedef struct ifsese {
+ sese region;
+ sese true_region;
+ sese false_region;
+} *ifsese;
-static tree
-find_vdef_for_var (basic_block bb, tree var)
+static inline edge
+if_region_entry (ifsese if_region)
{
- struct pointer_set_t *visited = pointer_set_create ();
- tree def = find_vdef_for_var_1 (bb, visited, var);
+ return SESE_ENTRY (if_region->region);
+}
- pointer_set_destroy (visited);
- return def;
+static inline edge
+if_region_exit (ifsese if_region)
+{
+ return SESE_EXIT (if_region->region);
}
-/* Update the virtual phis after loop bodies are moved to new
- loops. */
+static inline basic_block
+if_region_get_condition_block (ifsese if_region)
+{
+ return if_region_entry (if_region)->dest;
+}
-static void
-patch_phis_for_virtual_defs (void)
+static inline void
+if_region_set_false_region (ifsese if_region, sese region)
{
- int i;
- gimple phi;
- VEC (gimple, heap) *virtual_phis = collect_virtual_phis ();
-
- for (i = 0; VEC_iterate (gimple, virtual_phis, i, phi); i++)
+ basic_block condition = if_region_get_condition_block (if_region);
+ edge false_edge = get_false_edge_from_guard_bb (condition);
+ edge entry_region = SESE_ENTRY (region);
+ edge exit_region = SESE_EXIT (region);
+ basic_block before_region = entry_region->src;
+ basic_block last_in_region = exit_region->src;
+ void **slot = htab_find_slot_with_hash (current_loops->exits, exit_region,
+ htab_hash_pointer (exit_region),
+ NO_INSERT);
+
+ entry_region->flags = false_edge->flags;
+ false_edge->flags = exit_region->flags;
+
+ redirect_edge_pred (entry_region, condition);
+ redirect_edge_pred (exit_region, before_region);
+ redirect_edge_pred (false_edge, last_in_region);
+
+ exit_region->flags = EDGE_FALLTHRU;
+ recompute_all_dominators ();
+
+ SESE_EXIT (region) = single_succ_edge (false_edge->dest);
+ if_region->false_region = region;
+
+ if (slot)
{
- basic_block bb = gimple_bb (phi);
- edge_iterator ei;
- edge pred_edge;
- gimple_stmt_iterator gsi;
- gimple new_phi;
- tree phi_result = PHI_RESULT (phi);
- tree var = SSA_NAME_VAR (phi_result);
+ struct loop_exit *loop_exit = GGC_CNEW (struct loop_exit);
- new_phi = create_phi_node (phi_result, bb);
- SSA_NAME_DEF_STMT (phi_result) = new_phi;
+ memcpy (loop_exit, *((struct loop_exit **) slot), sizeof (struct loop_exit));
+ htab_clear_slot (current_loops->exits, slot);
- FOR_EACH_EDGE (pred_edge, ei, bb->preds)
- {
- tree def = find_vdef_for_var (pred_edge->src, var);
+ slot = htab_find_slot_with_hash (current_loops->exits, false_edge,
+ htab_hash_pointer (false_edge),
+ INSERT);
+ loop_exit->e = false_edge;
+ *slot = loop_exit;
+ false_edge->src->loop_father->exits->next = loop_exit;
+ }
+}
- if (def)
- add_phi_arg (new_phi, def, pred_edge);
- else
- add_phi_arg (new_phi, gimple_default_def (cfun, var), pred_edge);
- }
+static ifsese
+create_if_region_on_edge (edge entry, tree condition)
+{
+ edge e;
+ edge_iterator ei;
+ sese sese_region = GGC_NEW (struct sese);
+ sese true_region = GGC_NEW (struct sese);
+ sese false_region = GGC_NEW (struct sese);
+ ifsese if_region = GGC_NEW (struct ifsese);
+ edge exit = create_empty_if_region_on_edge (entry, condition);
- gsi = gsi_for_stmt (phi);
- remove_phi_node (&gsi, false);
+ if_region->region = sese_region;
+ if_region->region->entry = entry;
+ if_region->region->exit = exit;
+
+ FOR_EACH_EDGE (e, ei, entry->dest->succs)
+ {
+ if (e->flags & EDGE_TRUE_VALUE)
+ {
+ true_region->entry = e;
+ true_region->exit = single_succ_edge (e->dest);
+ if_region->true_region = true_region;
+ }
+ else if (e->flags & EDGE_FALSE_VALUE)
+ {
+ false_region->entry = e;
+ false_region->exit = single_succ_edge (e->dest);
+ if_region->false_region = false_region;
+ }
}
- VEC_free (gimple, heap, virtual_phis);
+ return if_region;
}
-/* Mark the original loops of SCOP for removal, replacing their header
- field with NULL. */
+/* Moves REGION in a condition expression:
+ | if (1)
+ | ;
+ | else
+ | REGION;
+*/
+
+static ifsese
+move_sese_in_condition (sese region)
+{
+ basic_block pred_block = split_edge (SESE_ENTRY (region));
+ ifsese if_region = NULL;
+
+ SESE_ENTRY (region) = single_succ_edge (pred_block);
+ if_region = create_if_region_on_edge (single_pred_edge (pred_block), integer_one_node);
+ if_region_set_false_region (if_region, region);
+
+ return if_region;
+}
+
+/* Add exit phis for USE on EXIT. */
static void
-mark_old_loops (scop_p scop)
+scop_add_exit_phis_edge (basic_block exit, tree use, edge false_e, edge true_e)
{
- int i;
- struct loop *loop;
+ gimple phi = create_phi_node (use, exit);
- for (i = 0; VEC_iterate (loop_p, SCOP_LOOP_NEST (scop), i, loop); i++)
- {
- loop->header = NULL;
- loop->latch = NULL;
- }
+ create_new_def_for (gimple_phi_result (phi), phi,
+ gimple_phi_result_ptr (phi));
+ add_phi_arg (phi, use, false_e);
+ add_phi_arg (phi, use, true_e);
}
-/* Scan the loops and remove the ones that have been marked for
- removal. */
+/* Add phi nodes for VAR that is used in LIVEIN. Phi nodes are
+ inserted in block BB. */
static void
-remove_dead_loops (void)
+scop_add_exit_phis_var (basic_block bb, tree var, bitmap livein,
+ edge false_e, edge true_e)
{
- struct loop *loop, *ploop;
- loop_iterator li;
+ bitmap def;
+ basic_block def_bb = gimple_bb (SSA_NAME_DEF_STMT (var));
- FOR_EACH_LOOP (li, loop, LI_FROM_INNERMOST)
- {
- /* Remove only those loops that we marked to be removed with
- mark_old_loops. */
- if (loop->header)
- continue;
+ if (is_gimple_reg (var))
+ bitmap_clear_bit (livein, def_bb->index);
+ else
+ bitmap_set_bit (livein, def_bb->index);
- while (loop->inner)
- {
- ploop = loop->inner;
- flow_loop_tree_node_remove (ploop);
- flow_loop_tree_node_add (loop_outer (loop), ploop);
- }
+ def = BITMAP_ALLOC (NULL);
+ bitmap_set_bit (def, def_bb->index);
+ compute_global_livein (livein, def);
+ BITMAP_FREE (def);
- /* Remove the loop and free its data. */
- delete_loop (loop);
- }
+ scop_add_exit_phis_edge (bb, var, false_e, true_e);
}
-/* Returns true when it is possible to generate code for this STMT.
- For the moment we cannot generate code when Cloog decides to
- duplicate a statement, as we do not do a copy, but a move.
- USED_BASIC_BLOCKS records the blocks that have already been seen.
- We return false if we have to generate code twice for the same
- block. */
+/* Insert in the block BB phi nodes for variables defined in REGION
+ and used outside the REGION. The code generation moves REGION in
+ the else clause of an "if (1)" and generates code in the then
+ clause that is at this point empty:
-static bool
-can_generate_code_stmt (struct clast_stmt *stmt,
- struct pointer_set_t *used_basic_blocks)
+ | if (1)
+ | empty;
+ | else
+ | REGION;
+*/
+
+static void
+scop_insert_phis_for_liveouts (sese region, basic_block bb,
+ edge false_e, edge true_e)
{
- if (!stmt)
- return true;
+ unsigned i;
+ bitmap_iterator bi;
- if (CLAST_STMT_IS_A (stmt, stmt_root))
- return can_generate_code_stmt (stmt->next, used_basic_blocks);
+ update_ssa (TODO_update_ssa);
- if (CLAST_STMT_IS_A (stmt, stmt_user))
+ EXECUTE_IF_SET_IN_BITMAP (SESE_LIVEOUT (region), 0, i, bi)
+ scop_add_exit_phis_var (bb, ssa_name (i), SESE_LIVEIN_VER (region, i),
+ false_e, true_e);
+
+ update_ssa (TODO_update_ssa);
+}
+
+/* Get the definition of NAME before the SCOP. Keep track of the
+ basic blocks that have been VISITED in a bitmap. */
+
+static tree
+get_vdef_before_scop (scop_p scop, tree name, sbitmap visited)
+{
+ unsigned i;
+ gimple def_stmt = SSA_NAME_DEF_STMT (name);
+ basic_block def_bb = gimple_bb (def_stmt);
+
+ if (!bb_in_scop_p (def_bb, scop))
+ return name;
+
+ if (TEST_BIT (visited, def_bb->index))
+ return NULL_TREE;
+
+ SET_BIT (visited, def_bb->index);
+
+ switch (gimple_code (def_stmt))
{
- CloogStatement *cs = ((struct clast_user_stmt *) stmt)->statement;
- graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
+ case GIMPLE_PHI:
+ for (i = 0; i < gimple_phi_num_args (def_stmt); i++)
+ {
+ tree arg = gimple_phi_arg_def (def_stmt, i);
+ tree res = get_vdef_before_scop (scop, arg, visited);
+ if (res)
+ return res;
+ }
+ return NULL_TREE;
- if (pointer_set_contains (used_basic_blocks, gbb))
- return false;
- pointer_set_insert (used_basic_blocks, gbb);
- return can_generate_code_stmt (stmt->next, used_basic_blocks);
+ default:
+ return NULL_TREE;
}
+}
- if (CLAST_STMT_IS_A (stmt, stmt_for))
- return can_generate_code_stmt (((struct clast_for *) stmt)->body,
- used_basic_blocks)
- && can_generate_code_stmt (stmt->next, used_basic_blocks);
+/* Adjust a virtual phi node PHI that is placed at the end of the
+ generated code for SCOP:
- if (CLAST_STMT_IS_A (stmt, stmt_guard))
- return can_generate_code_stmt (((struct clast_guard *) stmt)->then,
- used_basic_blocks);
+ | if (1)
+ | generated code from REGION;
+ | else
+ | REGION;
- if (CLAST_STMT_IS_A (stmt, stmt_block))
- return can_generate_code_stmt (((struct clast_block *) stmt)->body,
- used_basic_blocks)
- && can_generate_code_stmt (stmt->next, used_basic_blocks);
+ The FALSE_E edge comes from the original code, TRUE_E edge comes
+ from the code generated for the SCOP. */
- return false;
+static void
+scop_adjust_vphi (scop_p scop, gimple phi, edge true_e)
+{
+ unsigned i;
+
+ gcc_assert (gimple_phi_num_args (phi) == 2);
+
+ for (i = 0; i < gimple_phi_num_args (phi); i++)
+ if (gimple_phi_arg_edge (phi, i) == true_e)
+ {
+ tree true_arg, false_arg, before_scop_arg;
+ sbitmap visited;
+
+ true_arg = gimple_phi_arg_def (phi, i);
+ if (!SSA_NAME_IS_DEFAULT_DEF (true_arg))
+ return;
+
+ false_arg = gimple_phi_arg_def (phi, i == 0 ? 1 : 0);
+ if (SSA_NAME_IS_DEFAULT_DEF (false_arg))
+ return;
+
+ visited = sbitmap_alloc (last_basic_block);
+ sbitmap_zero (visited);
+ before_scop_arg = get_vdef_before_scop (scop, false_arg, visited);
+ gcc_assert (before_scop_arg != NULL_TREE);
+ SET_PHI_ARG_DEF (phi, i, before_scop_arg);
+ sbitmap_free (visited);
+ }
}
-/* Returns true when it is possible to generate code for this STMT. */
+/* Adjusts the phi nodes in the block BB for variables defined in
+ SCOP_REGION and used outside the SCOP_REGION. The code generation
+ moves SCOP_REGION in the else clause of an "if (1)" and generates
+ code in the then clause:
-static bool
-can_generate_code (struct clast_stmt *stmt)
+ | if (1)
+ | generated code from REGION;
+ | else
+ | REGION;
+
+ To adjust the phi nodes after the condition, SCOP_LIVEOUT_RENAMES
+ hash table is used: this stores for a name that is part of the
+ LIVEOUT of SCOP_REGION its new name in the generated code. */
+
+static void
+scop_adjust_phis_for_liveouts (scop_p scop, basic_block bb, edge false_e,
+ edge true_e)
{
- bool result;
- struct pointer_set_t *used_basic_blocks = pointer_set_create ();
+ gimple_stmt_iterator si;
- result = can_generate_code_stmt (stmt, used_basic_blocks);
- pointer_set_destroy (used_basic_blocks);
- return result;
+ for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
+ {
+ unsigned i, false_i;
+ gimple phi = gsi_stmt (si);
+
+ if (!is_gimple_reg (PHI_RESULT (phi)))
+ {
+ scop_adjust_vphi (scop, phi, true_e);
+ continue;
+ }
+
+ for (i = 0; i < gimple_phi_num_args (phi); i++)
+ if (gimple_phi_arg_edge (phi, i) == false_e)
+ {
+ false_i = i;
+ break;
+ }
+
+ for (i = 0; i < gimple_phi_num_args (phi); i++)
+ if (gimple_phi_arg_edge (phi, i) == true_e)
+ {
+ tree old_name = gimple_phi_arg_def (phi, false_i);
+ tree new_name = get_new_name_from_old_name
+ (SCOP_LIVEOUT_RENAMES (scop), old_name);
+
+ gcc_assert (old_name != new_name);
+ SET_PHI_ARG_DEF (phi, i, new_name);
+ }
+ }
}
-/* Skip any definition that is a phi node with a single phi def. */
+/* Returns the first cloog name used in EXPR. */
-static tree
-skip_phi_defs (tree ssa_name)
+static const char *
+find_cloog_iv_in_expr (struct clast_expr *expr)
{
- tree result = ssa_name;
- gimple def_stmt = SSA_NAME_DEF_STMT (ssa_name);
+ struct clast_term *term = (struct clast_term *) expr;
- if (gimple_code (def_stmt) == GIMPLE_PHI
- && gimple_phi_num_args (def_stmt) == 1)
- result = skip_phi_defs (gimple_phi_arg(def_stmt,0)->def);
+ if (expr->type == expr_term
+ && !term->var)
+ return NULL;
- return result;
+ if (expr->type == expr_term)
+ return term->var;
+
+ if (expr->type == expr_red)
+ {
+ int i;
+ struct clast_reduction *red = (struct clast_reduction *) expr;
+
+ for (i = 0; i < red->n; i++)
+ {
+ const char *res = find_cloog_iv_in_expr ((red)->elts[i]);
+
+ if (res)
+ return res;
+ }
+ }
+
+ return NULL;
}
-/* Returns a VEC containing the phi-arg defs coming from SCOP_EXIT in
- the destination block of SCOP_EXIT. */
+/* Build for a clast_user_stmt USER_STMT a map between the CLAST
+ induction variables and the corresponding GCC old induction
+ variables. This information is stored on each GRAPHITE_BB. */
-static VEC (tree, heap) *
-collect_scop_exit_phi_args (edge scop_exit)
+static void
+compute_cloog_iv_types_1 (graphite_bb_p gbb,
+ struct clast_user_stmt *user_stmt)
{
- VEC (tree, heap) *phi_args = VEC_alloc (tree, heap, 1);
- gimple_stmt_iterator gsi;
+ struct clast_stmt *t;
+ int index = 0;
- for (gsi = gsi_start_phis (scop_exit->dest); !gsi_end_p (gsi); gsi_next (&gsi))
+ for (t = user_stmt->substitutions; t; t = t->next, index++)
{
- gimple phi = gsi_stmt (gsi);
- tree phi_arg = skip_phi_defs(PHI_ARG_DEF_FROM_EDGE (phi, scop_exit));
+ PTR *slot;
+ struct ivtype_map_elt tmp;
+ struct clast_expr *expr = (struct clast_expr *)
+ ((struct clast_assignment *)t)->RHS;
- VEC_safe_push (tree, heap, phi_args, phi_arg);
- }
+ /* Create an entry (clast_var, type). */
+ tmp.cloog_iv = find_cloog_iv_in_expr (expr);
+ if (!tmp.cloog_iv)
+ continue;
+
+ slot = htab_find_slot (GBB_CLOOG_IV_TYPES (gbb), &tmp, INSERT);
- return phi_args;
+ if (!*slot)
+ {
+ loop_p loop = gbb_loop_at_index (gbb, index);
+ tree oldiv = oldiv_for_loop (GBB_SCOP (gbb), loop);
+ tree type = oldiv ? TREE_TYPE (oldiv) : integer_type_node;
+ *slot = new_ivtype_map_elt (tmp.cloog_iv, type);
+ }
+ }
}
-/* Patches (adds) PHI_ARGS to the phi nodes in SCOP_EXIT destination. */
+/* Walk the CLAST tree starting from STMT and build for each
+ clast_user_stmt a map between the CLAST induction variables and the
+ corresponding GCC old induction variables. This information is
+ stored on each GRAPHITE_BB. */
static void
-patch_scop_exit_phi_args (edge scop_exit,
- VEC (tree, heap) *phi_args)
+compute_cloog_iv_types (struct clast_stmt *stmt)
{
- int i = 0;
- gimple_stmt_iterator gsi;
+ if (!stmt)
+ return;
- for (gsi = gsi_start_phis (scop_exit->dest); !gsi_end_p (gsi);
- gsi_next (&gsi), i++)
+ if (CLAST_STMT_IS_A (stmt, stmt_root))
+ goto next;
+
+ if (CLAST_STMT_IS_A (stmt, stmt_user))
{
- tree def = VEC_index (tree, phi_args, i);
- gimple phi = gsi_stmt (gsi);
+ CloogStatement *cs = ((struct clast_user_stmt *) stmt)->statement;
+ graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
+ GBB_CLOOG_IV_TYPES (gbb) = htab_create (10, ivtype_map_elt_info,
+ eq_ivtype_map_elts, free);
+ compute_cloog_iv_types_1 (gbb, (struct clast_user_stmt *) stmt);
+ goto next;
+ }
+
+ if (CLAST_STMT_IS_A (stmt, stmt_for))
+ {
+ struct clast_stmt *s = ((struct clast_for *) stmt)->body;
+ compute_cloog_iv_types (s);
+ goto next;
+ }
- gcc_assert (PHI_ARG_DEF_FROM_EDGE (phi, scop_exit) == NULL);
+ if (CLAST_STMT_IS_A (stmt, stmt_guard))
+ {
+ struct clast_stmt *s = ((struct clast_guard *) stmt)->then;
+ compute_cloog_iv_types (s);
+ goto next;
+ }
- add_phi_arg (phi, def, scop_exit);
+ if (CLAST_STMT_IS_A (stmt, stmt_block))
+ {
+ struct clast_stmt *s = ((struct clast_block *) stmt)->body;
+ compute_cloog_iv_types (s);
+ goto next;
}
+
+ gcc_unreachable ();
+
+ next:
+ compute_cloog_iv_types (stmt->next);
}
/* GIMPLE Loop Generator: generates loops from STMT in GIMPLE form for
@@ -4324,14 +5423,10 @@ static void
gloog (scop_p scop, struct clast_stmt *stmt)
{
edge new_scop_exit_edge = NULL;
- basic_block scop_exit = SCOP_EXIT (scop);
- VEC (tree, heap) *phi_args =
- collect_scop_exit_phi_args (SESE_EXIT (SCOP_REGION (scop)));
- VEC (iv_stack_entry_p, heap) *ivstack =
- VEC_alloc (iv_stack_entry_p, heap, 10);
- edge construction_edge = SESE_ENTRY (SCOP_REGION (scop));
- basic_block old_scop_exit_idom = get_immediate_dominator (CDI_DOMINATORS,
- scop_exit);
+ VEC (iv_stack_entry_p, heap) *ivstack = VEC_alloc (iv_stack_entry_p, heap,
+ 10);
+ loop_p context_loop;
+ ifsese if_region = NULL;
if (!can_generate_code (stmt))
{
@@ -4339,39 +5434,31 @@ gloog (scop_p scop, struct clast_stmt *stmt)
return;
}
- redirect_edge_succ_nodup (construction_edge, EXIT_BLOCK_PTR);
- new_scop_exit_edge = translate_clast (scop,
- construction_edge->src->loop_father,
- stmt, construction_edge, &ivstack);
+ if_region = move_sese_in_condition (SCOP_REGION (scop));
+ sese_build_livein_liveouts (SCOP_REGION (scop));
+ scop_insert_phis_for_liveouts (SCOP_REGION (scop),
+ if_region->region->exit->src,
+ if_region->false_region->exit,
+ if_region->true_region->exit);
+ recompute_all_dominators ();
+ graphite_verify ();
+ context_loop = SESE_ENTRY (SCOP_REGION (scop))->src->loop_father;
+ compute_cloog_iv_types (stmt);
+
+ new_scop_exit_edge = translate_clast (scop, context_loop, stmt,
+ if_region->true_region->entry,
+ &ivstack);
free_loop_iv_stack (&ivstack);
- redirect_edge_succ (new_scop_exit_edge, scop_exit);
-
- if (!old_scop_exit_idom
- || !dominated_by_p (CDI_DOMINATORS, SCOP_ENTRY (scop),
- old_scop_exit_idom)
- || SCOP_ENTRY (scop) == old_scop_exit_idom)
- set_immediate_dominator (CDI_DOMINATORS,
- new_scop_exit_edge->dest,
- new_scop_exit_edge->src);
-
cloog_clast_free (stmt);
- if (new_scop_exit_edge->dest == EXIT_BLOCK_PTR)
- new_scop_exit_edge->flags = 0;
-
- delete_unreachable_blocks ();
- patch_phis_for_virtual_defs ();
- patch_scop_exit_phi_args (new_scop_exit_edge, phi_args);
- VEC_free (tree, heap, phi_args);
- mark_old_loops (scop);
- remove_dead_loops ();
- rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa);
+ graphite_verify ();
+ scop_adjust_phis_for_liveouts (scop,
+ if_region->region->exit->src,
+ if_region->false_region->exit,
+ if_region->true_region->exit);
-#ifdef ENABLE_CHECKING
- verify_loop_structure ();
- verify_dominators (CDI_DOMINATORS);
- verify_ssa (false);
-#endif
+ recompute_all_dominators ();
+ graphite_verify ();
}
/* Returns the number of data references in SCOP. */
@@ -4389,104 +5476,6 @@ nb_data_refs_in_scop (scop_p scop)
return res;
}
-/* Check if a graphite bb can be ignored in graphite. We ignore all
- bbs, that only contain code, that will be eliminated later.
-
- TODO: - Move PHI nodes and scalar variables out of these bbs, that only
- remain conditions and induction variables. */
-
-static bool
-gbb_can_be_ignored (graphite_bb_p gb)
-{
- gimple_stmt_iterator gsi;
- scop_p scop = GBB_SCOP (gb);
- loop_p loop = GBB_BB (gb)->loop_father;
-
- if (VEC_length (data_reference_p, GBB_DATA_REFS(gb)))
- return false;
-
- /* Check statements. */
- for (gsi = gsi_start_bb (GBB_BB (gb)); !gsi_end_p (gsi); gsi_next (&gsi))
- {
- gimple stmt = gsi_stmt (gsi);
- switch (gimple_code (stmt))
- {
- /* Control flow expressions can be ignored, as they are
- represented in the iteration domains and will be
- regenerated by graphite. */
- case GIMPLE_COND:
- case GIMPLE_GOTO:
- case GIMPLE_SWITCH:
- break;
-
- /* Scalar variables can be ignored, if we can regenerate
- them later using their scalar evolution function.
- XXX: Just a heuristic, that needs further investigation. */
- case GIMPLE_ASSIGN:
- {
- tree var = gimple_assign_lhs (stmt);
- var = analyze_scalar_evolution (loop, var);
- var = instantiate_scev (block_before_scop (scop), loop, var);
-
- if (TREE_CODE (var) == SCEV_NOT_KNOWN)
- return false;
-
- break;
- }
- /* Otherwise not ignoreable. */
- default:
- return false;
- }
- }
-
- return true;
-}
-
-/* Remove all ignoreable gbbs from SCOP. */
-
-static void
-scop_remove_ignoreable_gbbs (scop_p scop)
-{
- graphite_bb_p gb;
- int i;
-
- int max_schedule = scop_max_loop_depth (scop) + 1;
- lambda_vector last_schedule = lambda_vector_new (max_schedule);
- lambda_vector_clear (last_schedule, max_schedule);
-
- /* Update schedules. */
- for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
- {
- int nb_loops = gbb_nb_loops (gb);
-
- if (GBB_STATIC_SCHEDULE (gb) [nb_loops] == 0)
- last_schedule [nb_loops] = 0;
-
- if (gbb_can_be_ignored (gb))
- {
- /* Mark gbb for remove. */
- bitmap_clear_bit (SCOP_BBS_B (scop), gb->bb->index);
- GBB_SCOP (gb) = NULL;
- last_schedule [nb_loops]--;
- }
- else
- lambda_vector_add (GBB_STATIC_SCHEDULE (gb), last_schedule,
- GBB_STATIC_SCHEDULE (gb), nb_loops + 1);
- }
-
- /* Remove gbbs. */
- for (i = 0; VEC_iterate (graphite_bb_p, SCOP_BBS (scop), i, gb); i++)
- if (GBB_SCOP (gb) == NULL)
- {
- VEC_unordered_remove (graphite_bb_p, SCOP_BBS (scop), i);
- free_graphite_bb (gb);
- /* XXX: Hackish? But working. */
- i--;
- }
-
- graphite_sort_gbbs (scop);
-}
-
/* Move the loop at index LOOP and insert it before index NEW_LOOP_POS.
This transformartion is only valid, if the loop nest between i and k is
perfectly nested. Therefore we do not need to change the static schedule.
@@ -4608,24 +5597,43 @@ get_upper_bound_row (CloogMatrix *domain, int column)
return get_first_matching_sign_row_index (domain, column, false);
}
-/* Get the lower bound of LOOP. */
+/* Copies the OLD_ROW constraint from OLD_DOMAIN to the NEW_DOMAIN at
+ row NEW_ROW. */
+
+static void
+copy_constraint (CloogMatrix *old_domain, CloogMatrix *new_domain,
+ int old_row, int new_row)
+{
+ int i;
+
+ gcc_assert (old_domain->NbColumns == new_domain->NbColumns
+ && old_row < old_domain->NbRows
+ && new_row < new_domain->NbRows);
+
+ for (i = 0; i < old_domain->NbColumns; i++)
+ value_assign (new_domain->p[new_row][i], old_domain->p[old_row][i]);
+}
+
+/* Swap coefficients of variables X and Y on row R. */
static void
-get_lower_bound (CloogMatrix *domain, int loop, Value lower_bound_result)
+swap_constraint_variables (CloogMatrix *domain,
+ int r, int x, int y)
{
- int lower_bound_row = get_lower_bound_row (domain, loop);
- value_assign (lower_bound_result,
- domain->p[lower_bound_row][const_column_index(domain)]);
+ value_swap (domain->p[r][x], domain->p[r][y]);
}
-/* Get the upper bound of LOOP. */
+/* Scale by X the coefficient C of constraint at row R in DOMAIN. */
static void
-get_upper_bound (CloogMatrix *domain, int loop, Value upper_bound_result)
+scale_constraint_variable (CloogMatrix *domain,
+ int r, int c, int x)
{
- int upper_bound_row = get_upper_bound_row (domain, loop);
- value_assign (upper_bound_result,
- domain->p[upper_bound_row][const_column_index(domain)]);
+ Value strip_size_value;
+ value_init (strip_size_value);
+ value_set_si (strip_size_value, x);
+ value_multiply (domain->p[r][c], domain->p[r][c], strip_size_value);
+ value_clear (strip_size_value);
}
/* Strip mines the loop of BB at the position LOOP_DEPTH with STRIDE.
@@ -4643,25 +5651,12 @@ graphite_trans_bb_strip_mine (graphite_bb_p gb, int loop_depth, int stride)
int col_loop_old = loop_depth + 2;
int col_loop_strip = col_loop_old - 1;
- Value old_lower_bound;
- Value old_upper_bound;
-
gcc_assert (loop_depth <= gbb_nb_loops (gb) - 1);
VEC_safe_insert (loop_p, heap, GBB_LOOPS (gb), loop_depth, NULL);
GBB_DOMAIN (gb) = new_domain;
- /*
- nrows = 4, ncols = 4
- eq i j c
- 1 1 0 0
- 1 -1 0 99
- 1 0 1 0
- 1 0 -1 99
- */
-
- /* Move domain. */
for (row = 0; row < domain->NbRows; row++)
for (col = 0; col < domain->NbColumns; col++)
if (col <= loop_depth)
@@ -4669,125 +5664,36 @@ graphite_trans_bb_strip_mine (graphite_bb_p gb, int loop_depth, int stride)
else
value_assign (new_domain->p[row][col + 1], domain->p[row][col]);
-
- /*
- nrows = 6, ncols = 5
- outer inner
- eq i jj j c
- 1 1 0 0 0
- 1 -1 0 0 99
- 1 0 0 1 0
- 1 0 0 -1 99
- 0 0 0 0 0
- 0 0 0 0 0
- 0 0 0 0 0
- */
-
row = domain->NbRows;
- /* Add outer loop. */
- value_init (old_lower_bound);
- value_init (old_upper_bound);
- get_lower_bound (new_domain, col_loop_old, old_lower_bound);
- get_upper_bound (new_domain, col_loop_old, old_upper_bound);
-
- /* Set Lower Bound */
- value_set_si (new_domain->p[row][0], 1);
- value_set_si (new_domain->p[row][col_loop_strip], 1);
- value_assign (new_domain->p[row][const_column_index (new_domain)],
- old_lower_bound);
- value_clear (old_lower_bound);
+ /* Lower bound of the outer stripped loop. */
+ copy_constraint (new_domain, new_domain,
+ get_lower_bound_row (new_domain, col_loop_old), row);
+ swap_constraint_variables (new_domain, row, col_loop_old, col_loop_strip);
row++;
+ /* Upper bound of the outer stripped loop. */
+ copy_constraint (new_domain, new_domain,
+ get_upper_bound_row (new_domain, col_loop_old), row);
+ swap_constraint_variables (new_domain, row, col_loop_old, col_loop_strip);
+ scale_constraint_variable (new_domain, row, col_loop_strip, stride);
+ row++;
- /*
- 6 5
- eq i jj j c
- 1 1 0 0 0
- 1 -1 0 0 99
- 1 0 0 1 0 -
- 1 0 0 -1 99 | copy old lower bound
- 1 0 1 0 0 <-
- 0 0 0 0 0
- 0 0 0 0 0
- */
-
- {
- Value new_upper_bound;
- Value strip_size_value;
-
- value_init (new_upper_bound);
- value_init (strip_size_value);
- value_set_si (strip_size_value, (int) stride);
-
- value_pdivision (new_upper_bound, old_upper_bound, strip_size_value);
- value_add_int (new_upper_bound, new_upper_bound, 1);
-
- /* Set Upper Bound */
- value_set_si (new_domain->p[row][0], 1);
- value_set_si (new_domain->p[row][col_loop_strip], -1);
- value_assign (new_domain->p[row][const_column_index (new_domain)],
- new_upper_bound);
-
- value_clear (strip_size_value);
- value_clear (old_upper_bound);
- value_clear (new_upper_bound);
- row++;
- }
- /*
- 6 5
- eq i jj j c
- 1 1 0 0 0
- 1 -1 0 0 99
- 1 0 0 1 0
- 1 0 0 -1 99
- 1 0 1 0 0
- 1 0 -1 0 25 (divide old upper bound with stride)
- 0 0 0 0 0
- */
-
- {
- row = get_lower_bound_row (new_domain, col_loop_old);
- /* Add local variable to keep linear representation. */
- value_set_si (new_domain->p[row][0], 1);
- value_set_si (new_domain->p[row][const_column_index (new_domain)],0);
- value_set_si (new_domain->p[row][col_loop_old], 1);
- value_set_si (new_domain->p[row][col_loop_strip], -1*((int)stride));
- }
-
- /*
- 6 5
- eq i jj j c
- 1 1 0 0 0
- 1 -1 0 0 99
- 1 0 -1 1 0
- 1 0 0 -1 99
- 1 0 1 0 0
- 1 0 -1 0 25 (divide old upper bound with stride)
- 0 0 0 0 0
- */
-
- {
- row = new_domain->NbRows-1;
-
- value_set_si (new_domain->p[row][0], 1);
- value_set_si (new_domain->p[row][col_loop_old], -1);
- value_set_si (new_domain->p[row][col_loop_strip], stride);
- value_set_si (new_domain->p[row][const_column_index (new_domain)],
- stride-1);
- }
+ /* Lower bound of a tile starts at "stride * outer_iv". */
+ row = get_lower_bound_row (new_domain, col_loop_old);
+ value_set_si (new_domain->p[row][0], 1);
+ value_set_si (new_domain->p[row][const_column_index (new_domain)], 0);
+ value_set_si (new_domain->p[row][col_loop_old], 1);
+ value_set_si (new_domain->p[row][col_loop_strip], -1 * stride);
- /*
- 6 5
- eq i jj j c
- 1 1 0 0 0 i >= 0
- 1 -1 0 0 99 99 >= i
- 1 0 -4 1 0 j >= 4*jj
- 1 0 0 -1 99 99 >= j
- 1 0 1 0 0 jj >= 0
- 1 0 -1 0 25 25 >= jj
- 0 0 4 -1 3 jj+3 >= j
- */
+ /* Upper bound of a tile stops at "stride * outer_iv + stride - 1",
+ or at the old upper bound that is not modified. */
+ row = new_domain->NbRows - 1;
+ value_set_si (new_domain->p[row][0], 1);
+ value_set_si (new_domain->p[row][col_loop_old], -1);
+ value_set_si (new_domain->p[row][col_loop_strip], stride);
+ value_set_si (new_domain->p[row][const_column_index (new_domain)],
+ stride - 1);
cloog_matrix_free (domain);
@@ -4837,7 +5743,7 @@ strip_mine_profitable_p (graphite_bb_p gb, int stride,
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "\nStrip Mining is not profitable for loop %d:",
- loop_index);
+ loop->num);
fprintf (dump_file, "number of iterations is too low.\n");
}
}
@@ -4846,17 +5752,16 @@ strip_mine_profitable_p (graphite_bb_p gb, int stride,
}
/* Determines when the interchange of LOOP_A and LOOP_B belonging to
- SCOP is legal. */
+ SCOP is legal. DEPTH is the number of loops around. */
static bool
-is_interchange_valid (scop_p scop, int loop_a, int loop_b)
+is_interchange_valid (scop_p scop, int loop_a, int loop_b, int depth)
{
bool res;
VEC (ddr_p, heap) *dependence_relations;
VEC (data_reference_p, heap) *datarefs;
struct loop *nest = VEC_index (loop_p, SCOP_LOOP_NEST (scop), loop_a);
- int depth = perfect_loop_nest_depth (nest);
lambda_trans_matrix trans;
gcc_assert (loop_a < loop_b);
@@ -4922,7 +5827,7 @@ graphite_trans_bb_block (graphite_bb_p gb, int stride, int loops)
for (i = start ; i < nb_loops; i++)
for (j = i + 1; j < nb_loops; j++)
- if (!is_interchange_valid (scop, i, j))
+ if (!is_interchange_valid (scop, i, j, nb_loops))
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,
@@ -4946,6 +5851,10 @@ graphite_trans_bb_block (graphite_bb_p gb, int stride, int loops)
for (i = 1; i < nb_loops - start; i++)
graphite_trans_bb_move_loop (gb, start + 2 * i, start + i);
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "\nLoops containing BB %d will be loop blocked.\n",
+ GBB_BB (gb)->index);
+
return true;
}
@@ -4962,11 +5871,6 @@ graphite_trans_loop_block (VEC (graphite_bb_p, heap) *bbs, int loops)
/* TODO: - Calculate the stride size automatically. */
int stride_size = 64;
- /* It makes no sense to block a single loop. */
- for (i = 0; VEC_iterate (graphite_bb_p, bbs, i, gb); i++)
- if (gbb_nb_loops (gb) < 2)
- return false;
-
for (i = 0; VEC_iterate (graphite_bb_p, bbs, i, gb); i++)
transform_done |= graphite_trans_bb_block (gb, stride_size, loops);
@@ -5049,7 +5953,7 @@ graphite_trans_scop_block (scop_p scop)
j++;
/* Found perfect loop nest. */
- if (perfect && last_nb_loops - j > 0)
+ if (perfect && last_nb_loops - j >= 2)
transform_done |= graphite_trans_loop_block (bbs, last_nb_loops - j);
/* Check if we start with a new loop.
@@ -5093,9 +5997,6 @@ graphite_trans_scop_block (scop_p scop)
transform_done |= graphite_trans_loop_block (bbs, last_nb_loops - j);
VEC_free (graphite_bb_p, heap, bbs);
- if (dump_file && (dump_flags & TDF_DETAILS))
- fprintf (dump_file, "\nLoop blocked.\n");
-
return transform_done;
}
@@ -5108,7 +6009,6 @@ graphite_apply_transformations (scop_p scop)
/* Sort the list of bbs. Keep them always sorted. */
graphite_sort_gbbs (scop);
- scop_remove_ignoreable_gbbs (scop);
if (flag_loop_block)
transform_done = graphite_trans_scop_block (scop);
@@ -5157,13 +6057,15 @@ limit_scops (void)
int j;
loop_p loop;
build_scop_bbs (scop);
- build_scop_loop_nests (scop);
+
+ if (!build_scop_loop_nests (scop))
+ continue;
for (j = 0; VEC_iterate (loop_p, SCOP_LOOP_NEST (scop), j, loop); j++)
if (!loop_in_scop_p (loop_outer (loop), scop))
{
sd_region open_scop;
- open_scop.entry = loop_preheader_edge (loop)->dest;
+ open_scop.entry = loop->header;
open_scop.exit = single_exit (loop)->dest;
VEC_safe_push (sd_region, heap, tmp_scops, &open_scop);
}
@@ -5190,13 +6092,12 @@ graphite_transform_loops (void)
return;
current_scops = VEC_alloc (scop_p, heap, 3);
-
- calculate_dominance_info (CDI_DOMINATORS);
- calculate_dominance_info (CDI_POST_DOMINATORS);
+ recompute_all_dominators ();
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "Graphite loop transformations \n");
+ initialize_original_copy_tables ();
cloog_initialize ();
build_scops ();
limit_scops ();
@@ -5208,9 +6109,13 @@ graphite_transform_loops (void)
for (i = 0; VEC_iterate (scop_p, current_scops, i, scop); i++)
{
build_scop_bbs (scop);
- build_scop_loop_nests (scop);
+ if (!build_scop_loop_nests (scop))
+ continue;
+
build_scop_canonical_schedules (scop);
build_bb_loops (scop);
+ if (!build_scop_conditions (scop))
+ continue;
find_scop_parameters (scop);
build_scop_context (scop);
@@ -5226,8 +6131,8 @@ graphite_transform_loops (void)
if (!build_scop_iteration_domain (scop))
continue;
- build_scop_conditions (scop);
build_scop_data_accesses (scop);
+ build_scop_dynamic_schedules (scop);
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -5247,8 +6152,10 @@ graphite_transform_loops (void)
}
/* Cleanup. */
+ cleanup_tree_cfg ();
free_scops (current_scops);
cloog_finalize ();
+ free_original_copy_tables ();
}
#else /* If Cloog is not available: #ifndef HAVE_cloog. */
diff --git a/gcc/graphite.h b/gcc/graphite.h
index 2e2904a6abf..76f26c8728a 100644
--- a/gcc/graphite.h
+++ b/gcc/graphite.h
@@ -18,6 +18,9 @@ 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/>. */
+#ifndef GCC_GRAPHITE_H
+#define GCC_GRAPHITE_H
+
#include "tree-data-ref.h"
typedef struct graphite_bb *graphite_bb_p;
@@ -31,7 +34,7 @@ static inline int scop_nb_loops (scop_p scop);
static inline unsigned scop_nb_params (scop_p scop);
static inline bool scop_contains_loop (scop_p scop, struct loop *loop);
-struct graphite_bb
+typedef struct graphite_bb
{
basic_block bb;
scop_p scop;
@@ -116,7 +119,7 @@ struct graphite_bb
CloogMatrix *domain;
/* Lists containing the restrictions of the conditional statements
- dominating this bb. This bb can only be executed, if all conditions
+ dominating this bb. This bb can only be executed, if all conditions
are true.
Example:
@@ -129,13 +132,13 @@ struct graphite_bb
B
}
- So for B there is a additional condition (2i <= 8).
+ So for B there is an additional condition (2i <= 8).
- TODO: Add this restrictions to the domain matrix.
+ TODO: Add these restrictions to the domain matrix.
- List of COND_EXPR and SWITCH_EXPR. A COND_EXPR is true only if the
- corresponding element in CONDITION_CASES is not NULL_TREE. For a
- SWITCH_EXPR the corresponding element in CONDITION_CASES is a
+ List of COND_EXPR and SWITCH_EXPR. A COND_EXPR is true only if the
+ corresponding element in CONDITION_CASES is not NULL_TREE. For a
+ SWITCH_EXPR the corresponding element in CONDITION_CASES is a
CASE_LABEL_EXPR. */
VEC (gimple, heap) *conditions;
VEC (gimple, heap) *condition_cases;
@@ -190,7 +193,8 @@ struct graphite_bb
lambda_vector compressed_alpha_matrix;
CloogMatrix *dynamic_schedule;
VEC (data_reference_p, heap) *data_refs;
-};
+ htab_t cloog_iv_types;
+} *gbb_p;
#define GBB_BB(GBB) GBB->bb
#define GBB_SCOP(GBB) GBB->scop
@@ -202,6 +206,7 @@ struct graphite_bb
#define GBB_CONDITIONS(GBB) GBB->conditions
#define GBB_CONDITION_CASES(GBB) GBB->condition_cases
#define GBB_LOOPS(GBB) GBB->loops
+#define GBB_CLOOG_IV_TYPES(GBB) GBB->cloog_iv_types
/* Return the loop that contains the basic block GBB. */
@@ -234,7 +239,7 @@ gbb_loop_at_index (graphite_bb_p gb, int index)
return VEC_index (loop_p, GBB_LOOPS (gb), index);
}
-/* Returns the corresponding loop iterator index for a gimple loop. */
+/* Returns the index of LOOP in the loop nest around GB. */
static inline int
gbb_loop_index (graphite_bb_p gb, loop_p loop)
@@ -270,11 +275,36 @@ DEF_VEC_ALLOC_P (name_tree, heap);
by two edges. */
typedef struct sese
{
+ /* Single ENTRY and single EXIT from the SESE region. */
edge entry, exit;
+
+ /* REGION_BASIC_BLOCKS contains the set of all the basic blocks
+ belonging to the SESE region. */
+ struct pointer_set_t *region_basic_blocks;
+
+ /* An SSA_NAME version is flagged in the LIVEOUT bitmap if the
+ SSA_NAME is defined inside and used outside the SESE region. */
+ bitmap liveout;
+
+ /* The overall number of SSA_NAME versions used to index LIVEIN. */
+ int num_ver;
+
+ /* For each SSA_NAME version VER in LIVEOUT, LIVEIN[VER] contains
+ the set of basic blocks indices that contain a use of VER. */
+ bitmap *livein;
} *sese;
#define SESE_ENTRY(S) (S->entry)
#define SESE_EXIT(S) (S->exit)
+#define SESE_REGION_BBS(S) (S->region_basic_blocks)
+#define SESE_LIVEOUT(S) (S->liveout)
+#define SESE_LIVEIN(S) (S->livein)
+#define SESE_LIVEIN_VER(S, I) (S->livein[I])
+#define SESE_NUM_VER(S) (S->num_ver)
+
+extern sese new_sese (edge, edge);
+extern void free_sese (sese);
+extern void sese_build_livein_liveouts (sese);
/* A SCOP is a Static Control Part of the program, simple enough to be
represented in polyhedral form. */
@@ -305,8 +335,17 @@ struct scop
/* ??? It looks like a global mapping loop_id -> cloog_loop would work. */
htab_t loop2cloog_loop;
- /* CLooG representation of this SCOP. */
+ /* Cloog representation of this scop. */
CloogProgram *program;
+
+ /* Are we allowed to add more params? This is for debugging purpose. We
+ can only add new params before generating the bb domains, otherwise they
+ become invalid. */
+ bool add_params;
+
+ /* LIVEOUT_RENAMES registers the rename mapping that has to be
+ applied after code generation. */
+ htab_t liveout_renames;
};
#define SCOP_BBS(S) S->bbs
@@ -319,14 +358,17 @@ struct scop
but just a boundary. SCOP_ENTRY is considered part of the scop. */
#define SCOP_ENTRY(S) (SESE_ENTRY (SCOP_REGION (S))->dest)
#define SCOP_EXIT(S) (SESE_EXIT (SCOP_REGION (S))->dest)
+#define SCOP_REGION_BBS(S) (SESE_REGION_BBS (SCOP_REGION (S)))
#define SCOP_STATIC_SCHEDULE(S) S->static_schedule
#define SCOP_LOOPS(S) S->loops
#define SCOP_LOOP_NEST(S) S->loop_nest
+#define SCOP_ADD_PARAMS(S) S->add_params
#define SCOP_PARAMS(S) S->params
#define SCOP_OLDIVS(S) S->old_ivs
#define SCOP_PROG(S) S->program
#define SCOP_LOOP2CLOOG_LOOP(S) S->loop2cloog_loop
#define SCOP_LOOPS_MAPPING(S) S->loops_mapping
+#define SCOP_LIVEOUT_RENAMES(S) S->liveout_renames
extern void debug_scop (scop_p, int);
extern void debug_scops (int);
@@ -335,9 +377,9 @@ extern void debug_gbb (graphite_bb_p, int);
extern void dot_scop (scop_p);
extern void dot_all_scops (void);
extern void debug_clast_stmt (struct clast_stmt *);
-
-
-extern void debug_loop_vec (graphite_bb_p gb);
+extern void debug_rename_map (htab_t);
+extern void debug_ivtype_map (htab_t);
+extern void debug_loop_vec (graphite_bb_p);
extern void debug_oldivs (scop_p);
/* Describes the type of an iv stack entry. */
@@ -369,6 +411,24 @@ DEF_VEC_ALLOC_P(iv_stack_entry_p,heap);
typedef VEC(iv_stack_entry_p, heap) **loop_iv_stack;
extern void debug_loop_iv_stack (loop_iv_stack);
+/* Return the old induction variable of the LOOP that is in normal
+ form in SCOP. */
+
+static inline tree
+oldiv_for_loop (scop_p scop, loop_p loop)
+{
+ int i;
+ name_tree iv;
+
+ if (!loop)
+ return NULL_TREE;
+
+ for (i = 0; VEC_iterate (name_tree, SCOP_OLDIVS (scop), i, iv); i++)
+ if (iv->loop == loop)
+ return iv->t;
+
+ return NULL_TREE;
+}
/* Return the number of gimple loops contained in SCOP. */
@@ -422,15 +482,6 @@ loop_domain_dim (unsigned int loop_num, scop_p scop)
return cloog_domain_dim (cloog_loop_domain (slot->cloog_loop)) + 2;
}
-/* Returns the dimensionality of an enclosing loop iteration domain
- with respect to enclosing SCoP for a given data reference REF. */
-
-static inline int
-ref_nb_loops (data_reference_p ref)
-{
- return loop_domain_dim (loop_containing_stmt (DR_STMT (ref))->num, DR_SCOP (ref));
-}
-
/* Returns the dimensionality of a loop iteration vector in a loop
iteration domain for a given loop (identified by LOOP_NUM) with
respect to SCOP. */
@@ -521,22 +572,59 @@ scop_gimple_loop_depth (scop_p scop, loop_p loop)
return depth;
}
-/* Associate a POLYHEDRON dependence description to two data
- references A and B. */
-struct data_dependence_polyhedron
+/* Static inline function prototypes. */
+
+static inline unsigned scop_nb_params (scop_p scop);
+
+/* Returns true when BB is in SCOP. */
+
+static inline bool
+bb_in_scop_p (basic_block bb, scop_p scop)
+{
+ return bitmap_bit_p (SCOP_BBS_B (scop), bb->index);
+}
+
+/* Returns true when LOOP is in SCOP. */
+
+static inline bool
+loop_in_scop_p (struct loop *loop, scop_p scop)
{
- struct data_reference *a;
- struct data_reference *b;
- bool reversed_p;
- bool loop_carried; /*TODO:konrad get rid of this, make level signed */
- signed level;
- CloogDomain *polyhedron;
-};
+ return (bb_in_scop_p (loop->header, scop)
+ && bb_in_scop_p (loop->latch, scop));
+}
-#define RDGE_DDP(E) ((struct data_dependence_polyhedron*) ((E)->data))
+/* Calculate the number of loops around LOOP in the SCOP. */
-typedef struct data_dependence_polyhedron *ddp_p;
+static inline int
+nb_loops_around_loop_in_scop (struct loop *l, scop_p scop)
+{
+ int d = 0;
+
+ for (; loop_in_scop_p (l, scop); d++, l = loop_outer (l));
-DEF_VEC_P(ddp_p);
-DEF_VEC_ALLOC_P(ddp_p,heap);
+ return d;
+}
+
+/* Calculate the number of loops around GB in the current SCOP. */
+
+static inline int
+nb_loops_around_gb (graphite_bb_p gb)
+{
+ return nb_loops_around_loop_in_scop (gbb_loop (gb), GBB_SCOP (gb));
+}
+
+/* Returns the dimensionality of an enclosing loop iteration domain
+ with respect to enclosing SCoP for a given data reference REF. The
+ returned dimensionality is homogeneous (depth of loop nest + number
+ of SCoP parameters + const). */
+
+static inline int
+ref_nb_loops (data_reference_p ref)
+{
+ loop_p loop = loop_containing_stmt (DR_STMT (ref));
+ scop_p scop = DR_SCOP (ref);
+
+ return nb_loops_around_loop_in_scop (loop, scop) + scop_nb_params (scop) + 2;
+}
+#endif /* GCC_GRAPHITE_H */
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index cd148abd7a9..dc5788d5440 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -3950,13 +3950,13 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb,
/* The loop below takes the set of live registers
after JUMP, and calculates the live set before EARLIEST. */
bitmap_copy (test_live, df_get_live_in (other_bb));
- df_simulate_artificial_refs_at_end (test_bb, test_live);
+ df_simulate_initialize_backwards (test_bb, test_live);
for (insn = jump; ; insn = prev)
{
if (INSN_P (insn))
{
df_simulate_find_defs (insn, test_set);
- df_simulate_one_insn (test_bb, insn, test_live);
+ df_simulate_one_insn_backwards (test_bb, insn, test_live);
}
prev = PREV_INSN (insn);
if (insn == earliest)
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 35ec9a60f86..0656d798bc2 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1592,18 +1592,30 @@ struct simple_ipa_opt_pass pass_ipa_early_inline =
unsigned int
compute_inline_parameters (struct cgraph_node *node)
{
+ HOST_WIDE_INT self_stack_size;
+
gcc_assert (!node->global.inlined_to);
- inline_summary (node)->estimated_self_stack_size
- = estimated_stack_frame_size ();
- node->global.estimated_stack_size
- = inline_summary (node)->estimated_self_stack_size;
+
+ /* Estimate the stack size for the function. But not at -O0
+ because estimated_stack_frame_size is a quadratic problem. */
+ self_stack_size = optimize ? estimated_stack_frame_size () : 0;
+ inline_summary (node)->estimated_self_stack_size = self_stack_size;
+ node->global.estimated_stack_size = self_stack_size;
node->global.stack_frame_offset = 0;
+
+ /* Can this function be inlined at all? */
node->local.inlinable = tree_inlinable_function_p (current_function_decl);
+
+ /* Estimate the number of instructions for this function.
+ ??? At -O0 we don't use this information except for the dumps, and
+ even then only for always_inline functions. But disabling this
+ causes ICEs in the inline heuristics... */
inline_summary (node)->self_insns
= estimate_num_insns_fn (current_function_decl, &eni_inlining_weights);
if (node->local.inlinable && !node->local.disregard_inline_limits)
node->local.disregard_inline_limits
= DECL_DISREGARD_INLINE_LIMITS (current_function_decl);
+
/* Inlining characteristics are maintained by the cgraph_mark_inline. */
node->global.insns = inline_summary (node)->self_insns;
return 0;
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index 9e47333d46e..00df69c6d2e 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -1751,6 +1751,33 @@ mark_loops_for_removal (void)
ira_free (sorted_loops);
}
+/* Mark all loops but root for removing. */
+static void
+mark_all_loops_for_removal (void)
+{
+ int i;
+ loop_p loop;
+
+ for (i = 0; VEC_iterate (loop_p, ira_loops.larray, i, loop); i++)
+ if (ira_loop_nodes[i].regno_allocno_map != NULL)
+ {
+ if (ira_loop_nodes[i].parent == NULL)
+ {
+ /* Don't remove the root. */
+ ira_loop_nodes[i].to_remove_p = false;
+ continue;
+ }
+ ira_loop_nodes[i].to_remove_p = true;
+ if (internal_flag_ira_verbose > 1 && ira_dump_file != NULL)
+ fprintf
+ (ira_dump_file,
+ " Mark loop %d (header %d, freq %d, depth %d) for removal\n",
+ ira_loop_nodes[i].loop->num,
+ ira_loop_nodes[i].loop->header->index,
+ ira_loop_nodes[i].loop->header->frequency,
+ loop_depth (ira_loop_nodes[i].loop));
+ }
+}
/* Definition of vector of loop tree nodes. */
DEF_VEC_P(ira_loop_tree_node_t);
@@ -1856,6 +1883,43 @@ ira_rebuild_regno_allocno_list (int regno)
fprintf (ira_dump_file, " Rebuilding regno allocno list for %d\n", regno);
}
+/* Propagate info from allocno FROM_A to allocno A. */
+static void
+propagate_some_info_from_allocno (ira_allocno_t a, ira_allocno_t from_a)
+{
+ enum reg_class cover_class;
+
+ IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
+ ALLOCNO_CONFLICT_HARD_REGS (from_a));
+#ifdef STACK_REGS
+ if (ALLOCNO_NO_STACK_REG_P (from_a))
+ ALLOCNO_NO_STACK_REG_P (a) = true;
+#endif
+ ALLOCNO_NREFS (a) += ALLOCNO_NREFS (from_a);
+ ALLOCNO_FREQ (a) += ALLOCNO_FREQ (from_a);
+ ALLOCNO_CALL_FREQ (a) += ALLOCNO_CALL_FREQ (from_a);
+ IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a),
+ ALLOCNO_TOTAL_CONFLICT_HARD_REGS (from_a));
+ ALLOCNO_CALLS_CROSSED_NUM (a) += ALLOCNO_CALLS_CROSSED_NUM (from_a);
+ ALLOCNO_EXCESS_PRESSURE_POINTS_NUM (a)
+ += ALLOCNO_EXCESS_PRESSURE_POINTS_NUM (from_a);
+ if (! ALLOCNO_BAD_SPILL_P (from_a))
+ ALLOCNO_BAD_SPILL_P (a) = false;
+#ifdef STACK_REGS
+ if (ALLOCNO_TOTAL_NO_STACK_REG_P (from_a))
+ ALLOCNO_TOTAL_NO_STACK_REG_P (a) = true;
+#endif
+ cover_class = ALLOCNO_COVER_CLASS (from_a);
+ ira_assert (cover_class == ALLOCNO_COVER_CLASS (a));
+ ira_allocate_and_accumulate_costs (&ALLOCNO_HARD_REG_COSTS (a), cover_class,
+ ALLOCNO_HARD_REG_COSTS (from_a));
+ ira_allocate_and_accumulate_costs (&ALLOCNO_CONFLICT_HARD_REG_COSTS (a),
+ cover_class,
+ ALLOCNO_CONFLICT_HARD_REG_COSTS (from_a));
+ ALLOCNO_COVER_CLASS_COST (a) += ALLOCNO_COVER_CLASS_COST (from_a);
+ ALLOCNO_MEMORY_COST (a) += ALLOCNO_MEMORY_COST (from_a);
+}
+
/* Remove allocnos from loops removed from the allocation
consideration. */
static void
@@ -1863,7 +1927,6 @@ remove_unnecessary_allocnos (void)
{
int regno;
bool merged_p, rebuild_p;
- enum reg_class cover_class;
ira_allocno_t a, prev_a, next_a, parent_a;
ira_loop_tree_node_t a_node, parent;
allocno_live_range_t r;
@@ -1890,9 +1953,9 @@ remove_unnecessary_allocnos (void)
;
if (parent_a == NULL)
{
- /* There are no allocnos with the same regno in upper
- region -- just move the allocno to the upper
- region. */
+ /* There are no allocnos with the same regno in
+ upper region -- just move the allocno to the
+ upper region. */
prev_a = a;
ALLOCNO_LOOP_TREE_NODE (a) = parent;
parent->regno_allocno_map[regno] = a;
@@ -1911,43 +1974,10 @@ remove_unnecessary_allocnos (void)
change_allocno_in_range_list (r, parent_a);
ALLOCNO_LIVE_RANGES (parent_a)
= ira_merge_allocno_live_ranges
- (r, ALLOCNO_LIVE_RANGES (parent_a));
+ (r, ALLOCNO_LIVE_RANGES (parent_a));
merged_p = true;
ALLOCNO_LIVE_RANGES (a) = NULL;
- IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (parent_a),
- ALLOCNO_CONFLICT_HARD_REGS (a));
-#ifdef STACK_REGS
- if (ALLOCNO_NO_STACK_REG_P (a))
- ALLOCNO_NO_STACK_REG_P (parent_a) = true;
-#endif
- ALLOCNO_NREFS (parent_a) += ALLOCNO_NREFS (a);
- ALLOCNO_FREQ (parent_a) += ALLOCNO_FREQ (a);
- ALLOCNO_CALL_FREQ (parent_a) += ALLOCNO_CALL_FREQ (a);
- IOR_HARD_REG_SET
- (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (parent_a),
- ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
- ALLOCNO_CALLS_CROSSED_NUM (parent_a)
- += ALLOCNO_CALLS_CROSSED_NUM (a);
- ALLOCNO_EXCESS_PRESSURE_POINTS_NUM (parent_a)
- += ALLOCNO_EXCESS_PRESSURE_POINTS_NUM (a);
- if (! ALLOCNO_BAD_SPILL_P (a))
- ALLOCNO_BAD_SPILL_P (parent_a) = false;
-#ifdef STACK_REGS
- if (ALLOCNO_TOTAL_NO_STACK_REG_P (a))
- ALLOCNO_TOTAL_NO_STACK_REG_P (parent_a) = true;
-#endif
- cover_class = ALLOCNO_COVER_CLASS (a);
- ira_assert (cover_class == ALLOCNO_COVER_CLASS (parent_a));
- ira_allocate_and_accumulate_costs
- (&ALLOCNO_HARD_REG_COSTS (parent_a), cover_class,
- ALLOCNO_HARD_REG_COSTS (a));
- ira_allocate_and_accumulate_costs
- (&ALLOCNO_CONFLICT_HARD_REG_COSTS (parent_a),
- cover_class,
- ALLOCNO_CONFLICT_HARD_REG_COSTS (a));
- ALLOCNO_COVER_CLASS_COST (parent_a)
- += ALLOCNO_COVER_CLASS_COST (a);
- ALLOCNO_MEMORY_COST (parent_a) += ALLOCNO_MEMORY_COST (a);
+ propagate_some_info_from_allocno (parent_a, a);
finish_allocno (a);
}
}
@@ -1968,15 +1998,88 @@ remove_unnecessary_allocnos (void)
ira_free (regno_allocnos);
}
-/* Remove loops from consideration. We remove loops for which a
- separate allocation will not improve the result. We have to do
- this after allocno creation and their costs and cover class
- evaluation because only after that the register pressure can be
- known and is calculated. */
+/* Remove allocnos from all loops but the root. */
static void
-remove_unnecessary_regions (void)
+remove_low_level_allocnos (void)
{
- mark_loops_for_removal ();
+ int regno;
+ bool merged_p, propagate_p;
+ ira_allocno_t a, top_a;
+ ira_loop_tree_node_t a_node, parent;
+ allocno_live_range_t r;
+ ira_allocno_iterator ai;
+
+ merged_p = false;
+ FOR_EACH_ALLOCNO (a, ai)
+ {
+ a_node = ALLOCNO_LOOP_TREE_NODE (a);
+ if (a_node == ira_loop_tree_root || ALLOCNO_CAP_MEMBER (a) != NULL)
+ continue;
+ regno = ALLOCNO_REGNO (a);
+ if ((top_a = ira_loop_tree_root->regno_allocno_map[regno]) == NULL)
+ {
+ ALLOCNO_LOOP_TREE_NODE (a) = ira_loop_tree_root;
+ ira_loop_tree_root->regno_allocno_map[regno] = a;
+ continue;
+ }
+ propagate_p = a_node->parent->regno_allocno_map[regno] == NULL;
+ /* Remove the allocno and update info of allocno in the upper
+ region. */
+ r = ALLOCNO_LIVE_RANGES (a);
+ change_allocno_in_range_list (r, top_a);
+ ALLOCNO_LIVE_RANGES (top_a)
+ = ira_merge_allocno_live_ranges (r, ALLOCNO_LIVE_RANGES (top_a));
+ merged_p = true;
+ ALLOCNO_LIVE_RANGES (a) = NULL;
+ if (propagate_p)
+ propagate_some_info_from_allocno (top_a, a);
+ }
+ FOR_EACH_ALLOCNO (a, ai)
+ {
+ a_node = ALLOCNO_LOOP_TREE_NODE (a);
+ if (a_node == ira_loop_tree_root)
+ continue;
+ parent = a_node->parent;
+ regno = ALLOCNO_REGNO (a);
+ if (ALLOCNO_CAP_MEMBER (a) != NULL)
+ ira_assert (ALLOCNO_CAP (a) != NULL);
+ else if (ALLOCNO_CAP (a) == NULL)
+ ira_assert (parent->regno_allocno_map[regno] != NULL);
+ }
+ FOR_EACH_ALLOCNO (a, ai)
+ {
+ regno = ALLOCNO_REGNO (a);
+ if (ira_loop_tree_root->regno_allocno_map[regno] == a)
+ {
+ ira_regno_allocno_map[regno] = a;
+ ALLOCNO_NEXT_REGNO_ALLOCNO (a) = NULL;
+ ALLOCNO_CAP_MEMBER (a) = NULL;
+ COPY_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
+ ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
+#ifdef STACK_REGS
+ if (ALLOCNO_TOTAL_NO_STACK_REG_P (a))
+ ALLOCNO_NO_STACK_REG_P (a) = true;
+#endif
+ }
+ else
+ finish_allocno (a);
+ }
+ if (merged_p)
+ ira_rebuild_start_finish_chains ();
+}
+
+/* Remove loops from consideration. We remove all loops except for
+ root if ALL_P or loops for which a separate allocation will not
+ improve the result. We have to do this after allocno creation and
+ their costs and cover class evaluation because only after that the
+ register pressure can be known and is calculated. */
+static void
+remove_unnecessary_regions (bool all_p)
+{
+ if (all_p)
+ mark_all_loops_for_removal ();
+ else
+ mark_loops_for_removal ();
children_vec
= VEC_alloc (ira_loop_tree_node_t, heap,
last_basic_block + VEC_length (loop_p, ira_loops.larray));
@@ -1985,7 +2088,10 @@ remove_unnecessary_regions (void)
last_basic_block + VEC_length (loop_p, ira_loops.larray));
remove_uneccesary_loop_nodes_from_loop_tree (ira_loop_tree_root) ;
VEC_free (ira_loop_tree_node_t, heap, children_vec);
- remove_unnecessary_allocnos ();
+ if (all_p)
+ remove_low_level_allocnos ();
+ else
+ remove_unnecessary_allocnos ();
while (VEC_length (ira_loop_tree_node_t, removed_loop_vec) > 0)
finish_loop_tree_node (VEC_pop (ira_loop_tree_node_t, removed_loop_vec));
VEC_free (ira_loop_tree_node_t, heap, removed_loop_vec);
@@ -2668,7 +2774,7 @@ ira_build (bool loops_p)
create_allocnos ();
ira_costs ();
ira_create_allocno_live_ranges ();
- remove_unnecessary_regions ();
+ remove_unnecessary_regions (false);
ira_compress_allocno_live_ranges ();
update_bad_spill_attribute ();
loops_p = more_one_region_p ();
@@ -2685,6 +2791,29 @@ ira_build (bool loops_p)
sort_conflict_id_allocno_map ();
setup_min_max_conflict_allocno_ids ();
ira_build_conflicts ();
+ if (! ira_conflicts_p)
+ {
+ ira_allocno_t a;
+ ira_allocno_iterator ai;
+
+ /* Remove all regions but root one. */
+ if (loops_p)
+ {
+ remove_unnecessary_regions (true);
+ loops_p = false;
+ }
+ /* We don't save hard registers around calls for fast allocation
+ -- add caller clobbered registers as conflicting ones to
+ allocno crossing calls. */
+ FOR_EACH_ALLOCNO (a, ai)
+ if (ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
+ {
+ IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ }
+ }
if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
print_copies (ira_dump_file);
if (internal_flag_ira_verbose > 0 && ira_dump_file != NULL)
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index c9cb1845fe4..f1adb1da06a 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -3037,11 +3037,13 @@ ira_reuse_stack_slot (int regno, unsigned int inherent_size,
if (x != NULL_RTX)
{
ira_assert (slot->width >= total_size);
+#ifdef ENABLE_IRA_CHECKING
EXECUTE_IF_SET_IN_BITMAP (&slot->spilled_regs,
FIRST_PSEUDO_REGISTER, i, bi)
{
ira_assert (! pseudos_have_intersected_live_ranges_p (regno, i));
}
+#endif
SET_REGNO_REG_SET (&slot->spilled_regs, regno);
if (internal_flag_ira_verbose > 3 && ira_dump_file)
{
@@ -3267,7 +3269,7 @@ fast_allocation (void)
* ira_max_point);
for (i = 0; i < ira_max_point; i++)
CLEAR_HARD_REG_SET (used_hard_regs[i]);
- qsort (sorted_allocnos, ira_allocnos_num, sizeof (ira_allocno_t),
+ qsort (sorted_allocnos, num, sizeof (ira_allocno_t),
allocno_priority_compare_func);
for (i = 0; i < num; i++)
{
@@ -3329,7 +3331,7 @@ ira_color (void)
ALLOCNO_UPDATED_MEMORY_COST (a) = ALLOCNO_MEMORY_COST (a);
ALLOCNO_UPDATED_COVER_CLASS_COST (a) = ALLOCNO_COVER_CLASS_COST (a);
}
- if (optimize)
+ if (ira_conflicts_p)
color ();
else
fast_allocation ();
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index ff116b5da8a..cce2abfd6f6 100644
--- a/gcc/ira-conflicts.c
+++ b/gcc/ira-conflicts.c
@@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
#include "df.h"
#include "sparseset.h"
#include "ira-int.h"
+#include "addresses.h"
/* This file contains code responsible for allocno conflict creation,
allocno copy creation and allocno info accumulation on upper level
@@ -60,8 +61,10 @@ static IRA_INT_TYPE **conflicts;
-/* Build allocno conflict table by processing allocno live ranges. */
-static void
+/* Build allocno conflict table by processing allocno live ranges.
+ Return true if the table was built. The table is not built if it
+ is too big. */
+static bool
build_conflict_bit_table (void)
{
int i, num, id, allocated_words_num, conflict_bit_vec_words_num;
@@ -74,6 +77,26 @@ build_conflict_bit_table (void)
int allocno_set_words;
allocno_set_words = (ira_allocnos_num + IRA_INT_BITS - 1) / IRA_INT_BITS;
+ allocated_words_num = 0;
+ FOR_EACH_ALLOCNO (allocno, ai)
+ {
+ if (ALLOCNO_MAX (allocno) < ALLOCNO_MIN (allocno))
+ continue;
+ conflict_bit_vec_words_num
+ = ((ALLOCNO_MAX (allocno) - ALLOCNO_MIN (allocno) + IRA_INT_BITS)
+ / IRA_INT_BITS);
+ allocated_words_num += conflict_bit_vec_words_num;
+ if ((unsigned long long) allocated_words_num * sizeof (IRA_INT_TYPE)
+ > (unsigned long long) IRA_MAX_CONFLICT_TABLE_SIZE * 1024 * 1024)
+ {
+ if (internal_flag_ira_verbose > 0 && ira_dump_file != NULL)
+ fprintf
+ (ira_dump_file,
+ "+++Conflict table will be too big(>%dMB) -- don't use it\n",
+ IRA_MAX_CONFLICT_TABLE_SIZE);
+ return false;
+ }
+ }
allocnos_live = sparseset_alloc (ira_allocnos_num);
conflicts = (IRA_INT_TYPE **) ira_allocate (sizeof (IRA_INT_TYPE *)
* ira_allocnos_num);
@@ -134,6 +157,7 @@ build_conflict_bit_table (void)
sparseset_clear_bit (allocnos_live, ALLOCNO_NUM (r->allocno));
}
sparseset_free (allocnos_live);
+ return true;
}
@@ -743,29 +767,34 @@ ira_build_conflicts (void)
ira_allocno_iterator ai;
HARD_REG_SET temp_hard_reg_set;
- if (optimize)
+ if (ira_conflicts_p)
{
- build_conflict_bit_table ();
- build_conflicts ();
- ira_traverse_loop_tree (true, ira_loop_tree_root, NULL, add_copies);
- /* We need finished conflict table for the subsequent call. */
- if (flag_ira_region == IRA_REGION_ALL
- || flag_ira_region == IRA_REGION_MIXED)
- propagate_copies ();
- /* Now we can free memory for the conflict table (see function
- build_allocno_conflicts for details). */
- FOR_EACH_ALLOCNO (a, ai)
+ ira_conflicts_p = build_conflict_bit_table ();
+ if (ira_conflicts_p)
{
- if (ALLOCNO_CONFLICT_ALLOCNO_ARRAY (a) != conflicts[ALLOCNO_NUM (a)])
- ira_free (conflicts[ALLOCNO_NUM (a)]);
+ build_conflicts ();
+ ira_traverse_loop_tree (true, ira_loop_tree_root, NULL, add_copies);
+ /* We need finished conflict table for the subsequent call. */
+ if (flag_ira_region == IRA_REGION_ALL
+ || flag_ira_region == IRA_REGION_MIXED)
+ propagate_copies ();
+ /* Now we can free memory for the conflict table (see function
+ build_allocno_conflicts for details). */
+ FOR_EACH_ALLOCNO (a, ai)
+ {
+ if (ALLOCNO_CONFLICT_ALLOCNO_ARRAY (a)
+ != conflicts[ALLOCNO_NUM (a)])
+ ira_free (conflicts[ALLOCNO_NUM (a)]);
+ }
+ ira_free (conflicts);
}
- ira_free (conflicts);
}
- if (! CLASS_LIKELY_SPILLED_P (BASE_REG_CLASS))
+ if (! CLASS_LIKELY_SPILLED_P (base_reg_class (VOIDmode, ADDRESS, SCRATCH)))
CLEAR_HARD_REG_SET (temp_hard_reg_set);
else
{
- COPY_HARD_REG_SET (temp_hard_reg_set, reg_class_contents[BASE_REG_CLASS]);
+ COPY_HARD_REG_SET (temp_hard_reg_set,
+ reg_class_contents[base_reg_class (VOIDmode, ADDRESS, SCRATCH)]);
AND_COMPL_HARD_REG_SET (temp_hard_reg_set, ira_no_alloc_regs);
AND_HARD_REG_SET (temp_hard_reg_set, call_used_reg_set);
}
@@ -796,6 +825,7 @@ ira_build_conflicts (void)
}
}
}
- if (optimize && internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
+ if (optimize && ira_conflicts_p
+ && internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
print_conflicts (ira_dump_file, false);
}
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index a2df9bde9ae..397affd4b1f 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -142,8 +142,12 @@ copy_cost (rtx x, enum machine_mode mode, enum reg_class rclass, bool to_p,
ira_init_register_move_cost (mode);
if (secondary_class != NO_REGS)
- return (move_cost[mode][secondary_class][rclass] + sri.extra_cost
- + copy_cost (x, mode, secondary_class, to_p, &sri));
+ {
+ if (!move_cost[mode])
+ init_move_cost (mode);
+ return (move_cost[mode][secondary_class][rclass] + sri.extra_cost
+ + copy_cost (x, mode, secondary_class, to_p, &sri));
+ }
/* For memory, use the memory move cost, for (hard) registers, use
the cost to move between the register classes, and use 2 for
@@ -151,8 +155,11 @@ copy_cost (rtx x, enum machine_mode mode, enum reg_class rclass, bool to_p,
if (MEM_P (x) || rclass == NO_REGS)
return sri.extra_cost + ira_memory_move_cost[mode][rclass][to_p != 0];
else if (REG_P (x))
- return
- (sri.extra_cost + move_cost[mode][REGNO_REG_CLASS (REGNO (x))][rclass]);
+ {
+ if (!move_cost[mode])
+ init_move_cost (mode);
+ return (sri.extra_cost + move_cost[mode][REGNO_REG_CLASS (REGNO (x))][rclass]);
+ }
else
/* If this is a constant, we may eventually want to call rtx_cost
here. */
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index 536d6ee47f4..f5247185d0a 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -129,6 +129,26 @@ eq_move_lists_p (move_t list1, move_t list2)
return list1 == list2;
}
+/* Print move list LIST into file F. */
+static void
+print_move_list (FILE *f, move_t list)
+{
+ for (; list != NULL; list = list->next)
+ fprintf (f, " a%dr%d->a%dr%d",
+ ALLOCNO_NUM (list->from), ALLOCNO_REGNO (list->from),
+ ALLOCNO_NUM (list->to), ALLOCNO_REGNO (list->to));
+ fprintf (f, "\n");
+}
+
+extern void ira_debug_move_list (move_t list);
+
+/* Print move list LIST into stderr. */
+void
+ira_debug_move_list (move_t list)
+{
+ print_move_list (stderr, list);
+}
+
/* This recursive function changes pseudo-registers in *LOC if it is
necessary. The function returns TRUE if a change was done. */
static bool
@@ -945,7 +965,14 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node,
REGNO (ALLOCNO_REG (from)));
}
else
- r->finish = ira_max_point;
+ {
+ r->finish = ira_max_point;
+ if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
+ fprintf (ira_dump_file,
+ " Adding range [%d..%d] to allocno a%dr%d\n",
+ r->start, ira_max_point, ALLOCNO_NUM (from),
+ REGNO (ALLOCNO_REG (from)));
+ }
ira_max_point++;
ALLOCNO_LIVE_RANGES (to)
= ira_create_allocno_live_range (to, ira_max_point, -1,
@@ -968,18 +995,18 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node,
EXECUTE_IF_SET_IN_BITMAP (live_through, FIRST_PSEUDO_REGISTER, regno, bi)
{
a = node->regno_allocno_map[regno];
- if (ALLOCNO_MEM_OPTIMIZED_DEST (a) == NULL)
- {
- ALLOCNO_LIVE_RANGES (a)
- = ira_create_allocno_live_range (a, start, ira_max_point - 1,
- ALLOCNO_LIVE_RANGES (a));
- if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
- fprintf
- (ira_dump_file,
- " Adding range [%d..%d] to live through allocno a%dr%d\n",
- start, ira_max_point - 1, ALLOCNO_NUM (a),
- REGNO (ALLOCNO_REG (a)));
- }
+ if ((to = ALLOCNO_MEM_OPTIMIZED_DEST (a)) != NULL)
+ a = to;
+ ALLOCNO_LIVE_RANGES (a)
+ = ira_create_allocno_live_range (a, start, ira_max_point - 1,
+ ALLOCNO_LIVE_RANGES (a));
+ if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
+ fprintf
+ (ira_dump_file,
+ " Adding range [%d..%d] to live through %s allocno a%dr%d\n",
+ start, ira_max_point - 1,
+ to != NULL ? "upper level" : "",
+ ALLOCNO_NUM (a), REGNO (ALLOCNO_REG (a)));
}
}
diff --git a/gcc/ira-int.h b/gcc/ira-int.h
index 1fc6da265e2..b6605d59a7a 100644
--- a/gcc/ira-int.h
+++ b/gcc/ira-int.h
@@ -33,7 +33,9 @@ along with GCC; see the file COPYING3. If not see
#ifdef ENABLE_IRA_CHECKING
#define ira_assert(c) gcc_assert (c)
#else
-#define ira_assert(c)
+/* Always define and include C, so that warnings for empty body in an
+ ‘if’ statement and unused variable do not occur. */
+#define ira_assert(c) ((void)(0 && (c)))
#endif
/* Compute register frequency from edge frequency FREQ. It is
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index c7868f39a54..0d1e402d82b 100644
--- a/gcc/ira-lives.c
+++ b/gcc/ira-lives.c
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm_p.h"
#include "target.h"
#include "flags.h"
+#include "except.h"
#include "hard-reg-set.h"
#include "basic-block.h"
#include "insn-config.h"
@@ -985,6 +986,13 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node)
SET_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a));
SET_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
}
+ if (can_throw_internal (insn))
+ {
+ IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ }
}
}
diff --git a/gcc/ira.c b/gcc/ira.c
index 44f7032bf31..5830bae1634 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1827,6 +1827,10 @@ too_high_register_pressure_p (void)
/* All natural loops. */
struct loops ira_loops;
+/* True if we have allocno conflicts. It is false for non-optimized
+ mode or when the conflict table is too big. */
+bool ira_conflicts_p;
+
/* This is the main entry of IRA. */
static void
ira (FILE *f)
@@ -1851,6 +1855,7 @@ ira (FILE *f)
ira_dump_file = stderr;
}
+ ira_conflicts_p = optimize > 0;
setup_prohibited_mode_move_regs ();
df_note_add_problem ();
@@ -1874,6 +1879,11 @@ ira (FILE *f)
if (warn_clobbered)
generate_setjmp_warnings ();
+ /* Determine if the current function is a leaf before running IRA
+ since this can impact optimizations done by the prologue and
+ epilogue thus changing register elimination offsets. */
+ current_function_is_leaf = leaf_function_p ();
+
rebuild_p = update_equiv_regs ();
#ifndef IRA_NO_OBSTACK
@@ -1916,6 +1926,8 @@ ira (FILE *f)
loops_p = ira_build (optimize
&& (flag_ira_region == IRA_REGION_ALL
|| flag_ira_region == IRA_REGION_MIXED));
+
+ ira_assert (ira_conflicts_p || !loops_p);
saved_flag_ira_share_spill_slots = flag_ira_share_spill_slots;
if (too_high_register_pressure_p ())
@@ -1929,7 +1941,7 @@ ira (FILE *f)
ira_emit (loops_p);
- if (optimize)
+ if (ira_conflicts_p)
{
max_regno = max_reg_num ();
@@ -1963,18 +1975,13 @@ ira (FILE *f)
calculate_allocation_cost ();
#ifdef ENABLE_IRA_CHECKING
- if (optimize)
+ if (ira_conflicts_p)
check_allocation ();
#endif
delete_trivially_dead_insns (get_insns (), max_reg_num ());
max_regno = max_reg_num ();
- /* Determine if the current function is a leaf before running IRA
- since this can impact optimizations done by the prologue and
- epilogue thus changing register elimination offsets. */
- current_function_is_leaf = leaf_function_p ();
-
/* And the reg_equiv_memory_loc array. */
VEC_safe_grow (rtx, gc, reg_equiv_memory_loc_vec, max_regno);
memset (VEC_address (rtx, reg_equiv_memory_loc_vec), 0,
@@ -1992,7 +1999,7 @@ ira (FILE *f)
allocate_initial_values (reg_equiv_memory_loc);
overall_cost_before = ira_overall_cost;
- if (optimize)
+ if (ira_conflicts_p)
{
fix_reg_equiv_init ();
@@ -2015,13 +2022,13 @@ ira (FILE *f)
df_set_flags (DF_NO_INSN_RESCAN);
build_insn_chain ();
- reload_completed = !reload (get_insns (), optimize > 0);
+ reload_completed = !reload (get_insns (), ira_conflicts_p);
timevar_pop (TV_RELOAD);
timevar_push (TV_IRA);
- if (optimize)
+ if (ira_conflicts_p)
{
ira_free (ira_spilled_reg_stack_slots);
diff --git a/gcc/ira.h b/gcc/ira.h
index 5f964c47a42..165274d95f7 100644
--- a/gcc/ira.h
+++ b/gcc/ira.h
@@ -20,6 +20,10 @@ 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/>. */
+/* True if we have allocno conflicts. It is false for non-optimized
+ mode or when the conflict table is too big. */
+extern bool ira_conflicts_p;
+
extern void ira_init_once (void);
extern void ira_init (void);
extern void ira_finish_once (void);
diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c
index 1bf9ddfbf9b..794d4e8b256 100644
--- a/gcc/lambda-code.c
+++ b/gcc/lambda-code.c
@@ -1,5 +1,6 @@
/* Loop transformation code generation
- Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Daniel Berlin <dberlin@dberlin.org>
This file is part of GCC.
@@ -2682,6 +2683,7 @@ lambda_collect_parameters (VEC (data_reference_p, heap) *datarefs,
for (j = 0; j < DR_NUM_DIMENSIONS (data_reference); j++)
lambda_collect_parameters_from_af (DR_ACCESS_FN (data_reference, j),
parameter_set, parameters);
+ pointer_set_destroy (parameter_set);
}
/* Translates BASE_EXPR to vector CY. AM is needed for inferring
@@ -2792,15 +2794,13 @@ build_access_matrix (data_reference_p data_reference,
unsigned i, ndim = DR_NUM_DIMENSIONS (data_reference);
unsigned nivs = VEC_length (loop_p, nest);
unsigned lambda_nb_columns;
- lambda_vector_vec_p matrix;
AM_LOOP_NEST (am) = nest;
AM_NB_INDUCTION_VARS (am) = nivs;
AM_PARAMETERS (am) = parameters;
lambda_nb_columns = AM_NB_COLUMNS (am);
- matrix = VEC_alloc (lambda_vector, heap, lambda_nb_columns);
- AM_MATRIX (am) = matrix;
+ AM_MATRIX (am) = VEC_alloc (lambda_vector, gc, ndim);
for (i = 0; i < ndim; i++)
{
@@ -2810,7 +2810,7 @@ build_access_matrix (data_reference_p data_reference,
if (!av_for_af (access_function, access_vector, am))
return false;
- VEC_safe_push (lambda_vector, heap, matrix, access_vector);
+ VEC_quick_push (lambda_vector, AM_MATRIX (am), access_vector);
}
DR_ACCESS_MATRIX (data_reference) = am;
diff --git a/gcc/lambda.h b/gcc/lambda.h
index 2d321fbab6d..94ca90644e4 100644
--- a/gcc/lambda.h
+++ b/gcc/lambda.h
@@ -1,5 +1,6 @@
/* Lambda matrix and vector interface.
- Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Daniel Berlin <dberlin@dberlin.org>
This file is part of GCC.
@@ -30,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
typedef int *lambda_vector;
DEF_VEC_P(lambda_vector);
DEF_VEC_ALLOC_P(lambda_vector,heap);
+DEF_VEC_ALLOC_P(lambda_vector,gc);
typedef VEC(lambda_vector, heap) *lambda_vector_vec_p;
DEF_VEC_P (lambda_vector_vec_p);
diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c
index 87b278ab4d6..b984f47cb3f 100644
--- a/gcc/mips-tfile.c
+++ b/gcc/mips-tfile.c
@@ -2855,7 +2855,8 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ /* It's only a number if followed by ';' or ','. */
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
}
@@ -2911,7 +2912,7 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
if (t_ptr == &temp_array[0])
@@ -2985,7 +2986,7 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
if (t_ptr == &temp_array[0])
diff --git a/gcc/params.def b/gcc/params.def
index ea3015b3640..ea5efc3e85c 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -750,6 +750,11 @@ DEFPARAM (PARAM_IRA_MAX_LOOPS_NUM,
"max loops number for regional RA",
100, 0, 0)
+DEFPARAM (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE,
+ "ira-max-conflict-table-size",
+ "max size of conflict table in MB",
+ 1000, 0, 0)
+
/* Switch initialization conversion will refuse to create arrays that are
bigger than this parameter times the number of switch branches. */
diff --git a/gcc/params.h b/gcc/params.h
index 8147b609848..501259c78e1 100644
--- a/gcc/params.h
+++ b/gcc/params.h
@@ -169,6 +169,8 @@ typedef enum compiler_param
PARAM_VALUE (PARAM_USE_CANONICAL_TYPES)
#define IRA_MAX_LOOPS_NUM \
PARAM_VALUE (PARAM_IRA_MAX_LOOPS_NUM)
+#define IRA_MAX_CONFLICT_TABLE_SIZE \
+ PARAM_VALUE (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
#define SWITCH_CONVERSION_BRANCH_RATIO \
PARAM_VALUE (PARAM_SWITCH_CONVERSION_BRANCH_RATIO)
#endif /* ! GCC_PARAMS_H */
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 809966b5c42..6b6c206c4db 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2009-01-12 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
2008-12-06 Joseph S. Myers <joseph@codesourcery.com>
* id.po: Update.
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index a51ada2d0a0..17e20fb2b1f 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -8,10 +8,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 4.3.0\n"
+"Project-Id-Version: gcc 4.4-b20081121\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2008-11-18 20:02+0000\n"
-"PO-Revision-Date: 2008-08-07 20:38+0200\n"
+"PO-Revision-Date: 2009-01-11 16:07+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -303,14 +303,12 @@ msgid "char-array initialized from wide string"
msgstr "char-vektor initierad från bred sträng"
#: c-typeck.c:4803
-#, fuzzy
msgid "wide character array initialized from non-wide string"
-msgstr "wchar_t-vektor initierad från icke-bred sträng"
+msgstr "bred teckenvektor initierad från icke-bred sträng"
#: c-typeck.c:4809
-#, fuzzy
msgid "wide character array initialized from incompatible wide string"
-msgstr "wchar_t-vektor initierad från icke-bred sträng"
+msgstr "bred teckenvektor initierad från en inkompatibel bred sträng"
#: c-typeck.c:4827 cp/typeck2.c:785
#, gcc-internal-format
@@ -930,9 +928,8 @@ msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr " -print-multi-os-directory Visa den relativa sökvägen till OS-bibliotek\n"
#: gcc.c:3247
-#, fuzzy
msgid " -print-sysroot Display the target libraries directory\n"
-msgstr " -dumpmachine Visa kompilatorns målprocessor\n"
+msgstr " -print-sysroot Visa katalogen för målbibliotek\n"
#: gcc.c:3248
msgid " -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n"
@@ -1120,9 +1117,9 @@ msgid "argument to '-specs=' is missing"
msgstr "argument till \"-specs=\" saknas"
#: gcc.c:3822
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-wrapper' is missing"
-msgstr "argument till \"-specs\" saknas"
+msgstr "argument till \"-wrapper\" saknas"
#: gcc.c:3850
#, c-format
@@ -1775,7 +1772,7 @@ msgstr "optimerar för storlek och kodstorleken skulle växa"
#: ipa-inline.c:980
msgid "target specific option mismatch"
-msgstr ""
+msgstr "målspecifik flagga stämmer inte"
#: ipa-inline.c:1056
msgid "--param inline-unit-growth limit reached"
@@ -1846,7 +1843,7 @@ msgstr " Det finns inga flaggor med de eftersökta egenskaperna\n"
#: opts.c:1312
#, c-format
msgid " None found. Use --help=%s to show *all* the options supported by the %s front-end\n"
-msgstr ""
+msgstr " Det fanns inga. Använd --help=%s för att visa *alla* flaggorna som stöds av framänden %s\n"
#: opts.c:1318
#, c-format
@@ -1874,9 +1871,8 @@ msgid "The --param option recognizes the following as parameters"
msgstr "Flaggan --param accepterar följande som parametrar"
#: opts.c:1390
-#, fuzzy
msgid "The following options are specific to just the language "
-msgstr "Följande flaggor är specifika för språket"
+msgstr "Följande flaggor är specifika för just språket"
#: opts.c:1392
msgid "The following options are supported by the language "
@@ -1893,10 +1889,10 @@ msgstr "Följande flaggor är språkrelaterade"
#: opts.c:1567
#, c-format
msgid "warning: --help argument %.*s is ambiguous, please be more specific\n"
-msgstr ""
+msgstr "varning: argumentet %.*s till --help är tvetydigt, var mer precis\n"
#: opts.c:1575
-#, fuzzy, c-format
+#, c-format
msgid "warning: unrecognized argument to --help= option: %.*s\n"
msgstr "varning: okänt argument till --help=-flagga: %.*s\n"
@@ -2354,14 +2350,12 @@ msgid "originally indirect function call not considered for inlining"
msgstr "ursprungligen indirekt funktionsanrop beaktas inte för inline:ing"
#: tree-vrp.c:6383
-#, fuzzy
msgid "assuming signed overflow does not occur when simplifying && or || to & or |"
-msgstr "antar att teckenspill inte förekommer vid förenkling av intervalltest"
+msgstr "antar att teckenspill inte förekommer vid förenkling av && eller || till & eller |"
#: tree-vrp.c:6387
-#, fuzzy
msgid "assuming signed overflow does not occur when simplifying ==, != or ! to identity or ^"
-msgstr "antar att teckenspill inte förekommer vid förenkling av intervalltest"
+msgstr "antar att teckenspill inte förekommer vid förenkling av ==, != eller ! till identitet eller ^"
#. The remainder are real diagnostic types.
#: diagnostic.def:15
@@ -2399,14 +2393,12 @@ msgstr "felsökning: "
#. These two would be re-classified as DK_WARNING or DK_ERROR, so the
#. prefix does not matter.
#: diagnostic.def:25
-#, fuzzy
msgid "pedwarn: "
-msgstr "varning: "
+msgstr "pedvarning: "
#: diagnostic.def:26
-#, fuzzy
msgid "permerror: "
-msgstr "fel: "
+msgstr "permfel: "
#: params.def:47
msgid "The maximum structure size (in bytes) for which GCC will use by-element copies"
@@ -2426,7 +2418,7 @@ msgstr "Tröskelförhållandet mellan aktuell och hetaste posträknare"
#: params.def:85
msgid "Maximal esitmated outcome of branch considered predictable"
-msgstr ""
+msgstr "Maximala uppskattade resultatet en gren som bedöms förutsägbart"
#: params.def:102
msgid "The maximum number of instructions in a single function eligible for inlining"
@@ -2493,9 +2485,8 @@ msgid "how much can given compilation unit grow because of the inlining (in perc
msgstr "Hur mycket kan en given kompileringsenhet växa på grund av inline:ingen (i procent)"
#: params.def:205
-#, fuzzy
msgid "how much can given compilation unit grow because of the interprocedural constant propagation (in percent)"
-msgstr "Hur mycket kan en given kompileringsenhet växa på grund av inline:ingen (i procent)"
+msgstr "hur mycket kan en given kompileringsenhet växa på grund av interprocedurell konstantpropagering (i procent)"
#: params.def:209
msgid "expense of call operation relative to ordinary arithmetic operations"
@@ -2761,21 +2752,19 @@ msgstr "Den minsta sannolikheten för spekulativ framgång (i procent) för att spe
#: params.def:592
msgid "The maximum size of the lookahead window of selective scheduling"
-msgstr ""
+msgstr "Den maximala storleken på fönstret för framåtblickar vid selektiv schemaläggning"
#: params.def:597
-#, fuzzy
msgid "Maximum number of times that an insn could be scheduled"
-msgstr "Ange antalet köade instruktioner som kan schemaläggas i förtid"
+msgstr "Maximalt antal gånger som en instruktion kan schemaläggas"
#: params.def:602
-#, fuzzy
msgid "Maximum number of instructions in the ready list that are considered eligible for renaming"
-msgstr "Det maximala antalet instruktioner i en enskild funktion tänkbar för inline:ing"
+msgstr "Det maximala antalet instruktioner i redolistan som betraktas som valbara för namnändring"
#: params.def:607
msgid "Minimal distance between possibly conflicting store and load"
-msgstr ""
+msgstr "Minimala avståndet mellan lagring och läsning som kan vara i konflikt"
#: params.def:612
msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
@@ -2847,11 +2836,11 @@ msgstr "Faktor som används för att avgöra tröskeln för dubbelköande"
#: params.def:756
msgid "max loops number for regional RA"
-msgstr ""
+msgstr "maximalt slingantal för regional RA"
#: params.def:764
msgid "The maximum ratio between array size and switch branches for a switch conversion to take place"
-msgstr ""
+msgstr "Det maximala förhållandet mellan vektorstorlek och switch-grenar för att en switch-konvertering skall ske"
#: config/alpha/alpha.c:5025
#, c-format
@@ -3507,21 +3496,19 @@ msgstr "MMIX-internt: Detta är inte en konstant:"
#: config/picochip/picochip.c:2398
msgid "picochip_print_memory_address - Operand isn't memory based"
-msgstr ""
+msgstr "picochip_print_memory_address - Operand är inte minnesbaserad"
#: config/picochip/picochip.c:2657
msgid "Unknown mode in print_operand (CONST_DOUBLE) :"
-msgstr ""
+msgstr "Okänt läge i print_operand (COUNST_DOUBLE) :"
#: config/picochip/picochip.c:2703 config/picochip/picochip.c:2735
-#, fuzzy
msgid "Bad address, not (reg+disp):"
-msgstr "felaktig adress, inte (reg+avst):"
+msgstr "Felaktig adress, inte (reg+avst):"
#: config/picochip/picochip.c:2749
-#, fuzzy
msgid "Bad address, not register:"
-msgstr "felaktig adress, inte (reg+avst):"
+msgstr "Felaktig adress, inte register:"
#: config/rs6000/host-darwin.c:97
#, c-format
@@ -3599,9 +3586,9 @@ msgid "invalid %%v value"
msgstr "ogiltig %%v-kod"
#: config/rs6000/rs6000.c:12513
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%y value, try using the 'Z' constraint"
-msgstr "ogiltig interpunktion %qc i begränsning"
+msgstr "ogiltigt %%y-värde, försök använda \"Z\"-begränsningen"
#: config/rs6000/rs6000.c:22816
msgid "AltiVec argument passed to unprototyped function"
@@ -3786,7 +3773,7 @@ msgstr "argument till \"%s\" saknas\n"
#: fortran/arith.c:44
#, no-c-format
msgid "Conversion of an Infinity or Not-a-Number at %L to INTEGER"
-msgstr ""
+msgstr "Konvertering av en oändlighet till inte-ett-tal vid %L till INTEGER"
#: fortran/arith.c:94
msgid "Arithmetic OK at %L"
@@ -3831,14 +3818,14 @@ msgid "Arithmetic overflow converting %s to %s at %L. This check can be disabled
msgstr "Aritmetiskt spill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
#: fortran/arith.c:2068
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Arithmetic underflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetiskt spill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
+msgstr "Aritmetiskt underspill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
#: fortran/arith.c:2073
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Arithmetic NaN converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetiskt spill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
+msgstr "Aritmetisk NaN-konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
#: fortran/arith.c:2078
#, no-c-format
@@ -3926,9 +3913,9 @@ msgid "Array specification at %C has more than %d dimensions"
msgstr "Vektorspecifikation vid %C har mer än %d dimensioner"
#: fortran/array.c:438
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2008: Array specification at %C with more than 7 dimensions"
-msgstr "Vektorspecifikation vid %C har mer än %d dimensioner"
+msgstr "Fortran 2008: Vektorspecifikation vid %C har mer än 7 dimensioner"
#: fortran/array.c:644
#, no-c-format
@@ -3951,9 +3938,9 @@ msgid "Fortran 2003: [...] style array constructors at %C"
msgstr "Fortran 2003: [...]-stils vektorkonstruerare vid %C"
#: fortran/array.c:915
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: Array constructor including type specification at %C"
-msgstr "Fortran 2003: [...]-stils vektorkonstruerare vid %C"
+msgstr "Fortran 2003: Vektorkonstruerare med typspecifikation vid %C"
#: fortran/array.c:930
#, no-c-format
@@ -3971,9 +3958,9 @@ msgid "Iterator step at %L cannot be zero"
msgstr "Iteratorsteg vid %L kan inte vara noll"
#: fortran/array.c:1650
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different CHARACTER lengths (%d/%d) in array constructor at %L"
-msgstr "Element i %s-vektorkonstruerare vid %L är %s"
+msgstr "Olika CHARACTER-längder (%d/%d) i vektorkonstruerare vid %L"
#: fortran/check.c:44
#, no-c-format
@@ -4121,7 +4108,7 @@ msgstr "Fortran 2003: inbyggd \"%s\" vid KIND-argument vid %L"
#: fortran/check.c:881
#, no-c-format
msgid "SHIFT argument at %L of CSHIFT must have rank %d or be a scalar"
-msgstr ""
+msgstr "SHIFT-argument vid %L till CSHIFT måste ha ordning %d eller vara en skalär"
#: fortran/check.c:979 fortran/check.c:1799 fortran/check.c:1807
#, no-c-format
@@ -4141,17 +4128,17 @@ msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara standard reell"
#: fortran/check.c:1047
#, no-c-format
msgid "SHIFT argument at %L of EOSHIFT must have rank %d or be a scalar"
-msgstr ""
+msgstr "SHIFT-argument vid %L till EOSHIFT måste ha ordning %d eller vara en skalär"
#: fortran/check.c:1067
#, no-c-format
msgid "BOUNDARY argument at %L of EOSHIFT must have rank %d or be a scalar"
-msgstr ""
+msgstr "BOUNDARY-argument vid %L till EOSHIFT måste ha ordning %d eller vara en skalär"
#: fortran/check.c:1078
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different shape in dimension %d for SHIFT and BOUNDARY arguments of EOSHIFT at %L"
-msgstr "Olika form på dimension 1 för argumenten \"%s\" och \"%s\" vid %L för inbyggd matmul"
+msgstr "Olika form i dimension %d för argumenten SHIFT och BOUNDARY till EOSHIFT vid %L"
#: fortran/check.c:1310
#, no-c-format
@@ -4271,17 +4258,17 @@ msgstr "MOLD-argumentet till inbyggd \"TRANSFER\" vid %L måste vara %s"
#: fortran/check.c:2924
#, no-c-format
msgid "FIELD argument at %L of UNPACK must have the same rank as MASK or be a scalar"
-msgstr ""
+msgstr "FIELD-argumentet vid %L till UNPACK måste ha samma ordning som MASK eller vara en skalär"
#: fortran/check.c:2935
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different shape in dimension %d for MASK and FIELD arguments of UNPACK at %L"
-msgstr "Olika form på dimension 1 för argumenten \"%s\" och \"%s\" vid %L för inbyggd matmul"
+msgstr "Olika form i dimension %d för argumenten MASK och FIELD till UNPACK vid %L"
#: fortran/check.c:3175
#, no-c-format
msgid "Array PUT of intrinsic %s is too small (%i/%i) at %L"
-msgstr ""
+msgstr "Vektor-PUT av inbyggd %s är för liten (%i/%i) vid %L"
#: fortran/check.c:3207
#, no-c-format
@@ -4311,12 +4298,12 @@ msgstr "utdatafilnamn angivet två gånger"
#: fortran/cpp.c:432
#, no-c-format
msgid "To enable preprocessing, use -cpp"
-msgstr ""
+msgstr "För att aktivera preprocessning, använd -cpp"
#: fortran/cpp.c:521 fortran/cpp.c:531
-#, fuzzy, no-c-format
+#, no-c-format
msgid "opening output file %s: %s"
-msgstr "vid öppnandet av utdatafil %s: %m"
+msgstr "vid öppnandet av utdatafil %s: %s"
#: fortran/data.c:64
#, no-c-format
@@ -4850,9 +4837,9 @@ msgid "Unexpected junk after function declaration at %C"
msgstr "Oväntat skräp efter funktionsdeklaration vid %C"
#: fortran/decl.c:4069 fortran/decl.c:4869
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal procedure"
-msgstr "Utvidgning: BIND(C)-attribut vid %L kan inte anges i en intern procedur"
+msgstr "Fortran 2008: BIND(C)-attribut vid %L kan inte anges för en intern procedur"
#: fortran/decl.c:4137
#, no-c-format
@@ -5208,29 +5195,29 @@ msgid "MODULE PROCEDURE at %C must be in a generic module interface"
msgstr "MODULE PROCEDURE vid %C måste vara i ett generiskt modulgränssnitt"
#: fortran/decl.c:6295
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Ambiguous symbol in TYPE definition at %C"
-msgstr ":: förväntades i TYPE-definition vid %C"
+msgstr "Tvetydig symbol i TYPE-definition vid %C"
#: fortran/decl.c:6301
-#, fuzzy, no-c-format
+#, no-c-format
msgid "No such symbol in TYPE definition at %C"
-msgstr ":: förväntades i TYPE-definition vid %C"
+msgstr "Ingen sådan symbol i TYPE-definition vid %C"
#: fortran/decl.c:6307
#, no-c-format
msgid "'%s' in EXTENDS expression at %C is not a derived type"
-msgstr ""
+msgstr "\"%s\" i EXTENDS-uttryck vid %C är inte en härledd typ"
#: fortran/decl.c:6314
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' cannot be extended at %C because it is BIND(C)"
-msgstr "Härledd typ \"%s\" vid %L kan inte ha attributet SEQUENCE för att den är BIND(C)"
+msgstr "\"%s\" kan inte utökas vid %C för att den är BIND(C)"
#: fortran/decl.c:6321
#, no-c-format
msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
-msgstr ""
+msgstr "\"%s\" kan inte utökas vid %C eftersom det är en SEQUENCE-typ"
#: fortran/decl.c:6344
#, no-c-format
@@ -5243,9 +5230,9 @@ msgid "Derived type at %C can only be PUBLIC in the specification part of a modu
msgstr "Härledd typ vid %C kan endast vara PUBLIC i specifikationsdelen av en modul"
#: fortran/decl.c:6377
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: ABSTRACT type at %C"
-msgstr "Fortran 2003: ABSTRACT INTERFACE vid %L"
+msgstr "Fortran 2003: ABSTRACT typ vid %C"
#: fortran/decl.c:6441
#, no-c-format
@@ -5293,149 +5280,149 @@ msgid "Syntax error in ENUMERATOR definition at %C"
msgstr "Syntaxfel i ENUMERATOR-definition vid %C"
#: fortran/decl.c:6765 fortran/decl.c:6780
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate access-specifier at %C"
-msgstr "Dubblerad %s-specifikation vid %C"
+msgstr "Dubblerad åtkomstspecifikation vid %C"
#: fortran/decl.c:6800
#, no-c-format
msgid "Binding attributes already specify passing, illegal NOPASS at %C"
-msgstr ""
+msgstr "Bindningsattribut anger redan passing, otillåten NOPASS vid %C"
#: fortran/decl.c:6818
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate NON_OVERRIDABLE at %C"
-msgstr "Dubblerad PRIVATE-sats vid %C"
+msgstr "Dubblerad NON_OVERRIDABLE vid %C"
#: fortran/decl.c:6833
#, no-c-format
msgid "DEFERRED not yet implemented at %C"
-msgstr ""
+msgstr "DEFERRED inte implementerad ännu vid %C"
#: fortran/decl.c:6847
#, no-c-format
msgid "Binding attributes already specify passing, illegal PASS at %C"
-msgstr ""
+msgstr "Bindningsattribut anger redan passing, otillåten PASS vid %C"
#: fortran/decl.c:6868
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected access-specifier at %C"
-msgstr "Förväntade ett namnlöst gränssnitt vid %C"
+msgstr "Åtkomstspecificerare förväntades vid %C"
#: fortran/decl.c:6870
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected binding attribute at %C"
-msgstr "Avslutande namn förväntades vid %C"
+msgstr "Bindningsattribut förväntades vid %C"
#: fortran/decl.c:6910
#, no-c-format
msgid "PROCEDURE(interface) at %C is not yet implemented"
-msgstr ""
+msgstr "PROCEDURE(interface) vid %C är inte implementerat ännu"
#: fortran/decl.c:6932
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected '::' after binding-attributes at %C"
-msgstr "Avslutande namn förväntades vid %C"
+msgstr "\"::\" förväntades efter bindningsattribut vid %C"
#: fortran/decl.c:6942
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected binding name at %C"
-msgstr "Avslutande namn förväntades vid %C"
+msgstr "Bindningsnamn förväntades vid %C"
#: fortran/decl.c:6955
#, no-c-format
msgid "'::' needed in PROCEDURE binding with explicit target at %C"
-msgstr ""
+msgstr "\"::\" behövs i PROCEDURE-bindning med explicit mål vid %C"
#: fortran/decl.c:6965
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected binding target after '=>' at %C"
-msgstr "Avslutande namn förväntades vid %C"
+msgstr "Bindningsmål förväntades efter \"=>\" vid %C"
#: fortran/decl.c:6977
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Junk after PROCEDURE declaration at %C"
-msgstr "Syntaxfel i CHARACTER-deklaration vid %C"
+msgstr "Skräp efter PROCEDURE-deklaration vid %C"
#: fortran/decl.c:6995
#, no-c-format
msgid "There's already a procedure with binding name '%s' for the derived type '%s' at %C"
-msgstr ""
+msgstr "Det finns redan en procedur med bindningsnamn \"%s\" för den härledda typen \"%s\" vid %C"
#: fortran/decl.c:7028
#, no-c-format
msgid "GENERIC at %C must be inside a derived-type CONTAINS"
-msgstr ""
+msgstr "GENERIC vid %C måste vara inuti en härledd typs CONTAINS"
#: fortran/decl.c:7045
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected '::' at %C"
-msgstr "\"(\" förväntades vid %C"
+msgstr "\"::\" förväntades vid %C"
#: fortran/decl.c:7055
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected generic name at %C"
-msgstr "Variabelnamn förväntades vid %C"
+msgstr "Generiskt namn förväntades vid %C"
#: fortran/decl.c:7066
#, no-c-format
msgid "There's already a non-generic procedure with binding name '%s' for the derived type '%s' at %C"
-msgstr ""
+msgstr "Det finns redan en icke-generisk procedur med bindningsnamnet \"%s\" för den härledda typen \"%s\" vid %C"
#: fortran/decl.c:7075
#, no-c-format
msgid "Binding at %C must have the same access as already defined binding '%s'"
-msgstr ""
+msgstr "Bindning vid %C måste ha samma åtkomst som den redan definierade bindningen \"%s\""
#: fortran/decl.c:7103
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected specific binding name at %C"
-msgstr "Avslutande namn förväntades vid %C"
+msgstr "Specifikt bindningsnamn förväntades vid %C"
#: fortran/decl.c:7114
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' already defined as specific binding for the generic '%s' at %C"
-msgstr "Det finns ingen specifik funktionen för den generiska \"%s\" vid %L"
+msgstr "\"%s\" är redan definierat som en specifik bindning för den generiska \"%s\" vid %C"
#: fortran/decl.c:7132
#, no-c-format
msgid "Junk after GENERIC binding at %C"
-msgstr ""
+msgstr "Skräp efter GENERIC-bindning vid %C"
#: fortran/decl.c:7157
#, no-c-format
msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
-msgstr ""
+msgstr "FINAL-deklaration vid %C måsta vara inuti en härledd typs CONTAINS-sektion"
#: fortran/decl.c:7168
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE"
-msgstr "Härledd typ vid %C kan endast vara PUBLIC i specifikationsdelen av en modul"
+msgstr "Härledd typdeklaration med FINAL vid %C måste vara med i specifikationsdelen av en MODULE"
#: fortran/decl.c:7190
#, no-c-format
msgid "Empty FINAL at %C"
-msgstr ""
+msgstr "Tom FINAL vid %C"
#: fortran/decl.c:7197
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected module procedure name at %C"
-msgstr "Förväntade en procedur som argument \"%s\" vid %L"
+msgstr "Modulprocedurnamn förväntades vid %L"
#: fortran/decl.c:7207
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected ',' at %C"
-msgstr "\"(\" förväntades vid %C"
+msgstr "\",\" förväntades vid %C"
#: fortran/decl.c:7213
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unknown procedure name \"%s\" at %C"
-msgstr "Okänd operator \"%s\" vid %%L"
+msgstr "Okänt procedurnamn \"%s\" vid %C"
#: fortran/decl.c:7227
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %C is already defined as FINAL procedure!"
-msgstr "Proceduren \"%s\" vid %L är redan deklarerad som %s-procedur"
+msgstr "\"%s\" vid %C är redan definierad som FINAL procedur"
#. We are told not to check dependencies.
#. We do it, however, and issue a warning in case we find one.
@@ -5445,7 +5432,7 @@ msgstr "Proceduren \"%s\" vid %L är redan deklarerad som %s-procedur"
#: fortran/dependency.c:461
#, no-c-format
msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
-msgstr ""
+msgstr "Aktuellt INTENT(%s)-argument vid %L kan störa det aktuella argumentet vid %L."
#: fortran/error.c:298
#, no-c-format
@@ -5650,9 +5637,9 @@ msgid "Variable '%s' cannot appear in the expression at %L"
msgstr "Variabeln \"%s\" kan inte förekomma i uttrycket vid %L"
#: fortran/expr.c:2727
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression at %L must be of INTEGER type, found %s"
-msgstr "Uttryck vid %L måste vara av INTEGER-typ"
+msgstr "Uttryck vid %L måste vara av INTEGER-typ, hittade %s"
#: fortran/expr.c:2737
#, no-c-format
@@ -5744,9 +5731,9 @@ msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disab
msgstr "Aritmetisk NaN vid bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-check"
#: fortran/expr.c:2995
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
-msgstr "Inkompatibla typer i tilldelning vid %L, %s till %s"
+msgstr "Inkompatibla typer i DATA-sats vid %L, försökte med konvertering av %s till %s"
#: fortran/expr.c:3031
#, no-c-format
@@ -5759,19 +5746,19 @@ msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a p
msgstr "\"%s\" i pekartilldelningen vid %L kan inte vara ett l-värde eftersom det är en procedur"
#: fortran/expr.c:3067
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected bounds specification for '%s' at %L"
-msgstr "Dubblerad %s-specifikation vid %C"
+msgstr "Begränsningsspecifikation för \"%s\" förväntades vid %L"
#: fortran/expr.c:3072
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: Bounds specification for '%s' in pointer assignment at %L"
-msgstr "Fortran 2003: Funktion \"%s\" som initieringsuttryck vid %L"
+msgstr "Fortran 2003: Begränsningsspecifikation för \"%s\" i pekartilldelning vid %L"
#: fortran/expr.c:3078
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pointer bounds remapping at %L is not yet implemented in gfortran"
-msgstr "Fortran 2003: Procedurpekare vid %L är inte implementerade ännu i gfortran"
+msgstr "Ommappning av pekarbegräsning vid %L är inte implementerade ännu i gfortran"
#: fortran/expr.c:3096
#, no-c-format
@@ -5784,9 +5771,9 @@ msgid "Bad pointer object in PURE procedure at %L"
msgstr "Felaktigt pekarobjekt i PURE-procedur vid %L"
#: fortran/expr.c:3121
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
-msgstr "Olika typer i pekartilldelning vid %L"
+msgstr "Olika typer i pekartilldelning vid %L, försökte med tilldelning av %s till %s"
#: fortran/expr.c:3129
#, no-c-format
@@ -5819,7 +5806,7 @@ msgid "Pointer assignment with vector subscript on rhs at %L"
msgstr "Pekartilldelning med vektorindexering på högersidan vid %L"
#: fortran/expr.c:3183
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pointer assignment target has PROTECTED attribute at %L"
msgstr "Pekartilldelningsmålet har attributet PROTECTED vid %L"
@@ -5854,9 +5841,9 @@ msgid "no input files; unwilling to write output files"
msgstr "inga indatafiler; kommer inte skriva utdatafiler"
#: fortran/gfortranspec.c:432
-#, fuzzy, c-format
+#, c-format
msgid "Warning: Using -M <directory> is deprecated, use -J instead\n"
-msgstr "Denna flagga bör undvikas, använd -Wextra istället"
+msgstr "Varning: Användning av -M <katalog> undanbedes, använd -J istället\n"
#: fortran/gfortranspec.c:578
#, c-format
@@ -5949,9 +5936,9 @@ msgid "Intrinsic operator interface at %L must be a FUNCTION"
msgstr "Gränssnitt för inbyggd operator vid %L måste vara en FUNCTION"
#: fortran/interface.c:643
-#, fuzzy, no-c-format
+#, no-c-format
msgid "First argument of defined assignment at %L must be INTENT(OUT) or INTENT(INOUT)"
-msgstr "Första argumentet till definierad tilldelning vid %L måste vara INTENT(IN) eller INTENT(INOUT)"
+msgstr "Första argumentet till definierad tilldelning vid %L måste vara INTENT(OUT) eller INTENT(INOUT)"
#: fortran/interface.c:647
#, no-c-format
@@ -6064,9 +6051,9 @@ msgid "Actual argument contains too few elements for dummy argument '%s' (%lu/%l
msgstr "Aktuellt argument innehåller för få element för attrappargument \"%s\" (%lu/%lu) vid %L"
#: fortran/interface.c:1967
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected a procedure pointer for argument '%s' at %L"
-msgstr "Förväntade en procedur som argument \"%s\" vid %L"
+msgstr "En procedurpekare förväntade som argument \"%s\" vid %L"
#: fortran/interface.c:1979
#, no-c-format
@@ -6154,9 +6141,9 @@ msgid "Procedure '%s' called with an implicit interface at %L"
msgstr "Procedur \"%s\" anropad med ett implicit gränssnitt vid %L"
#: fortran/interface.c:2442
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Keyword argument requires explicit interface for procedure '%s' at %L"
-msgstr "Nyckelordsargument \"%s\" vid %L finns inte i proceduren"
+msgstr "Nyckelordsargument kräver explicit gränssnitt för proceduren \"%s\" vid %L"
#: fortran/interface.c:2676
#, no-c-format
@@ -6171,7 +6158,7 @@ msgstr "Entitet \"%s\" vid %C finns redan i gränssnittet"
#: fortran/intrinsic.c:840
#, no-c-format
msgid "The intrinsic '%s' at %L is not included in the selected standard but %s and '%s' will be treated as if declared EXTERNAL. Use an appropriate -std=* option or define -fall-intrinsics to allow this intrinsic."
-msgstr ""
+msgstr "Den inbyggda \"%s\" vid %L ingår inte i den valda standarden utan %s och \"%s\" kommer hanteras som om de var deklarerade EXTERNAL. Använd en tillämplig -std=*-flagga eller definiera -fall-intrinsics för att tillåta denna inbyggda."
#: fortran/intrinsic.c:3079
#, no-c-format
@@ -6209,9 +6196,9 @@ msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
msgstr "Typen på argument \"%s\" i anrop till \"%s\" vid %L skulle varit %s, inte %s"
#: fortran/intrinsic.c:3559
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic '%s' (is %s) is used at %L"
-msgstr "Cray-utpekad \"%s\" i %s-klausul vid %L"
+msgstr "Inbyggd \"%s\" (är %s) används vid %L"
#: fortran/intrinsic.c:3623
#, no-c-format
@@ -6246,12 +6233,12 @@ msgstr "Kan inte konvertera %s till %s vid %L"
#: fortran/intrinsic.c:3978
#, no-c-format
msgid "'%s' declared at %L may shadow the intrinsic of the same name. In order to call the intrinsic, explicit INTRINSIC declarations may be required."
-msgstr ""
+msgstr "\"%s\" deklarerad vid %L kan skugga den inbyggda med samma namn. För att anropa den inbyggda kan en explicit INTRINSIC-deklaration krävas."
#: fortran/intrinsic.c:3983
#, no-c-format
msgid "'%s' declared at %L is also the name of an intrinsic. It can only be called via an explicit interface or if declared EXTERNAL."
-msgstr ""
+msgstr "\"%s\" deklarerad vid %L är också namnet på en inbyggd. Den kan bara anropas via ett explicit gränssnitt eller om den deklareras EXTERNAL."
#: fortran/io.c:164 fortran/primary.c:768
#, no-c-format
@@ -6264,14 +6251,14 @@ msgid "Extension: Tab character in format at %C"
msgstr "Utökning: Tabulatortecken i format vid %C"
#: fortran/io.c:445
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: DP format specifier not allowed at %C"
-msgstr "Fortran 2003: IMPORT-sats vid %C"
+msgstr "Fortran 2003: DP-formatspecificerare är inte tillåten vid %C"
#: fortran/io.c:452
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: DC format specifier not allowed at %C"
-msgstr "Fortran 2003: VALUE-sats vid %C"
+msgstr "Fortran 2003: DC-formatspecificerare är inte tillåten vid %C"
#: fortran/io.c:488
msgid "Positive width required"
@@ -6282,18 +6269,16 @@ msgid "Nonnegative width required"
msgstr "Ickenegativ bredd krävs"
#: fortran/io.c:490
-#, fuzzy
msgid "Unexpected element '%c' in format string at %L"
-msgstr "Oväntat slut på formatsträng"
+msgstr "Oväntat element \"%c\" i formatsträng vid %L"
#: fortran/io.c:492
msgid "Unexpected end of format string"
msgstr "Oväntat slut på formatsträng"
#: fortran/io.c:493
-#, fuzzy
msgid "Zero width in format descriptor"
-msgstr "nollstorlek i %s formatsträng"
+msgstr "Nollbredd i formatbeskrivning"
#: fortran/io.c:512
msgid "Missing leading left parenthesis"
@@ -6329,9 +6314,8 @@ msgid "Repeat count cannot follow P descriptor"
msgstr "Upprepningsantal får inte följa efter P-deskriptor"
#: fortran/io.c:665
-#, fuzzy
msgid "Positive width required with T descriptor"
-msgstr "Positiv bredd krävs"
+msgstr "Positiv bredd krävs med T-beskrivare"
#: fortran/io.c:680
#, no-c-format
@@ -6339,9 +6323,9 @@ msgid "Extension: Missing positive width after L descriptor at %C"
msgstr "Utökning: Positiv bredd saknas efter L-deskriptor vid %C"
#: fortran/io.c:723
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2008: 'G0' in format at %C"
-msgstr "Fortran 2003: IOMSG-tagg vid %L"
+msgstr "Fortran 2008: \"G0\" i format vid %C"
#: fortran/io.c:751 fortran/io.c:753 fortran/io.c:814 fortran/io.c:816
#, no-c-format
@@ -6363,9 +6347,9 @@ msgid "Extension: Missing comma at %C"
msgstr "Utökning: Komma saknas vid %C"
#: fortran/io.c:989
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s in format string at %L"
-msgstr "%s i formatsträng vid %C"
+msgstr "%s i formatsträng vid %L"
#: fortran/io.c:1034
#, no-c-format
@@ -6378,9 +6362,9 @@ msgid "Missing format label at %C"
msgstr "Formatetikett saknas vid %C"
#: fortran/io.c:1100 fortran/io.c:1131 fortran/io.c:1193
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid value for %s specification at %C"
-msgstr "Dubblerad %s-specifikation vid %C"
+msgstr "Ogiltigt värde för %s-specifikation vid %C"
#: fortran/io.c:1106 fortran/io.c:1137
#, no-c-format
@@ -6388,14 +6372,14 @@ msgid "Duplicate %s specification at %C"
msgstr "Dubblerad %s-specifikation vid %C"
#: fortran/io.c:1144
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable %s cannot be INTENT(IN) at %C"
-msgstr "Variabeltagg får inte vara INTENT(IN) vid %C"
+msgstr "Variabeln %s får inte vara INTENT(IN) vid %C"
#: fortran/io.c:1151
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable %s cannot be assigned in PURE procedure at %C"
-msgstr "Variabeltagg kan inte tilldelas i en PURE-procedur vid %C"
+msgstr "Variabel %s kan inte tilldelas i en PURE-procedur vid %C"
#: fortran/io.c:1199
#, no-c-format
@@ -6485,38 +6469,38 @@ msgstr "OPEN-sats är inte tillåten i en PURE-procedur vid %C"
#: fortran/io.c:1649
#, no-c-format
msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: ASYNCHRONOUS= vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:1667 fortran/io.c:3045
#, no-c-format
msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: BLANK= vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:1685 fortran/io.c:3024
#, no-c-format
msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: DECIMAL= vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:1703 fortran/io.c:3135
#, no-c-format
msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: DELIM= vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:1721
#, no-c-format
msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: ENCODING= vid %C är inte tillåtet i Fortran 95"
#. When implemented, change the following to use gfc_notify_std F2003.
#: fortran/io.c:1773
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran F2003: ROUND= specifier at %C not implemented"
-msgstr "Fortran 2003: Procedurpekare vid %L är inte implementerade ännu i gfortran"
+msgstr "Fortran F2003: ROUND=-specificerare vid %C är inte implementerad"
#: fortran/io.c:1792
#, no-c-format
msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95"
-msgstr ""
+msgstr "Fortran 2003: SIGN= vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:2005
#, no-c-format
@@ -6569,9 +6553,9 @@ msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER var
msgstr "UNIT-specifikation vid %L måste vara ett INTEGER-uttryck eller en CHARACTER-variabel"
#: fortran/io.c:2542
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid form of WRITE statement at %L, UNIT required"
-msgstr "Ogiltig form på PROGRAM-sats vid %C"
+msgstr "Ogiltig form av WRITE-sats vid %L, UNIT krävs"
#: fortran/io.c:2553
#, no-c-format
@@ -6584,9 +6568,9 @@ msgid "External IO UNIT cannot be an array at %L"
msgstr "Extern IO UNIT får inte vara en vektor vid %L"
#: fortran/io.c:2565
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Comma before i/o item list at %L"
-msgstr "Utökning: Komma före i/o-elementlista vid %C"
+msgstr "Utökning: Komma före i/o-elementlista vid %L"
#: fortran/io.c:2575
#, no-c-format
@@ -6650,14 +6634,14 @@ msgid "Fortran 2003: Internal file at %L with namelist"
msgstr "Fortran 2003: Intern fil vid %L med namnlista"
#: fortran/io.c:2998
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
-msgstr "KIND-parametern till \"%s\" vid %L måste vara ett initieringsuttryck"
+msgstr "ASYNCHRONOUS=-specificerare vid %L måste vara ett initieringsuttryck"
#: fortran/io.c:3066
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95"
-msgstr "Fortran 2003: Procedurkomponenter vid %C är inte implementerade ännu i gfortran"
+msgstr "Fortran 2003: PAD= vid %C är inte tillåtet i Fortran 95"
#. When implemented, change the following to use gfc_notify_std F2003.
#. if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: ROUND= at %C "
@@ -6666,7 +6650,7 @@ msgstr "Fortran 2003: Procedurkomponenter vid %C är inte implementerade ännu i g
#: fortran/io.c:3091
#, no-c-format
msgid "F2003 Feature: ROUND= specifier at %C not implemented"
-msgstr ""
+msgstr "F2003-funktion: specificerare ROUND= vid %C är inte implementerad"
#: fortran/io.c:3280
#, no-c-format
@@ -6704,29 +6688,29 @@ msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
msgstr "INQUIRE-sats vid %L kräver antingen FILE- eller UNIT-specificerare"
#: fortran/io.c:3707
-#, fuzzy, no-c-format
+#, no-c-format
msgid "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
-msgstr "INQUIRE-sats vid %L kräver antingen FILE- eller UNIT-specificerare"
+msgstr "INQUIRE-sats vid %L kräver en PENDING=-specificerare med ID=-specificeraren"
#: fortran/io.c:3866
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95"
-msgstr "Fortran 2003: Procedurkomponenter vid %C är inte implementerade ännu i gfortran"
+msgstr "Fortran 2003: WAIT vid %C är inte tillåtet i Fortran 95"
#: fortran/io.c:3872
-#, fuzzy, no-c-format
+#, no-c-format
msgid "WAIT statement not allowed in PURE procedure at %C"
-msgstr "%s-sats är inte tillåtet i PURE-procedur vid %C"
+msgstr "WAIT-sats är är inte tillåtet i PURE-procedur vid %C"
#: fortran/match.c:158
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing ')' in statement at or before %L"
-msgstr "\")\" saknas i sats före %L"
+msgstr "\")\" saknas i sats vid eller före %L"
#: fortran/match.c:163
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing '(' in statement at or before %L"
-msgstr "\"(\" saknas i sats före %L"
+msgstr "\"(\" saknas i sats vid eller före %L"
#: fortran/match.c:360
#, no-c-format
@@ -6766,7 +6750,7 @@ msgstr "Namn vid %C är för långt"
#: fortran/match.c:553
#, no-c-format
msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"
-msgstr ""
+msgstr "Ogiltigt tecken \"$\" vid %C. Använd -fdollar-ok för att tillåta det som en utökning"
#: fortran/match.c:604 fortran/match.c:652
#, no-c-format
@@ -6929,19 +6913,19 @@ msgid "Extension: RETURN statement in main program at %C"
msgstr "Utökning: RETURN-sats i huvudprogram vid %C"
#: fortran/match.c:2515
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected component reference at %C"
-msgstr "Postkomponentnamn förväntades vid %C"
+msgstr "Komponentreferens förväntades vid %C"
#: fortran/match.c:2521
#, no-c-format
msgid "Junk after CALL at %C"
-msgstr ""
+msgstr "Skräp efter CALL vid %C"
#: fortran/match.c:2527
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected type-bound procedure reference at %C"
-msgstr "Förväntade en procedur som argument \"%s\" vid %L"
+msgstr "Typbunden procedurreferens förväntades vid %C"
#: fortran/match.c:2745
#, no-c-format
@@ -7366,7 +7350,7 @@ msgstr "%s är inte namn på en INTRINSIC procedur vid %C"
#: fortran/openmp.c:404
#, no-c-format
msgid "COLLAPSE clause argument not constant positive integer at %C"
-msgstr ""
+msgstr "COLLAPSE-klausulargument är inte ett konstant positivt heltal vid %C"
#: fortran/openmp.c:541
#, no-c-format
@@ -7394,9 +7378,9 @@ msgid "SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
msgstr "SCHEDULE-klausuls chunk_size vid %L kräver ett skalärt INTEGER-uttryck"
#: fortran/openmp.c:815
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Object '%s' is not a variable at %L"
-msgstr "\"%s\" vid %C är inte en variabel"
+msgstr "Objekt \"%s\" är inte en variabel vid %L"
#: fortran/openmp.c:823 fortran/openmp.c:833 fortran/openmp.c:840
#: fortran/openmp.c:850
@@ -7567,17 +7551,17 @@ msgstr "!$OMP DO-iterationsvariabel finns i ett annat fall än PRIVATE eller LAST
#: fortran/openmp.c:1462
#, no-c-format
msgid "!$OMP DO collapsed loops don't form rectangular iteration space at %L"
-msgstr ""
+msgstr "!$OMP DO-kollapsad slinga formar inte en rektangulär iterationsrymd vid %L"
#: fortran/openmp.c:1476
#, no-c-format
msgid "collapsed !$OMP DO loops not perfectly nested at %L"
-msgstr ""
+msgstr "kollapsade !$OMP DO-slinger är inte perfekt nästade vid %L"
#: fortran/openmp.c:1485 fortran/openmp.c:1492
#, no-c-format
msgid "not enough DO loops for collapsed !$OMP DO at %L"
-msgstr ""
+msgstr "inte tillräckligt med DO-slingor för kollapsad !$OMP DO vid %L"
#: fortran/options.c:233
#, no-c-format
@@ -7625,9 +7609,9 @@ msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp"
msgstr "Flaggan -fmax-stack-var-size=%d åsidosätter -frecursive som impliceras av -fopenmp"
#: fortran/options.c:404
-#, fuzzy, no-c-format
+#, no-c-format
msgid "gfortran: Only one -J option allowed"
-msgstr "gfortran: Endast en -M-flagga tillåts\n"
+msgstr "gfortran: Endast en -J-flagga tillåts"
#: fortran/options.c:447
#, no-c-format
@@ -7776,39 +7760,39 @@ msgid "Unexpected end of file in '%s'"
msgstr "Oväntat filslut i \"%s\""
#: fortran/parse.c:1722
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Derived-type '%s' with SEQUENCE must not have a CONTAINS section at %C"
-msgstr "Oväntad %s-sats i CONTAINS-sektion vid %C"
+msgstr "Härledd typ \"%s\" med SEQUENCE får inte ha en CONTAINS-sektion vid %C"
#: fortran/parse.c:1725
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Derived-type '%s' with BIND(C) must not have a CONTAINS section at %C"
-msgstr "Oväntad %s-sats i CONTAINS-sektion vid %C"
+msgstr "Härledd typ \"%s\" med BIND(C) får nte ha en CONTAINS-sektion vid %C"
#: fortran/parse.c:1745
#, no-c-format
msgid "Components in TYPE at %C must precede CONTAINS"
-msgstr ""
+msgstr "Komponenter i TYPE vid %C måste föregå CONTAINS"
#: fortran/parse.c:1750
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: Type-bound procedure at %C"
-msgstr "Fortran 2003: \"USE :: module\" vid %C"
+msgstr "Fortran 2003: Typbunden procedur vid %C"
#: fortran/parse.c:1759
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: GENERIC binding at %C"
-msgstr "Fortran 2003: IOMSG-tagg vid %L"
+msgstr "Fortran 2003: GENERIC-bindning vid %C"
#: fortran/parse.c:1769
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: FINAL procedure declaration at %C"
-msgstr "Fortran 2003: VALUE-attribut vid %C"
+msgstr "Fortran 2003: FINAL-procedurdeklaration vid %C"
#: fortran/parse.c:1781
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2008: Derived type definition at %C with empty CONTAINS section"
-msgstr "Fortran 2003: Härledd typdefinition vid %C utan komponenter"
+msgstr "Fortran 2003: Härledd typdefinition vid %C med tom CONTAINS-sektion"
#: fortran/parse.c:1792 fortran/parse.c:1903
#, no-c-format
@@ -7816,9 +7800,9 @@ msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
msgstr "PRIVATE-sats i TYPE vid %C måste vara inuti en MODULE"
#: fortran/parse.c:1800
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PRIVATE statement at %C must precede procedure bindings"
-msgstr "PRIVATE-sats vid %C måste föregå strukturkomponenter"
+msgstr "PRIVATE-sats vid %C måste föregå procedurbindningar"
#: fortran/parse.c:1808 fortran/parse.c:1919
#, no-c-format
@@ -7826,24 +7810,24 @@ msgid "Duplicate PRIVATE statement at %C"
msgstr "Dubblerad PRIVATE-sats vid %C"
#: fortran/parse.c:1818
-#, fuzzy, no-c-format
+#, no-c-format
msgid "SEQUENCE statement at %C must precede CONTAINS"
-msgstr "SEQUENCE-sats vid %C måste föregå strukturkomponenter"
+msgstr "SEQUENCE-sats vid %C måste föregå CONTAINS"
#: fortran/parse.c:1823
#, no-c-format
msgid "Already inside a CONTAINS block at %C"
-msgstr ""
+msgstr "Redan inuti ett CONTAINS-block vid %C"
#: fortran/parse.c:1878
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PROCEDURE binding at %C must be inside CONTAINS"
-msgstr "PROCEDURE vid %C måste vara i ett generiskt gränssnitt"
+msgstr "PROCEDURE-bindning vid %C måste vara inuti CONTAINS"
#: fortran/parse.c:1883
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FINAL declaration at %C must be inside CONTAINS"
-msgstr "ENUM-deklaration vid %C har inga ENUMERATORS"
+msgstr "FINAL-deklaration vid %C måste vara inuti CONTAINS"
#: fortran/parse.c:1892
#, no-c-format
@@ -7871,9 +7855,9 @@ msgid "Duplicate SEQUENCE statement at %C"
msgstr "Dubblerad SEQUENCE-sats vid %C"
#: fortran/parse.c:1955
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: CONTAINS block in derived type definition at %C"
-msgstr "Fortran 2003: Härledd typdefinition vid %C utan komponenter"
+msgstr "Fortran 2003: CONTAINS-block i härledd typdefinition vid %C"
#: fortran/parse.c:2046
#, no-c-format
@@ -7908,7 +7892,7 @@ msgstr "Oväntad %s-sats vid %C i INTERFACE-kropp"
#: fortran/parse.c:2225
#, no-c-format
msgid "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "INTERFACE-procedur \"%s\" vid %L har samma namn som den inneslutande proceduren"
#: fortran/parse.c:2410
#, no-c-format
@@ -8006,9 +7990,9 @@ msgid "Unexpected %s statement in CONTAINS section at %C"
msgstr "Oväntad %s-sats i CONTAINS-sektion vid %C"
#: fortran/parse.c:3481
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2008: CONTAINS statement without FUNCTION or SUBROUTINE statement at %C"
-msgstr "Utvidgning: CONTAINS-sats utan FUNCTION- eller SUBROUTINE-sats vid %C"
+msgstr "Fortran 2008: CONTAINS-sats utan FUNCTION- eller SUBROUTINE-sats vid %C"
#: fortran/parse.c:3552
#, no-c-format
@@ -8074,9 +8058,9 @@ msgid "Invalid Hollerith constant: Integer kind at %L should be default"
msgstr "Ogiltig Hollerithkonstant: Heltalssort vid %L borde vara standard"
#: fortran/primary.c:286
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid Hollerith constant at %L contains a wide character"
-msgstr "Ogiltig Hollerithkonstant: %L måste innehålla åtminstone ett tecken"
+msgstr "Ogiltig Hollerithkonstant vid %L innehåller ett brett tecken"
#: fortran/primary.c:367
#, no-c-format
@@ -8151,7 +8135,7 @@ msgstr "Oavslutad teckenkonstant börjar vid %C"
#: fortran/primary.c:997
#, no-c-format
msgid "Character '%s' in string at %C is not representable in character kind %d"
-msgstr ""
+msgstr "Tecknet \"%s\" i sträng vid %C är inte representerbart i teckensort %d"
#: fortran/primary.c:1080
#, no-c-format
@@ -8219,49 +8203,49 @@ msgid "Expected structure component name at %C"
msgstr "Postkomponentnamn förväntades vid %C"
#: fortran/primary.c:1801
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected argument list at %C"
-msgstr "Oväntat skräp i formell argumentlista vid %C"
+msgstr "Argumentlista förväntades vid %C"
#: fortran/primary.c:2095
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: Structure constructor with missing optional arguments at %C"
-msgstr "Fortran 2003: inbyggd \"%s\" vid KIND-argument vid %L"
+msgstr "Fortran 2003: Postkonstruerare med saknade valfria argument vid %C"
#: fortran/primary.c:2103
-#, fuzzy, no-c-format
+#, no-c-format
msgid "No initializer for component '%s' given in the structure constructor at %C!"
-msgstr "För få komponenter i postkonstruerare vid %C"
+msgstr "Ingen initierare för komponent \"%s\" angiven i postkonstrueraren vid %C!"
#: fortran/primary.c:2159
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't construct ABSTRACT type '%s' at %C"
-msgstr "Dubblerad konstruktionsetikett \"%s\" vid %C"
+msgstr "Det går inte att konstruera ABSTRACT typ \"%s\" vid %C"
#: fortran/primary.c:2187
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: Structure constructor with named arguments at %C"
-msgstr "Fortran 2003: inbyggd \"%s\" vid KIND-argument vid %L"
+msgstr "Fortran 2003: Postkonstruerare med namngivna argument vid %C"
#: fortran/primary.c:2202
#, no-c-format
msgid "Component initializer without name after component named %s at %C!"
-msgstr ""
+msgstr "Komponentinitierare utan namn efter komponent med namn %s vid %C!"
#: fortran/primary.c:2205
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many components in structure constructor at %C!"
-msgstr "För många komponenter i postkonstruerare vid %C"
+msgstr "För många komponenter i postkonstruerare vid %C!"
#: fortran/primary.c:2238
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Component '%s' is initialized twice in the structure constructor at %C!"
-msgstr "För få komponenter i postkonstruerare vid %C"
+msgstr "Komponent \"%s\" initieras två gånger i postkonstrueraren vid %C!"
#: fortran/primary.c:2294
#, no-c-format
msgid "component '%s' at %L has already been set by a parent derived type constructor"
-msgstr ""
+msgstr "komponent \"%s\" vid %L har redan satts av en härledd föräldratyps konstruerare"
#: fortran/primary.c:2317
#, no-c-format
@@ -8319,14 +8303,14 @@ msgid "'%s' at %C is not a variable"
msgstr "\"%s\" vid %C är inte en variabel"
#: fortran/resolve.c:98
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L is of the ABSTRACT type '%s'"
-msgstr "%s-tagg vid %L måste ha typen %s"
+msgstr "\"%s\" vid %L har den ABSTRACT:a typen \"%s\""
#: fortran/resolve.c:101
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ABSTRACT type '%s' used at %L"
-msgstr "ABSTRACT INTERFACE \"%s\" får inte refereras vid %L"
+msgstr "ABSTRACT typ \"%s\" används vid %L"
#: fortran/resolve.c:151
#, no-c-format
@@ -8504,9 +8488,9 @@ msgid "The element in the derived type constructor at %L, for pointer component
msgstr "Elementet i den härledda typkonstrueraren vid %L, för pekarkomponent \"%s\", är %s men borde vara %s"
#: fortran/resolve.c:868
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The NULL in the derived type constructor at %L is being applied to component '%s', which is neither a POINTER nor ALLOCATABLE"
-msgstr "Elementet i den härledda typkonstrueraren vid %L, för pekarkomponent \"%s\", borde vara en POINTER eller en TARGET"
+msgstr "NULL i den härledda typkonstrueraren vid %L används på komponenten \"%s\", som varken är en POINTER eller en ALLOCATABLE"
#: fortran/resolve.c:882
#, no-c-format
@@ -8554,9 +8538,9 @@ msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argume
msgstr "ELEMENTAL icke INTRINSIC procedur \"%s\" är inte tillåten som aktuellt argument vid %L"
#: fortran/resolve.c:1183
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Reference to ENTRY '%s' at %L is recursive, but procedure '%s' is not declared as RECURSIVE"
-msgstr "Anrop av ENTRY \"%s\" vid %L är rekursiv, men subroutine \"%s\" är inte deklarerad som RECURSIVE"
+msgstr "Referens till ENTRY \"%s\" vid %L är rekursiv, men procedur \"%s\" är inte deklarerad som RECURSIVE"
#: fortran/resolve.c:1224
#, no-c-format
@@ -8682,9 +8666,9 @@ msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
msgstr "Parameter \"%s\" till \"%s\" vid %L måste vara BIND(C)"
#: fortran/resolve.c:2251
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic subroutine '%s' used as a function at %L"
-msgstr "Inbyggd subrutin \"%s\" vid %L får inte ha en typspecificerare"
+msgstr "Inbyggd subrutin \"%s\" använd som en funktion vid %L"
#: fortran/resolve.c:2258
#, no-c-format
@@ -8902,9 +8886,9 @@ msgid "Array index at %L must be scalar"
msgstr "Vektorindex vid %L måste vara skalärt"
#: fortran/resolve.c:3618
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Array index at %L must be of INTEGER type, found %s"
-msgstr "Vektorindex vid %L måste ha INTEGER-typ"
+msgstr "Vektorindex vid %L måste ha INTEGER-typ, fann %s"
#: fortran/resolve.c:3624
#, no-c-format
@@ -8982,25 +8966,25 @@ msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a p
msgstr "Variabel \"%s\" används vid %L före ENTRY-satsen i vilken den är en parameter"
#: fortran/resolve.c:4455
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Passed-object at %L must be scalar"
-msgstr "%s-tagg vid %L måste vara skalär"
+msgstr "Skickat objekt vid %L måste vara skalär"
#. Nothing matching found!
#: fortran/resolve.c:4565
#, no-c-format
msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L"
-msgstr ""
+msgstr "Hittade ingen matchande specifik bindning för anropet till GENERIC \"%s\" vid %L"
#: fortran/resolve.c:4585
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L should be a SUBROUTINE"
-msgstr "\"%s\" vid %L är inte ett VALUE"
+msgstr "\"%s\" vid %L skulle vara en SUBROUTINE"
#: fortran/resolve.c:4621
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L should be a FUNCTION"
-msgstr "Användaroperatorprocedur \"%s\" vid %L måste vara en FUNCTION"
+msgstr "\"%s\" vid %L skulle vara en SUBROUTINE"
#: fortran/resolve.c:4757
#, no-c-format
@@ -9093,7 +9077,7 @@ msgid "Bad array specification in ALLOCATE statement at %L"
msgstr "Felaktig vektorspecifikation i ALLOCATE-sats vid %L"
#: fortran/resolve.c:5248
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
msgstr "\"%s\" får inte förekomma i vektorspecifikationen vid %L i samma ALLOCATE-sats där den själv allokeras"
@@ -9127,9 +9111,9 @@ msgid "Expression in CASE statement at %L must be of type %s"
msgstr "uttryck i CASE-sats vid %L måste vara av typ %s"
#: fortran/resolve.c:5505
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression in CASE statement at %L must be of kind %d"
-msgstr "Uttryck i CASE-sats vid %L måste vara ha sort %d"
+msgstr "Uttryck i CASE-sats vid %L måste ha sort %d"
#: fortran/resolve.c:5517
#, no-c-format
@@ -9202,9 +9186,9 @@ msgid "Statement at %L is not a valid branch target statement for the branch sta
msgstr "Sats vid %L är inte en giltig grenmålssats för grensatsen vid %L"
#: fortran/resolve.c:5944
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Branch at %L may result in an infinite loop"
-msgstr "Gren vid %L orsakar en oändlig slinga"
+msgstr "Gren vid %L kan orsaka en oändlig slinga"
#. The label is not in an enclosing block, so illegal. This was
#. allowed in Fortran 66, so we allow it as extension. No
@@ -9245,9 +9229,9 @@ msgid "Assignment to a FORALL index variable at %L"
msgstr "Tilldelning till en FORALL-indexvariabel vid %L"
#: fortran/resolve.c:6137
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
-msgstr "FORALL med index \"%s\" medför mer än en tilldelning till detta objekt vid %L"
+msgstr "FORALL med index \"%s\" används inte på vänster sida av en tilldelning vid %L och kan därför orsaka multipla tilldelningar till detta objekt"
#: fortran/resolve.c:6306
#, no-c-format
@@ -9495,215 +9479,215 @@ msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
msgstr "CHARACTER(*)-funktion \"%s\" vid %L är föråldrad i fortran 95"
#: fortran/resolve.c:7872
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
-msgstr "PROCEDURE-attribut i konflikt med NAMELIST-attribut i \"%s\" vid %L"
+msgstr "PROCEDURE-attribut i konflikt med SAVE-attribut i \"%s\" vid %L"
#: fortran/resolve.c:7879
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
-msgstr "PROCEDURE-attribut i konflikt med NAMELIST-attribut i \"%s\" vid %L"
+msgstr "PROCEDURE-attribut i konflikt med INTENT-attribut i \"%s\" vid %L"
#: fortran/resolve.c:7923
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
-msgstr "Användaroperatorprocedur \"%s\" vid %L måste vara en FUNCTION"
+msgstr "FINAL-procedur \"%s\" vid %L är inte en SUBROUTINE"
#: fortran/resolve.c:7931
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FINAL procedure at %L must have exactly one argument"
-msgstr "Användaroperatorprocedur \"%s\" vid %L måste ha åtminstone ett argument"
+msgstr "FINAL-procedur vid %L måste ha precis ett argument"
#: fortran/resolve.c:7940
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of FINAL procedure at %L must be of type '%s'"
-msgstr "Argument till ICHAR vid %L måste ha längden ett"
+msgstr "Argument till FINAL-procedur vid %L måste ha typen \"%s\""
#: fortran/resolve.c:7948
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of FINAL procedure at %L must not be a POINTER"
-msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara POINTER"
+msgstr "Argument till FINAL-procedur vid %L får inte vara en POINTER"
#: fortran/resolve.c:7954
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
-msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara ALLOCATABLE"
+msgstr "Argument till FINAL-procedur vid %L får inte vara ALLOCATABLE"
#: fortran/resolve.c:7960
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
-msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L får inte vara OPTIONAL"
+msgstr "Argument till FINAL-procedur vid %L får inte vara OPTIONAL"
#: fortran/resolve.c:7968
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
-msgstr "Första argumentet till operatorgränssnitt vid %L måste vara INTENT(IN)"
+msgstr "Argument till FINAL-procedur vid %L får inte vara INTENT(OUT)"
#: fortran/resolve.c:7976
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
-msgstr "Användaroperatorprocedur \"%s\" vid %L måste ha åtminstone ett argument"
+msgstr "Ickeskalär FINAL-procedur vid %L skulle argument med förmodar form"
#: fortran/resolve.c:7995
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "FINAL-procedur \"%s\" deklarerad vid %L har samma ordning (%d) som \"%s\""
#: fortran/resolve.c:8028
#, no-c-format
msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one"
-msgstr ""
+msgstr "Endast vektor-FINAL-procedurer deklarerade för den härledda typen \"%s\" definierade vid %L, föreslår även en skalär"
#. TODO: Remove this error when finalization is finished.
#: fortran/resolve.c:8033
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Finalization at %L is not yet implemented"
-msgstr "Initieringen vid %C får inte förekomma i en PURE-procedur"
+msgstr "Avslutningen vid %L är inte implementerad ännu"
#: fortran/resolve.c:8059
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't overwrite GENERIC '%s' at %L"
-msgstr "Kan inte konvertera %s till %s vid %L"
+msgstr "Det går inte att skriva över GENERIC \"%s\" vid %L"
#: fortran/resolve.c:8071
#, no-c-format
msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en procedurbindning deklarerad NON_OVERRIDABLE"
#: fortran/resolve.c:8079
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
-msgstr "Innesluten procedur \"%s\" vid %L i en PURE-procedur måste också vara PURE"
+msgstr "\"%s\" vid %L åsidosätter en PURE-procedur och måste också vara PURE"
#: fortran/resolve.c:8088
#, no-c-format
msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en ELEMENTAL-procedur och måste också vara ELEMENTAL"
#: fortran/resolve.c:8094
#, no-c-format
msgid "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, either"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosäter en icke-ELEMENTAL-procedur och får inte heller vara ELEMENTAL"
#: fortran/resolve.c:8103
#, no-c-format
msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en SUBROUTINE och måste också vara en SUBROUTINE"
#: fortran/resolve.c:8114
#, no-c-format
msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en FUNCTION och måste också vara en FUNCTION"
#: fortran/resolve.c:8125
#, no-c-format
msgid "'%s' at %L and the overridden FUNCTION should have matching result types"
-msgstr ""
+msgstr "\"%s\" vid %L och den åsidosatta FUNCTION skall ha överensstämmande resultattyper"
#: fortran/resolve.c:8136
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
-msgstr "Innesluten procedur \"%s\" vid %L i en PURE-procedur måste också vara PURE"
+msgstr "\"%s\" vid %L åsidosätter en PURE-procedur och får inte vara PRIVATE"
#: fortran/resolve.c:8165
#, no-c-format
msgid "Dummy argument '%s' of '%s' at %L should be named '%s' as to match the corresponding argument of the overridden procedure"
-msgstr ""
+msgstr "Attrappargument \"%s\" till \"%s\" vid %L skulle ha namnet \"%s\" för att stämma med motsvarande argument i den åsidosatta proceduren"
#: fortran/resolve.c:8178
#, no-c-format
msgid "Types mismatch for dummy argument '%s' of '%s' %L in in respect to the overridden procedure"
-msgstr ""
+msgstr "Typer stämmer inte överens för attrappargument \"%s\" till \"%s\" %L med hänsyn till den åsidosatta proceduren"
#: fortran/resolve.c:8188
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %L must have the same number of formal arguments as the overridden procedure"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "\"%s\" vid %L måste ha samma antal formella argument som den åsidosatta proceduren"
#: fortran/resolve.c:8197
#, no-c-format
msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en NOPASS-bindning och måste också vara NOPASS"
#: fortran/resolve.c:8208
#, no-c-format
msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
-msgstr ""
+msgstr "\"%s\" vid %L åsidosätter en bindning med PASS och måste också vara PASS"
#: fortran/resolve.c:8215
#, no-c-format
msgid "Passed-object dummy argument of '%s' at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
-msgstr ""
+msgstr "Attrappargument för pass-objekt till \"%s\" vid %L måste vara på samma position som attrappargumentet för pass-objektet i den åsidosatta proceduren"
#: fortran/resolve.c:8246
#, no-c-format
msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
-msgstr ""
+msgstr "\"%s\" och \"%s\" kan inte blandad FUNCTION/SUBROUTINE för GENERIC \"%s\" vid %L"
#: fortran/resolve.c:8255
#, no-c-format
msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
-msgstr ""
+msgstr "\"%s\" och \"%s\" för GENERIC \"%s\" vid %L är tvetydiga"
#: fortran/resolve.c:8324
#, no-c-format
msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
-msgstr ""
+msgstr "Odefinierad specifik bindning \"%s\" som mål för GENERIC \"%s\" vid %L"
#: fortran/resolve.c:8336
#, no-c-format
msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
-msgstr ""
+msgstr "GENERIC \"%s\" vid %L måste ha som mål en specifik bindning, \"%s\" är också GENERIC"
#: fortran/resolve.c:8366
#, no-c-format
msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
-msgstr ""
+msgstr "GENERIC \"%s\" vid %L kan inte åsidosätta en specifik bindning med samma namn"
#: fortran/resolve.c:8424
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L"
-msgstr "Procedur \"%s\" anropad med ett implicit gränssnitt vid %L"
+msgstr "\"%s\" måste vara en modulprocedur eller en extern procedur med ett explicit gränssnitt vid %L"
#: fortran/resolve.c:8461
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
-msgstr "Proceduren \"%s\" i %s vid %L har inget explicit gränssnitt"
+msgstr "Proceduren \"%s\" med PASS(%s) vid %L har inget argument \"%s\""
#: fortran/resolve.c:8475
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' with PASS at %L must have at least one argument"
-msgstr "Användaroperatorprocedur \"%s\" vid %L måste ha åtminstone ett argument"
+msgstr "Procedur \"%s\" med PASS vid %L måste ha åtminstone ett argument"
#: fortran/resolve.c:8487
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
-msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara en icke härledd typ"
+msgstr "Argument \"%s\" till \"%s\" med PASS(%s) vid %L måste ha den härledda typen \"%s\""
#: fortran/resolve.c:8493
#, no-c-format
msgid "Polymorphic entities are not yet implemented, non-polymorphic passed-object dummy argument of '%s' at %L accepted"
-msgstr ""
+msgstr "Polymorfa enheter är inte implementerade ännu, ickepolymorfa attrappargument för pass-objekt till \"%s\" vid %L accepteras"
#: fortran/resolve.c:8518
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %L has the same name as a component of '%s'"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "Procedur \"%s\" vid %L har samma namn som en komponent i \"%s\""
#: fortran/resolve.c:8527
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "Proceduren \"%s\" vid %L har samma namn som den ärvd komponent i \"%s\""
#: fortran/resolve.c:8595
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
-msgstr "Komponent \"%s\" i härledd typ \"%s\" vid %L får inte vara C-interoperativ"
+msgstr "Ej utvidgningsbar härledd typ \"%s\" vid %L får inte vara ABSTRACT"
#: fortran/resolve.c:8612
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure"
-msgstr "INTERFACE-procedur \"%s\" vid %L har samman namn som den inneslutande proceduren"
+msgstr "Komponent \"%s\" i \"%s\" vid %L har samma namn som en ärvd typbunden procedur"
#: fortran/resolve.c:8624
#, no-c-format
@@ -9806,14 +9790,14 @@ msgid "Intrinsic subroutine '%s' at %L shall not have a type specifier"
msgstr "Inbyggd subrutin \"%s\" vid %L får inte ha en typspecificerare"
#: fortran/resolve.c:9014
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' declared INTRINSIC at %L does not exist"
-msgstr "COMMON \"%s\" vid %L existerar inte"
+msgstr "\"%s\" deklarerad INTRINSIC vid %L finns inte"
#: fortran/resolve.c:9023
#, no-c-format
msgid "The intrinsic '%s' declared INTRINSIC at %L is not available in the current standard settings but %s. Use an appropriate -std=* option or enable -fall-intrinsics in order to use it."
-msgstr ""
+msgstr "Den inbyggda \"%s\" deklarerad INTRINSIC vid %L är inte tillgänglig i den aktuella standardinställningen utan i %s. Använd en lämplig flagga -std=* eller aktivera -fall-intrinsics för att använda den."
#: fortran/resolve.c:9067
#, no-c-format
@@ -9976,9 +9960,9 @@ msgid "Substring at %L has length zero"
msgstr "Delsträng vid %L har längden noll"
#: fortran/resolve.c:10188
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
-msgstr "Fortran 2003: PUBLIC %s \"%s\" vid %L har PRIVATE härledd typ \"%s\""
+msgstr "Fortran 2003: PUBLIC-funktion \"%s\" vid %L har PRIVATE typ \"%s\""
#: fortran/resolve.c:10201
#, no-c-format
@@ -10096,19 +10080,19 @@ msgid "Invalid KIND parameter of %s at %L"
msgstr "Ogiltig KIND-parameter %s vid %L"
#: fortran/simplify.c:276
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of %s function at %L is negative"
-msgstr "Satsfunktion vid %L är rekursiv"
+msgstr "Argument till %s-funktion vid %L är negativt"
#: fortran/simplify.c:283
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of %s function at %L outside of range [0,127]"
-msgstr "Argument till ACHAR-funktion vid %L utanför sitt intervall [0,127]"
+msgstr "Argument till %s-funktion vid %L utanför sitt intervall [0,127]"
#: fortran/simplify.c:301
#, no-c-format
msgid "Argument of %s function at %L is too large for the collating sequence of kind %d"
-msgstr ""
+msgstr "Argument till funktion %s vid %L är för stort för sorteringssekvensen av ordning %d"
#: fortran/simplify.c:337
#, no-c-format
@@ -10358,7 +10342,7 @@ msgstr "Inbyggd TRANSFER vid %L har delvis odefinierat resultat: källstorlek %ld
#: fortran/simplify.c:4871
#, no-c-format
msgid "Character '%s' in string at %L cannot be converted into character kind %d"
-msgstr ""
+msgstr "Tecknet \"%s\" i sträng vid %L kan inte konverteras till tecken av sort %d"
#: fortran/symbol.c:121
#, no-c-format
@@ -10394,7 +10378,7 @@ msgstr "Implicit deklarerad BIND(C)-variabel \"%s\" vid %L får inte vara C-inter
#. Dummy args to a BIND(C) routine may not be interoperable if
#. they are implicitly typed.
#: fortran/symbol.c:283
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Implicitly declared variable '%s' at %L may not be C interoperable but it is a dummy argument to the BIND(C) procedure '%s' at %L"
msgstr "Implicit deklarerad variabel \"%s\" vid %L får inte vara C-interoperativ men det är ett attrappargument till BIND(C)-proceduren \"%s\" vid %L"
@@ -10409,14 +10393,14 @@ msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
msgstr "%s-attribut är inte tillåtet i programenheten BLOCK DATA vid %L"
#: fortran/symbol.c:607
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute applied to %s %s at %L"
-msgstr "%s-attribut i konflikt med %s-attribut vid %L"
+msgstr "%s-attribut applicerat på %s %s vid %L"
#: fortran/symbol.c:614
#, no-c-format
msgid "BIND(C) applied to %s %s at %L"
-msgstr ""
+msgstr "BIND(C) applicerat på %s %s vid %L"
#: fortran/symbol.c:711 fortran/symbol.c:1364
#, no-c-format
@@ -10456,12 +10440,12 @@ msgstr "Dubblerat %s-attribut angivna vid %L"
#: fortran/symbol.c:824
#, no-c-format
msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
-msgstr ""
+msgstr "ALLOCATABLE angiven utanför INTERFACE-kropp vid %L"
#: fortran/symbol.c:850
#, no-c-format
msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L"
-msgstr ""
+msgstr "DIMENSION angiven för \"%s\" utanför dess INTERFACE-kropp vid %L"
#: fortran/symbol.c:968
#, no-c-format
@@ -10524,14 +10508,14 @@ msgid "Fortran 2003: BIND(C) at %L"
msgstr "Fortran 2003: BIND(C) vid %L"
#: fortran/symbol.c:1494
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate EXTENDS attribute specified at %L"
-msgstr "Dubblerat BIND-attribut angivna vid %L"
+msgstr "Dubblerat EXTENDS-attribut angivet vid %L"
#: fortran/symbol.c:1498
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Fortran 2003: EXTENDS at %L"
-msgstr "Fortran 2003: BIND(C) vid %L"
+msgstr "Fortran 2003: EXTENDS vid %L"
#: fortran/symbol.c:1520
#, no-c-format
@@ -10541,7 +10525,7 @@ msgstr "Symbolen \"%s\" vid %L har redan ett explicit gränssnitt"
#: fortran/symbol.c:1527
#, no-c-format
msgid "'%s' at %L has attributes specified outside its INTERFACE body"
-msgstr ""
+msgstr "\"%s\" vid %L har attribut angivna utanför dess INTERFACE-kropp"
#: fortran/symbol.c:1574
#, no-c-format
@@ -10554,9 +10538,9 @@ msgid "Component '%s' at %C already declared at %L"
msgstr "Komponenten \"%s\" vid %C är redan deklarerad vid %L"
#: fortran/symbol.c:1744
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Component '%s' at %C already in the parent type at %L"
-msgstr "Komponenten \"%s\" vid %C är redan deklarerad vid %L"
+msgstr "Komponenten \"%s\" vid %C finns redan i föräldratypen vid %L"
#: fortran/symbol.c:1819
#, no-c-format
@@ -10579,9 +10563,9 @@ msgid "Component '%s' at %C is a PRIVATE component of '%s'"
msgstr "Komponent \"%s\" vid %C är en PRIVATE-komponent i \"%s\""
#: fortran/symbol.c:1910
-#, fuzzy, no-c-format
+#, no-c-format
msgid "All components of '%s' are PRIVATE in structure constructor at %C"
-msgstr "För få komponenter i postkonstruerare vid %C"
+msgstr "Alla komponenter i \"%s\" är PRIVATE i postkonstruerare vid %C"
#: fortran/symbol.c:2039
#, no-c-format
@@ -10671,19 +10655,19 @@ msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is
msgstr "Härledd typ \"%s\" vid %L kan inte ha attributet SEQUENCE för att den är BIND(C)"
#: fortran/symbol.c:4261
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' is used before it is typed at %L"
-msgstr "Symbolen \"%s\" finns i flera fall vid %L"
+msgstr "Symbolen \"%s\" används före den har fått sin typ vid %L"
#: fortran/symbol.c:4267
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Symbol '%s' is used before it is typed at %L"
-msgstr "Utökning: Komma före i/o-elementlista vid %C"
+msgstr "Utökning: Symbolen \"%s\" används före den fått sin typ vid %L"
#: fortran/symbol.c:4318
#, no-c-format
msgid "'%s' of '%s' is PRIVATE at %C"
-msgstr ""
+msgstr "\"%s\" av \"%s\" är PRIVATE vid %C"
#: fortran/target-memory.c:610
#, no-c-format
@@ -10697,21 +10681,21 @@ msgstr "BOZ-konstant vid %L är för stor (%ld jämfört med %ld bitar)"
#: fortran/trans-array.c:641 fortran/trans-array.c:4368
#: fortran/trans-array.c:5299 fortran/trans-intrinsic.c:3635
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Creating array temporary at %L"
-msgstr "skapar vektor av %qT"
+msgstr "Skapar vektortemporär vid %L"
#. Problems occur when we get something like
#. integer :: a(lots) = (/(i, i=1, lots)/)
#: fortran/trans-array.c:3951
#, no-c-format
msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option"
-msgstr ""
+msgstr "Antalet element i vektorkonstrueraren vid %L kräver en ökning av den tillåtna övre gränsen %d. Se flaggan -fmax-array-constructor"
#: fortran/trans-array.c:5296
#, no-c-format
msgid "Creating array temporary at %L for argument '%s'"
-msgstr ""
+msgstr "Skapar vektortemporär vid %L för argument \"%s\""
#: fortran/trans-common.c:399
#, no-c-format
@@ -10750,14 +10734,14 @@ msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at
msgstr "Ekvivalensmängden för \"%s\" orsakar en ogiltig utvidgning av COMMON \"%s\" vid %L"
#: fortran/trans-common.c:1116
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L; reorder elements or use -fno-align-commons"
-msgstr "Utfyllnad med %d byte krävs före \"%s\" i COMMON \"%s\" vid %L"
+msgstr "Utfyllnad med %d byte krävs före \"%s\" i COMMON \"%s\" vid %L, byt ordning på element eller använd -fno-align-commons"
#: fortran/trans-common.c:1121
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Padding of %d bytes required before '%s' in COMMON at %L; reorder elements or use -fno-align-commons"
-msgstr "Utfyllnad med %d byte krävs före \"%s\" i COMMON \"%s\" vid %L"
+msgstr "Utfyllnad med %d byte krävs före \"%s\" i COMMON vid %L, byt ordning på element eller använd -fno-align-commons"
#: fortran/trans-common.c:1149
#, no-c-format
@@ -10765,24 +10749,24 @@ msgid "COMMON '%s' at %L does not exist"
msgstr "COMMON \"%s\" vid %L existerar inte"
#: fortran/trans-common.c:1157
-#, fuzzy, no-c-format
+#, no-c-format
msgid "COMMON '%s' at %L requires %d bytes of padding at start; reorder elements or use -fno-align-commons"
-msgstr "COMMON \"%s\" vid %L kräver %d byte utfyllnad i början"
+msgstr "COMMON \"%s\" vid %L kräver %d byte utfyllnad i början, byt ordning på element eller använd -fno-align-commons"
#: fortran/trans-common.c:1161
-#, fuzzy, no-c-format
+#, no-c-format
msgid "COMMON at %L requires %d bytes of padding at start; reorder elements or use -fno-align-commons"
-msgstr "COMMON \"%s\" vid %L kräver %d byte utfyllnad i början"
+msgstr "COMMON vid %L kräver %d byte utfyllnad i början, byt ordning på element eller använd -fno-align-commons"
#: fortran/trans-const.c:290
#, no-c-format
msgid "Assigning value other than 0 or 1 to LOGICAL has undefined result at %L"
-msgstr ""
+msgstr "Tilldelning annat värde än 0 eller 1 till LOGICAL har odefinierat resultat vid %L"
#: fortran/trans-decl.c:2835 fortran/trans-decl.c:3858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Return value of function '%s' at %L not set"
-msgstr "Returtyp till BIND(C)-funktion \"%s\" vid %L kan inte vara en vektor"
+msgstr "Returvärdet för funktionen \"%s\" vid %L är inte satt"
#: fortran/trans-decl.c:3493
#, no-c-format
@@ -10805,9 +10789,9 @@ msgid "Unused parameter '%s' declared at %L"
msgstr "Oanvänd parameter \"%s\" deklarerad vid %L"
#: fortran/trans-decl.c:3549
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Return value '%s' of function '%s' declared at %L not set"
-msgstr "Returtyp till BIND(C)-funktion \"%s\" vid %L kan inte vara en vektor"
+msgstr "Returvärdet \"%s\" för funktionen \"%s\" deklarerad vid %L är inte satt"
#: fortran/trans-expr.c:2391
#, no-c-format
@@ -10858,19 +10842,18 @@ msgid "Out of memory"
msgstr "Slut på minne"
#: fortran/trans.c:737
-#, fuzzy, c-format
+#, c-format
msgid "Attempting to allocate already allocated array '%s'"
-msgstr "Försök att allokera redan allokerad vektor"
+msgstr "Försök att allokera redan allokerad vektor \"%s\""
#: fortran/trans.c:743
-#, fuzzy
msgid "Attempting to allocate already allocatedarray"
msgstr "Försök att allokera redan allokerad vektor"
#: fortran/trans.c:852
-#, fuzzy, c-format
+#, c-format
msgid "Attempt to DEALLOCATE unallocated '%s'"
-msgstr "Försök att DEALLOCATE oallokerat minne."
+msgstr "Försök att DEALLOCATE oallokerad \"%s\""
#: java/jcf-dump.c:1068
#, c-format
@@ -11110,14 +11093,12 @@ msgid "-E or -x required when input is from standard input"
msgstr "-E eller -x krävs när indata tas från standard in"
#: fortran/lang-specs.h:45 fortran/lang-specs.h:58
-#, fuzzy
msgid "gfortran does not support -E without -cpp"
-msgstr "GCC stödjer inte -C eller -CC utan -E"
+msgstr "gfortran stödjer inte -E utan -cpp"
#: config/bfin/elf.h:31
-#, fuzzy
msgid "no processor type specified for linking"
-msgstr "specfilen har ingen spec för länkning"
+msgstr "ingen processortyp angiven för länkning"
#: config/vxworks.h:71
msgid "-Xbind-now and -Xbind-lazy are incompatible"
@@ -11337,16 +11318,15 @@ msgstr "Varna för eventuella attrappargumentalias"
#: fortran/lang.opt:77
msgid "Warn about alignment of COMMON blocks"
-msgstr ""
+msgstr "Varna för justering av COMMON-block"
#: fortran/lang.opt:81
msgid "Warn about missing ampersand in continued character constants"
msgstr "Varna för saknade et-tecken i fortsatta teckenkonstanter"
#: fortran/lang.opt:85
-#, fuzzy
msgid "Warn about creation of array temporaries"
-msgstr "Varna för aritmetik med funktionspekare"
+msgstr "Varna om vektortemporärer skapas"
#: fortran/lang.opt:89
msgid "Warn about truncated character expressions"
@@ -11365,9 +11345,8 @@ msgid "Warn about truncated source lines"
msgstr "Varna för avhuggna källkodsrader"
#: fortran/lang.opt:105
-#, fuzzy
msgid "Warn on intrinsics not part of the selected standard"
-msgstr "Inbyggd \"%s\" vid %L är inte med i den valda standarden"
+msgstr "Inbyggd för inbyggda om inte är med i den valda standarden"
#: fortran/lang.opt:113
msgid "Warn about \"suspicious\" constructs"
@@ -11383,26 +11362,23 @@ msgstr "Varna för underspill i numeriska konstantuttryck"
#: fortran/lang.opt:125
msgid "Warn if a user-procedure has the same name as an intrinsic"
-msgstr ""
+msgstr "Varna om en användarprocedur har samma namn som en inbyggd"
#: fortran/lang.opt:129
-#, fuzzy
msgid "Enable preprocessing"
-msgstr "Aktivera traditionell preprocessning"
+msgstr "Aktivera preprocessning"
#: fortran/lang.opt:133
-#, fuzzy
msgid "Disable preprocessing"
-msgstr "Avaktivera indexerad adressering"
+msgstr "Avaktivera preprocessning"
#: fortran/lang.opt:137
msgid "Dump details about macro names and definitions during preprocessing"
-msgstr ""
+msgstr "Skriv ut detaljer om makronamn och definitioner under preprocessning"
#: fortran/lang.opt:141
-#, fuzzy
msgid "Enable alignment of COMMON blocks"
-msgstr "Trådprivat variabel vid %C är ett element i ett COMMON-block"
+msgstr "Aktivera justering av COMMON-block"
#: fortran/lang.opt:145
msgid "All intrinsics procedures are available regardless of selected standard"
@@ -11426,7 +11402,7 @@ msgstr "-fblas-matmul-limit=<n> Storlek på den minsta matris för vilken m
#: fortran/lang.opt:169
msgid "Produce a warning at runtime if a array temporary has been created for a procedure argument"
-msgstr ""
+msgstr "Producera en varning vid körning om en vektortemporär har skapats för ett procedurargument"
#: fortran/lang.opt:173
msgid "Use big-endian format for unformatted files"
@@ -11546,7 +11522,7 @@ msgstr "-finit-real=<zero|nan|inf|-inf> Initiera lokala reella variabler"
#: fortran/lang.opt:289
msgid "-fmax-array-constructor=<n> Maximum number of objects in an array constructor"
-msgstr ""
+msgstr "-fmax-array-constructor=<n> Maximalt antal objekt i en vektorkonstruerare"
#: fortran/lang.opt:293
msgid "Maximum number of errors to report"
@@ -11625,9 +11601,8 @@ msgid "Conform to the ISO Fortran 2003 standard"
msgstr "Följ standarden ISO Fortran 2003"
#: fortran/lang.opt:401
-#, fuzzy
msgid "Conform to the ISO Fortran 2008 standard"
-msgstr "Följ standarden ISO Fortran 2003"
+msgstr "Följ standarden ISO Fortran 2008"
#: fortran/lang.opt:405
msgid "Conform to the ISO Fortran 95 standard"
@@ -12156,25 +12131,24 @@ msgid "Count speculative dependencies while calculating priority of instructions
msgstr "Räkna spekulativa beroenden vid beräkning av prioritet för instruktioner"
#: config/ia64/ia64.opt:145
-#, fuzzy
msgid "Place a stop bit after every cycle when scheduling"
-msgstr "Aktivera tidigare utplacering av stoppbitar för bättre schemaläggning"
+msgstr "Placera en stoppbit efter varje cykel vid schemaläggning"
#: config/ia64/ia64.opt:149
msgid "Assume that floating-point stores and loads are not likely to cause conflict when placed into one instruction group"
-msgstr ""
+msgstr "Anta att flyttalslagringar och -laddningar troligen inte orsakar konflikter när de placeras i en instruktionsgrupp"
#: config/ia64/ia64.opt:153
msgid "Soft limit on number of memory insns per instruction group, giving lower priority to subsequent memory insns attempting to schedule in the same insn group. Frequently useful to prevent cache bank conflicts. Default value is 1"
-msgstr ""
+msgstr "Mjuk gräns på antalet minnesinstruktioner per instruktionsgrupp, ger lägre prioritet till försök att schemalägga senare minnesinstruktioner i samma instruktionsgrupp. Ofta användbart för att hindra konflikter mellan cache-bankar. Standardvärdet är 1"
#: config/ia64/ia64.opt:157
msgid "Disallow more than `msched-max-memory-insns' in instruction group. Otherwise, limit is `soft' (prefer non-memory operations when limit is reached)"
-msgstr ""
+msgstr "Tillåt inte mer än \"msched-max-memory-insns\" i instruktionsgrupper. Annars är gränsen \"mjuk\" (föredra icke-minnesoperationer när gränsen är nådd)"
#: config/ia64/ia64.opt:161
msgid "Don't generate checks for control speculation in selective scheduling"
-msgstr ""
+msgstr "Generera inte kontroller av styrningsspekulation i selektiv schemaläggning"
#: config/m32c/m32c.opt:24 config/bfin/bfin.opt:23
msgid "Use simulator runtime"
@@ -12499,7 +12473,7 @@ msgstr "Trimma för den angivna mål-CPU:n eller arkitekturen"
#: config/m68k/m68k.opt:184
msgid "Support more than 8192 GOT entries on ColdFire"
-msgstr ""
+msgstr "Stöd mer än 8192 GOT-poster på ColdFire"
#: config/m68k/ieee.opt:24 config/i386/i386.opt:137
msgid "Use IEEE math for fp comparisons"
@@ -12511,7 +12485,7 @@ msgstr "Ignorerad (föråldrad)"
#: config/i386/mingw.opt:23
msgid "Warn about none ISO msvcrt scanf/printf width extensions"
-msgstr ""
+msgstr "Varna för msvcrt-breddutökningar av scanf/printf som inte följer ISO"
#: config/i386/i386.opt:61
msgid "sizeof(long double) is 16"
@@ -12572,7 +12546,7 @@ msgstr "Generera sin, cos, sqrt för FPU"
#: config/i386/i386.opt:121
msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
-msgstr ""
+msgstr "Använd alltid Dynamic Realigned Argument Pointer (DRAP) för att justera stacken"
#: config/i386/i386.opt:125
msgid "Return values of functions in FPU registers"
@@ -12607,9 +12581,8 @@ msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Försök håll stacken justerad till denna 2-potens"
#: config/i386/i386.opt:181
-#, fuzzy
msgid "Assume incoming stack aligned to this power of 2"
-msgstr "Försök håll stacken justerad till denna 2-potens"
+msgstr "Anta att inkommande stack är justerad till denna 2-potens"
#: config/i386/i386.opt:185
msgid "Use push instructions to save outgoing arguments"
@@ -12661,9 +12634,8 @@ msgid "Generate reciprocals instead of divss and sqrtss."
msgstr "Generera inverser istället för divss och sqrtss."
#: config/i386/i386.opt:241
-#, fuzzy
msgid "Generate cld instruction in the function prologue."
-msgstr "Reservera utrymmer för utgående argument i funktionsprologen"
+msgstr "Generera cld-instruktioner i funktionsprologen"
#: config/i386/i386.opt:248
msgid "Enable automatic generation of fused floating point multiply-add instructions"
@@ -12718,14 +12690,12 @@ msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation"
msgstr "Stöd inte inbyggda SSE4.1- och SSE4.2-funktioner och -kodgenerering"
#: config/i386/i386.opt:308
-#, fuzzy
msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation"
-msgstr "Stöd inbyggda MMX-, SSE-, SSE2-, SSE3-, SSSE3-, SSE4.1- och SSE4.2-funktioner och -kodgenerering"
+msgstr "Stöd inbyggda MMX-, SSE-, SSE2-, SSE3-, SSSE3-, SSE4.1-, SSE4.2- och AVX-funktioner och -kodgenerering"
#: config/i386/i386.opt:312
-#, fuzzy
msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation"
-msgstr "Stöd inbyggda MMX-, SSE-, SSE2-, SSE3-, SSSE3-, SSE4.1- och SSE4.2-funktioner och -kodgenerering"
+msgstr "Stöd inbyggda MMX-, SSE-, SSE2-, SSE3-, SSSE3-, SSE4.1-, SSE4.2-, AVX- och FMA-funktioner och -kodgenerering"
#: config/i386/i386.opt:316
msgid "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation"
@@ -12752,18 +12722,16 @@ msgid "Support code generation of sahf instruction in 64bit x86-64 code."
msgstr "Stöd kodgenerering av sahf-instruktioner i 64-bitars x86-64-kod."
#: config/i386/i386.opt:340
-#, fuzzy
msgid "Support AES built-in functions and code generation"
-msgstr "Stöd inbyggda SSE5-funktioner och -kodgenerering"
+msgstr "Stöd inbyggda AES-funktioner och -kodgenerering"
#: config/i386/i386.opt:344
-#, fuzzy
msgid "Support PCLMUL built-in functions and code generation"
-msgstr "Stöd inbyggda SSE5-funktioner och -kodgenerering"
+msgstr "Stöd inbyggda PCLMUL-funktioner och -kodgenerering"
#: config/i386/i386.opt:348
msgid "Encode SSE instructions with VEX prefix"
-msgstr ""
+msgstr "Koda SSE-instruktioner med VEX-prefix"
#: config/i386/cygming.opt:23
msgid "Create console application"
@@ -13002,14 +12970,12 @@ msgid "Avoid all range limits on call instructions"
msgstr "Undvik alla avståndsgränser vid anropsinstruktioner"
#: config/rs6000/rs6000.opt:238
-#, fuzzy
msgid "Generate Cell microcode"
-msgstr "Generera SH2e-kod"
+msgstr "Generera Cell-mikrokod"
#: config/rs6000/rs6000.opt:242
-#, fuzzy
msgid "Warn when a Cell microcoded instruction is emitted"
-msgstr "Varna när ett alla konstruerare och destruerare är privata"
+msgstr "Varna när en Cell-mikrokodsinstruktion avges"
#: config/rs6000/rs6000.opt:246
msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
@@ -13040,28 +13006,24 @@ msgid "Specify scheduling priority for dispatch slot restricted insns"
msgstr "Ange schemaläggningsprioritet för begränsade instruktioner för avsändningsfack"
#: config/rs6000/rs6000.opt:274
-#, fuzzy
msgid "Single-precision floating point unit"
-msgstr "oordnad jämförelse av argument som inte är flyttal"
+msgstr "Enkelprecisions flyttalsenhet"
#: config/rs6000/rs6000.opt:278
-#, fuzzy
msgid "Double-precision floating point unit"
-msgstr "oordnad jämförelse av argument som inte är flyttal"
+msgstr "Dubbelprecisions flyttalsenhet"
#: config/rs6000/rs6000.opt:282
-#, fuzzy
msgid "Floating point unit does not support divide & sqrt"
-msgstr "decimala flyttal stöds inte för denna målarkitektur"
+msgstr "Flyttalsenheten stödjer inte division & kvadratrot"
#: config/rs6000/rs6000.opt:286
msgid "Specify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)"
-msgstr ""
+msgstr "Ange FP (sp, dp, sp-lite, dp-lite) (implicerar -mxilinx-fpu)"
#: config/rs6000/rs6000.opt:290
-#, fuzzy
msgid "Specify Xilinx FPU."
-msgstr "Ange ett ABI"
+msgstr "Ange Xilinx-FPU."
#: config/rs6000/aix64.opt:24
msgid "Compile for 64-bit pointers"
@@ -13171,7 +13133,7 @@ msgstr "volatile måste anges för allt minne som påverkas av DMA"
#: config/spu/spu.opt:40 config/spu/spu.opt:44
msgid "Insert nops when it might improve performance by allowing dual issue (default)"
-msgstr ""
+msgstr "Skut in nop:ar när det kan förbättra prestanda genom att tillåta dubbel utgivning (standard)"
#: config/spu/spu.opt:48
msgid "Use standard main function as entry for startup"
@@ -13182,14 +13144,12 @@ msgid "Generate branch hints for branches"
msgstr "Generera grentips för grenar"
#: config/spu/spu.opt:56
-#, fuzzy
msgid "Maximum number of nops to insert for a hint (Default 2)"
-msgstr "Det maximala antalet fel som skall rapporteras"
+msgstr "Det maximala antalet nop-instruktioner att skjuta in för ett tips (standard 2)"
#: config/spu/spu.opt:60
-#, fuzzy
msgid "Approximate maximum number of instructions to allow between a hint and its branch [125]"
-msgstr "Det maximala antalet instruktioner för att överväga att rulla ut i en slinga"
+msgstr "Ungefärligt antal instruktioner att tillåta mellan ett tips och dess gren [125]"
#: config/spu/spu.opt:64
msgid "Generate code for 18 bit addressing"
@@ -13201,7 +13161,7 @@ msgstr "Generera kod för 32-bitars adressering"
#: config/spu/spu.opt:76
msgid "Insert hbrp instructions after hinted branch targets to avoid the SPU hang issue"
-msgstr ""
+msgstr "Lägg in hbrp-instruktioner efter grenmål med tips för att undvika problemet med hängd SPU"
#: config/mcore/mcore.opt:23
msgid "Generate code for the M*Core M210"
@@ -13448,9 +13408,8 @@ msgid "Generate 32-bit offsets in switch tables"
msgstr "Använd 32-bitars avstånd i hopptabeller"
#: config/sh/sh.opt:217
-#, fuzzy
msgid "Generate bit instructions"
-msgstr "Generera isel-instruktioner"
+msgstr "Generera bitinstruktioner"
#: config/sh/sh.opt:221
msgid "Cost to assume for a branch insn"
@@ -13565,9 +13524,8 @@ msgid "Runtime name."
msgstr "Körtidsnamn."
#: config/arm/eabi.opt:23
-#, fuzzy
msgid "Generate code for the Android operating system."
-msgstr "Generera kod för den angivna ISA:n"
+msgstr "Generera kod för operativsystemet Android."
#: config/arm/arm.opt:23
msgid "Specify an ABI"
@@ -13687,11 +13645,11 @@ msgstr "Använd Neons quad-ord- (snarare än dubbelord-)register för vektorisering
#: config/arm/arm.opt:162
msgid "Only generate absolute relocations on word sized values."
-msgstr ""
+msgstr "Generera endast absoluta omlokaliseringar för värden av ordstorlek."
#: config/arm/arm.opt:166
msgid "Avoid overlapping destination and address registers on LDRD instructions"
-msgstr ""
+msgstr "Undvik överlappande destinationer och adressregister för LDRD-instruktioner"
#: config/arm/pe.opt:23
msgid "Ignore dllimport attribute for functions"
@@ -13919,9 +13877,8 @@ msgid "Intersperse literal pools with code in the text section"
msgstr "Växla mellan bokstavliga pooler och kod i textsektionen"
#: config/xtensa/xtensa.opt:43
-#, fuzzy
msgid "Do not serialize volatile memory references with MEMW instructions"
-msgstr "Generera inte load/store-instruktioner med uppdatering"
+msgstr "Serialisera inte minnesreferenser till flyktigt minne med MEMW-instruktioner"
#: config/stormy16/stormy16.opt:24
msgid "Provide libraries for the simulator"
@@ -14016,9 +13973,8 @@ msgid "Work around certain R4400 errata"
msgstr "Gå runt vissa fel i R4400"
#: config/mips/mips.opt:117
-#, fuzzy
msgid "Work around certain R10000 errata"
-msgstr "Gå runt vissa fel i R4000"
+msgstr "Gå runt vissa fel i R10000"
#: config/mips/mips.opt:121
msgid "Work around errata for early SB-1 revision 2 cores"
@@ -14069,9 +14025,8 @@ msgid "Use GP-relative addressing to access small data"
msgstr "Använd GP-relativ adressering för att komma åt små data"
#: config/mips/mips.opt:169
-#, fuzzy
msgid "When generating -mabicalls code, allow executables to use PLTs and copy relocations"
-msgstr "Vid generering av -mabicalls-kod, gör så att koden passar för användning i delade bibliotek"
+msgstr "Vid generering av -mabicalls-kod, tillåt körbara att använda PLT:er och kopieringsomlokaliseringar"
#: config/mips/mips.opt:173
msgid "Allow the use of hardware floating-point ABI and instructions"
@@ -14146,9 +14101,8 @@ msgid "Use paired-single floating-point instructions"
msgstr "Använd parvisa enkla flyttalsinstruktioner"
#: config/mips/mips.opt:245
-#, fuzzy
msgid "Specify when r10k cache barriers should be inserted"
-msgstr "Ange om flyttalshårdvara skall användas"
+msgstr "Ange när r10k-cache-barriärer skall skjutas in"
#: config/mips/mips.opt:249
msgid "When generating -mabicalls code, make the code suitable for use in shared libraries"
@@ -14581,47 +14535,46 @@ msgid "Do stack checking using bounds in L1 scratch memory"
msgstr "Gör stackkontroll med gränser i L1:s fria minne"
#: config/bfin/bfin.opt:85
-#, fuzzy
msgid "Enable multicore support"
-msgstr "Använd hårdvarustöd för decimala flyttal"
+msgstr "Aktivera stöd för flera kärnor"
#: config/bfin/bfin.opt:89
msgid "Build for Core A"
-msgstr ""
+msgstr "Bygg för kärna A"
#: config/bfin/bfin.opt:93
msgid "Build for Core B"
-msgstr ""
+msgstr "Bygg för kärna B"
#: config/bfin/bfin.opt:97
msgid "Build for SDRAM"
-msgstr ""
+msgstr "Bygg för SDRAM"
#: config/picochip/picochip.opt:23
msgid "Specify which type of AE to target. This option sets the mul-type"
-msgstr ""
+msgstr "Ange vilken typ av AE att ha som mål. Denna flagga sätter mul-typen"
#: config/picochip/picochip.opt:28
msgid "Specify which type of multiplication to use. Can be mem, mac or none."
-msgstr ""
+msgstr "Ange vilken typ av multiplikation att anvnända. Kan vara mem, mac eller none."
#: config/picochip/picochip.opt:32
msgid "Specify whether the byte access instructions should be used. Enabled by default."
-msgstr ""
+msgstr "Ange om instruktioner för byteåtkomst skall användas. Aktiverat som standard."
#: config/picochip/picochip.opt:36
-#, fuzzy
msgid "Enable debug output to be generated."
-msgstr "Aktivera felsökningsutdata"
+msgstr "Aktivera generering av felsökningsutdata."
+# Avhugget p.g.a. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38442
+# Hela meddelandet är översatt
#: config/picochip/picochip.opt:40
msgid "Allow a symbol value to be used as an immediate value in an"
-msgstr ""
+msgstr "Tillåt ett symbolvärde att användas som ett omedelbart värde i en instruktion."
#: config/picochip/picochip.opt:45
-#, fuzzy
msgid "Generate warnings when inefficient code is known to be generated."
-msgstr "Generera varningar när körtidsomlokaliseringar genereras"
+msgstr "Generera varningar när ineffektiv kod med säkerhet genereras."
#: config/vxworks.opt:24
msgid "Assume the VxWorks RTP environment"
@@ -14801,7 +14754,7 @@ msgstr "Varna för typkonvertering av funktioner till inkompatibla typer"
#: c.opt:136
msgid "Warn when a built-in preprocessor macro is undefined or redefined"
-msgstr ""
+msgstr "Varna när ett inbyggt preprocessormakro avdefinieras eller omdefinieras"
#: c.opt:140
msgid "Warn about C constructs that are not in the common subset of C and C++"
@@ -14868,9 +14821,8 @@ msgid "Warn about stray tokens after #elif and #endif"
msgstr "Varna för vilsekomna symboler efter #elif och #endif"
#: c.opt:204
-#, fuzzy
msgid "Warn about comparison of different enum types"
-msgstr "Varna för brott mot stilreglerna i Effective C++"
+msgstr "Varna för jämförelser av skilda uppräkningstyper"
#: c.opt:212
msgid "This switch is deprecated; use -Werror=implicit-function-declaration instead"
@@ -15086,7 +15038,7 @@ msgstr "Varna för typsignaturer till kandidatmetoder inte stämmer exakt"
#: c.opt:433
msgid "Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used"
-msgstr ""
+msgstr "Varna när de inbyggda funktionerna __sync_fetch_and_nand och __sync_nand_and_fetch används"
#: c.opt:437
msgid "Deprecated. This switch has no effect"
@@ -15158,11 +15110,11 @@ msgstr "Ändra när mallinstanser skrivs ut"
#: c.opt:512
msgid "Recognize the \"asm\" keyword"
-msgstr "Känn igen nyckelordet \"asm\""
+msgstr "Acceptera nyckelordet \"asm\""
#: c.opt:516
msgid "Recognize built-in functions"
-msgstr "Känn igen inbyggda funktioner"
+msgstr "Acceptera inbyggda funktioner"
#: c.opt:523
msgid "Check the return value of new"
@@ -15293,7 +15245,6 @@ msgid "Enable OpenMP"
msgstr "Aktivera OpenMP"
#: c.opt:690
-#, fuzzy
msgid "Recognize C++ keywords like \"compl\" and \"xor\""
msgstr "Acceptera C++-nyckelord som \"compl\" och \"xor\""
@@ -15598,9 +15549,8 @@ msgid "Warn when an optimization pass is disabled"
msgstr "Varna när ett optimerarpass är avaktiverat"
#: common.opt:99
-#, fuzzy
msgid "Warn on calls to these functions"
-msgstr "fel i argument till spec-funktionen \"%s\""
+msgstr "Varna vid arnop till dessa funktioner"
#: common.opt:103
msgid "Treat all warnings as errors"
@@ -15620,7 +15570,7 @@ msgstr "Avsluta vid första felet som uppstår"
#: common.opt:119
msgid "-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes"
-msgstr ""
+msgstr "-Wframe-larger-than=<antal> Varna om en funktions stackram kräver mer en <antal> byte"
#: common.opt:123
msgid "Warn when an inlined function cannot be inlined"
@@ -15644,7 +15594,7 @@ msgstr "Varna för funktioner som är möjliga kandidater för __attribute__((noretu
#: common.opt:146
msgid "Warn about constructs not instrumented by -fmudflap"
-msgstr ""
+msgstr "Varna för konstruktioner som inte instrumenteras av -fmudflap"
#: common.opt:150
msgid "Warn about overflow in arithmetic expressions"
@@ -15824,7 +15774,7 @@ msgstr "Lägg inte oinitierade globala i den gemensamma sektionen"
#: common.opt:390
msgid "Do not perform optimizations increasing noticeably stack usage"
-msgstr ""
+msgstr "Utför inte optimieringar som märkbart ökar stackanvändningen"
#: common.opt:394
msgid "Perform a register copy-propagation optimization pass"
@@ -15848,7 +15798,7 @@ msgstr "Uteslut intervallreduktionssteget när komplex division görs"
#: common.opt:414
msgid "Complex multiplication and division follow Fortran rules"
-msgstr ""
+msgstr "Komplex multiplikation och division följer Fortranregler"
#: common.opt:418
msgid "Place data items into their own section"
@@ -15900,7 +15850,7 @@ msgstr "Undertryck utskrift av instruktionsantal, radnummernoteringar och -adres
#: common.opt:468
msgid "Enable CFI tables via GAS assembler directives."
-msgstr ""
+msgstr "Aktivera CFI-tabeller via GAS-assemblerdirektiv."
#: common.opt:472
msgid "Perform early inlining"
@@ -15976,27 +15926,24 @@ msgid "Perform global common subexpression elimination after register allocation
msgstr "Utför global eliminering av gemensamma deluttryck efter registertilldelning"
#: common.opt:556
-#, fuzzy
msgid "Enable in and out of Graphite representation"
-msgstr "Aktivera eliminering av död lagring"
+msgstr "Aktivera in och ut från Graphite-representation"
#: common.opt:560
msgid "Enable Loop Strip Mining transformation"
-msgstr ""
+msgstr "Aktivera transformationen utgrävning av remsor (strip mining) i slingor"
#: common.opt:564
msgid "Enable Loop Interchange transformation"
-msgstr ""
+msgstr "Aktivera transformationen utbyte (interchange) i slingor"
#: common.opt:568
-#, fuzzy
msgid "Enable Loop Blocking transformation"
-msgstr "Aktivera intervallkontroller under kompilering"
+msgstr "Aktivera slingblockeringstransformation"
#: common.opt:572
-#, fuzzy
msgid "Enable Graphite Identity transformation"
-msgstr "Mata ut anropsgrafsinformation"
+msgstr "Aktivera Graphite-identitetstransformation"
#: common.opt:576
msgid "Enable guessing of branch probabilities"
@@ -16019,9 +15966,8 @@ msgid "Do not generate .size directives"
msgstr "Generera inte .size-direktiv"
#: common.opt:604
-#, fuzzy
msgid "Perform indirect inlining"
-msgstr "Utför tidig inline:ing"
+msgstr "Utför indirekt inline:ing"
#: common.opt:613
msgid "Pay attention to the \"inline\" keyword"
@@ -16060,9 +16006,8 @@ msgid "Perform Interprocedural constant propagation"
msgstr "Utför konstantpropagering mellan procedurer"
#: common.opt:652
-#, fuzzy
msgid "Perform cloning to make Interprocedural constant propagation stronger"
-msgstr "Utför konstantpropagering mellan procedurer"
+msgstr "Utför kloning för att göra konstantpropagering mellan procedurer starkare"
#: common.opt:656
msgid "Discover pure and const functions"
@@ -16091,29 +16036,28 @@ msgid "Perform structure layout optimizations based"
msgstr "Utför optimeringar av postutläggning baserat"
#: common.opt:682
-#, fuzzy
msgid "Use integrated register allocator."
-msgstr "Använd alternativa registernamn"
+msgstr "Använd integrerad registerallokerare."
#: common.opt:686
msgid "-fira-algorithm=[regional|CB|mixed] Set the used IRA algorithm"
-msgstr ""
+msgstr "-fira-algorithm=[regional|CB|mixed] Bestäm den använda IRA-algoritmen"
#: common.opt:690
msgid "Do optimistic coalescing."
-msgstr ""
+msgstr "Gör optimistisk sammanslutning."
#: common.opt:694
msgid "Share slots for saving different hard registers."
-msgstr ""
+msgstr "Dela fack för att spara olika hårda register."
#: common.opt:698
msgid "Share stack slots for spilled pseudo-registers."
-msgstr ""
+msgstr "Dela stackfack för spillda pseudoregister."
#: common.opt:702
msgid "-fira-verbose=<number> Control IRA's level of diagnostic messages."
-msgstr ""
+msgstr "-fira-verbose=<antal> Styr IRA:ns nivå på diagnostikmeddelanden."
#: common.opt:706
msgid "Optimize induction variables on trees"
@@ -16273,29 +16217,27 @@ msgstr "Lägg in bågbaserad programprofileringskod"
#: common.opt:873
msgid "Set the top-level directory for storing the profile data."
-msgstr ""
+msgstr "Sätt toppnivåkatalogen för att spara profildata."
#: common.opt:878
msgid "Enable correction of flow inconsistent profile data input"
-msgstr ""
+msgstr "Aktivera korrigering av profilindata med inkonsistent flöde"
#: common.opt:882
msgid "Enable common options for generating profile info for profile feedback directed optimizations"
msgstr "Aktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av återmatad profil"
#: common.opt:886
-#, fuzzy
msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir="
-msgstr "Aktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av återmatad profil"
+msgstr "Aktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av återmatad profil, och sätt -fprofile-dir="
#: common.opt:890
msgid "Enable common options for performing profile feedback directed optimizations"
msgstr "Aktivera vanliga flaggor för att utföra optimeringar styrda av återmatad profil"
#: common.opt:894
-#, fuzzy
msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir="
-msgstr "Aktivera vanliga flaggor för att utföra optimeringar styrda av återmatad profil"
+msgstr "Aktivera vanliga flaggor för att utföra optimeringar styrda av återmatad profil, och sätt -fprofile-dir="
#: common.opt:898
msgid "Insert code to profile values of expressions"
@@ -16379,24 +16321,23 @@ msgstr "Schemalägg om instruktioner efter registertilldelning"
#: common.opt:994
msgid "Schedule instructions using selective scheduling algorithm"
-msgstr ""
+msgstr "Använd selektive schemaläggninsalgoritm för schemaläggning av instruktioner"
#: common.opt:998
-#, fuzzy
msgid "Run selective scheduling after reload"
-msgstr "Använd dataspekulation efter omläsning"
+msgstr "Kör selektiv schemaläggning efter omläsning"
#: common.opt:1002
msgid "Perform software pipelining of inner loops during selective scheduling"
-msgstr ""
+msgstr "Utför programvarurörläggning av inre slingor under selektiv schemaläggning"
#: common.opt:1006
msgid "Perform software pipelining of outer loops during selective scheduling"
-msgstr ""
+msgstr "Utför programvarurörläggning av yttre slingor under selektiv schemaläggning"
#: common.opt:1010
msgid "Reschedule pipelined regions without pipelining"
-msgstr ""
+msgstr "Schemalägg om rörlagda regioner utan rörläggning"
#: common.opt:1016
msgid "Allow premature scheduling of queued insns"
@@ -16455,9 +16396,8 @@ msgid "Insert stack checking code into the program"
msgstr "Lägg in stackkontrollkod i programmet"
#: common.opt:1080
-#, fuzzy
msgid "Insert stack checking code into the program. Same as -fstack-check=specific"
-msgstr "Lägg in stackkontrollkod i programmet"
+msgstr "Lägg in stackkontrollkod i programmet. Samma som -fstack-check=specific"
#: common.opt:1087
msgid "Trap if the stack goes past <register>"
@@ -16540,9 +16480,8 @@ msgid "Transform condition stores into unconditional ones"
msgstr "Transformera villkorliga lagringar till ovillkorliga"
#: common.opt:1186
-#, fuzzy
msgid "Perform conversions of switch initializations."
-msgstr "Utför konvertering av villkorliga hopp till villkorlig exekvering"
+msgstr "Utför konvertering av switch-initieringar."
#: common.opt:1190
msgid "Enable SSA dead code elimination optimization on trees"
@@ -16561,9 +16500,8 @@ msgid "Enable Full Redundancy Elimination (FRE) on trees"
msgstr "Aktivera fullständig överflödseliminering (FRE) i träd"
#: common.opt:1206
-#, fuzzy
msgid "Enable loop distribution on trees"
-msgstr "Aktivera slingvektorisering i träd"
+msgstr "Aktivera slingdistribution i träd"
#: common.opt:1210
msgid "Enable loop invariant motion on trees"
@@ -16696,9 +16634,8 @@ msgid "Construct webs and split unrelated uses of single variable"
msgstr "Konstruera nät och dela orelaterade användningar av en enskild variabel"
#: common.opt:1357
-#, fuzzy
msgid "Enable conditional dead code elimination for builtin calls"
-msgstr "Aktivera eliminering av död kod i SSA-optimeringen i träd"
+msgstr "Aktivera villkorlig eliminering av död för inbyggda anrop"
#: common.opt:1361
msgid "Perform whole program optimizations"
@@ -16917,7 +16854,7 @@ msgstr "båda argumenten till %<__builtin___clear_cache%> måste vara pekare"
#: builtins.c:6011 builtins.c:6026
#, gcc-internal-format
msgid "%qD changed semantics in GCC 4.4"
-msgstr ""
+msgstr "%qD bytte semantik i GCC 4.4"
#. All valid uses of __builtin_va_arg_pack () are removed during
#. inlining.
@@ -16976,7 +16913,7 @@ msgstr "andra parametern till %<va_start%> är inte det sista namngivna argumente
#: builtins.c:11661
#, gcc-internal-format
msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage"
-msgstr ""
+msgstr "odefinierat beteende när andra parametern till %<va_start%> är deklarerad med lagringsklass %<register%>"
#: builtins.c:11776
msgid "%Kfirst argument of %D must be a pointer, second integer constant"
@@ -16996,11 +16933,11 @@ msgstr "%Kanrop av %D kan komma att spilla över destinationsbufferten"
#: builtins.c:12077
msgid "%Kattempt to free a non-heap object %qD"
-msgstr ""
+msgstr "%Kförsök att frigöra ett icke-heap-objekt %qD"
#: builtins.c:12079
msgid "%Kattempt to free a non-heap object"
-msgstr ""
+msgstr "%Kförsök att frigöra ett icke-heap-objekt"
#: c-common.c:1026
#, gcc-internal-format
@@ -17093,9 +17030,9 @@ msgid "use -flax-vector-conversions to permit conversions between vectors with d
msgstr "använd -flax-vector-conversions för att tillåta konvertering mellan vektorer med olika elementtyper eller antal underdelar"
#: c-common.c:1548
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conversion to %qT from boolean expression"
-msgstr "konvertering till %qT från %qT kan ändra dess värde"
+msgstr "konvertering till %qT från booleskt uttryck"
#: c-common.c:1570
#, gcc-internal-format
@@ -17431,9 +17368,9 @@ msgid "section of %q+D conflicts with previous declaration"
msgstr "sektion %q+D står i konflikt med tidigare deklaration"
#: c-common.c:5877
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "section of %q+D cannot be overridden"
-msgstr "%q+#D kan inte överlagras"
+msgstr "sektion i %q+D kan inte åsidosättas"
#: c-common.c:5885
#, gcc-internal-format
@@ -17476,9 +17413,9 @@ msgid "alignment for %q+D must be at least %d"
msgstr "justering för %q+D måste vara åtminstone %d"
#: c-common.c:5995
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D cannot be declared weak"
-msgstr "funktionen %qs kan inte deklareras %<mutable%>"
+msgstr "inline-funktionen %q+D kan inte deklareras svag"
#: c-common.c:6024
#, gcc-internal-format
@@ -17648,17 +17585,17 @@ msgstr "begärd position är mindre än noll"
#: c-common.c:7036
#, gcc-internal-format
msgid "Bad option %s to optimize attribute."
-msgstr ""
+msgstr "Felaktig flagga %s till optimize-attribut."
#: c-common.c:7039
#, gcc-internal-format
msgid "Bad option %s to pragma attribute"
-msgstr ""
+msgstr "Felaktig flagga %s till pragma-attribut"
#: c-common.c:7232
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "not enough arguments to function %qE"
-msgstr "för få argument till funktionen %qE"
+msgstr "inte tillräckligt med argument till funktionen %qE"
#: c-common.c:7237 c-typeck.c:2540
#, gcc-internal-format
@@ -17666,19 +17603,19 @@ msgid "too many arguments to function %qE"
msgstr "för många argument till funktionen %qE"
#: c-common.c:7267 c-common.c:7313
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-floating-point argument in call to function %qE"
-msgstr "argument som inte är flyttal till funktionen %qs"
+msgstr "argument som inte är flyttal i anrop till funktionen %qE"
#: c-common.c:7290
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-floating-point arguments in call to function %qE"
-msgstr "argument som inte är flyttal till funktionen %qs"
+msgstr "argument som inte är flyttal i anrop till funktionen %qE"
#: c-common.c:7306
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-const integer argument %u in call to function %qE"
-msgstr "argument som inte är flyttal till funktionen %qs"
+msgstr "heltalsargument %u som inte är konstant i anrop till funktionen %qE"
#: c-common.c:7532
#, gcc-internal-format
@@ -17751,89 +17688,89 @@ msgid "array subscript has type %<char%>"
msgstr "vektorindex har typen %<char%>"
#: c-common.c:8083
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<+%> inside %<<<%>"
-msgstr "föreslår parenteser runt + eller - inuti skift"
+msgstr "föreslår parenteser runt %<+%> inuti %<<<%>"
#: c-common.c:8086
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<-%> inside %<<<%>"
-msgstr "föreslår parenteser runt + eller - inuti skift"
+msgstr "föreslår parenteser runt %<-%> inuti %<<<%>"
#: c-common.c:8092
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<+%> inside %<>>%>"
-msgstr "föreslår parenteser runt + eller - inuti skift"
+msgstr "föreslår parenteser runt %<+%> inuti %<>>%>"
#: c-common.c:8095
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<-%> inside %<>>%>"
-msgstr "föreslår parenteser runt + eller - inuti skift"
+msgstr "föreslår parenteser runt %<-%> inuti %<>>%>"
#: c-common.c:8101
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<&&%> within %<||%>"
-msgstr "föreslår parenteser runt && inuti ||"
+msgstr "föreslår parenteser runt %<&&%> inuti %<||%>"
#: c-common.c:8110
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around arithmetic in operand of %<|%>"
-msgstr "föreslår parenteser runt aritmetik inuti operanden till |"
+msgstr "föreslår parenteser runt aritmetik i operanden till %<|%>"
#: c-common.c:8115
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<|%>"
-msgstr "föreslår parenteser runt jämförelse inuti operanden till |"
+msgstr "föreslår parenteser runt jämförelse i operanden till %<|%>"
#: c-common.c:8119
#, gcc-internal-format
msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>"
-msgstr ""
+msgstr "föreslår parenteser runt operanden till %<!%> eller ändra %<|%> till %<||%> eller %<!%> till %<~%>"
#: c-common.c:8129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around arithmetic in operand of %<^%>"
-msgstr "föreslår parenteser runt aritmetik inuti operanden till ^"
+msgstr "föreslår parenteser runt aritmetik i operanden till %<^%>"
#: c-common.c:8134
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<^%>"
-msgstr "föreslår parenteser runt jämförelse inuti operanden till ^"
+msgstr "föreslår parenteser runt jämförelse i operanden till %<^%>"
#: c-common.c:8140
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<+%> in operand of %<&%>"
-msgstr "föreslår parenteser runt + eller - inuti operanden till &"
+msgstr "föreslår parenteser runt %<+%> i operanden till %<&%>"
#: c-common.c:8143
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around %<-%> in operand of %<&%>"
-msgstr "föreslår parenteser runt + eller - inuti operanden till &"
+msgstr "föreslår parenteser runt %<-%> i operanden till %<&%>"
#: c-common.c:8148
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<&%>"
-msgstr "föreslår parenteser runt jämförelser inuti operanden till &"
+msgstr "föreslår parenteser runt jämförelser i operanden till %<&%>"
#: c-common.c:8152
#, gcc-internal-format
msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>"
-msgstr ""
+msgstr "föreslår parenteser runt operanden till %<!%> eller ändra %<&%> till %<&&%> eller %<!%> till %<~%>"
#: c-common.c:8160
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<==%>"
-msgstr "föreslår parenteser runt jämförelse inuti operanden till %s"
+msgstr "föreslår parenteser runt jämförelse i operanden till %<==%>"
#: c-common.c:8166
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<!=%>"
-msgstr "föreslår parenteser runt jämförelse inuti operanden till %s"
+msgstr "föreslår parenteser runt jämförelse i operanden till %<!=%>"
#: c-common.c:8175
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
-msgstr "jämförelser som X<=Y<=Z har inte sin matematiska mening"
+msgstr "jämförelser som %<X<=Y<=Z%> har inte sin matematiska mening"
#: c-common.c:8190
#, gcc-internal-format
@@ -17851,9 +17788,9 @@ msgid "division by zero"
msgstr "division med noll"
#: c-common.c:8244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparison between types %qT and %qT"
-msgstr "jämförelse mellan typer %q#T och %q#T"
+msgstr "jämförelse mellan typer %qT och %qT"
#: c-common.c:8295
#, gcc-internal-format
@@ -17863,7 +17800,7 @@ msgstr "jämförelse mellan heltalsuttryck med och utan tecken"
#: c-common.c:8346
#, gcc-internal-format
msgid "promoted ~unsigned is always non-zero"
-msgstr ""
+msgstr "befodrat ~unsigned är alltid skild från noll"
#: c-common.c:8349
#, gcc-internal-format
@@ -18962,9 +18899,9 @@ msgid "promoted argument %qD doesn%'t match prototype"
msgstr "befordrat argument %qD stämmer inte med prototypen"
#: c-decl.c:6541
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype declaration"
-msgstr "%Hprototypdeklaration"
+msgstr "prototypdeklaration"
#: c-decl.c:6547
#, gcc-internal-format
@@ -18985,14 +18922,14 @@ msgstr "ingen retursats i funktion som returnerar icke-void"
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
#: c-decl.c:6833
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<for%> loop initial declarations are only allowed in C99 mode"
-msgstr "%<for%>-slinga med startdeklaration använd utanför C99-läge"
+msgstr "%<for%>-slinga med startdeklaration är endast tillåtet i C99-läge"
#: c-decl.c:6837
#, gcc-internal-format
msgid "use option -std=c99 or -std=gnu99 to compile your code"
-msgstr ""
+msgstr "använd flagga -std?=c99 eller -std=gnu99 för att kompilera din kod"
#: c-decl.c:6868
#, gcc-internal-format
@@ -19825,9 +19762,9 @@ msgid "floating constant truncated to zero"
msgstr "flyttalskonstant avkortas till noll"
#: c-lex.c:888
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unsupported non-standard concatenation of string literals"
-msgstr "icke-standardsuffix på flyttalskonstant stöds inte"
+msgstr "ej stödd konkatenering av strängliteraler som inte följer standard"
#: c-lex.c:910
#, gcc-internal-format
@@ -19840,34 +19777,34 @@ msgid "invalid expression type for %<#pragma omp atomic%>"
msgstr "ogiltig uttryckstyp för %<#pragma omp atomic%>"
#: c-omp.c:245
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid type for iteration variable %qE"
-msgstr "%Hogiltig typ för iterationsvariabeln %qE"
+msgstr "ogiltig typ för iterationsvariabeln %qE"
#: c-omp.c:258
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE is not initialized"
-msgstr "%H%qE är inte initierad"
+msgstr "%qE är inte initierad"
#: c-omp.c:270
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing controlling predicate"
-msgstr "%Hstyrpredikat saknas"
+msgstr "styrpredikat saknas"
#: c-omp.c:331
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid controlling predicate"
-msgstr "%Hogiltigt styrpredikat"
+msgstr "ogiltigt styrpredikat"
#: c-omp.c:338
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing increment expression"
-msgstr "%Hutelämnat ökningsuttryck"
+msgstr "utelämnat ökningsuttryck"
#: c-omp.c:404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid increment expression"
-msgstr "%Hogiltigt ökningsuttryck"
+msgstr "ogiltigt ökningsuttryck"
#: c-opts.c:150
#, gcc-internal-format
@@ -20010,9 +19947,9 @@ msgid "to generate dependencies you must specify either -M or -MM"
msgstr "för att generera beroenden måste du ange antingen -M eller -MM"
#: c-opts.c:1394
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-MG may only be used with -M or -MM"
-msgstr "-mn används utan -mh eller -ms"
+msgstr "-MG kan endast används med -M eller -MM"
#: c-opts.c:1423
#, gcc-internal-format
@@ -20032,17 +19969,17 @@ msgstr "för sent för #-direktiv att ange felsökningskatalog"
#: c-parser.c:226
#, gcc-internal-format
msgid "identifier %qs conflicts with C++ keyword"
-msgstr ""
+msgstr "identifieraren %qs står i konflikt med ett C++-nyckelord"
#: c-parser.c:971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids an empty translation unit"
-msgstr "%HISO C förbjuder tomma källkodsfiler"
+msgstr "ISO C förbjuder tomma översättningsenheter"
#: c-parser.c:1056 c-parser.c:6085
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C does not allow extra %<;%> outside of a function"
-msgstr "%HISO C tillåter inte extra %<;%> utanför funktioner"
+msgstr "ISO C tillåter inte extra %<;%> utanför funktioner"
#: c-parser.c:1158 c-parser.c:6643
#, gcc-internal-format
@@ -20050,9 +19987,9 @@ msgid "expected declaration specifiers"
msgstr "deklarationsspecificerare förväntades"
#: c-parser.c:1206
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "data definition has no type or storage class"
-msgstr "%Hdatadefinition har ingen typ eller lagringsklass"
+msgstr "datadefinition har ingen typ eller lagringsklass"
#: c-parser.c:1260
#, gcc-internal-format
@@ -20068,9 +20005,9 @@ msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
msgstr "%<=%>, %<,%>, %<;%>, %<asm%> eller %<__attribute__%> förväntades"
#: c-parser.c:1275
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids nested functions"
-msgstr "%HISO C förbjuder nästade funktioner"
+msgstr "ISO C förbjuder nästade funktioner"
#: c-parser.c:1641 c-parser.c:2454 c-parser.c:3091 c-parser.c:3343
#: c-parser.c:4277 c-parser.c:4877 c-parser.c:5284 c-parser.c:5305
@@ -20098,9 +20035,9 @@ msgid "expected %<{%>"
msgstr "%<{%> förväntades"
#: c-parser.c:1706
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids forward references to %<enum%> types"
-msgstr "%HISO C förbjuder framåtreferenser till %<enum%>-typer"
+msgstr "ISO C förbjuder framåtreferenser till %<enum%>-typer"
#: c-parser.c:1812
#, gcc-internal-format
@@ -20108,14 +20045,14 @@ msgid "expected class name"
msgstr "klassnamn förväntades"
#: c-parser.c:1831 c-parser.c:5831
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra semicolon in struct or union specified"
-msgstr "%Hextra semikolon i struktur eller union angivet"
+msgstr "extra semikolon i post eller union angivet"
#: c-parser.c:1860
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no semicolon at end of struct or union"
-msgstr "%Hinget semikolon vid slutet av struktur eller union"
+msgstr "inget semikolon vid slutet av post eller union"
#: c-parser.c:1863
#, gcc-internal-format
@@ -20128,9 +20065,9 @@ msgid "expected specifier-qualifier-list"
msgstr "specificerarkvalificerarlista förväntades"
#: c-parser.c:1952
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids member declarations with no members"
-msgstr "%HISO C förbjuder medlemsdeklarationer utan medlemmar"
+msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar"
#: c-parser.c:2028
#, gcc-internal-format
@@ -20143,9 +20080,9 @@ msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
msgstr "%<:%>, %<,%>, %<;%>, %<}%> eller %<__attribute__%> förväntades"
#: c-parser.c:2086
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<typeof%> applied to a bit-field"
-msgstr "%H%<typeof%> applicerat på ett bitfält"
+msgstr "%<typeof%> applicerat på ett bitfält"
#: c-parser.c:2322
#, gcc-internal-format
@@ -20153,9 +20090,9 @@ msgid "expected identifier or %<(%>"
msgstr "identifierare eller %<(%> förväntades"
#: c-parser.c:2524
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C requires a named argument before %<...%>"
-msgstr "%HISO C kräver ett namngivet argument före %<...%>"
+msgstr "ISO C kräver ett namngivet argument före %<...%>"
#: c-parser.c:2630
#, gcc-internal-format
@@ -20163,9 +20100,9 @@ msgid "expected declaration specifiers or %<...%>"
msgstr "deklarationsspecificerare eller %<...%> förväntades"
#: c-parser.c:2681
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wide string literal in %<asm%>"
-msgstr "%Hbred strängliteral i %<asm%>"
+msgstr "bred strängliteral i %<asm%>"
#: c-parser.c:2687 c-parser.c:6698
#, gcc-internal-format
@@ -20173,29 +20110,29 @@ msgid "expected string literal"
msgstr "strängkonstant förväntades"
#: c-parser.c:3012
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids empty initializer braces"
-msgstr "%HISO C förbjuder tomma krullparenteser som initierare"
+msgstr "ISO C förbjuder tomma klamrar som initierare"
#: c-parser.c:3058
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "obsolete use of designated initializer with %<:%>"
-msgstr "%Hföråldrad användning av designerade initierare med %<:%>"
+msgstr "föråldrad användning av designerade initierare med %<:%>"
#: c-parser.c:3188
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids specifying range of elements to initialize"
-msgstr "%HISO C förbjuder specifiering av intervall av element som skall initieras"
+msgstr "ISO C förbjuder specificering av intervall av element som skall initieras"
#: c-parser.c:3201
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C90 forbids specifying subobject to initialize"
-msgstr "%HISO C90 förbjuder specifiering av subobjekt som skall initieras"
+msgstr "ISO C90 förbjuder specificering av underobjekt som skall initieras"
#: c-parser.c:3208
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "obsolete use of designated initializer without %<=%>"
-msgstr "%Hföråldrad användning av designerade initierare utan %<=%>"
+msgstr "föråldrad användning av designerade initierare utan %<=%>"
#: c-parser.c:3214
#, gcc-internal-format
@@ -20203,9 +20140,9 @@ msgid "expected %<=%>"
msgstr "%<=%> förväntades"
#: c-parser.c:3358
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids label declarations"
-msgstr "%HISO C förbjuder etikettdeklarationer"
+msgstr "ISO C förbjuder etikettdeklarationer"
#: c-parser.c:3363 c-parser.c:3439
#, gcc-internal-format
@@ -20213,14 +20150,14 @@ msgid "expected declaration or statement"
msgstr "deklaration eller sats förväntades"
#: c-parser.c:3393 c-parser.c:3421
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C90 forbids mixed declarations and code"
-msgstr "%HISO C90 förbjuder blandade deklarationer och kod"
+msgstr "ISO C90 förbjuder blandade deklarationer och kod"
#: c-parser.c:3446
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<}%> before %<else%>"
-msgstr "%H%<}%> förväntades före %<else%>"
+msgstr "%<}%> förväntades före %<else%>"
#: c-parser.c:3451
#, gcc-internal-format
@@ -20228,9 +20165,9 @@ msgid "%<else%> without a previous %<if%>"
msgstr "%<else%> utan ett föregående %<if%>"
#: c-parser.c:3467
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label at end of compound statement"
-msgstr "%Hetikett vid slutet av sammansatt sats"
+msgstr "etikett vid slutet av sammansatt sats"
#: c-parser.c:3510
#, gcc-internal-format
@@ -20238,9 +20175,9 @@ msgid "expected %<:%> or %<...%>"
msgstr "%<:%> eller %<...%> förväntades"
#: c-parser.c:3544
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "a label can only be part of a statement and a declaration is not a statement"
-msgstr "%Hen etikett kan endast vara en del av en sats och en deklaration är inte en sats"
+msgstr "en etikett kan endast vara en del av en sats och en deklaration är inte en sats"
#: c-parser.c:3706
#, gcc-internal-format
@@ -20257,39 +20194,39 @@ msgid "expected statement"
msgstr "sats förväntades"
#: c-parser.c:3863 cp/parser.c:7228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest braces around empty body in an %<if%> statement"
-msgstr "%Hföreslår klamrar runt tom kropp i en %<if%>-sats"
+msgstr "föreslår klamrar runt tom kropp i en %<if%>-sats"
#: c-parser.c:3889 cp/parser.c:7249
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest braces around empty body in an %<else%> statement"
-msgstr "%Hföreslår klamrar runt tom kropp i en %<else%>-sats"
+msgstr "föreslår klamrar runt tom kropp i en %<else%>-sats"
#: c-parser.c:4009
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "suggest braces around empty body in %<do%> statement"
-msgstr "%Hföreslår klamrar runt tom kropp i %<do%>-sats"
+msgstr "föreslår klamrar runt tom kropp i %<do%>-sats"
#: c-parser.c:4162
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%E qualifier ignored on asm"
-msgstr "%Hkvalificeraren %E ignorerad på asm"
+msgstr "kvalificeraren %E ignorerad på asm"
#: c-parser.c:4450
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids omitting the middle term of a ?: expression"
-msgstr "%HISO C förbjuder utelämnande av den mittersta termen i ett ?: uttryck"
+msgstr "ISO C förbjuder utelämnande av den mittersta termen i ett ?: uttryck"
#: c-parser.c:4846
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "traditional C rejects the unary plus operator"
-msgstr "%Htraditionell C tillåter inte operatorn unärt plus"
+msgstr "traditionell C tillåter inte operatorn unärt plus"
#: c-parser.c:4970
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<sizeof%> applied to a bit-field"
-msgstr "%H%<sizeof%> applicerat på ett bitfält"
+msgstr "%<sizeof%> applicerat på ett bitfält"
#: c-parser.c:5118 c-parser.c:5464 c-parser.c:5486
#, gcc-internal-format
@@ -20297,34 +20234,34 @@ msgid "expected expression"
msgstr "uttryck förväntades"
#: c-parser.c:5145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "braced-group within expression allowed only inside a function"
-msgstr "%Hklammergrupp inuti uttryck endast tillåtet inuti en funktion"
+msgstr "klammergrupp inuti uttryck endast tillåtet inuti en funktion"
#: c-parser.c:5159
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C forbids braced-groups within expressions"
-msgstr "%HISO C förbjuder klammergrupper inuti uttryck"
+msgstr "ISO C förbjuder klammergrupper inuti uttryck"
#: c-parser.c:5346
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "first argument to %<__builtin_choose_expr%> not a constant"
-msgstr "%Hförsta argumentet till %<__builtin_choose_expr%> är inte en konstant"
+msgstr "första argumentet till %<__builtin_choose_expr%> är inte en konstant"
#: c-parser.c:5515
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "compound literal has variable size"
-msgstr "%Hsammansatt literal har variabel storlek"
+msgstr "sammansatt literal har variabel storlek"
#: c-parser.c:5523
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C90 forbids compound literals"
-msgstr "%HISO C90 förbjuder sammansatta literaler"
+msgstr "ISO C90 förbjuder sammansatta literaler"
#: c-parser.c:6048
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra semicolon in method definition specified"
-msgstr "%Hextra semikolon angivet i metoddefintion"
+msgstr "extra semikolon angivet i metoddefintion"
#: c-parser.c:6592
#, gcc-internal-format
@@ -20337,9 +20274,9 @@ msgid "%<#pragma omp flush%> may only be used in compound statements"
msgstr "%<#pragma omp flush%> får bara användas i sammansatta satser"
#: c-parser.c:6614
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<#pragma omp taskwait%> may only be used in compound statements"
-msgstr "%<#pragma omp barrier%> får bara användas i sammansatta satser"
+msgstr "%<#pragma omp taskwait%> får bara användas i sammansatta satser"
#: c-parser.c:6627
#, gcc-internal-format
@@ -20357,9 +20294,9 @@ msgid "too many %qs clauses"
msgstr "för många %qs-klausuler"
#: c-parser.c:6887
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "collapse argument needs positive constant integer expression"
-msgstr "jämförelse mellan heltalsuttryck med och utan tecken"
+msgstr "collapse-argument behöver ett positivt konstant heltalsuttryck"
#: c-parser.c:6952
#, gcc-internal-format
@@ -20377,9 +20314,9 @@ msgid "expected integer expression"
msgstr "heltalsuttryck förväntades"
#: c-parser.c:7049
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<num_threads%> value must be positive"
-msgstr "%H%<num_threads%>-värdet måste vara positivt"
+msgstr "%<num_threads%>-värdet måste vara positivt"
#: c-parser.c:7129
#, gcc-internal-format
@@ -20392,9 +20329,9 @@ msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
msgstr "%<runtime%>-schemaläggning tar ingen %<chunk_size%>-parameter"
#: c-parser.c:7218
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
-msgstr "%<runtime%>-schemaläggning tar ingen %<chunk_size%>-parameter"
+msgstr "%<auto%>-schemaläggning tar ingen %<chunk_size%>-parameter"
#: c-parser.c:7236
#, gcc-internal-format
@@ -20434,27 +20371,27 @@ msgstr "iterationsdeklaration eller initiering förväntades"
#: c-parser.c:7684
#, gcc-internal-format
msgid "not enough perfectly nested loops"
-msgstr ""
+msgstr "inte tillräckligt med perfekt nästade slingor"
#: c-parser.c:7732
#, gcc-internal-format
msgid "collapsed loops not perfectly nested"
-msgstr ""
+msgstr "kollapsade slingor inte perfekt nästade"
#: c-parser.c:7769 cp/pt.c:10362
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "iteration variable %qD should not be firstprivate"
-msgstr "iterationsvariabel %qs får inte vara firstprivate"
+msgstr "iterationsvariabel %qD får inte vara firstprivate"
#: c-parser.c:7919
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<#pragma omp section%> or %<}%>"
-msgstr "%H%<#pragma omp section%> eller %<}%> förväntades"
+msgstr "%<#pragma omp section%> eller %<}%> förväntades"
#: c-parser.c:8189
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a variable"
-msgstr "\"%s\" vid %C är inte en variabel"
+msgstr "%qD är inte en variabel"
#: c-parser.c:8191 cp/semantics.c:3787
#, gcc-internal-format
@@ -20752,84 +20689,84 @@ msgid "unknown option after %<#pragma GCC diagnostic%> kind"
msgstr "okänt alternativ efter %<#pragma GCC diagnostic%> sort"
#: c-pragma.c:879
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "#pragma GCC option is not allowed inside functions"
-msgstr "#pragma GCC diagnostics tillåts inte inuti funktioner"
+msgstr "#pragma GCC option tillåts inte inuti funktioner"
#: c-pragma.c:892
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<#pragma GCC option%> is not a string"
-msgstr "%<#pramga%> är inte tillåtet här"
+msgstr "%<#pragma GCC option%> är inte en sträng"
#: c-pragma.c:919
#, gcc-internal-format
msgid "%<#pragma GCC target (string [,string]...)%> does not have a final %<)%>."
-msgstr ""
+msgstr "%<#pragma GCC target (sträng [,sträng]...)%> har inte en avslutande %<)%>."
#: c-pragma.c:925
#, gcc-internal-format
msgid "#pragma GCC target string... is badly formed"
-msgstr ""
+msgstr "#pragma GCC target sträng... är felaktigt utformad"
#: c-pragma.c:948
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "#pragma GCC optimize is not allowed inside functions"
-msgstr "#pragma GCC diagnostics tillåts inte inuti funktioner"
+msgstr "#pragma GCC optimize tillåts inte inuti funktioner"
#: c-pragma.c:961
#, gcc-internal-format
msgid "%<#pragma GCC optimize%> is not a string or number"
-msgstr ""
+msgstr "%<#pragma GCC optimize%> är inte en sträng eller ett tal"
#: c-pragma.c:987
#, gcc-internal-format
msgid "%<#pragma GCC optimize (string [,string]...)%> does not have a final %<)%>."
-msgstr ""
+msgstr "%<#pragma GCC optimize (sträng [,sträng]...)%> har inte en avslutande %<)%>."
#: c-pragma.c:993
#, gcc-internal-format
msgid "#pragma GCC optimize string... is badly formed"
-msgstr ""
+msgstr "#pragma GCC optimize string... är felaktigt utformad"
#: c-pragma.c:1036
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of %<#pragma push_options%>"
-msgstr "skräp vid slutet av %<#pragma push_macro%>"
+msgstr "skräp vid slutet av %<#pragma push_options%>"
#: c-pragma.c:1066
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of %<#pragma pop_options%>"
-msgstr "skräp vid slutet av %<#pragma pop_macro%>"
+msgstr "skräp vid slutet av %<#pragma pop_options%>"
#: c-pragma.c:1073
#, gcc-internal-format
msgid "%<#pragma GCC pop_options%> without a corresponding %<#pragma GCC push_options%>"
-msgstr ""
+msgstr "%<#pragma GCC pop_options%> utan en motsvarande %<#pragma GCC push_options%>"
#: c-pragma.c:1114
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of %<#pragma reset_options%>"
-msgstr "skräp vid slutet av \"#pragma options\""
+msgstr "skräp vid slutet av %<#pragma reset_options%>"
#: c-pragma.c:1151 c-pragma.c:1158
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected a string after %<#pragma message%>"
-msgstr "[error|warning|ignored] förväntades efter %<#pragma GCC diagnostic%>"
+msgstr "en sträng förväntades efter %<#pragma message%>"
#: c-pragma.c:1153
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "malformed %<#pragma message%>, ignored"
-msgstr "felformaterat #pragma weak, ignoreras"
+msgstr "felformaterat %<#pragma message%>, ignoreras"
#: c-pragma.c:1163
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of %<#pragma message%>"
-msgstr "skräp vid slutet av %<#pragma weak%>"
+msgstr "skräp vid slutet av %<#pragma message%>"
#: c-pragma.c:1166
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "#pragma message: %s"
-msgstr "program: %s\n"
+msgstr "#pragma message: %s"
#: c-typeck.c:173
#, gcc-internal-format
@@ -20948,9 +20885,9 @@ msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 förbjuder indexering av icke-l-värde-vektor"
#: c-typeck.c:2249
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is static but used in inline function %qD which is not static"
-msgstr "%H%qD är statisk men använd i inline-funktionen %qD som inte är statisk"
+msgstr "%qD är statisk men använd i inline-funktionen %qD som inte är statisk"
#: c-typeck.c:2397
#, gcc-internal-format
@@ -21296,9 +21233,9 @@ msgstr "ISO C förbjuder konvertering av objektpekare till funktionspekartyp"
#. strings are complete sentences, visible to gettext and checked at
#. compile time.
#: c-typeck.c:4013 c-typeck.c:4446
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %qT but argument is of type %qT"
-msgstr "format %q.*s förväntar typ %<%T%s%>, men argument %d har typ %qT"
+msgstr "%qT förväntades men argumentet har typ %qT"
#: c-typeck.c:4092
#, gcc-internal-format
@@ -21476,19 +21413,19 @@ msgid "return makes integer from pointer without a cast"
msgstr "retur skapar heltal från pekare utan typkonvertering"
#: c-typeck.c:4449
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incompatible types when assigning to type %qT from type %qT"
-msgstr "inkompatibla typer i tilldelning vid av %qT till %qT"
+msgstr "inkompatibla typer i tilldelning till typ %qT från typ %qT"
#: c-typeck.c:4453
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incompatible types when initializing type %qT using type %qT"
-msgstr "inkompatibla typer i initiering"
+msgstr "inkompatibla typer i när typ %qT inierades med typ %qT"
#: c-typeck.c:4457
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incompatible types when returning type %qT but %qT was expected"
-msgstr "inkompatibla typer i tilldelning vid av %qT till %qT"
+msgstr "inkompatibla typer när typ %qT returnerades men %qT förväntades"
#: c-typeck.c:4514
#, gcc-internal-format
@@ -21748,7 +21685,7 @@ msgstr "funktionsanrop har sammansatt värde"
#: cfgexpand.c:298
#, gcc-internal-format
msgid "Unrecognized GIMPLE statement during RTL expansion"
-msgstr ""
+msgstr "Okänd GIMPLE-sats under RTL-expansion"
#: cfgexpand.c:2343
#, gcc-internal-format
@@ -22246,9 +22183,9 @@ msgid "failed to reclaim unneeded function"
msgstr "misslyckades att återta funktion som inte behövs"
#: cgraphunit.c:1343
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nodes with unreleased memory found"
-msgstr "noder utan släppt minne funna"
+msgstr "noder med ej frigjort minne funna"
#: collect2.c:1209
#, gcc-internal-format
@@ -22408,7 +22345,7 @@ msgstr " %s"
#: dbxout.c:3227
#, gcc-internal-format
msgid "common symbol debug info is not structured as symbol+offset"
-msgstr ""
+msgstr "gemensam symbolfelsökningsinformation är inte strukturerad som symbol+avstånd"
#: diagnostic.c:712
#, gcc-internal-format
@@ -22524,9 +22461,9 @@ msgid "invalid argument %qs to -fdebug-prefix-map"
msgstr "ogiltigt argument %qs till -fdebug-prefix-map"
#: final.c:1533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the frame size of %wd bytes is larger than %wd bytes"
-msgstr "storleken på %q+D är större än %wd byte"
+msgstr "ramstorleken på %wd byte är större än %wd byte"
#: fixed-value.c:104
#, gcc-internal-format
@@ -22750,9 +22687,9 @@ msgid "can't seek PCH file: %m"
msgstr "kan inte söka i PCH-fil: %m"
#: gimple.c:1111
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
-msgstr "trädkontroll: förväntade klass %qs, har %qs (%s) i %s, vid %s:%d"
+msgstr "gimple-kontroll: %s(%s) förväntades, har %s(%s) i %s, vid %s:%d"
#: gimplify.c:4660
#, gcc-internal-format
@@ -22815,9 +22752,9 @@ msgid "can't open %s: %m"
msgstr "kan inte öppna %s: %m"
#: graphite.c:5253 toplev.c:1712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Graphite loop optimizations cannot be used"
-msgstr "Aktivera slingoptimeringar på trädnivå"
+msgstr "Graphite-slingoptimeringar kan inte användas"
#: haifa-sched.c:184
#, gcc-internal-format
@@ -22825,24 +22762,24 @@ msgid "fix_sched_param: unknown param: %s"
msgstr "fix_sched_param: okänd param: %s"
#: omp-low.c:1817
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "barrier region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region"
-msgstr "arbetsdelande region får inte vara nära innesluten inuti arbetsdelande, kritisk, ordnad eller huvudregion"
+msgstr "barriärregion får inte vara nära innesluten inuti arbetsdelande, kritisk, ordnad, huvud- eller explicit uppgiftsregion"
#: omp-low.c:1822
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "work-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region"
-msgstr "arbetsdelande region får inte vara nära innesluten inuti arbetsdelande, kritisk, ordnad eller huvudregion"
+msgstr "arbetsdelande region får inte vara nära innesluten inuti arbetsdelande, kritisk, ordnad, huvud- eller explicit uppgiftsregion"
#: omp-low.c:1840
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "master region may not be closely nested inside of work-sharing or explicit task region"
-msgstr "huvudregion får inte vara nära innesluten inuti arbetsdelande region"
+msgstr "huvudregion får inte vara nära innesluten inuti arbetsdelande eller explicit uppgiftsregion"
#: omp-low.c:1855
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ordered region may not be closely nested inside of critical or explicit task region"
-msgstr "ordnad region får inte vara nära innesluten inuti kritisk region"
+msgstr "ordnad region får inte vara nära innesluten inuti kritisk eller explicit uppgiftsregion"
#: omp-low.c:1861
#, gcc-internal-format
@@ -22866,9 +22803,9 @@ msgstr "ogiltig ingång till OpenMP strukturerat block"
#. Otherwise, be vague and lazy, but efficient.
#: omp-low.c:6632
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid branch to/from an OpenMP structured block"
-msgstr "ogiltig utgång från OpenMP strukturerat block"
+msgstr "ogiltig gren till/från OpenMP-strukturerat block"
#: opts.c:171
#, gcc-internal-format
@@ -22912,24 +22849,24 @@ msgid "argument to \"%s\" should be a non-negative integer"
msgstr "argumentet till \"%s\" skall vara ett ickenegativt heltal"
#: opts.c:761
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "disallowed call to %qs"
-msgstr " i anrop till %qD"
+msgstr "otillåtet anrop till %qs"
#: opts.c:1015
#, gcc-internal-format
msgid "Section anchors must be disabled when unit-at-a-time is disabled."
-msgstr ""
+msgstr "Sektionsankare måste vara avaktiverade när enhet-åt-gången är avaktiverat."
#: opts.c:1019
#, gcc-internal-format
msgid "Toplevel reorder must be disabled when unit-at-a-time is disabled."
-msgstr ""
+msgstr "Ordningsändring på toppnivå måste vara avaktiverat när enhet-åt-gången är avaktiverat."
#: opts.c:1034
#, gcc-internal-format
msgid "section anchors must be disabled when toplevel reorder is disabled"
-msgstr ""
+msgstr "sektionsankare måste vara avaktiverade när ordningsändring på toppnivå är avaktiverat"
#: opts.c:1064
#, gcc-internal-format
@@ -22947,9 +22884,9 @@ msgid "-freorder-blocks-and-partition does not work on this architecture"
msgstr "-freorder-blocks-and-partition fungerar inte på denna arkitektur"
#: opts.c:1101
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-fira does not work on this architecture"
-msgstr "-freorder-blocks-and-partition fungerar inte på denna arkitektur"
+msgstr "-fira fungerar inte på denna arkitektur"
#: opts.c:1406
#, gcc-internal-format
@@ -22967,9 +22904,9 @@ msgid "unrecognized visibility value \"%s\""
msgstr "okänt synlighetsvärde \"%s\""
#: opts.c:1925
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown stack check parameter \"%s\""
-msgstr "okänt maskinläge %qs"
+msgstr "okänd stackkontrollparameter \"%s\""
#: opts.c:1951
#, gcc-internal-format
@@ -22982,9 +22919,9 @@ msgid "unknown tls-model \"%s\""
msgstr "okänd tls-modell \"%s\""
#: opts.c:1986
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown ira algorithm \"%s\""
-msgstr "okänt registernamn: %s"
+msgstr "okänd ira-algoritm \"%s\""
#: opts.c:2089
#, gcc-internal-format
@@ -23055,12 +22992,12 @@ msgstr "trasig profileringsinformation: sum_all är mindre än sum_max"
#: profile.c:632
#, gcc-internal-format
msgid "correcting inconsistent profile data"
-msgstr ""
+msgstr "korrigerar inkonsistent profildata"
#: profile.c:642
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "corrupted profile info: profile data is not flow-consistent"
-msgstr "trasig profileringsinformation: båge från %i till %i överskred maximalt antal"
+msgstr "trasig profileringsinformation: profileringsdata är inte flödeskonsistent"
#: profile.c:660
#, gcc-internal-format
@@ -23437,14 +23374,14 @@ msgid "__builtin_saveregs not supported by this target"
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
#: targhooks.c:728
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "target attribute is not supported on this machine"
-msgstr "attributet %qE stöds inte på denna plattform"
+msgstr "målattribut stöds inte på denna maskin"
#: targhooks.c:738
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "#pragma GCC target is not supported for this machine"
-msgstr "#pragma extern_prefix stöds inte på denna målarkitektur"
+msgstr "#pragma GCC target stöds inte för denna maskin"
#: tlink.c:482
#, gcc-internal-format
@@ -23667,19 +23604,19 @@ msgid "invalid conditional operand"
msgstr "ogiltig villkorlig operand"
#: tree-cfg.c:2934
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid position or size operand to BIT_FIELD_REF"
-msgstr "ogiltig begränsning för operand"
+msgstr "ogiltig position eller storleksoperand till BIT_FIELD_REF"
#: tree-cfg.c:2941
#, gcc-internal-format
msgid "integral result type precision does not match field size of BIT_FIELD_REF"
-msgstr ""
+msgstr "precisionen på typen på heltalsresultatet stämmer inte med fältstorleken på BIT_FIELD_REF"
#: tree-cfg.c:2949
#, gcc-internal-format
msgid "mode precision of non-integral result does not match field size of BIT_FIELD_REF"
-msgstr ""
+msgstr "lägesprecisionen på resultat av icke-heltalstyp stämmer imte med fältstorleken på BIT_FIELD_REF"
#: tree-cfg.c:2960
#, gcc-internal-format
@@ -23742,24 +23679,24 @@ msgid "type mismatch in component reference"
msgstr "typfel i komponentreferens"
#: tree-cfg.c:3210
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-function in gimple call"
-msgstr "funktionen kan inte inline:as"
+msgstr "icke-funktion i gimple-anrop"
#: tree-cfg.c:3217
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid LHS in gimple call"
-msgstr "ogiltigt PC i radnummertabell"
+msgstr "ogiltig vänstersida i gimple-anrop"
#: tree-cfg.c:3233
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid conversion in gimple call"
-msgstr "ogiltigt versionsnummer \"%s\""
+msgstr "ogiltig convertering i gimple-anrop"
#: tree-cfg.c:3258
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid operands in gimple comparison"
-msgstr "ogiltiga operander i komplext uttryck"
+msgstr "ogiltiga operander i gimple-jämförelse"
#: tree-cfg.c:3276
#, gcc-internal-format
@@ -23769,12 +23706,12 @@ msgstr "typfel i jämförelseuttryck"
#: tree-cfg.c:3302
#, gcc-internal-format
msgid "non-register as LHS of unary operation"
-msgstr ""
+msgstr "icke-register som vänstersida av unär operation"
#: tree-cfg.c:3308
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid operand in unary operation"
-msgstr "ogiltig operand i unär icke"
+msgstr "ogiltig operand i unär operation"
#: tree-cfg.c:3343
#, gcc-internal-format
@@ -23782,9 +23719,9 @@ msgid "invalid types in nop conversion"
msgstr "ogiltiga typer i nop-konvertering"
#: tree-cfg.c:3357
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid types in fixed-point conversion"
-msgstr "ogiltiga typer i nop-konvertering"
+msgstr "ogiltiga typer i fixdecimalskonvertering"
#: tree-cfg.c:3370
#, gcc-internal-format
@@ -23797,19 +23734,19 @@ msgid "invalid types in conversion to integer"
msgstr "ogiltiga typer i konvertering till heltal"
#: tree-cfg.c:3418
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-trivial conversion in unary operation"
-msgstr "icketrivial konvertering vid tilldelning"
+msgstr "icketrivial konvertering i unär operation"
#: tree-cfg.c:3445
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-register as LHS of binary operation"
-msgstr "elementär binär operation"
+msgstr "ej register som vänstersida av binär operation"
#: tree-cfg.c:3452
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid operands in binary operation"
-msgstr "ogiltiga operander binärt uttryck"
+msgstr "ogiltiga operander binär operation"
#: tree-cfg.c:3467
#, gcc-internal-format
@@ -23822,9 +23759,9 @@ msgid "type mismatch in shift expression"
msgstr "typfel i skiftuttryck"
#: tree-cfg.c:3506
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type mismatch in vector shift expression"
-msgstr "typfel i skiftuttryck"
+msgstr "typfel i vektorskiftuttryck"
#: tree-cfg.c:3522
#, gcc-internal-format
@@ -23864,22 +23801,22 @@ msgstr "typfel i adressuttryck"
#: tree-cfg.c:3701 tree-cfg.c:3727
#, gcc-internal-format
msgid "invalid rhs for gimple memory store"
-msgstr ""
+msgstr "ogiltig högersida för gimple-minneslagring"
#: tree-cfg.c:3793
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid operand in return statement"
-msgstr "ogiltig operand till switch-sats"
+msgstr "ogiltig operand i retursats"
#: tree-cfg.c:3805
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid conversion in return statement"
-msgstr "ogiltig operand till switch-sats"
+msgstr "ogiltig konvertering i retursats"
#: tree-cfg.c:3829
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "goto destination is neither a label nor a pointer"
-msgstr "indexerat värde är varken en vektor eller pekare"
+msgstr "goto-destination är varken en etikett eller en pekare"
#: tree-cfg.c:3844
#, gcc-internal-format
@@ -23887,19 +23824,19 @@ msgid "invalid operand to switch statement"
msgstr "ogiltig operand till switch-sats"
#: tree-cfg.c:3864
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Invalid PHI result"
-msgstr "ogiltigt IACC-argument"
+msgstr "Ogiltigt PHI-resultat"
#: tree-cfg.c:3876
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Invalid PHI argument"
-msgstr "ogiltigt IACC-argument"
+msgstr "Ogiltigt PHI-argument"
#: tree-cfg.c:3882
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Incompatible types in PHI argument"
-msgstr "inkompatibla typer i tilldelning"
+msgstr "Inkompatibla typer i PHI-argument"
#: tree-cfg.c:4007
#, gcc-internal-format
@@ -23907,14 +23844,14 @@ msgid "verify_gimple failed"
msgstr "verify_gimple misslyckades"
#: tree-cfg.c:4041
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid function in call statement"
-msgstr "ogiltig interpunktion %qc i begränsning"
+msgstr "ogiltig funktion i anropsats"
#: tree-cfg.c:4052
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid pure const state for function"
-msgstr "ogiltig lagringsklass för funktionen %qs"
+msgstr "ogiltigt pure-const-tillstånd för funktion"
#: tree-cfg.c:4062 tree-ssa.c:845 tree-ssa.c:855
#, gcc-internal-format
@@ -23937,9 +23874,9 @@ msgid "Dead STMT in EH table"
msgstr "Dött STMT i EH-tabell"
#: tree-cfg.c:4191
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "gimple_bb (phi) is set to a wrong basic block"
-msgstr "bb_for_stmt (phi) är satt till ett fel grundblock"
+msgstr "gimple_bb (phi) är satt till ett felaktigt grundblock"
#: tree-cfg.c:4202
#, gcc-internal-format
@@ -23947,9 +23884,9 @@ msgid "missing PHI def"
msgstr "PHI-definition saknas"
#: tree-cfg.c:4213
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PHI argument is not a GIMPLE value"
-msgstr "PHI def är inte ett GIMPLE-värde"
+msgstr "PHI-argument är inte ett GIMPLE-värde"
#: tree-cfg.c:4222 tree-cfg.c:4267
#, gcc-internal-format
@@ -23957,19 +23894,19 @@ msgid "incorrect sharing of tree nodes"
msgstr "felaktig delning av trädnoder"
#: tree-cfg.c:4237
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid GIMPLE statement"
-msgstr "är inte en giltig GIMPLE-sats"
+msgstr "ogiltig GIMPLE-sats"
#: tree-cfg.c:4246
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "gimple_bb (stmt) is set to a wrong basic block"
-msgstr "bb_for_stmt (stmt) är satt till ett fel grundblock"
+msgstr "gimple_bb (sats) är satt till ett felaktigt grundblock"
#: tree-cfg.c:4258
#, gcc-internal-format
msgid "incorrect entry in label_to_block_map.\n"
-msgstr ""
+msgstr "felaktig post i label_to_block_map.\n"
#: tree-cfg.c:4283
#, gcc-internal-format
@@ -24014,9 +23951,9 @@ msgstr "fall igenom-båge efter styrsats i gb %d"
# bb -> basic block -> grundblock -> gb
#: tree-cfg.c:4419
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "true/false edge after a non-GIMPLE_COND in bb %d"
-msgstr "sant/falskt-båge efter en icke-COND_EXPR i gb %d"
+msgstr "sant/falskt-båge efter en icke-GIMPLE_COND i gb %d"
#: tree-cfg.c:4442 tree-cfg.c:4464 tree-cfg.c:4477 tree-cfg.c:4546
#, gcc-internal-format
@@ -24034,9 +23971,9 @@ msgid "return edge does not point to exit in bb %d"
msgstr "returbåge pekar inte på utgång i bb %d"
#: tree-cfg.c:4512
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found default case not at the start of case vector"
-msgstr "hittade standardfall som inte var vid slutet av case-vektor"
+msgstr "hittade standardfall som inte var vid början av case-vektor"
#: tree-cfg.c:4520
#, gcc-internal-format
@@ -24059,9 +23996,9 @@ msgid "%H%<noreturn%> function does return"
msgstr "%H%<noreturn%>-funktion returnerar"
#: tree-cfg.c:7056
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "control reaches end of non-void function"
-msgstr "%Hflödet når slutet på en icke-void-funktion"
+msgstr "flödet når slutet på en icke-void-funktion"
#: tree-cfg.c:7118
#, gcc-internal-format
@@ -24246,9 +24183,9 @@ msgid "%Hlikely type-punning may break strict-aliasing rules: object %<%s%s%> of
msgstr "%Htrolig typstampning kan göra sönder regler för strikt aliasning: objekt %<%s%s%> av huvudtyp %qT refereras vid eller nära %s:%d och kan vara ett alias för objekt %<%s%s%> av huvudtyp %qT som refereras vid eller nära %s:%d."
#: tree-ssa-alias-warnings.c:969
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "dereferencing type-punned pointer %D will break strict-aliasing rules"
-msgstr "dereferering av en typstampad pekare kommer bryta strikta aliasregler"
+msgstr "dereferens av en typstampad pekare %D kommer bryta regler för strikt aliasing"
#: tree-ssa.c:252
#, gcc-internal-format
@@ -24426,14 +24363,14 @@ msgid "%J%qD was declared here"
msgstr "%J%qD deklarerades här"
#: tree-ssa.c:1517
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is used uninitialized in this function"
-msgstr "%H%qD används oinitierad i denna funktion"
+msgstr "%qD används oinitierad i denna funktion"
#: tree-ssa.c:1520 tree-ssa.c:1559
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD may be used uninitialized in this function"
-msgstr "%H%qD kan användas oinitierad i denna funktion"
+msgstr "%qD kan användas oinitierad i denna funktion"
#: tree-vrp.c:4919
#, gcc-internal-format
@@ -24461,12 +24398,12 @@ msgid "assuming signed overflow does not occur when simplifying conditional"
msgstr "antar att teckenspill inte förekommer vid förenkling av villkor"
#: tree-vrp.c:5620
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparison always false due to limited range of data type"
msgstr "jämförelsen är alltid falsk på grund av begränsat intervall för datatypen"
#: tree-vrp.c:5623
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparison always true due to limited range of data type"
msgstr "jämförelsen är alltid sann på grund av begränsat intervall för datatypen"
@@ -24586,19 +24523,20 @@ msgid "Dead histogram"
msgstr "Dött histogram"
#: value-prof.c:407
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Histogram value statement does not correspond to the statement it is associated with"
-msgstr "Histogramvärdesats motsvarar inte satsen detta är associerat med"
+msgstr "Histogramvärdesats motsvarar inte satsen den är associerat med"
#: value-prof.c:420
#, gcc-internal-format
msgid "verify_histograms failed"
msgstr "verify_histograms misslyckades"
+# BB -> basic block -> grundblock -> GB
#: value-prof.c:467
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Correcting inconsistent value profile: %s profiler overall count (%d) does not match BB count (%d)"
-msgstr "%HTrasig värdeprofil: totalt profilerarantal för %s (%d) stämmer inte med BB-antal (%d)"
+msgstr "Rättar inkonsistent värdeprofil: totalt profilerarantal för %s (%d) motsvarar inte GB-antal (%d)"
#: value-prof.c:477
#, gcc-internal-format
@@ -25291,22 +25229,22 @@ msgstr "det går inte att ange både -msep-data och -mid-shared-library"
#: config/bfin/bfin.c:2631
#, gcc-internal-format
msgid "-mmulticore can only be used with BF561"
-msgstr ""
+msgstr "-mmulticore kan endast användas med BF561"
#: config/bfin/bfin.c:2634
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mcorea should be used with -mmulticore"
-msgstr "-frepo måste användas tillsammans med -c"
+msgstr "-fcorea måste användas tillsammans med -mmulticore"
#: config/bfin/bfin.c:2637
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mcoreb should be used with -mmulticore"
-msgstr "-frepo måste användas tillsammans med -c"
+msgstr "-fcoreb måste användas tillsammans med -mmulticore"
#: config/bfin/bfin.c:2640
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mcorea and -mcoreb can't be used together"
-msgstr "-mglibc och -muclibc används tillsammans"
+msgstr "-mcorea och -mcoreb kan inte användas tillsammans"
#: config/bfin/bfin.c:5178
#, gcc-internal-format
@@ -25563,30 +25501,30 @@ msgid "can't set position in PCH file: %m"
msgstr "det går inte att sätta position i PCH-fil: %m"
#: config/i386/i386.c:2656 config/i386/i386.c:2882
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %stune=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -mtune="
+msgstr "felaktigt värde (%s) till %stune=%s %s"
#: config/i386/i386.c:2698
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %sstringop-strategy=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -mstringop-strategy="
+msgstr "felaktigt värde (%s) till %sstringop-strategy=%s %s"
#: config/i386/i386.c:2702
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%stune=x86-64%s is deprecated. Use %stune=k8%s or %stune=generic%s instead as appropriate."
-msgstr "-mtune=x86-64 bör undvikas. Använd istället det som passar av -mtune=k8 och -mtune=generic."
+msgstr "%stune=x86-64%s bör undvikas. Använd istället det som passar av %stune=k8%s och %stune=generic%s."
# "generic" är bokstavligt argument till flaggan
#: config/i386/i386.c:2712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "generic CPU can be used only for %stune=%s %s"
-msgstr "generic CPU kan användas endast till flaggan -mtune="
+msgstr "generic CPU kan användas endast till %stune=%s %s"
#: config/i386/i386.c:2715 config/i386/i386.c:2843
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %sarch=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -march="
+msgstr "felaktigt värde (%s) till %sarch=%s %s"
#: config/i386/i386.c:2727
#, gcc-internal-format
@@ -25594,14 +25532,14 @@ msgid "code model %s does not support PIC mode"
msgstr "kodmodellen %s stödjer inte PIC-läge"
#: config/i386/i386.c:2733
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %scmodel=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -mcmodel="
+msgstr "felaktigt värde (%s) till %scmodel=%s %s"
#: config/i386/i386.c:2757
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %sasm=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -masm="
+msgstr "felaktigt värde (%s) till %sasm=%s %s"
#: config/i386/i386.c:2761
#, gcc-internal-format
@@ -25619,49 +25557,49 @@ msgid "CPU you selected does not support x86-64 instruction set"
msgstr "CPU:n du valde stödjer inte instruktionsuppsättningen x86-64"
#: config/i386/i386.c:2901
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%sregparm%s is ignored in 64-bit mode"
-msgstr "-mregparm ignoreras i 64-bitsläge"
+msgstr "%sregparm%s ignoreras i 64-bitsläge"
#: config/i386/i386.c:2904
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%sregparm=%d%s is not between 0 and %d"
-msgstr "-mregparm=%d är inte mellan 0 och %d"
+msgstr "%sregparm=%d%s är inte mellan 0 och %d"
#: config/i386/i386.c:2917
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%salign-loops%s is obsolete, use %salign-loops%s"
-msgstr "-malign-loops är föråldrat, använd -falign-loops"
+msgstr "%salign-loops%s är föråldrat, använd %salign-loops%s"
#: config/i386/i386.c:2923 config/i386/i386.c:2938 config/i386/i386.c:2953
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%salign-loops=%d%s is not between 0 and %d"
-msgstr "-malign-loops=%d är inte mellan 0 och %d"
+msgstr "%salign-loops=%d%s är inte mellan 0 och %d"
#: config/i386/i386.c:2932
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%salign-jumps%s is obsolete, use %salign-jumps%s"
-msgstr "-malign-jumps är föråldrat, använd -falign-jumps"
+msgstr "%salign-jumps%s är föråldrat, använd %salign-jumps%s"
#: config/i386/i386.c:2947
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%salign-functions%s is obsolete, use %salign-functions%s"
-msgstr "-malign-functions är föråldrat, använd -falign-functions"
+msgstr "%salign-functions%s är föråldrat, använd %salign-functions%s"
#: config/i386/i386.c:2982
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%sbranch-cost=%d%s is not between 0 and 5"
-msgstr "-mbranch-cost=%d är inte mellan 0 och 5"
+msgstr "%sbranch-cost=%d%s är inte mellan 0 och 5"
#: config/i386/i386.c:2990
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%slarge-data-threshold=%d%s is negative"
-msgstr "-mlarge-data-threshold=%d är negativ"
+msgstr "%slarge-data-threshold=%d%s är negativ"
#: config/i386/i386.c:3004
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %stls-dialect=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -mtls-dialect="
+msgstr "felaktigt värde (%s) till %stls-dialect=%s %s"
#: config/i386/i386.c:3012
#, gcc-internal-format
@@ -25669,24 +25607,24 @@ msgid "pc%d is not valid precision setting (32, 64 or 80)"
msgstr "pc%d är inte en giltig precisionsinställning (32, 64 eller 80)"
#: config/i386/i386.c:3028
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%srtd%s is ignored in 64bit mode"
-msgstr "-mrtd ignoreras i 64-bitsläge"
+msgstr "%srtd%s ignoreras i 64-bitsläge"
#: config/i386/i386.c:3083
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%spreferred-stack-boundary=%d%s is not between %d and 12"
-msgstr "-mpreferred-stack-boundary=%d är inte mellan %d och 12"
+msgstr "%spreferred-stack-boundary=%d%s är inte mellan %d och 12"
#: config/i386/i386.c:3104
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mincoming-stack-boundary=%d is not between %d and 12"
-msgstr "-mpreferred-stack-boundary=%d är inte mellan %d och 12"
+msgstr "-mincoming-stack-boundary=%d är inte mellan %d och 12"
#: config/i386/i386.c:3117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%ssseregparm%s used without SSE enabled"
-msgstr "-msseregparm använd utan SSE aktiverat"
+msgstr "%ssseregparm%s använd utan SSE aktiverat"
#: config/i386/i386.c:3128 config/i386/i386.c:3142
#, gcc-internal-format
@@ -25699,34 +25637,34 @@ msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "instruktionsuppsättningen 387 avaktiverad, använder SSE-aritmetik"
#: config/i386/i386.c:3154
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value (%s) for %sfpmath=%s %s"
-msgstr "felaktigt värde (%s) till flaggan -mfpmath="
+msgstr "felaktigt värde (%s) till %sfpmath=%s %s"
#: config/i386/i386.c:3170
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown vectorization library ABI type (%s) for %sveclibabi=%s %s"
-msgstr "okänt ABI-typ (%s) till vektoriseringsbibliotek för flaggan -mveclibabi="
+msgstr "okänt ABI-typ (%s) till vektoriseringsbibliotek för %sveclibabi=%s %s"
#: config/i386/i386.c:3190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unwind tables currently require either a frame pointer or %saccumulate-outgoing-args%s for correctness"
-msgstr "utrullning av tabeller kräver antingen en rampekare eller -maccumulate-outgoing-args för att bli korrekt"
+msgstr "utrullning av tabeller kräver antingen en rampekare eller %saccumulate-outgoing-args%s för att bli korrekt"
#: config/i386/i386.c:3203
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
-msgstr "utrullning av tabeller kräver antingen en rampekare eller -maccumulate-outgoing-args för att bli korrekt"
+msgstr "utrullning av tabeller kräver antingen en rampekare eller %saccumulate-outgoing-args%s för att bli korrekt"
#: config/i386/i386.c:3540
#, gcc-internal-format
msgid "attribute(target(\"%s\")) is unknown"
-msgstr ""
+msgstr "attribute(target(\"%s\")) är okänt"
#: config/i386/i386.c:3562
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "option(\"%s\") was already specified"
-msgstr "ACCESS-specifikation vid %L var redan angiven"
+msgstr "option(\"%s\") var redan angivet"
#: config/i386/i386.c:4147 config/i386/i386.c:4191
#, gcc-internal-format
@@ -25764,9 +25702,9 @@ msgid "stdcall and fastcall attributes are not compatible"
msgstr "attributen stdcall och fastcall är inte kompatibla"
#: config/i386/i386.c:4294
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested functions are limited to 2 register parameters"
-msgstr "%s-funktioner begränsas till %d registerparametrar"
+msgstr "nästade funktioner begränsas till 2 registerparametrar"
#: config/i386/i386.c:4378
#, gcc-internal-format
@@ -25799,9 +25737,9 @@ msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr "SSE-vektorargument utan SSE aktiverat ändrar ABI:et"
#: config/i386/i386.c:5581 config/i386/i386.c:5649
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "AVX vector argument without AVX enabled changes the ABI"
-msgstr "MMX-vektorargument utan MMX aktiverat ändrar ABI:et"
+msgstr "AVX-vektorargument utan AVX aktiverat ändrar ABI:et"
#: config/i386/i386.c:5600
#, gcc-internal-format
@@ -25844,34 +25782,34 @@ msgid "the third argument must be a 8-bit immediate"
msgstr "det tredje argumentet måste vara en 8-bitars omedelbar"
#: config/i386/i386.c:23735
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the last argument must be a 4-bit immediate"
-msgstr "det tredje argumentet måste vara en 4-bitars omedelbar"
+msgstr "det sista argumentet måste vara en 4-bitars omedelbar"
#: config/i386/i386.c:23744
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the last argument must be a 2-bit immediate"
-msgstr "det tredje argumentet måste vara en 4-bitars omedelbar"
+msgstr "det sista argumentet måste vara en 2-bitars omedelbar"
#: config/i386/i386.c:23753
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the last argument must be a 1-bit immediate"
-msgstr "det tredje argumentet måste vara en 4-bitars omedelbar"
+msgstr "det sista argumentet måste vara en 1-bits omedelbar"
#: config/i386/i386.c:23762
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the last argument must be a 5-bit immediate"
-msgstr "det tredje argumentet måste vara en 4-bitars omedelbar"
+msgstr "det sista argumentet måste vara en 5-bitars omedelbar"
#: config/i386/i386.c:23771
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the next to last argument must be an 8-bit immediate"
-msgstr "det tredje argumentet måste vara en 8-bitars omedelbar"
+msgstr "det näst sista argumentet måste vara en 8-bitars omedelbar"
#: config/i386/i386.c:23775 config/i386/i386.c:23952
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "the last argument must be an 8-bit immediate"
-msgstr "det tredje argumentet måste vara en 8-bitars omedelbar"
+msgstr "det sista argumentet måste vara en 8-bitars omedelbar"
#: config/i386/i386.c:24010 config/rs6000/rs6000.c:8519
#, gcc-internal-format
@@ -25881,22 +25819,22 @@ msgstr "selektor måste vara en heltalskonstant i intervallet 0..%wi"
#: config/i386/i386.c:24153
#, gcc-internal-format
msgid "%qE needs unknown isa option"
-msgstr ""
+msgstr "%qE behöver en okänd isa-flagga"
#: config/i386/i386.c:24157
#, gcc-internal-format
msgid "%qE needs isa option %s"
-msgstr ""
+msgstr "%qE behöver isa-flaggan %s"
#: config/i386/i386.c:25800
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs attribute only available for 64-bit"
-msgstr "attributet %qs är bara tillämpbart på variabler"
+msgstr "attributet %qs är bara tillgängligt för 64 bitar"
#: config/i386/i386.c:25811 config/i386/i386.c:25820
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ms_abi and sysv_abi attributes are not compatible"
-msgstr "attributen fastcall och stdcall är inte kompatibla"
+msgstr "attributen ms_abi och sysv_abi är inte kompatibla"
#: config/i386/i386.c:25858 config/rs6000/rs6000.c:20747
#, gcc-internal-format
@@ -26151,19 +26089,19 @@ msgid "built-in function %qs not supported for MIPS16"
msgstr "inbyggd funktion %qs stöds inte för MIPS16"
#: config/mips/mips.c:12517
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs does not support MIPS16 code"
-msgstr "%s stödjer inte %s"
+msgstr "%qs stödjer inte MIPS16-kod"
#: config/mips/mips.c:13491
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "MIPS16 PIC for ABIs other than o32 and o64"
-msgstr "MIPS16-kod med hårdvaruflyttal för andra ABI:er än o32 och o64"
+msgstr "MIPS16 PIC för andra ABI:er än o32 och o64"
#: config/mips/mips.c:13494
#, gcc-internal-format
msgid "MIPS16 -mxgot code"
-msgstr ""
+msgstr "MIPS16 -mxgot-kod"
#: config/mips/mips.c:13497
#, gcc-internal-format
@@ -26248,12 +26186,12 @@ msgstr "arkitekturen %qs stödjer inte par-enkel-instruktioner"
#: config/mips/mips.c:13970
#, gcc-internal-format
msgid "%qs requires a target that provides the %qs instruction"
-msgstr ""
+msgstr "%qs kräver ett mål som klarar instruktionen %qs"
#: config/mips/mips.c:14049
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs requires branch-likely instructions"
-msgstr "arkitekturen %qs stödjer inte trolig gren-instruktioner"
+msgstr "%qs kräver trolig gren-instruktioner"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
@@ -26344,95 +26282,95 @@ msgid "-munix=98 option required for C89 Amendment 1 features.\n"
msgstr "flaggan -munix=98 krävs för funktioner från C89 tillägg 1.\n"
#: config/picochip/picochip.c:369
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid AE type specified (%s)\n"
-msgstr "ogiltigt typargument till %qs"
+msgstr "ogiltig AE-typ angiven (%s)\n"
#: config/picochip/picochip.c:392
#, gcc-internal-format
msgid "Invalid mul type specified (%s) - expected mac, mul or none"
-msgstr ""
+msgstr "Ogiltig mul-typ angiven (%s) - mac, mul eller none förväntades"
#: config/picochip/picochip.c:624
#, gcc-internal-format
msgid "unexpected mode %s encountered in picochip_emit_save_register\n"
-msgstr ""
+msgstr "oväntat läge %s dök upp i picochip_emit_save_register\n"
#: config/picochip/picochip.c:791
#, gcc-internal-format
msgid "Defaulting to stack for %s register creation\n"
-msgstr ""
+msgstr "Väljer standardläget stack när %s-register skapas\n"
#: config/picochip/picochip.c:1330
#, gcc-internal-format
msgid "LCFI labels have already been deferred."
-msgstr ""
+msgstr "LCFI-etiketter har redan fördröjts."
#: config/picochip/picochip.c:1393
#, gcc-internal-format
msgid "LM label has already been deferred."
-msgstr ""
+msgstr "LM-etikett har redan fördröjts."
#: config/picochip/picochip.c:1673
#, gcc-internal-format
msgid "picochip_asm_output_opcode - Found multiple lines in VLIW packet %s\n"
-msgstr ""
+msgstr "picochip_asm_output_opcode - Hittade multipla rader i VLIW-paket %s\n"
#: config/picochip/picochip.c:1776
#, gcc-internal-format
msgid "picochip_asm_output_opcode - can't output unknown operator %c\n"
-msgstr ""
+msgstr "picochip_asm_output_opcode - kan inte mata ut okänd operator %c\n"
#: config/picochip/picochip.c:2028 config/picochip/picochip.c:2087
#, gcc-internal-format
msgid "%s: At least one operand can't be handled"
-msgstr ""
+msgstr "%s: Åtminstone en operand kan inte hanteras"
#: config/picochip/picochip.c:2168
#, gcc-internal-format
msgid "Unknown short branch in %s (type %d)\n"
-msgstr ""
+msgstr "Okänd kort gren i %s (typ %d)\n"
#: config/picochip/picochip.c:2205
#, gcc-internal-format
msgid "Unknown long branch in %s (type %d)\n"
-msgstr ""
+msgstr "Okänd lång gren i %s (typ %d)\n"
#: config/picochip/picochip.c:2245 config/picochip/picochip.c:2313
#, gcc-internal-format
msgid "PUT uses port array index %d, which is out of range [%d..%d)"
-msgstr ""
+msgstr "PUT använder portvektorindex %d, som är utanför intervallet [%d..%d)"
#: config/picochip/picochip.c:2279
#, gcc-internal-format
msgid "GET uses port array index %d, which is out of range [%d..%d)"
-msgstr ""
+msgstr "GET använder portvektorindex %d, som är utanför intervallet [%d..%d)"
#: config/picochip/picochip.c:3122
#, gcc-internal-format
msgid "Too many ALU instructions emitted (%d)\n"
-msgstr ""
+msgstr "För många ALU-instruktioner utmatade (%d)\n"
#: config/picochip/picochip.c:3753 config/picochip/picochip.c:3846
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s: Second source operand is not a constant"
-msgstr "\"o\"-operand är ej konstant"
+msgstr "%s: Andra källoperanden är inte en konstant"
#: config/picochip/picochip.c:3756 config/picochip/picochip.c:3807
#: config/picochip/picochip.c:3849
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s: Third source operand is not a constant"
-msgstr "\"o\"-operand är ej konstant"
+msgstr "%s: Tredje källoperanden är inte en konstant"
#: config/picochip/picochip.c:3810
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s: Fourth source operand is not a constant"
-msgstr "\"o\"-operand är ej konstant"
+msgstr "%s: Fjärde källoperanden är inte en konstant"
#: config/picochip/picochip.c:4144
#, gcc-internal-format
msgid "%s (disable warning using -mno-inefficient-warnings)"
-msgstr ""
+msgstr "%s (avaktivera varningen med -mno-inefficient-warnings)"
#: config/rs6000/host-darwin.c:62
#, gcc-internal-format
@@ -26494,29 +26432,29 @@ msgid "junk at end of #pragma longcall"
msgstr "skräp vid slutet av #pragma longcall"
#: config/rs6000/rs6000-c.c:2989
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s only accepts %d arguments"
-msgstr "argumenten stämmer inte överens"
+msgstr "%s tar endast %d argument"
#: config/rs6000/rs6000-c.c:2994
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s only accepts 1 argument"
-msgstr "%q+D tar bara noll eller två argument"
+msgstr "%s tar endast ett argument"
#: config/rs6000/rs6000-c.c:2999 config/rs6000/rs6000-c.c:3006
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s only accepts 2 arguments"
-msgstr "%q+D tar bara noll eller två argument"
+msgstr "%s tar bara 2 argument"
#: config/rs6000/rs6000-c.c:3067
#, gcc-internal-format
msgid "vec_extract only accepts 2 arguments"
-msgstr ""
+msgstr "vec_extract tar endast 2 argument"
#: config/rs6000/rs6000-c.c:3124
#, gcc-internal-format
msgid "vec_insert only accepts 3 arguments"
-msgstr ""
+msgstr "vec_insert tar endast 3 argument"
#: config/rs6000/rs6000-c.c:3206
#, gcc-internal-format
@@ -26539,14 +26477,14 @@ msgid "-m64 requires PowerPC64 architecture, enabling"
msgstr "-m64 kräver PowerPC64-arkitektur, aktiverar"
#: config/rs6000/rs6000.c:1605
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "AltiVec not supported in this target"
-msgstr "stackgränser stöds inte på denna målarkitektur"
+msgstr "AltiVec stödjs inte på denna målarkitektur"
#: config/rs6000/rs6000.c:1607
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Spe not supported in this target"
-msgstr "stackgränser stöds inte på denna målarkitektur"
+msgstr "Spe stöds inte på denna målarkitektur"
#: config/rs6000/rs6000.c:1634
#, gcc-internal-format
@@ -26574,9 +26512,9 @@ msgid "unknown -m%s= option specified: '%s'"
msgstr "okänt flagga -m%s= angiven: \"%s\""
#: config/rs6000/rs6000.c:2215
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown value %s for -mfpu"
-msgstr "felaktigt värde %qs till flaggan -mcpu"
+msgstr "okänt värde %s till -mfpu"
#: config/rs6000/rs6000.c:2408
#, gcc-internal-format
@@ -26631,12 +26569,12 @@ msgstr "okänd -malign-XXXXX-flagga angiven: \"%s\""
#: config/rs6000/rs6000.c:2517
#, gcc-internal-format
msgid "-msingle-float option equivalent to -mhard-float"
-msgstr ""
+msgstr "flaggan -msingle-float är likvärdig med -mhard-float"
#: config/rs6000/rs6000.c:2533
#, gcc-internal-format
msgid "-msimple-fpu option ignored"
-msgstr ""
+msgstr "flaggan -msimple-fpu ignoreras"
#: config/rs6000/rs6000.c:5355
#, gcc-internal-format
@@ -26771,12 +26709,12 @@ msgstr "användning av decimala flyttalstyper i AltiVec-typer är ogiltigt"
#: config/rs6000/rs6000.c:22851
#, gcc-internal-format
msgid "emitting microcode insn %s\t[%s] #%d"
-msgstr ""
+msgstr "matar ut mikrokodsinstruktion %s\t[%s] nr %d"
#: config/rs6000/rs6000.c:22855
#, gcc-internal-format
msgid "emitting conditional microcode insn %s\t[%s] #%d"
-msgstr ""
+msgstr "matar ut villkorlig mikrokodsinstruktion %s\t[%s] nr %d"
#: config/rs6000/aix43.h:38 config/rs6000/aix51.h:37 config/rs6000/aix52.h:38
#: config/rs6000/aix53.h:38 config/rs6000/aix61.h:38
@@ -26998,9 +26936,9 @@ msgid "%qs attribute only applies to interrupt functions"
msgstr "attributet %qs är bara tillämpbart på avbrottsfunktioner"
#: config/sh/sh.c:8121
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs attribute is supported only for SH2A"
-msgstr "attributet %qE stöds inte på denna plattform"
+msgstr "attributet %qs stöds endast för SH2A"
#: config/sh/sh.c:8151
#, gcc-internal-format
@@ -27008,14 +26946,14 @@ msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr "attributet interrupt_handler är inte kompatibelt -m5-compact"
#: config/sh/sh.c:8168
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs attribute only applies to SH2A"
-msgstr "attributet %qs fungerar bara på funktioner"
+msgstr "attributet %qs är bara tillämpbart på SH2A"
#: config/sh/sh.c:8190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "`%s' attribute argument should be between 0 to 255"
-msgstr "attributargument \"%s\" skall vara mellan 18 och 255"
+msgstr "attributargument \"%s\" skall vara mellan 0 och 255"
#. The argument must be a constant string.
#: config/sh/sh.c:8263
@@ -27491,9 +27429,9 @@ msgid "comparison between %q#T and %q#T"
msgstr "jämförelse mellan %q#T och %q#T"
#: cp/call.c:4406
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no corresponding deallocation function for %qD"
-msgstr "ingen motsvarande avallokeringsfunktion för \"%D\""
+msgstr "ingen motsvarande avallokeringsfunktion för %qD"
#: cp/call.c:4411
#, gcc-internal-format
@@ -27548,7 +27486,7 @@ msgstr " initierar argument %P till %qD"
#: cp/call.c:4566
#, gcc-internal-format
msgid "converting to %qT from initializer list would use explicit constructor %qD"
-msgstr ""
+msgstr "att konvertera till %qT från initierarlista skulle använda den explicita konstrueraren %qD"
#: cp/call.c:4723
#, gcc-internal-format
@@ -28045,7 +27983,7 @@ msgstr "sats utan effekt"
#: cp/cp-gimplify.c:1150
#, gcc-internal-format
msgid "%qE implicitly determined as %<firstprivate%> has reference type"
-msgstr ""
+msgstr "%qE som implicit bestämts som %<firstprivate%> har referenstyp"
#: cp/cvt.c:90
#, gcc-internal-format
@@ -28085,7 +28023,7 @@ msgstr "konvertering från %q#T till %q#T"
#: cp/cvt.c:667
#, gcc-internal-format
msgid "the result of the conversion is unspecified because %qE is outside the range of type %qT"
-msgstr ""
+msgstr "resultatet av konverteringen är odefinierad eftersom %qE är utanför intervallet för typen %qT"
#: cp/cvt.c:678 cp/cvt.c:698
#, gcc-internal-format
@@ -28328,14 +28266,14 @@ msgid "redundant redeclaration of %qD in same scope"
msgstr "överflödig omdeklaration av %qD i samma definitionsområde"
#: cp/decl.c:1610
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "deleted definition of %qD"
-msgstr "omdefiniering av %q+D"
+msgstr "tog bort definition av %qD"
#: cp/decl.c:1611
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "after previous declaration %q+D"
-msgstr "tidigare deklaration %q+D"
+msgstr "efter tidigare deklaration %q+D"
#. From [temp.expl.spec]:
#.
@@ -28573,9 +28511,9 @@ msgid "ignoring attributes applied to dependent type %qT without an associated d
msgstr "ignorerar attribut använda på beroende typ %qT utan en associerad deklaration"
#: cp/decl.c:4032
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "typedef %qD is initialized (use decltype instead)"
-msgstr "typedef %qD är initierad (använd __typeof__ istället)"
+msgstr "typedef %qD är initierad (använd decltype istället)"
#: cp/decl.c:4050
#, gcc-internal-format
@@ -28623,9 +28561,9 @@ msgid "elements of array %q#D have incomplete type"
msgstr "elementen i vektorn %q#D har ofullständig typ"
#: cp/decl.c:4264 cp/decl.c:5495
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q#D has no initializer"
-msgstr "deklarationen av %q#D har %<extern%> och är initierad"
+msgstr "deklarationen av %q#D har ingen initierare"
#: cp/decl.c:4266
#, gcc-internal-format
@@ -28726,9 +28664,9 @@ msgid "too many initializers for %qT"
msgstr "för många initierare för %qT"
#: cp/decl.c:5001
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "elements of array %q#T have incomplete type"
-msgstr "elementen i vektorn %q#D har ofullständig typ"
+msgstr "element i vektorn %q#T har ofullständig typ"
#: cp/decl.c:5010
#, gcc-internal-format
@@ -28736,9 +28674,9 @@ msgid "variable-sized object %qD may not be initialized"
msgstr "objekt %qD med variabel storlek kan inte initieras"
#: cp/decl.c:5012
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable-sized compound literal"
-msgstr "%HISO C90 förbjuder sammansatta literaler"
+msgstr "sammansatta literal med variabel storlek"
#: cp/decl.c:5066
#, gcc-internal-format
@@ -28751,9 +28689,9 @@ msgid "scalar object %qD requires one element in initializer"
msgstr "skalärt objekt %qD kräver ett element i initieraren"
#: cp/decl.c:5117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
-msgstr "%qD måste initieras med en konstruerare, inte med %<{...}%>"
+msgstr "i C++98 måste %qD initieras med en konstruerare, inte med %<{...}%>"
#: cp/decl.c:5149
#, gcc-internal-format
@@ -28806,9 +28744,9 @@ msgid "non-static data member %qD has Java class type"
msgstr "icke-statisk datamedlem %qD har Javaklasstyp"
#: cp/decl.c:5778 cp/decl2.c:835
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD cannot be defaulted"
-msgstr "%q+#D kan inte deklareras"
+msgstr "%qD kan inte ha standardvärde"
#: cp/decl.c:5789
#, gcc-internal-format
@@ -29166,9 +29104,9 @@ msgid "%<long%> and %<short%> specified together for %qs"
msgstr "%<long%> och %<short%> angivna tillsammans för %qs"
#: cp/decl.c:7895
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<short%> or %<long%> invalid for %qs"
-msgstr "%<long%> eller %<short%> ogiltig för %qs"
+msgstr "%<short%> eller %<long%> ogiltig för %qs"
#: cp/decl.c:7903
#, gcc-internal-format
@@ -29211,14 +29149,14 @@ msgid "storage class specifiers invalid in parameter declarations"
msgstr "specificerare av lagringsklass ogiltig i parameterdeklarationer"
#: cp/decl.c:8059
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter declared %<auto%>"
-msgstr "parametern %q+D deklarerad %<inline%>"
+msgstr "parametern deklarerad %<auto%>"
#: cp/decl.c:8068
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<virtual%> outside class declaration"
-msgstr "virtual utanför klassdeklaration"
+msgstr "%<virtual%> utanför klassdeklaration"
#: cp/decl.c:8086
#, gcc-internal-format
@@ -29241,24 +29179,24 @@ msgid "storage class specifiers invalid in friend function declarations"
msgstr "ogiltig specificerare av lagringsklass i vänfunktionsdeklarationer"
#: cp/decl.c:8257
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of %<auto%> in conversion operator"
-msgstr "ogiltig användning av %<this%> i icke-medlemsfunktion"
+msgstr "ogiltig användning av %<auto%> i konverteringsoperator"
#: cp/decl.c:8262
#, gcc-internal-format
msgid "%qs function uses %<auto%> type specifier without late return type"
-msgstr ""
+msgstr "funktionen %qs använder typspecificeraren %<auto%> utan sen returtyp"
#: cp/decl.c:8268
#, gcc-internal-format
msgid "%qs function with late return type has %qT as its type rather than plain %<auto%>"
-msgstr ""
+msgstr "funktionen %qs med sen returtyp har %qT som sin typ istället för bara %<auto%>"
#: cp/decl.c:8276
#, gcc-internal-format
msgid "%qs function with late return type not declared with %<auto%> type specifier"
-msgstr ""
+msgstr "funktionen %qs med sen returtyp är inte deklarerad med typspecificeraren %<auto%>"
#: cp/decl.c:8309
#, gcc-internal-format
@@ -29858,7 +29796,7 @@ msgstr "%Jtidigare definition här"
#: cp/decl.c:10927
#, gcc-internal-format
msgid "underlying type %<%T%> of %<%T%> must be an integral type"
-msgstr ""
+msgstr "underliggande typ %<%T%> till %<%T%> måste vara en heltalstyp"
#. DR 377
#.
@@ -29880,9 +29818,9 @@ msgid "overflow in enumeration values at %qD"
msgstr "överspill i uppräkningsvärden vid %qD"
#: cp/decl.c:11242
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "enumerator value %E is too large for underlying type %<%T%>"
-msgstr "uppräkningsvärde för %qE är inte en heltalskonstant"
+msgstr "uppräkningsvärde %E är för stort för den underliggande typen %<%T%>"
#: cp/decl.c:11339
#, gcc-internal-format
@@ -30114,14 +30052,14 @@ msgid "default argument missing for parameter %P of %q+#D"
msgstr "standardargumentet saknas för parameter %P till %q+#D"
#: cp/decl2.c:3780 cp/search.c:1919
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "deleted function %q+D"
-msgstr "upprepad using-deklaration %q+D"
+msgstr "tog bort funktion %q+D"
#: cp/decl2.c:3781
#, gcc-internal-format
msgid "used here"
-msgstr ""
+msgstr "använd här"
#. We really want to suppress this warning in system headers,
#. because libstdc++ uses variadic templates even when we aren't
@@ -30129,7 +30067,7 @@ msgstr ""
#: cp/error.c:2701
#, gcc-internal-format
msgid "%s only available with -std=c++0x or -std=gnu++0x"
-msgstr ""
+msgstr "%s är endast tillgänglig med -std=c++0x eller -std=gnu++0x"
#. Can't throw a reference.
#: cp/except.c:286
@@ -30390,9 +30328,9 @@ msgid "bad array initializer"
msgstr "felaktig vektorinitierare"
#: cp/init.c:1457 cp/semantics.c:2490
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qT is not a class type"
-msgstr "%q#T är inte en klass"
+msgstr "%qT är inte en klasstyp"
#: cp/init.c:1511
#, gcc-internal-format
@@ -30569,7 +30507,7 @@ msgstr "manglar typeof, använd decltype istället"
#: cp/mangle.c:2282
#, gcc-internal-format
msgid "mangling function-style cast with more than one argument"
-msgstr ""
+msgstr "manglar typkonvertering i funktionsstil med mer än ett argument"
#: cp/mangle.c:2310
#, gcc-internal-format
@@ -30597,9 +30535,9 @@ msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr "ickestatisk referensmedlem %q#D, det går inte att använda standardtilldelningsoperatorn"
#: cp/method.c:816
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "synthesized method %qD first required here "
-msgstr "%Hsyntetiserad metod %qD krävs första gången här"
+msgstr "syntetiserad metod %qD krävs första gången här "
#: cp/method.c:1159
#, gcc-internal-format
@@ -30628,14 +30566,14 @@ msgid "as %qD"
msgstr "som %qD"
#: cp/name-lookup.c:805
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q#D with C language linkage"
-msgstr "omdeklaration av %q+D utan länkklass"
+msgstr "deklaration av %q#D med C-länkklass"
#: cp/name-lookup.c:809
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "due to different exception specifications"
-msgstr "Generera kod för att kontrollera undantagsspecifikationer"
+msgstr "på grund av olika undantagsspecifikationer"
#: cp/name-lookup.c:899
#, gcc-internal-format
@@ -30695,9 +30633,9 @@ msgid " matches this %q+D under old rules"
msgstr " stämmer med denna %q+D under gamla regler"
#: cp/name-lookup.c:1218 cp/name-lookup.c:1226
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "name lookup of %qD changed for ISO %<for%> scoping"
-msgstr "namnuppslagning av %qD ändrad för ny räckvidd i %<for%> enligt ISO"
+msgstr "namnuppslagning av %qD ändrad för räckvidd i %<for%> enligt ISO"
#: cp/name-lookup.c:1220
#, gcc-internal-format
@@ -30710,9 +30648,9 @@ msgid " using obsolete binding at %q+D"
msgstr " använder föråldrad bindning vid %q+D"
#: cp/name-lookup.c:1235 cp/parser.c:10068
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "(if you use %<-fpermissive%> G++ will accept your code)"
-msgstr "(om du använder --fpermissive kommer G++ acceptera din kod)"
+msgstr "(om du använder %<--fpermissive%> kommer G++ acceptera din kod)"
#: cp/name-lookup.c:1291
#, gcc-internal-format
@@ -30881,54 +30819,54 @@ msgid "identifier %<%s%> will become a keyword in C++0x"
msgstr "identifieraren %<%s%> kommer att bli ett nyckelord i C++0x"
#: cp/parser.c:2081
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<#pragma%> is not allowed here"
-msgstr "%<#pramga%> är inte tillåtet här"
+msgstr "%H%<#pragma%> är inte tillåtet här"
#: cp/parser.c:2112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<%E::%E%> has not been declared"
-msgstr "%<%E::%E%> har inte deklarerats"
+msgstr "%H%<%E::%E%> har inte deklarerats"
#: cp/parser.c:2115
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<::%E%> has not been declared"
-msgstr "%<::%E%> har inte deklarerats"
+msgstr "%H%<::%E%> har inte deklarerats"
#: cp/parser.c:2118
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hrequest for member %qE in non-class type %qT"
-msgstr "begäran av medlem %qE i typ %qT som inte är en klass"
+msgstr "%Hbegäran av medlem %qE i typ %qT som inte är en klasstyp"
#: cp/parser.c:2121
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<%T::%E%> has not been declared"
-msgstr "%<%T::%E%> har inte deklarerats"
+msgstr "%H%<%T::%E%> har inte deklarerats"
#: cp/parser.c:2124
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE has not been declared"
-msgstr "%qE har inte deklarerats"
+msgstr "%H%qE har inte deklarerats"
#: cp/parser.c:2127
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<%E::%E%> %s"
-msgstr "%<%E::%E%> %s"
+msgstr "%H%<%E::%E%> %s"
#: cp/parser.c:2129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<::%E%> %s"
-msgstr "%<::%E%> %s"
+msgstr "%H%<::%E%> %s"
#: cp/parser.c:2131
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE %s"
-msgstr "%qE %s"
+msgstr "%H%qE %s"
#: cp/parser.c:2166
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<long long long%> is too long for GCC"
-msgstr "%<long long long%> är för långt för GCC"
+msgstr "%H%<long long long%> är för långt för GCC"
#: cp/parser.c:2170
#, gcc-internal-format
@@ -30936,14 +30874,14 @@ msgid "ISO C++ 1998 does not support %<long long%>"
msgstr "ISO C++ 1998 stödjer inte %<long long%>"
#: cp/parser.c:2190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hduplicate %qs"
-msgstr "dubblerad %qs"
+msgstr "%Hdubblerad %qs"
#: cp/parser.c:2234
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hnew types may not be defined in a return type"
-msgstr "nya typer får inte definieras i en returtyp"
+msgstr "%Hnya typer får inte definieras i en returtyp"
#: cp/parser.c:2236
#, gcc-internal-format
@@ -30951,41 +30889,41 @@ msgid "(perhaps a semicolon is missing after the definition of %qT)"
msgstr "(kanske ett semikolon saknas efter definitionen av %qT)"
#: cp/parser.c:2256
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qT is not a template"
-msgstr "%qT är inte en mall"
+msgstr "%H%qT är inte en mall"
#: cp/parser.c:2258
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE is not a template"
-msgstr "%qE är inte en mall"
+msgstr "%H%qE är inte en mall"
#: cp/parser.c:2260
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid template-id"
-msgstr "ogiltigt mall-id"
+msgstr "%Hogiltigt mall-id"
#: cp/parser.c:2322
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid use of template-name %qE without an argument list"
-msgstr "ogiltig användning av mallnamnet %qE utan en argumentlista"
+msgstr "%Hogiltig användning av mallnamnet %qE utan en argumentlista"
#: cp/parser.c:2325
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid use of destructor %qD as a type"
-msgstr "ogiltig användning av destruerare %qD som en typ"
+msgstr "%Hogiltig användning av destruerare %qD som en typ"
#. Something like 'unsigned A a;'
#: cp/parser.c:2328
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid combination of multiple type-specifiers"
-msgstr "ogiltig kombination av flera typkvalificerare"
+msgstr "%Hogiltig kombination av flera typkvalificerare"
#. Issue an error message.
#: cp/parser.c:2333
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE does not name a type"
-msgstr "%qE är inte namnet på en typ"
+msgstr "%H%qE är inte namnet på en typ"
#: cp/parser.c:2366
#, gcc-internal-format
@@ -30993,19 +30931,19 @@ msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr "(kanske %<typename %T::%E%> avsågs)"
#: cp/parser.c:2381
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE in namespace %qE does not name a type"
-msgstr "%qE i namnrymden %qE är inte namnet på en typ"
+msgstr "%H%qE i namnrymden %qE är inte namnet på en typ"
#: cp/parser.c:2384
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE in class %qT does not name a type"
-msgstr "%qE i klassen %qT är inte namnet på en typ"
+msgstr "%H%qE i klassen %qT är inte namnet på en typ"
#: cp/parser.c:2946
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hunsupported non-standard concatenation of string literals"
-msgstr "icke-standardsuffix på flyttalskonstant stöds inte"
+msgstr "%Hicke-standardsuffix på flyttalskonstant stöds inte"
#: cp/parser.c:3224
#, gcc-internal-format
@@ -31013,44 +30951,44 @@ msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ förbjuder klammergrupper inuti uttryck"
#: cp/parser.c:3235
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hstatement-expressions are not allowed outside functions nor in template-argument lists"
-msgstr "satsuttryck är inte tillåtna utanför funktioner eller i mallargumentlistor"
+msgstr "%Hsatsuttryck är inte tillåtna utanför funktioner eller i mallargumentlistor"
#: cp/parser.c:3294
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<this%> may not be used in this context"
-msgstr "%<this%> kan inte användas i detta sammanhang"
+msgstr "%H%<this%> kan inte användas i detta sammanhang"
#: cp/parser.c:3480
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hlocal variable %qD may not appear in this context"
-msgstr "lokal variabel %qD kan inte förekomma i detta sammanhang"
+msgstr "%Hlokal variabel %qD kan inte förekomma i detta sammanhang"
#: cp/parser.c:3780
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hscope %qT before %<~%> is not a class-name"
-msgstr "räckvidd %qT före %<~%> är inte ett klassnamn"
+msgstr "%Hräckvidd %qT före %<~%> är inte ett klassnamn"
#: cp/parser.c:3882
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hdeclaration of %<~%T%> as member of %qT"
-msgstr "deklaration av %<~%T%> som medlem av %qT"
+msgstr "%Hdeklaration av %<~%T%> som medlem av %qT"
#: cp/parser.c:3896
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htypedef-name %qD used as destructor declarator"
-msgstr "typedef-namnet %qD använt som destruerardeklarerare"
+msgstr "%Htypedef-namnet %qD använt som destruerardeklarerare"
#: cp/parser.c:4110
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD used without template parameters"
-msgstr "%qD använd utan mallparametrar"
+msgstr "%H%qD använd utan mallparametrar"
#: cp/parser.c:4114 cp/parser.c:14760 cp/parser.c:17038
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hreference to %qD is ambiguous"
-msgstr "referens till %qD är tvetydig"
+msgstr "%Hreferens till %qD är tvetydig"
#: cp/parser.c:4160 cp/pt.c:5599
#, gcc-internal-format
@@ -31065,19 +31003,19 @@ msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ förbjuder sammansatta literaler"
#: cp/parser.c:4951
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE does not have class type"
-msgstr "%qE har inte klasstyp"
+msgstr "%H%qE har inte klasstyp"
#: cp/parser.c:5035
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid use of %qD"
-msgstr "ogiltigt användning av %qD"
+msgstr "%Hogiltig användning av %qD"
#: cp/parser.c:5612
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Harray bound forbidden after parenthesized type-id"
-msgstr "vektorgräns är förbjuden efter typ-id i parenteser"
+msgstr "%Hvektorgräns är förbjuden efter typ-id i parenteser"
#: cp/parser.c:5615
#, gcc-internal-format
@@ -31085,9 +31023,9 @@ msgid "try removing the parentheses around the type-id"
msgstr "försök ta bort parenteserna runt typ-id:t"
#: cp/parser.c:5808
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hexpression in new-declarator must have integral or enumeration type"
-msgstr "uttryck i new-deklarerare måste ha heltals- eller uppräkningstyp"
+msgstr "%Huttryck i new-deklarerare måste ha heltals- eller uppräkningstyp"
#: cp/parser.c:6062
#, gcc-internal-format
@@ -31105,14 +31043,14 @@ msgid "suggest parentheses around %<>>%> expression"
msgstr "föreslår parenteser runt %<>>%>-uttryck"
#: cp/parser.c:7016
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hcase label %qE not within a switch statement"
-msgstr "case-etikett %qE är inte i en switch-sats"
+msgstr "%Hcase-etikett %qE är inte i en switch-sats"
#: cp/parser.c:7028
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hcase label not within a switch statement"
-msgstr "case-etikett är inte i en switch-sats"
+msgstr "%Hcase-etikett är inte i en switch-sats"
#: cp/parser.c:7146
#, gcc-internal-format
@@ -31120,24 +31058,24 @@ msgid "%H%<else%> without a previous %<if%>"
msgstr "%H%<else%> utan ett föregående %<if%>"
#: cp/parser.c:7625
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hbreak statement not within loop or switch"
-msgstr "break-sats som inte är i en loop eller switch"
+msgstr "%Hbreak-sats som inte är i en slinga eller switch"
#: cp/parser.c:7633 cp/parser.c:7653
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid exit from OpenMP structured block"
-msgstr "ogiltig utgång från OpenMP strukturerat block"
+msgstr "%Hogiltig utgång från OpenMP strukturerat block"
#: cp/parser.c:7636
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hbreak statement used with OpenMP for loop"
-msgstr "break-sats använd med OpenMP-for-slinga"
+msgstr "%Hbreak-sats använd med OpenMP-for-slinga"
#: cp/parser.c:7646
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hcontinue statement not within a loop"
-msgstr "continue-sats som inte är i en loop"
+msgstr "%Hcontinue-sats som inte är i en slinga"
#. Issue a warning about this use of a GNU extension.
#: cp/parser.c:7689
@@ -31151,44 +31089,44 @@ msgid "extra %<;%>"
msgstr "extra %<;%>"
#: cp/parser.c:8050
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<__label__%> not at the beginning of a block"
-msgstr "%<__label__%> som inte inleder ett block"
+msgstr "%H%<__label__%> som inte inleder ett block"
#: cp/parser.c:8187
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hmixing declarations and function-definitions is forbidden"
-msgstr "att blanda deklarationer och funktionsdefinitioner är förbjudet"
+msgstr "%Hatt blanda deklarationer och funktionsdefinitioner är förbjudet"
#: cp/parser.c:8327
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<friend%> used outside of class"
-msgstr "%<friend%> använd utanför en klass"
+msgstr "%H%<friend%> använd utanför en klass"
#: cp/parser.c:8383
#, gcc-internal-format
msgid "%H%<auto%> will change meaning in C++0x; please remove it"
-msgstr ""
+msgstr "%H%<auto%> kommer ändra betydelse i C++0x; var god ta bort det"
#: cp/parser.c:8502
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hclass definition may not be declared a friend"
-msgstr "klassdefinition kan inte deklareras som en vän"
+msgstr "%Hklassdefinition kan inte deklareras som en vän"
#: cp/parser.c:8572 cp/parser.c:15946
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplates may not be %<virtual%>"
-msgstr "mallar får inte vara %<virtual%>"
+msgstr "%Hmallar får inte vara %<virtual%>"
#: cp/parser.c:9049
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Honly constructors take base initializers"
-msgstr "bara konstruerare tar basinitierare"
+msgstr "%Hbara konstruerare tar basinitierare"
#: cp/parser.c:9071
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hcannot expand initializer for member %<%D%>"
-msgstr "det går inte att expandera initierare för medlem %<%qD%>"
+msgstr "%Hdet går inte att expandera initierare för medlem %<%qD%>"
#: cp/parser.c:9126
#, gcc-internal-format
@@ -31196,9 +31134,9 @@ msgid "anachronistic old-style base class initializer"
msgstr "anakronistisk gammaldags basklassinitierare"
#: cp/parser.c:9182
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hkeyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
-msgstr "nyckelordet %<typename%> är inte tillåtet i detta sammanhang (en kvalificerat medlemsinitierare är implicit en typ)"
+msgstr "%Hnyckelordet %<typename%> är inte tillåtet i detta sammanhang (en kvalificerat medlemsinitierare är implicit en typ)"
#. Warn that we do not support `export'.
#: cp/parser.c:9528
@@ -31207,19 +31145,19 @@ msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "nyckelordet %<export%> är inte implementerat och kommer ignoreras"
#: cp/parser.c:9710 cp/parser.c:9808 cp/parser.c:9914
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate parameter pack %qD cannot have a default argument"
-msgstr "mallparameterpaket %qD kan inte ha ett standardargument"
+msgstr "%Hmallparameterpaket %qD kan inte ha ett standardargument"
#: cp/parser.c:9713
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate parameter pack cannot have a default argument"
-msgstr "mallparameterpaket kan inte ha ett standardargument"
+msgstr "%Hmallparameterpaket kan inte ha ett standardargument"
#: cp/parser.c:9811 cp/parser.c:9918
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate parameter packs cannot have default arguments"
-msgstr "mallparameterpaket kan inte ha standardargument"
+msgstr "%Hmallparameterpaket kan inte ha standardargument"
#: cp/parser.c:10060
#, gcc-internal-format
@@ -31232,15 +31170,15 @@ msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%
msgstr "%<<:%> är en alternativ stavning av %<[%>. Lägg in mellanrum mellan %<<%> och %<::%>"
#: cp/parser.c:10142
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hparse error in template argument list"
-msgstr "syntaxfel i argumentlista till mall"
+msgstr "%Hsyntaxfel i argumentlista till mall"
#. Explain what went wrong.
#: cp/parser.c:10257
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hnon-template %qD used as template"
-msgstr "icke-mall %qD använd som mall"
+msgstr "%Hicke-mall %qD använd som mall"
#: cp/parser.c:10259
#, gcc-internal-format
@@ -31248,9 +31186,9 @@ msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "använd %<%T::template %D%> för att indikera att det är en mall"
#: cp/parser.c:10796
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate specialization with C linkage"
-msgstr "mallspecialisering med C-länkning"
+msgstr "%Hmallspecialisering med C-länkning"
#: cp/parser.c:11442
#, gcc-internal-format
@@ -31278,37 +31216,37 @@ msgid "attributes ignored on elaborated-type-specifier that is not a forward dec
msgstr "attribut ignoreras för bearbetade typspecificerare som inte är en framåtdeklaration"
#: cp/parser.c:11977
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD is not a namespace-name"
-msgstr "%qD är inte ett namnrymdsnamn"
+msgstr "%H%qD är inte ett namnrymdsnamn"
#: cp/parser.c:12104
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<namespace%> definition is not allowed here"
-msgstr "%<namespace%>-definition är inte tillåten här"
+msgstr "%H%<namespace%>-definition är inte tillåten här"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
#: cp/parser.c:12244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Ha template-id may not appear in a using-declaration"
-msgstr "ett mall-id får inte förekomma i en using-deklaration"
+msgstr "%Hett mall-id får inte förekomma i en using-deklaration"
#: cp/parser.c:12621
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Han asm-specification is not allowed on a function-definition"
-msgstr "en asm-specifikation är inte tillåten på en funktionsdefinition"
+msgstr "%Hen asm-specifikation är inte tillåten på en funktionsdefinition"
#: cp/parser.c:12625
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hattributes are not allowed on a function-definition"
-msgstr "attribut är inte tillåtna vid en funktionsdefinition"
+msgstr "%Hattribut är inte tillåtna vid en funktionsdefinition"
#: cp/parser.c:12778
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinitializer provided for function"
-msgstr "initierare angiven för funktion"
+msgstr "%Hinitierare angiven för funktion"
#: cp/parser.c:12800
#, gcc-internal-format
@@ -31316,19 +31254,19 @@ msgid "attributes after parenthesized initializer ignored"
msgstr "attribut efter initierare inom parentes ignoreras"
#: cp/parser.c:13198
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Harray bound is not an integer constant"
-msgstr "vektorgräns är inte en heltalskonstant"
+msgstr "%Hvektorgräns är inte en heltalskonstant"
#: cp/parser.c:13310
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<%T::%E%> is not a type"
-msgstr "%<%T::%E%> är inte en typ"
+msgstr "%H%<%T::%E%> är inte en typ"
#: cp/parser.c:13337
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid use of constructor as a template"
-msgstr "ogiltig användning av konstruerare som en mall"
+msgstr "%Hogiltig användning av konstruerare som en mall"
#: cp/parser.c:13339
#, gcc-internal-format
@@ -31336,24 +31274,24 @@ msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualifi
msgstr "använd %<%T::%D%> istället för %<%T::%D%> för att namnge konstrueraren i ett kvalificerat namn"
#: cp/parser.c:13512
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD is a namespace"
-msgstr "%qD är en namnrymd"
+msgstr "%H%qD är en namnrymd"
#: cp/parser.c:13587
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hduplicate cv-qualifier"
-msgstr "upprepade cv-kvalificerare"
+msgstr "%Hupprepade cv-kvalificerare"
#: cp/parser.c:13699
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of %<auto%>"
-msgstr "ogiltigt användning av %<::%>"
+msgstr "ogiltigt användning av %<auto%>"
#: cp/parser.c:14273
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfile ends in default argument"
-msgstr "filen tar slut i standardargument"
+msgstr "%Hfilen slutar i standardargument"
#: cp/parser.c:14319
#, gcc-internal-format
@@ -31361,19 +31299,23 @@ msgid "deprecated use of default argument for parameter of non-function"
msgstr "användning av standardargument för parametrar till annat än funktioner bör undvikas"
#: cp/parser.c:14322
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hdefault arguments are only permitted for function parameters"
-msgstr "standardargument är endast tillåtna för funktionsparametrar"
+msgstr "%Hstandardargument är endast tillåtna för funktionsparametrar"
+# %s blir antingen den tomma strängen eller "template "
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38761
#: cp/parser.c:14340
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%sparameter pack %qD cannot have a default argument"
-msgstr "%spameterpaket %qD kan inte ha ett standardargument"
+msgstr "%H%sparameterpaket %qD kan inte ha ett standardargument"
+# %s blir antingen den tomma strängen eller "template "
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38761
#: cp/parser.c:14344
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%sparameter pack cannot have a default argument"
-msgstr "%sparameterpaket kan inte ha ett standardargument"
+msgstr "%H%sparameterpaket kan inte ha ett standardargument"
#: cp/parser.c:14607
#, gcc-internal-format
@@ -31381,112 +31323,112 @@ msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ tillåter inte designerade initierare"
#: cp/parser.c:15223
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid class name in declaration of %qD"
-msgstr "ogiltigt klassnamn i deklaration av %qD"
+msgstr "%Hogiltigt klassnamn i deklaration av %qD"
#: cp/parser.c:15236
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hdeclaration of %qD in namespace %qD which does not enclose %qD"
-msgstr "deklaration av %qD i namnrymd %qD som inte innesluter %qD"
+msgstr "%Hdeklaration av %qD i namnrymd %qD som inte innesluter %qD"
#: cp/parser.c:15241
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hdeclaration of %qD in %qD which does not enclose %qD"
-msgstr "deklaration av %qD i %qD som inte innesluter %qD"
+msgstr "%Hdeklaration av %qD i %qD som inte innesluter %qD"
#: cp/parser.c:15255
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hextra qualification not allowed"
-msgstr "extra kvalificerare ignorerad"
+msgstr "%Hextra kvalifikation inte tillåten"
#: cp/parser.c:15267
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Han explicit specialization must be preceded by %<template <>%>"
-msgstr "en explicit specialisering måste föregås av %<template <>%>"
+msgstr "%Hen explicit specialisering måste föregås av %<template <>%>"
#: cp/parser.c:15296
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfunction template %qD redeclared as a class template"
-msgstr "funktionsmall %qD omdeklarerad som en klassmall"
+msgstr "%Hfunktionsmall %qD omdeklarerad som en klassmall"
#: cp/parser.c:15378
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hredefinition of %q#T"
-msgstr "omdefinition av %q#T"
+msgstr "%Homdefinition av %q#T"
#: cp/parser.c:15380
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hprevious definition of %q+#T"
-msgstr "föregående definition av %q+#T"
+msgstr "%Hföregående definition av %q+#T"
#: cp/parser.c:15648
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Ha class-key must be used when declaring a friend"
-msgstr "en klassnyckel måste användas när en vän deklareras"
+msgstr "%Hen klassnyckel måste användas när en vän deklareras"
#: cp/parser.c:15663
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfriend declaration does not name a class or function"
-msgstr "vändeklaration som inte namnger en klass eller funktion"
+msgstr "%Hvändeklaration som inte namnger en klass eller funktion"
#: cp/parser.c:15843
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hpure-specifier on function-definition"
-msgstr "pure-specificerare på funktionsdefinition"
+msgstr "%Hpure-specificerare på funktionsdefinition"
#: cp/parser.c:16150
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hkeyword %<typename%> not allowed outside of templates"
-msgstr "nyckelordet %<typename%> är inte tillåtet utanför mallar"
+msgstr "%Hnyckelordet %<typename%> är inte tillåtet utanför mallar"
#: cp/parser.c:16153
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hkeyword %<typename%> not allowed in this context (the base class is implicitly a type)"
-msgstr "nyckelordet %<typename%> är inte tillåtet i detta sammanhang (basklassen är implicit en typ)"
+msgstr "%Hnyckelordet %<typename%> är inte tillåtet i detta sammanhang (basklassen är implicit en typ)"
#: cp/parser.c:17216
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htoo few template-parameter-lists"
-msgstr "för få mallparameterlistor"
+msgstr "%Hför få mallparameterlistor"
#. Otherwise, there are too many template parameter lists. We have
#. something like:
#.
#. template <class T> template <class U> void S::f();
#: cp/parser.c:17231
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htoo many template-parameter-lists"
-msgstr "för många mallparameterlistor"
+msgstr "%Hför många mallparameterlistor"
#. Issue an error message.
#: cp/parser.c:17505
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hnamed return values are no longer supported"
-msgstr "namngivna returvärden stödjs inte längre"
+msgstr "%Hnamngivna returvärden stödjs inte längre"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
#: cp/parser.c:17580
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid declaration of member template in local class"
-msgstr "ogiltig deklaration av medlemsmall i lokal klass"
+msgstr "%Hogiltig deklaration av medlemsmall i lokal klass"
#: cp/parser.c:17590
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate with C linkage"
-msgstr "mall med C-länkning"
+msgstr "%Hmall med C-länkning"
#: cp/parser.c:17737
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htemplate declaration of %qs"
-msgstr "malldeklaration av %qs"
+msgstr "%Hmalldeklaration av %qs"
#: cp/parser.c:17801
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hexplicit template specialization cannot have a storage class"
-msgstr "explicit mallspecialisering kan inte ha en lagringsklass"
+msgstr "%Hexplicit mallspecialisering kan inte ha en lagringsklass"
#: cp/parser.c:18019
#, gcc-internal-format
@@ -31494,19 +31436,19 @@ msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "%H%<>>%> skulle vara %<> >%> inuti en nästad mallargumentlista"
#: cp/parser.c:18032
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hspurious %<>>%>, use %<>%> to terminate a template argument list"
-msgstr "vilsekommet %<>>%>, använd %<>%> för att avsluta en mallargumentlista"
+msgstr "%Hvilsekommet %<>>%>, använd %<>%> för att avsluta en mallargumentlista"
#: cp/parser.c:18361
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid use of %qD in linkage specification"
-msgstr "ogiltig användning av %qD i länkklasspecifikation"
+msgstr "%Hogiltig användning av %qD i länkklasspecifikation"
#: cp/parser.c:18374
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<__thread%> before %qD"
-msgstr "%<__thread%> före %qD"
+msgstr "%H%<__thread%> före %qD"
#: cp/parser.c:18695
#, gcc-internal-format
@@ -31514,44 +31456,44 @@ msgid "%qs tag used in naming %q#T"
msgstr "%qs-tagg använd vid namngivning av %q#T"
#: cp/parser.c:18716
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD redeclared with different access"
-msgstr "%qD omdeklarerad med annan åtkomst"
+msgstr "%H%qD omdeklarerad med annan åtkomst"
#: cp/parser.c:18734
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<template%> (as a disambiguator) is only allowed within templates"
-msgstr "%<template%> (för att lösa upp tvetydighet) är endast tillåtet inuti mallar"
+msgstr "%H%<template%> (för att lösa upp tvetydighet) är endast tillåtet inuti mallar"
#: cp/parser.c:19000 cp/parser.c:19927 cp/parser.c:20059
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hmisplaced %<@%D%> Objective-C++ construct"
-msgstr "felplacerad Objective-C++-konstruktion %<@%D%>"
+msgstr "%Hfelplacerad Objective-C++-konstruktion %<@%D%>"
#: cp/parser.c:19144
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<@encode%> must specify a type as an argument"
-msgstr "%<@encode%> måste ange en typ som ett argument"
+msgstr "%H%<@encode%> måste ange en typ som ett argument"
#: cp/parser.c:19460
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hinvalid Objective-C++ selector name"
-msgstr "ogiltigt Objective-C++-selekterarnamn"
+msgstr "%Hogiltigt Objective-C++-selekterarnamn"
#: cp/parser.c:19791
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hidentifier expected after %<@protocol%>"
-msgstr "identifierare förväntades efter %<@protocol%>"
+msgstr "%Hidentifierare förväntades efter %<@protocol%>"
#: cp/parser.c:20152
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htoo many %qs clauses"
-msgstr "för många %qs-klausuler"
+msgstr "%Hför många %qs-klausuler"
#: cp/parser.c:20266
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hcollapse argument needs positive constant integer expression"
-msgstr "jämförelse mellan heltalsuttryck med och utan tecken"
+msgstr "%Hcollapse-argument behöver ett positivt konstant heltalsuttryck"
#: cp/parser.c:20555
#, gcc-internal-format
@@ -31559,9 +31501,9 @@ msgid "%Hschedule %<runtime%> does not take a %<chunk_size%> parameter"
msgstr "%H%<runtime%>-schemaläggning tar ingen %<chunk_size%>-parameter"
#: cp/parser.c:20558
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hschedule %<auto%> does not take a %<chunk_size%> parameter"
-msgstr "%H%<runtime%>-schemaläggning tar ingen %<chunk_size%>-parameter"
+msgstr "%H%<auto%>-schemaläggning tar ingen %<chunk_size%>-parameter"
#: cp/parser.c:20706
#, gcc-internal-format
@@ -31571,57 +31513,57 @@ msgstr "%H%qs är inte giltigt för %qs"
#: cp/parser.c:21130
#, gcc-internal-format
msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
-msgstr ""
+msgstr "initiering i parenteser är inte tillåtet i en OpenMP-%<for%>-slinga"
#: cp/parser.c:21242 cp/parser.c:21280
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hiteration variable %qD should not be firstprivate"
-msgstr "iterationsvariabel %qs får inte vara firstprivate"
+msgstr "%Hiterationsvariabel %qD får inte vara firstprivate"
#: cp/parser.c:21284
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hiteration variable %qD should not be reduction"
-msgstr "iterationsvariabel %qs skall inte vara reduction"
+msgstr "%Hiterationsvariabel %qD skall inte vara reduktion"
#: cp/parser.c:21360
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hnot enough collapsed for loops"
-msgstr "inte tillräcklig typinformation"
+msgstr "%Hinte tillräcklig kollapsat för slingor"
#: cp/parser.c:21406
#, gcc-internal-format
msgid "%Hcollapsed loops not perfectly nested"
-msgstr ""
+msgstr "%Hkollapsade slingor inte perfäkt nästade"
#: cp/parser.c:21817
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hjunk at end of %<#pragma GCC pch_preprocess%>"
-msgstr "skräp vid slutet av %<#pragma GCC pch_preprocess%>"
+msgstr "%Hskräp vid slutet av %<#pragma GCC pch_preprocess%>"
#: cp/parser.c:21821
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hexpected string literal"
-msgstr "strängkonstant förväntades"
+msgstr "%Hsträngkonstant förväntades"
#: cp/parser.c:21854
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<#pragma GCC pch_preprocess%> must be first"
-msgstr "%<#pragma GCC pch_preprocess%> måste komma först"
+msgstr "%H%<#pragma GCC pch_preprocess%> måste komma först"
#: cp/parser.c:21865
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<#pragma omp barrier%> may only be used in compound statements"
-msgstr "%<#pragma omp barrier%> får bara användas i sammansatta satser"
+msgstr "%H%<#pragma omp barrier%> får bara användas i sammansatta satser"
#: cp/parser.c:21880
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<#pragma omp flush%> may only be used in compound statements"
-msgstr "%<#pragma omp flush%> får bara användas i sammansatta satser"
+msgstr "%H%<#pragma omp flush%> får bara användas i sammansatta satser"
#: cp/parser.c:21895
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<#pragma omp taskwait%> may only be used in compound statements"
-msgstr "%<#pragma omp barrier%> får bara användas i sammansatta satser"
+msgstr "%H%<#pragma omp barrier%> får bara användas i sammansatta satser"
#: cp/parser.c:21923
#, gcc-internal-format
@@ -31799,9 +31741,9 @@ msgid "expansion pattern %<%E%> contains no argument packs"
msgstr "expansionsmönster %<%E%> innehåller inga argumentpaket"
#: cp/pt.c:2729
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter packs not expanded with %<...%>:"
-msgstr "parameterpaket expanderas inte med \"...\":"
+msgstr "parameterpaket expanderas inte med %<...%>:"
#: cp/pt.c:2744 cp/pt.c:3365
#, gcc-internal-format
@@ -32274,9 +32216,9 @@ msgid "use %<...%> to expand argument pack"
msgstr "använd %<...%> för att expandera argumentpaket"
#: cp/pt.c:10365
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "iteration variable %qD should not be reduction"
-msgstr "iterationsvariabel %qs skall inte vara reduction"
+msgstr "iterationsvariabel %qD skall inte vara reduction"
#: cp/pt.c:11034
#, gcc-internal-format
@@ -32359,9 +32301,9 @@ msgid "duplicate explicit instantiation of %q#D"
msgstr "dubblerad explicit instansiering av %q#D"
#: cp/pt.c:14650 cp/pt.c:14742
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
-msgstr "ISO C++ förbjuder användning av %<extern%> vid explicita instansieringar"
+msgstr "ISO C++ 1998 förbjuder användning av %<extern%> vid explicita instantieringar"
#: cp/pt.c:14655 cp/pt.c:14759
#, gcc-internal-format
@@ -32413,12 +32355,12 @@ msgstr "%q#T är inte en giltig typ för en mallkonstantparameter"
#: cp/pt.c:16749
#, gcc-internal-format
msgid "deducing auto from brace-enclosed initializer list requires #include <initializer_list>"
-msgstr ""
+msgstr "att härleda auto från klammeromgiven initierarlista kräver #include <initializer_list>"
#: cp/pt.c:16790
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unable to deduce %qT from %qE"
-msgstr "kan inte emulera %qs"
+msgstr "kan inte härleda %qT från %qE"
#: cp/repo.c:111
#, gcc-internal-format
@@ -32511,21 +32453,19 @@ msgid "conflicting type attributes specified for %q+#D"
msgstr "motstridiga typattribut angivna för %q+#D"
#: cp/search.c:1920
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "overriding non-deleted function %q+D"
-msgstr "virtuell icke klassfunktion %qs"
+msgstr "åsidosätter ej borttagen funktion %q+D"
#: cp/search.c:1924
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-deleted function %q+D"
-msgstr "anrop av icke-funktion %qD"
+msgstr "ej borttagen funktion %q+D"
-# Första %s blir "built-in" eller "library".
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31665
#: cp/search.c:1925
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "overriding deleted function %q+D"
-msgstr "skuggar \"%s\"-funktion %q#D"
+msgstr "åsidosätter borttagen funktion %q+D"
#. A static member function cannot match an inherited
#. virtual member function.
@@ -32650,29 +32590,29 @@ msgid "base class %qT has cv qualifiers"
msgstr "basklass %qT har cv-kvalificerare"
#: cp/semantics.c:2522
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hincomplete type %qT used in nested name specifier"
-msgstr "ofullständig typ %qT använd i nästad namnspecificerare"
+msgstr "%Hofullständig typ %qT använd i nästad namnspecificerare"
#: cp/semantics.c:2526
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hreference to %<%T::%D%> is ambiguous"
-msgstr "referens till %<%T::%D%> är tvetydig"
+msgstr "%Hreferens till %<%T::%D%> är tvetydig"
#: cp/semantics.c:2530
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD is not a member of %qT"
-msgstr "%qD har inte en medlem av %qT"
+msgstr "%H%qD är inte en medlem av %qT"
#: cp/semantics.c:2533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qD is not a member of %qD"
-msgstr "%qD är inte en medlem av %qD"
+msgstr "%H%qD är inte en medlem av %qD"
#: cp/semantics.c:2535
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%<::%D%> has not been declared"
-msgstr "%<::%D%> har inte deklarerats"
+msgstr "%H%<::%D%> har inte deklarerats"
#: cp/semantics.c:2676
#, gcc-internal-format
@@ -32736,14 +32676,14 @@ msgid "%qD appears more than once in data clauses"
msgstr "%qD förekommer mer än en gång i dataklausuler"
#: cp/semantics.c:3511
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a variable in clause %<firstprivate%>"
-msgstr "%qE är inte en variabel i klausul %<firstprivate%>"
+msgstr "%qD är inte en variabel i klausul %<firstprivate%>"
#: cp/semantics.c:3533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a variable in clause %<lastprivate%>"
-msgstr "%qE är inte en variabel i klausul %<lastprivate%>"
+msgstr "%qD är inte en variabel i klausul %<lastprivate%>"
#: cp/semantics.c:3563
#, gcc-internal-format
@@ -32761,14 +32701,14 @@ msgid "%qE has reference type for %qs"
msgstr "%qE har referenstyp för %qs"
#: cp/semantics.c:3780
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
-msgstr "%<threadprivate%> %qE är inte fil-, namnrymds- eller blockräckviddsvariabel"
+msgstr "%<threadprivate%> %qD är inte fil-, namnrymds- eller blockräckviddsvariabel"
#: cp/semantics.c:3794
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<threadprivate%> %qE directive not in %qT definition"
-msgstr "%<threadprivate%> %qE har ofullständig typ"
+msgstr "%<threadprivate%> %qE-direktiv inte i %qT-definition"
#: cp/semantics.c:3926
#, gcc-internal-format
@@ -32778,7 +32718,7 @@ msgstr "%Hogiltigt styrpredikat"
#: cp/semantics.c:3936
#, gcc-internal-format
msgid "%Hdifference between %qE and %qD does not have integer type"
-msgstr ""
+msgstr "%Hskillnaden mellan %qE och %qD har inte heltalstyp"
#: cp/semantics.c:4031
#, gcc-internal-format
@@ -32786,9 +32726,9 @@ msgid "%Hinvalid increment expression"
msgstr "%Hogiltigt ökningsuttryck"
#: cp/semantics.c:4157 cp/semantics.c:4228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hexpected iteration declaration or initialization"
-msgstr "iterationsdeklaration eller initiering förväntades"
+msgstr "%Hiterationsdeklaration eller initiering förväntades"
#: cp/semantics.c:4168
#, gcc-internal-format
@@ -32829,7 +32769,7 @@ msgstr "%qE refererar till ett antal överlagrade funktioner"
#: cp/semantics.c:4589
#, gcc-internal-format
msgid "unable to determine the declared type of expression %<%E%>"
-msgstr ""
+msgstr "kan inte avgöra den deklarerade typen på uttrycket %<%E%>"
#: cp/semantics.c:4802
#, gcc-internal-format
@@ -32974,7 +32914,7 @@ msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr "(kanske makrot %<offsetof%> användes felaktigt)"
#: cp/typeck.c:2000
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "ogiltig åtkomst av ickestatisk datamedlem %qD från NULL-objekt"
@@ -33059,9 +32999,9 @@ msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ förbjuder anrop av %<::main%> inifrån program"
#: cp/typeck.c:2878
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
-msgstr "man måste använda %<.*%> eller %<->*%> för att anropa en pekare-till-medlems-funktion i %<%E (...)%>"
+msgstr "man måste använda %<.*%> eller %<->*%> för att anropa en pekare-till-medlems-funktion i %<%E (...)%>, t.ex. %<(... ->* %E) (...)%>"
#: cp/typeck.c:2893
#, gcc-internal-format
@@ -33279,19 +33219,19 @@ msgid "%s expression list treated as compound expression"
msgstr "uttryckslistan %s behandlas som sammansatt uttryck"
#: cp/typeck.c:4971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "cast from type %qT to type %qT casts away constness"
-msgstr "ogiltig konvertering från typ %qT till typ %qT"
+msgstr "konvertering från typ %qT till typ %qT slänger bort konstanthet"
#: cp/typeck.c:4976
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "static_cast from type %qT to type %qT casts away constness"
-msgstr "ogiltig static_cast från typ %qT till typ %qT"
+msgstr "static_cast från typ %qT till typ %qT slänger bort konstanthet"
#: cp/typeck.c:4981
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "reinterpret_cast from type %qT to type %qT casts away constness"
-msgstr "ogiltig static_cast från typ %qT till typ %qT"
+msgstr "reinterpret_cast från typ %qT till typ %qT slänger bort konstanthet"
#: cp/typeck.c:5301
#, gcc-internal-format
@@ -33370,7 +33310,7 @@ msgstr " i beräkningen av %<%Q(%#T, %#T)%>"
#: cp/typeck.c:6019
#, gcc-internal-format
msgid "incompatible types in assignment of %qT to %qT"
-msgstr "inkompatibla typer i tilldelning vid av %qT till %qT"
+msgstr "inkompatibla typer i tilldelning av %qT till %qT"
#: cp/typeck.c:6032
#, gcc-internal-format
@@ -33582,9 +33522,9 @@ msgid "cannot initialize arrays using this syntax"
msgstr "det går inte att initiera vektorer med denna syntax"
#: cp/typeck2.c:707
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "narrowing conversion of %qE from %qT to %qT inside { }"
-msgstr "konvertering av %qE från %qT till %qT är tvetydig"
+msgstr "avsmalnande konvertering av %qE från %qT till %qT inuti { }"
#: cp/typeck2.c:765
#, gcc-internal-format
@@ -33592,9 +33532,9 @@ msgid "int-array initialized from non-wide string"
msgstr "int-vektor initierad från icke-bred sträng"
#: cp/typeck2.c:770
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "int-array initialized from incompatible wide string"
-msgstr "int-vektor initierad från icke-bred sträng"
+msgstr "int-vektor initierad från inkompatibel bred sträng"
#: cp/typeck2.c:829
#, gcc-internal-format
@@ -34458,939 +34398,3 @@ msgstr "metod saknar kanske ett [super dealloc]-anrop"
#, gcc-internal-format
msgid "local declaration of %qs hides instance variable"
msgstr "lokal deklaration av %qs döljer instansvariabel"
-
-#~ msgid "The maximum number of fields in a structure variable without direct structure accesses that GCC will attempt to track separately"
-#~ msgstr "Det maximala antalet fält i en postvariabel utan direkt poståtkomst som GCC kommer försöka följa separat"
-
-#~ msgid "The maximum number of elements in an array for wich we track its elements separately"
-#~ msgstr "Det maximala antalet element i en vektor för att vi skall följa varje element för sig"
-
-#~ msgid "The maximum memory locations recorded by flow"
-#~ msgstr "Det maximala antalet minnesplatser noterade av flow"
-
-#~ msgid "mt_final_prescan_insn, invalid insn #1"
-#~ msgstr "mt_final_prescan_insn, ogiltig instruktion nr 1"
-
-#~ msgid "PRINT_OPERAND_ADDRESS, 2 regs"
-#~ msgstr "PRINT_OPERAND_ADDRESS, 2 register"
-
-#~ msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
-#~ msgstr "PRINT_OPERAND_ADDRESS, ogiltig instruktion nr 1"
-
-#~ msgid "Arithmetic underflow converting %s to %s at %L"
-#~ msgstr "Aritmetiskt underspill vid konvertering av %s till %s vid %L"
-
-#~ msgid "Arithmetic NaN converting %s to %s at %L"
-#~ msgstr "Aritmetisk NaN vid konvertering av %s till %s vid %L"
-
-#~ msgid "%-5d "
-#~ msgstr "%-5d "
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid "(%s "
-#~ msgstr "(%s "
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid ")"
-#~ msgstr ")"
-
-#~ msgid "("
-#~ msgstr "("
-
-#~ msgid "%s = "
-#~ msgstr "%s = "
-
-#~ msgid "(arg not-present)"
-#~ msgstr "(argument saknas)"
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid "()"
-#~ msgstr "()"
-
-#~ msgid "(%d"
-#~ msgstr "(%d"
-
-#~ msgid " %s "
-#~ msgstr " %s "
-
-#~ msgid "FULL"
-#~ msgstr "FULL"
-
-#~ msgid " , "
-#~ msgstr " , "
-
-#~ msgid "UNKNOWN"
-#~ msgstr "UNKNOWN"
-
-#~ msgid " %% %s"
-#~ msgstr " %% %s"
-
-#~ msgid "''"
-#~ msgstr "''"
-
-#~ msgid "' // ACHAR("
-#~ msgstr "' // ACHAR("
-
-#~ msgid ") // '"
-#~ msgstr ") // '"
-
-#~ msgid "%s("
-#~ msgstr "%s("
-
-#~ msgid "(/ "
-#~ msgstr "(/ "
-
-#~ msgid " /)"
-#~ msgstr " /)"
-
-#~ msgid "NULL()"
-#~ msgstr "NULL()"
-
-#~ msgid "_%d"
-#~ msgstr "_%d"
-
-#~ msgid ".true."
-#~ msgstr ".true."
-
-#~ msgid ".false."
-#~ msgstr ".false."
-
-#~ msgid "(complex "
-#~ msgstr "(complex "
-
-#~ msgid "%dH"
-#~ msgstr "%dH"
-
-#~ msgid "???"
-#~ msgstr "???"
-
-#~ msgid " {"
-#~ msgstr " {"
-
-#~ msgid "%.2x"
-#~ msgstr "%.2x"
-
-#~ msgid "%s:"
-#~ msgstr "%s:"
-
-#~ msgid "U+ "
-#~ msgstr "U+ "
-
-#~ msgid "U- "
-#~ msgstr "U- "
-
-#~ msgid "+ "
-#~ msgstr "+ "
-
-#~ msgid "- "
-#~ msgstr "- "
-
-#~ msgid "* "
-#~ msgstr "* "
-
-#~ msgid "/ "
-#~ msgstr "/ "
-
-#~ msgid "** "
-#~ msgstr "** "
-
-#~ msgid "// "
-#~ msgstr "// "
-
-#~ msgid "AND "
-#~ msgstr "AND "
-
-#~ msgid "OR "
-#~ msgstr "OR "
-
-#~ msgid "EQV "
-#~ msgstr "EQV "
-
-#~ msgid "NEQV "
-#~ msgstr "NEQV "
-
-#~ msgid "= "
-#~ msgstr "= "
-
-#~ msgid "/= "
-#~ msgstr "/= "
-
-#~ msgid "> "
-#~ msgstr "> "
-
-#~ msgid ">= "
-#~ msgstr ">= "
-
-#~ msgid "< "
-#~ msgstr "< "
-
-#~ msgid "<= "
-#~ msgstr "<= "
-
-#~ msgid "NOT "
-#~ msgstr "NOT "
-
-#~ msgid "parens"
-#~ msgstr "parens"
-
-#~ msgid "%s["
-#~ msgstr "%s["
-
-#~ msgid "%s[["
-#~ msgstr "%s[["
-
-#~ msgid "(%s %s %s %s %s"
-#~ msgstr "(%s %s %s %s %s"
-
-#~ msgid " ALLOCATABLE"
-#~ msgstr " ALLOCATABLE"
-
-#~ msgid " DIMENSION"
-#~ msgstr " DIMENSION"
-
-#~ msgid " EXTERNAL"
-#~ msgstr " EXTERNAL"
-
-#~ msgid " INTRINSIC"
-#~ msgstr " INTRINSIC"
-
-#~ msgid " OPTIONAL"
-#~ msgstr " OPTIONAL"
-
-#~ msgid " POINTER"
-#~ msgstr " POINTER"
-
-#~ msgid " PROTECTED"
-#~ msgstr " PROTECTED"
-
-#~ msgid " VALUE"
-#~ msgstr " VALUE"
-
-#~ msgid " VOLATILE"
-#~ msgstr " VOLATILE"
-
-#~ msgid " THREADPRIVATE"
-#~ msgstr " THREADPRIVATE"
-
-#~ msgid " TARGET"
-#~ msgstr " TARGET"
-
-#~ msgid " DUMMY"
-#~ msgstr " DUMMY"
-
-#~ msgid " RESULT"
-#~ msgstr " RESULT"
-
-#~ msgid " ENTRY"
-#~ msgstr " ENTRY"
-
-#~ msgid " BIND(C)"
-#~ msgstr " BIND(C)"
-
-#~ msgid " DATA"
-#~ msgstr " DATA"
-
-#~ msgid " USE-ASSOC"
-#~ msgstr " USE-ASSOC"
-
-#~ msgid " IN-NAMELIST"
-#~ msgstr " IN-NAMELIST"
-
-#~ msgid " IN-COMMON"
-#~ msgstr " IN-COMMON"
-
-#~ msgid " ABSTRACT INTERFACE"
-#~ msgstr " ABSTRACT INTERFACE"
-
-#~ msgid " FUNCTION"
-#~ msgstr " FUNCTION"
-
-#~ msgid " SUBROUTINE"
-#~ msgstr " SUBROUTINE"
-
-#~ msgid " IMPLICIT-TYPE"
-#~ msgstr " IMPLICIT-TYPE"
-
-#~ msgid " SEQUENCE"
-#~ msgstr " SEQUENCE"
-
-#~ msgid " ELEMENTAL"
-#~ msgstr " ELEMENTAL"
-
-#~ msgid " PURE"
-#~ msgstr " PURE"
-
-#~ msgid " RECURSIVE"
-#~ msgstr " RECURSIVE"
-
-#~ msgid " %s"
-#~ msgstr " %s"
-
-#~ msgid "symbol %s "
-#~ msgstr "symbol %s "
-
-#~ msgid "value: "
-#~ msgstr "värde: "
-
-#~ msgid "Array spec:"
-#~ msgstr "Vektorspec:"
-
-#~ msgid "Generic interfaces:"
-#~ msgstr "Generella gränssnitt:"
-
-#~ msgid "result: %s"
-#~ msgstr "resultat: %s"
-
-#~ msgid "components: "
-#~ msgstr "komponenter: "
-
-#~ msgid "Formal arglist:"
-#~ msgstr "Formell argumentlista:"
-
-#~ msgid " [Alt Return]"
-#~ msgstr " [Alt Retur]"
-
-#~ msgid "Formal namespace"
-#~ msgstr "Formell namnrymd"
-
-#~ msgid "common: /%s/ "
-#~ msgstr "common: /%s/ "
-
-#~ msgid ", "
-#~ msgstr ", "
-
-#~ msgid "symtree: %s Ambig %d"
-#~ msgstr "symträd: %s Tvet %d"
-
-#~ msgid " from namespace %s"
-#~ msgstr " från namnrymden %s"
-
-#~ msgid "%s,"
-#~ msgstr "%s,"
-
-#~ msgid "!$OMP %s"
-#~ msgstr "!$OMP %s"
-
-#~ msgid " (%s)"
-#~ msgstr " (%s)"
-
-#~ msgid " ("
-#~ msgstr " ("
-
-#~ msgid " IF("
-#~ msgstr " IF("
-
-#~ msgid " NUM_THREADS("
-#~ msgstr " NUM_THREADS("
-
-#~ msgid " SCHEDULE (%s"
-#~ msgstr " SCHEDULE (%s"
-
-#~ msgid " DEFAULT(%s)"
-#~ msgstr " DEFAULT(%s)"
-
-#~ msgid " ORDERED"
-#~ msgstr " ORDERED"
-
-#~ msgid " REDUCTION(%s:"
-#~ msgstr " REDUCTION(%s:"
-
-#~ msgid " %s("
-#~ msgstr " %s("
-
-#~ msgid "!$OMP SECTION\n"
-#~ msgstr "!$OMP SECTION\n"
-
-#~ msgid "!$OMP END %s"
-#~ msgstr "!$OMP END %s"
-
-#~ msgid " COPYPRIVATE("
-#~ msgstr " COPYPRIVATE("
-
-#~ msgid " NOWAIT"
-#~ msgstr " NOWAIT"
-
-#~ msgid "NOP"
-#~ msgstr "NOP"
-
-#~ msgid "CONTINUE"
-#~ msgstr "CONTINUE"
-
-#~ msgid "ENTRY %s"
-#~ msgstr "ENTRY %s"
-
-#~ msgid "ASSIGN "
-#~ msgstr "ASSIGN "
-
-#~ msgid "LABEL ASSIGN "
-#~ msgstr "LABEL ASSIGN "
-
-#~ msgid " %d"
-#~ msgstr " %d"
-
-#~ msgid "POINTER ASSIGN "
-#~ msgstr "POINTER ASSIGN "
-
-#~ msgid "GOTO "
-#~ msgstr "GOTO "
-
-#~ msgid ", ("
-#~ msgstr ", ("
-
-#~ msgid "CALL %s "
-#~ msgstr "CALL %s "
-
-#~ msgid "CALL ?? "
-#~ msgstr "CALL ?? "
-
-#~ msgid "RETURN "
-#~ msgstr "RETURN "
-
-#~ msgid "PAUSE "
-#~ msgstr "PAUSE "
-
-#~ msgid "STOP "
-#~ msgstr "STOP "
-
-#~ msgid "IF "
-#~ msgstr "IF "
-
-#~ msgid " %d, %d, %d"
-#~ msgstr " %d, %d, %d"
-
-#~ msgid "ELSE\n"
-#~ msgstr "ELSE\n"
-
-#~ msgid "ELSE IF "
-#~ msgstr "ELSE IF "
-
-#~ msgid "ENDIF"
-#~ msgstr "ENDIF"
-
-#~ msgid "SELECT CASE "
-#~ msgstr "SELECT CASE "
-
-#~ msgid "CASE "
-#~ msgstr "CASE "
-
-#~ msgid "END SELECT"
-#~ msgstr "END SELECT"
-
-#~ msgid "WHERE "
-#~ msgstr "WHERE "
-
-#~ msgid "ELSE WHERE "
-#~ msgstr "ELSE WHERE "
-
-#~ msgid "END WHERE"
-#~ msgstr "END WHERE"
-
-#~ msgid "FORALL "
-#~ msgstr "FORALL "
-
-#~ msgid "END FORALL"
-#~ msgstr "END FORALL"
-
-#~ msgid "DO "
-#~ msgstr "DO "
-
-#~ msgid "END DO"
-#~ msgstr "END DO"
-
-#~ msgid "DO WHILE "
-#~ msgstr "DO WHILE "
-
-#~ msgid "CYCLE"
-#~ msgstr "CYCLE"
-
-#~ msgid "EXIT"
-#~ msgstr "EXIT"
-
-#~ msgid "ALLOCATE "
-#~ msgstr "ALLOCATE "
-
-#~ msgid " STAT="
-#~ msgstr " STAT="
-
-#~ msgid "DEALLOCATE "
-#~ msgstr "DEALLOCATE "
-
-#~ msgid "OPEN"
-#~ msgstr "OPEN"
-
-#~ msgid " UNIT="
-#~ msgstr " UNIT="
-
-#~ msgid " IOMSG="
-#~ msgstr " IOMSG="
-
-#~ msgid " IOSTAT="
-#~ msgstr " IOSTAT="
-
-#~ msgid " FILE="
-#~ msgstr " FILE="
-
-#~ msgid " STATUS="
-#~ msgstr " STATUS="
-
-#~ msgid " ACCESS="
-#~ msgstr " ACCESS="
-
-#~ msgid " FORM="
-#~ msgstr " FORM="
-
-#~ msgid " RECL="
-#~ msgstr " RECL="
-
-#~ msgid " BLANK="
-#~ msgstr " BLANK="
-
-#~ msgid " POSITION="
-#~ msgstr " POSITION="
-
-#~ msgid " ACTION="
-#~ msgstr " ACTION="
-
-#~ msgid " DELIM="
-#~ msgstr " DELIM="
-
-#~ msgid " PAD="
-#~ msgstr " PAD="
-
-#~ msgid " CONVERT="
-#~ msgstr " CONVERT="
-
-#~ msgid " ERR=%d"
-#~ msgstr " ERR=%d"
-
-#~ msgid "CLOSE"
-#~ msgstr "CLOSE"
-
-#~ msgid "BACKSPACE"
-#~ msgstr "BACKSPACE"
-
-#~ msgid "ENDFILE"
-#~ msgstr "ENDFILE"
-
-#~ msgid "REWIND"
-#~ msgstr "REWIND"
-
-#~ msgid "FLUSH"
-#~ msgstr "FLUSH"
-
-#~ msgid "INQUIRE"
-#~ msgstr "INQUIRE"
-
-#~ msgid " EXIST="
-#~ msgstr " EXIST="
-
-#~ msgid " OPENED="
-#~ msgstr " OPENED="
-
-#~ msgid " NUMBER="
-#~ msgstr " NUMBER="
-
-#~ msgid " NAMED="
-#~ msgstr " NAMED="
-
-#~ msgid " NAME="
-#~ msgstr " NAME="
-
-#~ msgid " SEQUENTIAL="
-#~ msgstr " SEQUENTIAL="
-
-#~ msgid " DIRECT="
-#~ msgstr " DIRECT="
-
-#~ msgid " FORMATTED"
-#~ msgstr " FORMATTED"
-
-#~ msgid " UNFORMATTED="
-#~ msgstr " UNFORMATTED="
-
-#~ msgid " NEXTREC="
-#~ msgstr " NEXTREC="
-
-#~ msgid " READ="
-#~ msgstr " READ="
-
-#~ msgid " WRITE="
-#~ msgstr " WRITE="
-
-#~ msgid " READWRITE="
-#~ msgstr " READWRITE="
-
-#~ msgid "IOLENGTH "
-#~ msgstr "IOLENGTH "
-
-#~ msgid "READ"
-#~ msgstr "READ"
-
-#~ msgid "WRITE"
-#~ msgstr "WRITE"
-
-#~ msgid " FMT="
-#~ msgstr " FMT="
-
-#~ msgid " FMT=%d"
-#~ msgstr " FMT=%d"
-
-#~ msgid " NML=%s"
-#~ msgstr " NML=%s"
-
-#~ msgid " SIZE="
-#~ msgstr " SIZE="
-
-#~ msgid " REC="
-#~ msgstr " REC="
-
-#~ msgid " ADVANCE="
-#~ msgstr " ADVANCE="
-
-#~ msgid "TRANSFER "
-#~ msgstr "TRANSFER "
-
-#~ msgid "DT_END"
-#~ msgstr "DT_END"
-
-#~ msgid " END=%d"
-#~ msgstr " END=%d"
-
-#~ msgid " EOR=%d"
-#~ msgstr " EOR=%d"
-
-#~ msgid "Equivalence: "
-#~ msgstr "Ekvivalens: "
-
-#~ msgid "Namespace:"
-#~ msgstr "Namnrymd:"
-
-#~ msgid " %c-%c: "
-#~ msgstr " %c-%c: "
-
-#~ msgid " %c: "
-#~ msgstr " %c: "
-
-#~ msgid "procedure name = %s"
-#~ msgstr "procedurnamn = %s"
-
-#~ msgid "Operator interfaces for %s:"
-#~ msgstr "Operatorgränssnitt för %s:"
-
-#~ msgid "User operators:\n"
-#~ msgstr "Användaroperatorer:\n"
-
-#~ msgid "CONTAINS\n"
-#~ msgstr "CONTAINS\n"
-
-#~ msgid "Unexpected element"
-#~ msgstr "Oväntat element"
-
-#~ msgid "Setting value of PROTECTED variable at %C"
-#~ msgstr "Sätter värde på PROTECTED variabel vid %C"
-
-#~ msgid "Assigning to a PROTECTED pointer at %C"
-#~ msgstr "Tilldelar till en PROTECTED pekare vid %C"
-
-#~ msgid "COPYIN clause object '%s' is ALLOCATABLE at %L"
-#~ msgstr "COPYIN-klausulobjekt \"%s\" är ALLOCATABLE vid %L"
-
-#~ msgid "COPYPRIVATE clause object '%s' is ALLOCATABLE at %L"
-#~ msgstr "COPYPRIVATE-fallobjekt \"%s\" är ALLOCATABLE vid %L"
-
-#~ msgid "%s clause object '%s' is ALLOCATABLE at %L"
-#~ msgstr "%s-klausulobjekt \"%s\" är ALLOCATABLE vid %L"
-
-#~ msgid "gfortran: Directory required after -M\n"
-#~ msgstr "gfortran: Katalog krävs efter -M\n"
-
-#~ msgid "Structure constructor for '%s' at %C has PRIVATE components"
-#~ msgstr "Postkonstruerare för \"%s\" vid %C har PRIVATE-komponenter"
-
-#~ msgid "STAT tag in %s statement at %L must be a variable"
-#~ msgstr "STAT-tagg i %s-sats vid %L måste vara en variabel"
-
-#~ msgid "Intrinsic '%s' at %L does not exist"
-#~ msgstr "Inbyggd \"%s\" vid %L existerar inte"
-
-#~ msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
-#~ msgstr "PUBLIC-funktion \"%s\" vid %L kan inte ha PRIVATE-typ \"%s\""
-
-#~ msgid "File '%s' is being included recursively"
-#~ msgstr "Filen \"%s\" inkluderas rekursivt"
-
-#~ msgid "Can't open included file '%s'"
-#~ msgstr "Kan inte öppna inkluderad fil \"%s\""
-
-#~ msgid "%s:%3d %s\n"
-#~ msgstr "%s:%3d %s\n"
-
-#~ msgid "Argument of CHAR function at %L outside of range [0,255]"
-#~ msgstr "Argument till CHAR-funktion vid %L är utanför sitt intervall [0,255]"
-
-#~ msgid "-c or -S required for Ada"
-#~ msgstr "-c eller -S krävs för Ada"
-
-#~ msgid "-pg not supported on this platform"
-#~ msgstr "-pg stöds inte på denna plattform"
-
-#~ msgid "-p and -pp specified - pick one"
-#~ msgstr "-p och -pp angivna - välj en"
-
-#~ msgid "-G and -static are mutually exclusive"
-#~ msgstr "-G och -static är ömsesidigt uteslutande"
-
-#~ msgid "Warn about usage of non-standard intrinsics"
-#~ msgstr "Varna för användning av inbyggda konstruktioner som inte är standard"
-
-#~ msgid "Print information about speculative motions."
-#~ msgstr "Skriv information om spekulativa förflyttningar."
-
-#~ msgid "Generate ELF output"
-#~ msgstr "Generera ELF-utdata"
-
-#~ msgid "Compile for the MMU-less Etrax 100-based elinux system"
-#~ msgstr "Kompilera för Etrax 100-baserade elinussystem utan MMU"
-
-#~ msgid "For elinux, request a specified stack-size for this program"
-#~ msgstr "För elinux, begär en specificerad stackstorlek för detta program"
-
-#~ msgid "Use the WindISS simulator"
-#~ msgstr "Använd simulatorn WindISS"
-
-#~ msgid "Use byte loads and stores when generating code."
-#~ msgstr "Använd byte-lastning och -lagring vid kodgenerering."
-
-#~ msgid "Do not include crt0.o in the startup files"
-#~ msgstr "Inkludera inte crt0.o bland uppstartsfilerna"
-
-#~ msgid "Internal debug switch"
-#~ msgstr "Intern felsökningsflagga"
-
-#~ msgid "Trace lexical analysis"
-#~ msgstr "Spåra lexikalanalysen"
-
-#~ msgid "Trace the parsing process"
-#~ msgstr "Spåra tolkningsprocessen"
-
-#~ msgid "Expand OpenMP operations on SSA form"
-#~ msgstr "Expandera OpenMP-operationer i SSA-form"
-
-#~ msgid "Enable SSA-CCP optimization for stores and loads"
-#~ msgstr "Aktivera SSA-CCP-optimering av lagring och laddning"
-
-#~ msgid "Perform structural alias analysis"
-#~ msgstr "Utför strukturell aliasanalys"
-
-#~ msgid "Warn when synthesis behavior differs from Cfront"
-#~ msgstr "Varna när syntesbeteendet skiljer från Cfront"
-
-#~ msgid "too few arguments to function %qs"
-#~ msgstr "för få argument till funktionen %qs"
-
-#~ msgid "too many arguments to function %qs"
-#~ msgstr "för många argument till funktionen %qs"
-
-#~ msgid "%q+D declared inline after being called"
-#~ msgstr "%q+D är deklarerad inline efter att den anropats"
-
-#~ msgid "%q+D declared inline after its definition"
-#~ msgstr "%q+D är deklarerad inline efter sin definition"
-
-#~ msgid "%Hiteration variable %qE is unsigned"
-#~ msgstr "%Hiterationsvariabeln %qE är teckenlös"
-
-#~ msgid "%Hempty declaration"
-#~ msgstr "%Htom deklaration"
-
-#~ msgid "%Hcomma at end of enumerator list"
-#~ msgstr "%Hkomma i slutet av uppräkningslista"
-
-#~ msgid "%H%<[*]%> not allowed in other than a declaration"
-#~ msgstr "%H%<[*]%> är inte tillåtet annat än i en deklaration"
-
-#~ msgid "incompatible types in return"
-#~ msgstr "inkompatibla typer i retur"
-
-#~ msgid "comparison between signed and unsigned"
-#~ msgstr "jämförelse mellan signed och unsigned"
-
-#~ msgid "comparison is always %d due to width of bit-field"
-#~ msgstr "jämförelsen är alltid %d på grund av bredd på bitfält"
-
-#~ msgid "can't write PCH fle: %m"
-#~ msgstr "kan inte skriva PCH-fil: %m"
-
-#~ msgid "-Wuninitialized is not supported without -O"
-#~ msgstr "-Wuninitialized stöds inte utan -O"
-
-#~ msgid "-funit-at-a-time is required for inlining of functions that are only called once"
-#~ msgstr "-funit-at-a-time krävs för inline:ing av funktioner som bara anropas en gång"
-
-#~ msgid "GCC supports only %d input file changes"
-#~ msgstr "GCC stödjer endast %d infiländringar"
-
-#~ msgid "-ffunction-sections may affect debugging on some targets"
-#~ msgstr "-ffunction-sections kan påverka felsökning på vissa målarkitekturer"
-
-#~ msgid "invariant not recomputed when ADDR_EXPR changed"
-#~ msgstr "invariant inte omräknad när ADDR_EXPR ändrades"
-
-#~ msgid "type mismatch in unary expression"
-#~ msgstr "typfel i unärt uttryck"
-
-#~ msgid "invalid operand in conversion"
-#~ msgstr "ogiltig operand i konvertering"
-
-#~ msgid "invalid operand in int to float conversion"
-#~ msgstr "ogiltig operand i int till float-konvertering"
-
-#~ msgid "invalid operand in float to int conversion"
-#~ msgstr "ogiltig operand i float till int-konvertering"
-
-#~ msgid "constructor not allowed for non-vector types"
-#~ msgstr "konstruerare inte tillåten för ej-vektortyper"
-
-#~ msgid "invalid operands in shift expression"
-#~ msgstr "ogiltiga operander i skiftuttryck"
-
-#~ msgid "invalid operands in pointer plus expression"
-#~ msgstr "ogiltig operand i pekar-plus-uttryck"
-
-#~ msgid "invalid operands in conditional expression"
-#~ msgstr "ogiltiga operander i villkorsuttryck"
-
-#~ msgid "invalid operands in truth expression"
-#~ msgstr "ogiltiga operander i sanningsuttryck"
-
-#~ msgid "type mismatch in not expression"
-#~ msgstr "typfel i icke-uttryck"
-
-#~ msgid "invalid operands in comparison expression"
-#~ msgstr "ogiltiga operander i jämförelseuttryck"
-
-#~ msgid "type error in return expression"
-#~ msgstr "typfel i returuttryck"
-
-#~ msgid "unexpected non-tuple"
-#~ msgstr "oväntad icke-tupel"
-
-#~ msgid "COND_EXPR with code in branches at the end of bb %d"
-#~ msgstr "COND_EXPR med kod i grenar vid slutet av gb %d"
-
-#~ msgid "no default case found at end of case vector"
-#~ msgstr "inget standardfall funnet vid slutet av case-vektor"
-
-#~ msgid "found real variable when subvariables should have appeared"
-#~ msgstr "fann reell variabel när undervariabler borde ha kommit"
-
-#~ msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
-#~ msgstr "trädkontroll: använde element %d av phi_node med %d element i %s, vid %s:%d"
-
-#~ msgid "profiler support for WindISS"
-#~ msgstr "profileringsstöd för WindISS"
-
-#~ msgid "large frame pointer change (%d) with -mtiny-stack"
-#~ msgstr "stor förändring av rampekare (%d) med -mtiny-stack"
-
-#~ msgid "bf561 support is incomplete yet."
-#~ msgstr "bf561-stödet är ännu ofullständigt."
-
-#~ msgid "-mstackrealign ignored for nested functions"
-#~ msgstr "-mstackrealign ignoreras för nästade funktioner"
-
-#~ msgid "%s not supported for nested functions"
-#~ msgstr "%s stöds inte för nästade funktioner"
-
-#~ msgid "the second argument must be a 4-bit immediate"
-#~ msgstr "det andra argumentet måste vara en 4-bitars omedelbar"
-
-#~ msgid "shift must be an immediate"
-#~ msgstr "shift måste vara en omedelbar"
-
-#~ msgid "index mask must be an immediate"
-#~ msgstr "index måste vara en omedelbar"
-
-#~ msgid "length mask must be an immediate"
-#~ msgstr "längd måste vara en omedelbar"
-
-#~ msgid "MIPS16 PIC"
-#~ msgstr "MIPS16 PIC"
-
-#~ msgid "info pointer NULL"
-#~ msgstr "info-pekare NULL"
-
-#~ msgid "profiling is still experimental for this target"
-#~ msgstr "profilering är fortfarande experimentellt för denna målarkitektur"
-
-#~ msgid "missing argument to \"-%s\""
-#~ msgstr "argument saknas till \"-%s\""
-
-#~ msgid "%<-gnat%> misspelled as %<-gant%>"
-#~ msgstr "%<-gnat%> felstavat som %<-gant%>"
-
-#~ msgid "%q#D was used before it was declared inline"
-#~ msgstr "%q#D användes före den deklarerades inline"
-
-#~ msgid "%Jprevious non-inline declaration here"
-#~ msgstr "%Jtidigare deklaration utan inline här"
-
-#~ msgid "braces around initializer for non-aggregate type %qT"
-#~ msgstr "klamrar runt initierare för ej sammansatt typ %qT"
-
-#~ msgid "multiple parameters named %qE"
-#~ msgstr "flera parametrar med namnet %qE"
-
-#~ msgid "ISO C++ does not include variadic templates"
-#~ msgstr "ISO C++ innehåller inte variadiska mallar"
-
-#~ msgid "%qT is not an aggregate type"
-#~ msgstr "%qT är inte en aggregattyp"
-
-#~ msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
-#~ msgstr "call_expr kan inte manglas på grund av en defekt i C++-ABI:et"
-
-#~ msgid "zero-operand casts cannot be mangled due to a defect in the C++ ABI"
-#~ msgstr "typkonverteringar med noll operander kan inte manglas på grund av en defekt i C++-ABI:et"
-
-#~ msgid "%s cannot appear in a constant-expression"
-#~ msgstr "%s får inte förekomma i ett konstantuttryck"
-
-#~ msgid "suggest a space before %<;%> or explicit braces around empty body in %<%s%> statement"
-#~ msgstr "föreslår ett mellanrum före %<;%> eller explicita klamrar runt en tom kropp i %<%s%>-uttryck"
-
-#~ msgid "%Hextra %<;%>"
-#~ msgstr "%Hextra %<;%>"
-
-#~ msgid "Possible frontend bug: array constructor not expanded"
-#~ msgstr "Möjligt fel i framänden: vektorkonstruerare är inte expanderad"
-
-#~ msgid "Function does not return a value"
-#~ msgstr "Funktionen returnerar inte ett värde"
-
-#~ msgid "Function return value not set"
-#~ msgstr "Funktionen returnerar ett värde som inte är satt"
-
-#~ msgid "%HDuplicate name %q.*s."
-#~ msgstr "%HDubblerat namn %q.*s."
-
-#~ msgid "Global register variable %qD used in nested function."
-#~ msgstr "Global registervariabel %qD använd i nästad funktion."
-
-#~ msgid "Register variable %qD used in nested function."
-#~ msgstr "Registervariabel %qD använd i nästad funktion."
-
-#~ msgid "Address of global register variable %qD requested."
-#~ msgstr "Adress till global registervariabel %qD efterfrågad."
-
-#~ msgid "Address of register variable %qD requested."
-#~ msgstr "Adress till registervariabeln %qD efterfrågad."
-
-#~ msgid "%qD attribute ignored"
-#~ msgstr "attributet %qD ignorerat"
diff --git a/gcc/ra-conflict.c b/gcc/ra-conflict.c
index e0ffbbd4c3f..eb732861442 100644
--- a/gcc/ra-conflict.c
+++ b/gcc/ra-conflict.c
@@ -774,7 +774,7 @@ global_conflicts (void)
bitmap_iterator bi;
bitmap_copy (live, DF_LIVE_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, live);
+ df_simulate_initialize_backwards (bb, live);
sparseset_clear (allocnos_live);
memset (live_subregs_used, 0, max_allocno * sizeof (int));
diff --git a/gcc/real.c b/gcc/real.c
index c5a16a867e1..d26b0cbd0c9 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -1,6 +1,6 @@
/* real.c - software floating point emulation.
- Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
+ 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Stephen L. Moshier (moshier@world.std.com).
Re-written by Richard Henderson <rth@redhat.com>
@@ -4447,8 +4447,8 @@ const struct real_format decimal_single_format =
10,
7,
7,
- -95,
- 96,
+ -94,
+ 97,
31,
31,
false,
@@ -4469,8 +4469,8 @@ const struct real_format decimal_double_format =
10,
16,
16,
- -383,
- 384,
+ -382,
+ 385,
63,
63,
false,
@@ -4491,8 +4491,8 @@ const struct real_format decimal_quad_format =
10,
34,
34,
- -6143,
- 6144,
+ -6142,
+ 6145,
127,
127,
false,
diff --git a/gcc/recog.c b/gcc/recog.c
index 7ab6a1de4e0..0e2dd1bd60d 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -3039,7 +3039,7 @@ peephole2_optimize (void)
/* Start up propagation. */
bitmap_copy (live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, live);
+ df_simulate_initialize_backwards (bb, live);
bitmap_copy (peep2_insn_data[MAX_INSNS_PER_PEEP2].live_before, live);
for (insn = BB_END (bb); ; insn = prev)
@@ -3059,7 +3059,7 @@ peephole2_optimize (void)
&& peep2_insn_data[peep2_current].insn == NULL_RTX)
peep2_current_count++;
peep2_insn_data[peep2_current].insn = insn;
- df_simulate_one_insn (bb, insn, live);
+ df_simulate_one_insn_backwards (bb, insn, live);
COPY_REG_SET (peep2_insn_data[peep2_current].live_before, live);
if (RTX_FRAME_RELATED_P (insn))
@@ -3218,7 +3218,7 @@ peephole2_optimize (void)
peep2_current_count++;
peep2_insn_data[i].insn = x;
df_insn_rescan (x);
- df_simulate_one_insn (bb, x, live);
+ df_simulate_one_insn_backwards (bb, x, live);
bitmap_copy (peep2_insn_data[i].live_before, live);
}
x = PREV_INSN (x);
diff --git a/gcc/regclass.c b/gcc/regclass.c
index b12d4168506..f31ccd15e40 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -145,6 +145,16 @@ char global_regs[FIRST_PSEUDO_REGISTER];
HARD_REG_SET regs_invalidated_by_call;
+/* Same information as REGS_INVALIDATED_BY_CALL but in regset form to be used
+ in dataflow more conveniently. */
+
+regset regs_invalidated_by_call_regset;
+
+/* The bitmap_obstack is used to hold some static variables that
+ should not be reset after each function is compiled. */
+
+static bitmap_obstack persistent_obstack;
+
/* Table of register numbers in the order in which to try to use them. */
#ifdef REG_ALLOC_ORDER
int reg_alloc_order[FIRST_PSEUDO_REGISTER] = REG_ALLOC_ORDER;
@@ -568,6 +578,13 @@ init_reg_sets_1 (void)
CLEAR_HARD_REG_SET (call_fixed_reg_set);
CLEAR_HARD_REG_SET (regs_invalidated_by_call);
CLEAR_HARD_REG_SET (losing_caller_save_reg_set);
+ if (!regs_invalidated_by_call_regset)
+ {
+ bitmap_obstack_initialize (&persistent_obstack);
+ regs_invalidated_by_call_regset = ALLOC_REG_SET (&persistent_obstack);
+ }
+ else
+ CLEAR_REG_SET (regs_invalidated_by_call_regset);
memcpy (call_fixed_regs, fixed_regs, sizeof call_fixed_regs);
@@ -602,7 +619,10 @@ init_reg_sets_1 (void)
if (i == STACK_POINTER_REGNUM)
;
else if (global_regs[i])
- SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ {
+ SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ SET_REGNO_REG_SET (regs_invalidated_by_call_regset, i);
+ }
else if (i == FRAME_POINTER_REGNUM)
;
#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
@@ -618,7 +638,10 @@ init_reg_sets_1 (void)
;
#endif
else if (CALL_REALLY_USED_REGNO_P (i))
- SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ {
+ SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ SET_REGNO_REG_SET (regs_invalidated_by_call_regset, i);
+ }
}
/* Preserve global registers if called more than once. */
@@ -912,7 +935,10 @@ globalize_reg (int i)
appropriate regs_invalidated_by_call bit, even if it's already
set in fixed_regs. */
if (i != STACK_POINTER_REGNUM)
- SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ {
+ SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ SET_REGNO_REG_SET (regs_invalidated_by_call_regset, i);
+ }
/* If already fixed, nothing else to do. */
if (fixed_regs[i])
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 83fd605fcb4..2da42c38ecb 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -340,12 +340,12 @@ regrename_optimize (void)
continue;
}
+ if (dump_file)
+ fprintf (dump_file, ", renamed as %s\n", reg_names[best_new_reg]);
+
do_replace (this_du, best_new_reg);
tick[best_new_reg] = ++this_tick;
df_set_regs_ever_live (best_new_reg, true);
-
- if (dump_file)
- fprintf (dump_file, ", renamed as %s\n", reg_names[best_new_reg]);
}
obstack_free (&rename_obstack, first_obj);
@@ -1388,6 +1388,7 @@ find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd)
{
ORIGINAL_REGNO (new_rtx) = ORIGINAL_REGNO (reg);
REG_ATTRS (new_rtx) = REG_ATTRS (reg);
+ REG_POINTER (new_rtx) = REG_POINTER (reg);
return new_rtx;
}
}
@@ -1686,6 +1687,7 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
{
ORIGINAL_REGNO (new_rtx) = ORIGINAL_REGNO (src);
REG_ATTRS (new_rtx) = REG_ATTRS (src);
+ REG_POINTER (new_rtx) = REG_POINTER (src);
if (dump_file)
fprintf (dump_file,
"insn %u: replaced reg %u with %u\n",
diff --git a/gcc/reload1.c b/gcc/reload1.c
index ffde2bf94d8..bbffad0b98d 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -557,7 +557,7 @@ compute_use_by_pseudos (HARD_REG_SET *to, regset from)
which might still contain registers that have not
actually been allocated since they have an
equivalence. */
- gcc_assert ((flag_ira && optimize) || reload_completed);
+ gcc_assert ((flag_ira && ira_conflicts_p) || reload_completed);
}
else
add_to_hard_reg_set (to, PSEUDO_REGNO_MODE (regno), r);
@@ -901,7 +901,7 @@ reload (rtx first, int global)
for (n = 0, i = LAST_VIRTUAL_REGISTER + 1; i < max_regno; i++)
temp_pseudo_reg_arr[n++] = i;
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
/* Ask IRA to order pseudo-registers for better stack slot
sharing. */
ira_sort_regnos_for_alter_reg (temp_pseudo_reg_arr, n, reg_max_ref_width);
@@ -1055,7 +1055,7 @@ reload (rtx first, int global)
calculate_needs_all_insns (global);
- if (! flag_ira || ! optimize)
+ if (! flag_ira || ! ira_conflicts_p)
/* Don't do it for IRA. We need this info because we don't
change live_throughout and dead_or_set for chains when IRA
is used. */
@@ -1614,7 +1614,7 @@ calculate_needs_all_insns (int global)
reg_equiv_memory_loc
[REGNO (SET_DEST (set))]))))
{
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
/* Inform IRA about the insn deletion. */
ira_mark_memory_move_deletion (REGNO (SET_DEST (set)),
REGNO (SET_SRC (set)));
@@ -1723,7 +1723,7 @@ count_pseudo (int reg)
|| REGNO_REG_SET_P (&spilled_pseudos, reg)
/* Ignore spilled pseudo-registers which can be here only if IRA
is used. */
- || (flag_ira && optimize && r < 0))
+ || (flag_ira && ira_conflicts_p && r < 0))
return;
SET_REGNO_REG_SET (&pseudos_counted, reg);
@@ -1804,7 +1804,7 @@ count_spilled_pseudo (int spilled, int spilled_nregs, int reg)
/* Ignore spilled pseudo-registers which can be here only if IRA is
used. */
- if ((flag_ira && optimize && r < 0)
+ if ((flag_ira && ira_conflicts_p && r < 0)
|| REGNO_REG_SET_P (&spilled_pseudos, reg)
|| spilled + spilled_nregs <= r || r + nregs <= spilled)
return;
@@ -1876,7 +1876,7 @@ find_reg (struct insn_chain *chain, int order)
if (! ok)
continue;
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
{
/* Ask IRA to find a better pseudo-register for
spilling. */
@@ -2158,7 +2158,7 @@ alter_reg (int i, int from_reg, bool dont_share_p)
unsigned int min_align = reg_max_ref_width[i] * BITS_PER_UNIT;
int adjust = 0;
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
{
/* Mark the spill for IRA. */
SET_REGNO_REG_SET (&spilled_pseudos, i);
@@ -2177,7 +2177,8 @@ alter_reg (int i, int from_reg, bool dont_share_p)
enough inherent space and enough total space.
Otherwise, we allocate a new slot, making sure that it has no less
inherent space, and no less total space, then the previous slot. */
- else if (from_reg == -1 || (!dont_share_p && flag_ira && optimize))
+ else if (from_reg == -1
+ || (!dont_share_p && flag_ira && ira_conflicts_p))
{
rtx stack_slot;
@@ -2202,7 +2203,7 @@ alter_reg (int i, int from_reg, bool dont_share_p)
adjust);
}
- if (! dont_share_p && flag_ira && optimize)
+ if (! dont_share_p && flag_ira && ira_conflicts_p)
/* Inform IRA about allocation a new stack slot. */
ira_mark_new_stack_slot (stack_slot, i, total_size);
}
@@ -3904,7 +3905,7 @@ finish_spills (int global)
spill_reg_order[i] = -1;
EXECUTE_IF_SET_IN_REG_SET (&spilled_pseudos, FIRST_PSEUDO_REGISTER, i, rsi)
- if (! flag_ira || ! optimize || reg_renumber[i] >= 0)
+ if (! flag_ira || ! ira_conflicts_p || reg_renumber[i] >= 0)
{
/* Record the current hard register the pseudo is allocated to
in pseudo_previous_regs so we avoid reallocating it to the
@@ -3914,7 +3915,7 @@ finish_spills (int global)
SET_HARD_REG_BIT (pseudo_previous_regs[i], reg_renumber[i]);
/* Mark it as no longer having a hard register home. */
reg_renumber[i] = -1;
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
/* Inform IRA about the change. */
ira_mark_allocation_change (i);
/* We will need to scan everything again. */
@@ -3944,7 +3945,7 @@ finish_spills (int global)
}
}
- if (! flag_ira || ! optimize)
+ if (! flag_ira || ! ira_conflicts_p)
{
/* Retry allocating the spilled pseudos. For each reg,
merge the various reg sets that indicate which hard regs
@@ -3996,7 +3997,7 @@ finish_spills (int global)
HARD_REG_SET used_by_pseudos;
HARD_REG_SET used_by_pseudos2;
- if (! flag_ira || ! optimize)
+ if (! flag_ira || ! ira_conflicts_p)
{
/* Don't do it for IRA because IRA and the reload still can
assign hard registers to the spilled pseudos on next
@@ -6999,7 +7000,7 @@ emit_input_reload_insns (struct insn_chain *chain, struct reload *rl,
&& REG_N_SETS (REGNO (old)) == 1)
{
reg_renumber[REGNO (old)] = REGNO (reloadreg);
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
/* Inform IRA about the change. */
ira_mark_allocation_change (REGNO (old));
alter_reg (REGNO (old), -1, false);
@@ -8540,7 +8541,7 @@ delete_output_reload (rtx insn, int j, int last_reload_reg, rtx new_reload_reg)
/* For the debugging info, say the pseudo lives in this reload reg. */
reg_renumber[REGNO (reg)] = REGNO (new_reload_reg);
- if (flag_ira && optimize)
+ if (flag_ira && ira_conflicts_p)
/* Inform IRA about the change. */
ira_mark_allocation_change (REGNO (reg));
alter_reg (REGNO (reg), -1, false);
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 97570e858dd..fd6a58e02eb 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -4038,6 +4038,7 @@ dbr_schedule (rtx first)
}
#endif
+ crtl->dbr_scheduled_p = true;
}
#endif /* DELAY_SLOTS */
@@ -4045,7 +4046,7 @@ static bool
gate_handle_delay_slots (void)
{
#ifdef DELAY_SLOTS
- return flag_delayed_branch;
+ return flag_delayed_branch && !crtl->dbr_scheduled_p;
#else
return 0;
#endif
diff --git a/gcc/rtl-factoring.c b/gcc/rtl-factoring.c
index 07c66e20cc3..4c879691e9f 100644
--- a/gcc/rtl-factoring.c
+++ b/gcc/rtl-factoring.c
@@ -464,7 +464,7 @@ collect_pattern_seqs (void)
/* Initialize liveness propagation. */
INIT_REG_SET (&live);
bitmap_copy (&live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, &live);
+ df_simulate_initialize_backwards (bb, &live);
/* Propagate liveness info and mark insns where a stack reg is live. */
insn = BB_END (bb);
@@ -486,7 +486,7 @@ collect_pattern_seqs (void)
}
if (insn == BB_HEAD (bb))
break;
- df_simulate_one_insn (bb, insn, &live);
+ df_simulate_one_insn_backwards (bb, insn, &live);
insn = prev;
}
@@ -572,11 +572,11 @@ clear_regs_live_in_seq (HARD_REG_SET * regs, rtx insn, int length)
bb = BLOCK_FOR_INSN (insn);
INIT_REG_SET (&live);
bitmap_copy (&live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, &live);
+ df_simulate_initialize_backwards (bb, &live);
/* Propagate until INSN if found. */
for (x = BB_END (bb); x != insn; x = PREV_INSN (x))
- df_simulate_one_insn (bb, x, &live);
+ df_simulate_one_insn_backwards (bb, x, &live);
/* Clear registers live after INSN. */
renumbered_reg_set_to_hard_reg_set (&hlive, &live);
@@ -586,7 +586,7 @@ clear_regs_live_in_seq (HARD_REG_SET * regs, rtx insn, int length)
for (i = 0; i < length;)
{
rtx prev = PREV_INSN (x);
- df_simulate_one_insn (bb, x, &live);
+ df_simulate_one_insn_backwards (bb, x, &live);
if (INSN_P (x))
{
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 81fcb806228..bff83a2b844 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -2132,9 +2132,12 @@ sched_analyze_2 (struct deps *deps, rtx x, rtx insn)
flush_pending_lists (deps, insn, true, false);
break;
+ case UNSPEC_VOLATILE:
+ flush_pending_lists (deps, insn, true, true);
+ /* FALLTHRU */
+
case ASM_OPERANDS:
case ASM_INPUT:
- case UNSPEC_VOLATILE:
{
/* Traditional and volatile asm instructions must be considered to use
and clobber all hard registers, all pseudo-registers and all of
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 9736e34155b..c98a52162dc 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -2947,7 +2947,7 @@ propagate_lv_set (regset lv, insn_t insn)
if (INSN_NOP_P (insn))
return;
- df_simulate_one_insn (BLOCK_FOR_INSN (insn), insn, lv);
+ df_simulate_one_insn_backwards (BLOCK_FOR_INSN (insn), insn, lv);
}
/* Return livness set at the end of BB. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 713333a92be..f7c483320c6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,12247 +1,615 @@
-2008-12-10 Ira Rosen <irar@il.ibm.com>
+2008-01-15 Steve Ellcey <sje@cup.hp.com>
- PR tree-optimization/37416
- * gcc.dg/vect/pr36630.c: Expect 1 vectorized loop.
+ PR c++/38357
+ * g++.dg/template/crash87.C: New test.
-2008-12-10 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/20020919-1.c: Correct target selector to alpha*-*-*.
- * gcc.dg/pr31866.c: Ditto.
- * gcc.dg/torture/type-generic-1.c: Add -mieee for alpha*-*-* targets.
- * g++.dg/torture/type-generic-1.C: Ditto.
- * gfortran.dg/boz_9.f90: Ditto.
- * gfortran.dg/boz_14.f90: Ditto.
- * gfortran.dg/init_flag_3.f90: Ditto.
- * gfortran.dg/init_flag_4.f90: Ditto.
- * gfortran.dg/init_flag_5.f90: Ditto.
- * gfortran.dg/integer_exponentiation_1.f90: Ditto.
- * gfortran.dg/integer_exponentiation_5.F90: Ditto.
- * gfortran.dg/isnan_1.f90: Ditto.
- * gfortran.dg/isnan_2.f90: Ditto.
- * gfortran.dg/module_nan.f90: Ditto.
- * gfortran.dg/nan_1.f90: Ditto.
- * gfortran.dg/nan_2.f90: Ditto.
- * gfortran.dg/nan_3.f90: Ditto.
- * gfortran.dg/nan_4.f90: Ditto.
- * gfortran.dg/namelist_42.f90: Ditto.
- * gfortran.dg/namelist_43.f90: Ditto.
- * gfortran.dg/nearest_1.f90: Ditto.
- * gfortran.dg/nearest_2.f90: Ditto.
- * gfortran.dg/nearest_3.f90: Ditto.
- * gfortran.dg/pr37243.f: Ditto.
- * gfortran.dg/real_const_3.f90: Ditto.
- * gfortran.dg/transfer_simplify_2.f90: Ditto.
- * gfortran.fortran-torture/execute/intrinsic_spacing.x: New file.
-
- * gfortran.dg/default_format_denormal_1.f90: XFAIL on alpha.
-
-2008-12-09 Mark Mitchell <mark@codesourcery.com>
-
- PR c++/37971
- * g++.dg/overload/defarg2.C: New test.
- * g++.dg/overload/defarg3.C: Likewise.
-
-2008-12-09 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38454
- * gcc.dg/memset-1.c: New test.
- * gcc.dg/memcpy-2.c: New test.
-
-2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35983
- * gfortran.dg/pr35983.f90: New test.
-
-2008-12-09 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/38420
- * gcc.target/i386/pr37248-2.c: Support hex dump on 32bit host.
- * gcc.target/i386/pr37248-3.c: Likewise.
-
-2008-12-09 Steve Ellcey <sje@cup.hp.com>
-
- PR testsuite/37326
- * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Skip on hppa*64-*-*.
-
-2008-12-09 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/35468
- * gcc.dg/pr35468.c: New test.
- * gcc.c-torture/compile/pr35468.c: New test.
-
-2008-12-08 Jason Merrill <jason@redhat.com>
-
- PR c++/38410
- * gcc.dg/ctor1.c: New test.
-
-2008-12-08 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/mips/fix-r10000-6.c: Add dg-message to look for
- the note about changed semantics of NAND builtin.
- * gcc.target/mips/fix-r10000-12.c: Ditto.
- * gcc.target/mips/atomic-memory-1.c: Ditto.
- (main): Correct __sync_nand_and_fetch results.
-
-2008-12-08 Dodji Seketeli <dodji@redhat.com>
-
- PR debug/38390
- * g++.dg/debug/dwarf2/imported-module-2.C: New test.
-
-2008-12-08 Steve Ellcey <sje@cup.hp.com>
-
- * g++.dg/other/packed1.C: Remove ia64-hp-hpux* XFAIL.
-
-2008-12-08 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.target/ia64/versionid-1.c (dg-final): Fix syntax.
- * gcc.target/ia64/versionid-2.c (dg-final): Ditto.
-
-2008-12-08 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35443
- * gcc.dg/pr35443.c: New test.
-
- PR c/35442
- * gcc.dg/pr35442.c: New test.
-
-2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/string_comparison.adb: New test.
-
-2008-12-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR tree-optimization/38405
- * gcc.dg/torture/pr38405.c: New.
-
-2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/aggr10.adb: New test.
- * gnat.dg/aggr10_pkg.ads: New helper.
-
-2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/38425
- * gfortran.dg/io_constraints_5.f90: New test.
-
-2008-12-06 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38428
- * gcc.c-torture/compile/pr38428.c: New test.
-
- PR middle-end/38422
- * gcc.c-torture/execute/pr38422.c: New test.
-
-2008-12-06 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/38415
- * gfortran.dg/proc_ptr_2.f90: Extended.
- * gfortran.dg/proc_ptr_11.f90: Modified.
-
-2008-12-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/38291
- * gfortran.dg/streamio_16.f90: New test.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35336
- * g++.dg/other/error30.C: New test.
-
-2008-12-05 Janis Johnson <janis187@us.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_hard_dfp): New.
- * gcc.dg/dfp/convert-dfp-round.c: Skip for hard_dfp.
- * gcc.dg/dfp/fe-binop.c: Ditto.
- * gcc.dg/dfp/fe-convert-1.c: Ditto.
-
-2008-12-05 Catherine Moore <clm@codesourcery.com>
-
- * gcc-target/mips/mips-nonpic: New testsuite.
-
-2008-12-05 Steve Ellcey <sje@cup.hp.com>
-
- PR other/28614
- * gcc.c-torture/compile/20001226-1.c: Add dg-timeout-factor.
- * g++.dg/torture/pr31863.C: Ditto.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37248
- * gcc.target/i386/pr37248-1.c: New test.
- * gcc.target/i386/pr37248-2.c: New test.
- * gcc.target/i386/pr37248-3.c: New test.
-
-2008-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38338
- * gcc.dg/pr38338.c: New test.
-
-2008-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/powerpc/20081204-1.c: New test.
-
-2008-12-05 Richard Guenther <rguenther@suse.de>
-
- PR testsuite/38406
- * gcc.dg/Wstrict-aliasing-converted-assigned.c: Restrict PTA
- alias warning to lp64 targets.
-
-2008-12-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/union-5.c: Run only on x86 and x86-64.
-
-2008-12-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/38285
- gfortran.dg/fmt_f_an_p.f: New test.
-
-2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/union-5.c: New test.
-
-2008-12-04 Jason Merrill <jason@redhat.com>
-
- PR c++/37906
- * g++.dg/cpp0x/defaulted6.C: New test.
-
-2008-12-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36509
- * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: Adjust, remove XFAIL.
- * gcc.dg/Wstrict-aliasing-converted-assigned.c: Adjust.
- * g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Likewise.
-
-2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/union-4.c: New test.
-
-2008-12-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * g++.old-deja/g++.eh/badalloc1.C: Add the missing "}".
-
-2008-12-03 Janis Johnson <janis187@us.ibm.com>
-
- * g++.old-deja/g++.eh/badalloc1.C: Reinstate XFAIL for Darwin 3-7.
-
-2008-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
-
- * g++.old-deja/g++.eh/badalloc1.C: Omit XFAIL on obsolete Darwin.
-
-2008-12-03 Jason Merrill <jason@redhat.com>
-
- PR c++/38232
- * g++.dg/init/value5.C: New test.
-
- PR c++/38256
- * g++.dg/cpp0x/auto11.C: New test.
-
- PR c++/38380
- * g++.dg/cpp0x/initlist10.C: New test.
- * g++.old-deja/g++.eh/ctor1.C: Default ctor is a candidate too.
- * g++.dg/tc1/dr152.C: Likewise.
-
-2008-12-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38360
- * gcc.c-torture/compile/pr38360.c: New test.
-
-2008-12-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36326
- * gcc.dg/tree-ssa/pr36326.c: New testcase.
-
-2008-12-03 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37716
- * g++.dg/torture/pr37716.C: New test.
-
-2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/torture/pr37868.c: Skip on the SPARC.
-
-2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/compile/20081203-1.c: New test.
-
-2008-12-02 Jason Merrill <jason@redhat.com>
-
- PR c++/35782, c++/37860
- * g++.dg/cpp0x/initlist9.C: New test.
-
- PR c++/37234
- * g++.dg/cpp0x/defaulted5.C: New test.
-
-2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
-
- * gcc.misc-tests/linkage.exp: Correct file type check for Darwin.
-
-2008-12-02 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38343
- * gcc.c-torture/compile/pr38343-2.c: New test.
-
-2008-12-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/38359
- * gcc.c-torture/compile/pr38359.c: New testcase.
- * gcc.c-torture/execute/shiftopt-1.c: Adjust.
-
-2008-12-02 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36704
- PR fortran/38290
- * gfortran.dg/entry_7.f90: Modified.
- * gfortran.dg/proc_ptr_2.f90: Extended.
- * gfortran.dg/proc_ptr_3.f90: Modified.
- * gfortran.dg/proc_ptr_11.f90: New.
- * gfortran.dg/proc_ptr_12.f90: New.
- * gfortran.dg/result_1.f90: New.
-
-2008-12-02 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38343
- * gcc.c-torture/compile/pr38343.c: New test.
-
-2008-12-01 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.target/powerpc/pr18096-1.c: Adjust location of expected error.
-
-2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/38252
- * gfortran.dg/empty_function_1.f90: Fix latest commit.
-
-2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/38252
- * gfortran.dg/empty_function_1.f90: New test.
-
-2008-12-01 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: Extend XFAIL to alpha*-*-*.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-12-01 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/38348
- * g++.dg/gomp/for-19.C: New test.
-
- PR rtl-optimization/38245
- * gcc.dg/pr38245-1.c: New test.
- * gcc.dg/pr38245-2.c: New test.
-
-2008-11-30 Daniel Kraft <d@domob.eu>
-
- PR fortran/37779
- * gfortran.dg/recursive_check_1.f: Changed expected error message to
- the more general new one.
- * gfortran.dg/recursive_check_2.f90: Ditto.
- * gfortran.dg/entry_18.f90: Ditto.
- * gfortran.dg/recursive_check_4.f03: Do "the same" check also for
- FUNCTIONS, as this is different in details from SUBROUTINES.
- * gfortran.dg/recursive_check_6.f03: New test.
-
-2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * g++.dg/opt/reload3.C: New test.
-
-2008-11-30 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35824
- * gfortran.dg/alloc_comp_assign_8.f90 : New test.
-
-2008-11-29 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/37843
- * gcc.target/i386/pr37843-3.c: Make it nonpic targets only.
-
-2008-11-29 Janus Weil <janus@gcc.gnu.org>
- Tobias Burnus <burnus@gcc.gnu.org>
-
- PR fortran/38289
- PR fortran/38290
- * gfortran.dg/proc_decl_1.f90: Extended test case.
-
-2008-11-29 Joseph Myers <joseph@codesourcery.com>
-
- * g++.dg/cpp/stringop-1.C: New test.
-
-2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/test_version.adb: Adjust to new string length.
-
-2008-11-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR testsuite/38311
- * ssp-2.c: Link with -Wl,-multiply_defined,suppress on darwin.
-
-2008-11-28 Jason Merrill <jason@redhat.com>
-
- PR c++/38233
- * g++.dg/init/array25.C: New test.
- * g++.dg/init/value4.C: New test.
-
- PR c++/38278
- * g++.dg/lookup/name-clash8.C: New test.
-
-2008-11-28 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37843
- * gcc.target/i386/pr37843-1.c: Make it nonpic targets only.
- * gcc.target/i386/pr37843-2.c: Likewise.
-
-2008-11-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37955
- PR tree-optimization/37742
- * gcc.c-torture/compile/pr37955.c: New testcase.
- * gcc.c-torture/compile/pr37742-3.c: Likewise.
-
-2008-11-28 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/38261
- * gcc.dg/tree-ssa/alias-2.c: Only compile on nonpic targets.
- * gcc.dg/torture/ipa-pta-1.c: Likewise.
-
-2008-11-26 Janis Johnson <janis187@us.ibm.com>
-
- * lib/objc.exp (objc_target_compile): Fix typo from previous change.
- * lib/gnat.exp (gnat_target_compile): Fix typo from previous change.
-
- PR testsuite/28870
- * lib/timeout.exp: New.
- * lib/timeout-dg.exp: New.
- * lib/gcc-dg.exp: Include new timeout library files.
- (dg-test): Unset timeout variables.
- * lib/gcc.exp (gcc_target_compile): Set timeout value from new proc.
- * lib/g++.exp (g++_target_compile): Ditto.
- * lib/gfortran.exp (gfortran_target_compile): Ditto.
- * lib/objc.exp (objc_target_compile): Ditto.
- * lib/obj-c++.exp (obj-c++_target_compile): Ditto.
- * lib/obj-c++.exp (obj-c++_target_compile): Ditto.
- * lib/gnat.exp (gnat_target_compile): Ditto.
-
-2008-11-26 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37843
- * gcc.target/i386/pr37843-1.c: Make it Linux only.
- * gcc.target/i386/pr37843-2.c: Likewise.
-
-2008-11-26 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/callabi/func-indirect.c: New.
-
-2008-11-25 Jason Merrill <jason@redhat.com>
-
- PR c++/28743
- * g++.dg/template/nontype18.C: New test.
-
-2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * gcc.c-torture/compile/20080929-1.c: New.
-
-2008-11-25 Janis Johnson <janis187@us.ibm.com>
-
- * gfortran.dg/default_format_denormal_1.f90: Fix xfail for darwin.
-
-2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37843
- * gcc.target/i386/align-main-3.c: New.
- * gcc.target/i386/pr37843-1.c: Likewise.
- * gcc.target/i386/pr37843-2.c: Likewise.
- * gcc.target/i386/pr37843-3.c: Likewise.
-
-2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/36463
- * gfortran.dg/proc_decl_20.f90: New test.
-
-2008-11-25 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/38151
- PR middle-end/38236
- * gcc.c-torture/execute/pr38151.c: New testcase.
- * gcc.c-torture/execute/pr38236.c: Likewise.
-
-2008-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * g++.dg/eh/weak1.C: Don't xfail hppa*64*-*-*.
-
-2008-11-24 DJ Delorie <dj@redhat.com>
-
- * gcc.c-torture/execute/pr36321.c: Don't rely on argv[0] being set.
-
-2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/38184
- * gfortran.dg/reshape_empty_1.f03: New test.
-
-2008-11-24 Jack Howarth <howarth@bromo.med.uc.edu>
-
- PR testsuite/38241
- * g++.old-deja/g++.pt/const2.C: Prune output for Darwin.
-
- PR testsuite/38076
- * g++.dg/other/anon5.C: Skip on Darwin.
-
- * gfortran.dg/default_format_denormal_1.f90: XFAIL on darwin8
- and darwin9 subversions.
-
-2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- PR target/35018
- * gcc.target/m68k/pr35018.c: New.
-
-2008-11-24 Daniel Kraft <d@domob.eu>
-
- PR fortran/37779
- * gfortran.dg/c_funloc_tests.f03: Added missing `RECURSIVE'.
- * gfortran.dg/c_funloc_tests_2.f03: Ditto.
- * gfortran.dg/recursive_check_4.f03: New test.
- * gfortran.dg/recursive_check_5.f03: New test.
-
-2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35681
- * gfortran.dg/elemental_dependency_1.f90: Really commit it.
-
-2008-11-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34820
- * gfortran.dg/alloc_comp_constructor_6.f90 : New test.
- * gfortran.dg/alloc_comp_basics_1.f90 : Reduce expected refs to
- 'builtin_free' from 24 to 18.
-
- PR fortran/34143
- * gfortran.dg/alloc_comp_constructor_5.f90 : New test.
-
- PR fortran/32795
- * gfortran.dg/alloc_comp_constructor_4.f90 : New test.
-
-2008-11-23 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37735
- * gfortran.dg/alloc_comp_assign_7.f90: New test.
-
-2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * g++.dg/ext/tmplattr9.C: Require weak.
- * g++.old-deja/g++.pt/static6.C: Remove xfail for *-*-hpux*.
-
-2008-11-23 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/38234
- * gfortran.dg/reshape_4.f90: New test.
-
-2008-11-22 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/38225
- * gfortran.dg/reshape_3.f90: New test.
-
-2008-11-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38160
- * gfortran.dg/bind_c_usage_18.f90: New test.
- * gfortran.dg/c_kind_tests_2.f03: Update dg-messages.
- * gfortran.dg/interop_params.f03: Ditto.
-
-2008-11-22 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/38222
- * gcc.target/i386/funcspec-3.c: Scan for popcnt on Darwin targets.
-
-2008-11-22 Jakub Jelinek <jakub@redhat.com>
-
- PR libfortran/37839
- * gfortran.dg/f2003_inquire_1.f03: New test.
- * gfortran.dg/f2003_io_1.f03: Remove xfail.
- * gfortran.dg/f2003_io_4.f03: Likewise.
- * gfortran.dg/f2003_io_5.f03: Likewise.
- * gfortran.dg/f2003_io_6.f03: Likewise.
- * gfortran.dg/f2003_io_7.f03: Likewise.
-
-2008-11-21 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38200
- * gcc.dg/pr38200.c: New test.
-
-2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/avx-1.c: Include <immintrin.h> instead of
- <gmmintrin.h>.
- * gcc.target/i386/avx-2.c: Likewise.
- * gcc.target/i386/m256-check.h: Likewise.
- * g++.dg/other/i386-5.C: Likewise.
- * g++.dg/other/i386-6.C: Likewise.
-
-2008-11-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/37472
- * gfortran.dg/namelist_print_1.f: Update test.
-
-2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.dg/sync-2.c: Add type cast to avoid folding.
- * gcc.dg/sync-3.c: Likewise.
-
-2008-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/29215
- * gfortran.dg/array_memcpy_3.f90: Adjust pattern to match even
- memcpy optimized into ref-all store.
- * gcc.dg/pr29215.c: New test.
-
-2008-11-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/38151
- * gcc.target/i386/pr38151-1.c: New test.
-
-2008-11-20 Jason Merrill <jason@redhat.com>
-
- PR c++/28513
- * g++.dg/lookup/name-clash7.C: New test.
-
- PR c++/37540
- * g++.dg/cpp0x/decltype14.C: New test.
-
-2008-11-20 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37868
- * gcc.dg/torture/pr37868.c: New testcase.
- * gcc.c-torture/execute/pr38048-1.c: Likewise.
- * gcc.c-torture/execute/pr38048-2.c: Likewise.
-
-2008-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/38181
- * gfortran.dg/array_section_2.f90: Adjust pattern to match
- the inlined size0 instead of a size0 call.
-
- PR c++/36631
- * g++.dg/template/call5.C: New test.
-
-2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.c-torture/compile/20081119-1.c: New test.
-
-2008-11-19 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/37142
- * g++.dg/template/crash85.C: New test.
-
-2008-11-19 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/35405
- * g++.dg/template/crash84.C: New test.
-
-2008-11-19 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.c-torture/compile/pr11832.c: XFAIL even on s390*-*-*.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-11-19 DJ Delorie <dj@redhat.com>
-
- * gcc.target/xstormy16/below100.S (.chip_info): Use
- position-independent expressions for the fillers.
-
-2008-11-19 Jason Merrill <jason@redhat.com>
-
- PR c++/36410
- * g++.dg/ext/attrib32.C: Add member typedef case.
-
- PR c++/37563
- * g++.dg/template/pseudodtor5.C: New test.
-
- PR c++/37256
- * g++.dg/cpp0x/extern_template-3.C: New test.
-
-2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * gcc.target/m68k/xgot-1.c (dg-options): Add -O2.
-
-2008-11-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36038
- * gcc.c-torture/compile/pr36038.c: Moved to...
- * gcc.c-torture/execute/pr36038.c: ... here.
-
-2008-11-19 Andrew Stubbs <ams@codesourcery.com>
-
- PR target/36133
- * gcc.target/m68k/pr36133.c: New test.
-
-2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * gcc.gd/struct/wo_prof_global_var.c: Use uninitialized integer
- values instead of uninitialized FP values to avoid NaNs.
- * gcc.dg/struct/wo_prof_local_var.c: Same.
-
-2008-11-19 Eric Botcazou <ebotcazou@adacore.com>
-
- * gfortran.dg/f2003_io_1.f03: XFAIL for all SPARC targets.
- * gfortran.dg/f2003_io_4.f03: Ditto.
- * gfortran.dg/f2003_io_5.f03: Ditto.
- * gfortran.dg/f2003_io_6.f03: Ditto.
- * gfortran.dg/f2003_io_7.f03: Ditto.
-
-2008-11-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38171
- * gfortran.dg/module_equivalence_6.f90: New test.
-
-2008-11-18 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/38051
- * gcc.c-torture/execute/pr38051.c (buf): Remove aligned attribute.
- (buf2): Removed.
- (main): Only run on little endian targets with
- sizeof (long) == sizeof (void *). Use just one buffer, align the
- pointers at runtime.
-
-2008-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/38135
- * gfortran.dg/reshape_pad_1.f90: New test case.
-
-2008-11-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/37362
- * gcc.target/mips/pr37362.c: New test.
-
-2008-11-18 Jason Merrill <jason@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37962
- * g++.dg/cpp0x/auto[38].C: Adjust expected errors.
- * g++.dg/cpp0x/auto9.C: New test.
- * g++.dg/cpp0x/auto10.C: New test.
-
-2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.c-torture/execute/20081117-1.c: New test.
-
-2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/dspr2-MULT.c: Just check for $ac1 and $ac2.
- * gcc.target/mips/dspr2-MULTU.c: Likewise.
-
-2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/madd-5.c: New test.
- * gcc.target/mips/madd-6.c: Likewise.
- * gcc.target/mips/madd-7.c: Likewise.
- * gcc.target/mips/madd-8.c: Likewise.
- * gcc.target/mips/msub-5.c: Likewise.
- * gcc.target/mips/msub-6.c: Likewise.
- * gcc.target/mips/msub-7.c: Likewise.
- * gcc.target/mips/msub-8.c: Likewise.
-
-2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/no-smartmips-ror-1.c: Use -march=mips32 instead
- of -march=mips32r2.
-
-2008-11-17 Jack Howarth <howarth@bromo.med.uc.edu>
-
- * gfortran.dg/default_format_denormal_1.f90: Don't XFAIL darwin10
- or later.
-
-2008-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/38140
- * gcc.dg/pr38140.c: New test.
-
-2008-11-17 Jack Howarth <howarth@bromo.med.uc.edu>
-
- PR testsuite/38099
- * gcc.dg/compat/struct-layout-1_generate.c: Also use -no-mmx on
- i?86/x86_64 darwin.
- * g++.dg/compat/struct-layout-1_generate.c: Same.
-
-2008-11-17 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37908
- * gcc.dg/pr37908.c: New test.
- * gcc.dg/ia64-sync-1.c: Correct __sync_fetch_and_nand and
- __sync_nand_and_fetch results. Add dg-message to look for the warning
- about changed semantics of NAND builtin.
- (init_si, init_di): Change init value for __sync_fetch_and_nand to -1.
- (test_si, test_di): Change expected result of
- __sync_nand_and_fetch to ~7.
- * gcc.dg/ia64-sync-2.c: Correct __sync_fetch_and_nand and
- __sync_nand_and_fetch results. Add dg-message to look for the warning
- about changed semantics of NAND builtin.
- (init_noret_si, init_noret_di): Change init value for
- __sync_fetch_and_nand to -1.
- (init_noret_si, init_noret_di): Change expected result of
- __sync_nand_and_fetch to ~7.
- * gcc.dg/sync-2.c: Correct __sync_fetch_and_nand and
- __sync_nand_and_fetch results. Add dg-message to look for the warning
- about changed semantics of NAND builtin.
- (init_qi, init_qi): Change init value for __sync_fetch_and_nand to -1.
- (init_hi, init_hi): Change expected result of
- __sync_nand_and_fetch to ~7.
- * gcc.dg/sync-3.c: Copy from sync-2.c instead of including
- the c source file.
- * gcc.c-torture/compile/sync-1.c: Add dg-message to look for the
- warning about changed semantics of NAND builtin.
- * gcc.c-torture/compile/sync-2.c: Ditto.
- * gcc.c-torture/compile/sync-3.c: Ditto.
-
-2008-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36089
- * g++.dg/template/init8.C: New test.
-
-2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35681
- * gfortran.dg/elemental_dependency_1.f90: New test.
-
-2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37992
- * gfotran.dg/charlen_free_1.f90: New test.
-
-2008-11-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/38097
- * gfortran.dg/fmt_bz_bn.f: New test.
-
-2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/boolean_bitfield.adb: New test.
-
-2008-11-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38095
- * gfortran.dg/char_length_13.f90: New test.
-
-2008-11-16 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr36246.c: Add -fomit-frame-pointer to dg-options.
- * gcc.target/i386/pr32661-1.c: Ditto.
- * gcc.target/i386/pr34256.c: Ditto.
- * gcc.target/i386/pr22076.c: Ditto. Check for "movl" instruction on
- nonpic targets only.
-
-2008-11-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38119
- * gfortran.dg/array_temporaries_3.f90: New test.
-
-2008-11-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/37294
- * gfortran.dg/namelist_57.f90: New test.
- * gfortran.dg/namelist_print_1.f: Adjust test conditions.
-
-2008-11-15 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37926
- * gfortran.dg/dummy_procedure_3.f90: New test.
-
-2008-11-15 Jakub Jelinek <jakub@redhat.com>
-
- PR target/38123
- * gcc.c-torture/compile/pr38123.c: New test.
-
-2008-11-15 Richard Guenther <rguenther@suse.de>
- Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/38051
- * gcc.c-torture/execute/pr38051.c: New testcase.
-
-2008-11-15 Joshua Kinard <kumba@gentoo.org>
- Richard Sandiford <rdsandiford@goolemail.com>
-
- * gcc.target/mips/fix-r10000-1.c: New test.
- * gcc.target/mips/fix-r10000-2.c: Likewise.
- * gcc.target/mips/fix-r10000-3.c: Likewise.
- * gcc.target/mips/fix-r10000-4.c: Likewise.
- * gcc.target/mips/fix-r10000-5.c: Likewise.
- * gcc.target/mips/fix-r10000-6.c: Likewise.
- * gcc.target/mips/fix-r10000-7.c: Likewise.
- * gcc.target/mips/fix-r10000-8.c: Likewise.
- * gcc.target/mips/fix-r10000-9.c: Likewise.
- * gcc.target/mips/fix-r10000-10.c: Likewise.
- * gcc.target/mips/fix-r10000-11.c: Likewise.
- * gcc.target/mips/fix-r10000-12.c: Likewise.
- * gcc.target/mips/fix-r10000-13.c: Likewise.
- * gcc.target/mips/fix-r10000-14.c: Likewise.
- * gcc.target/mips/fix-r10000-15.c: Likewise.
-
-2008-11-15 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37561
- * gcc.dg/pr37561.c: New test.
- * g++.dg/other/increment1.C: New test.
-
-2008-11-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/37988
- * gfortran.dg/fmt_error_6.f90: New test.
-
-2008-11-14 Jason Merrill <jason@redhat.com>
-
- PR c++/38030
- * g++.dg/template/lookup8.C: New test.
-
- PR c++/37740
- * g++.dg/cpp0x/initlist8.C: New test.
-
-2008-11-13 Steve Ellcey <sje@cup.hp.com>
-
- PR middle-end/38004
- * g++.dg/vect/pr36648.cc: Check alignment requirement.
-
-2008-11-14 Jack Howarth <howarth@bromo.med.uc.edu>
-
- PR testsuite/38098
- * gcc.dg/cpp/subframework1.c: Use -Wno-deprecated.
-
-2008-10-14 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/38033
- * gfortran.dg/array_section_2.f90: New test.
-
-2008-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/38104
- * g++.dg/tree-ssa/pr38104.C: New test.
-
-2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * gcc.target/sh/pr37514.c: Remove.
-
-2008-11-14 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/37517
- * gcc.target/i386/quad-sse.c: Tighten scan-assembler-not pattern.
-
-2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
- Andrew Stubbs <ams@codesourcery.com>
- Gunnar Von Boehn <gunnar@genesi-usa.com>
-
- PR target/36134
- * gcc.target/m68k/pr36134.c: New test.
-
-2008-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36125
- * gcc.c-torture/compile/pr36125.c: New test.
-
-2008-11-13 Jason Merrill <jason@redhat.com>
-
- PR c++/37932
- * g++.dg/conversion/bitfield11.C: New test.
- * g++.dg/cpp0x/initlist7.C: New test.
-
-2008-11-13 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/loongson-muldiv-1.c: New test.
- * gcc.target/mips/loongson-muldiv-2.c: Likewise.
-
-2008-11-13 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/27017
- * g++.dg/debug/dwarf2/localclass1.C: New test.
- * g++.dg/debug/dwarf2/localclass2.C: New test.
-
-2008-11-13 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mno-mmx
- for i?86-*-* and x86_64-*-* targets.
- * g++.dg/compat/struct-layout-1_generate.c (dg-options): Add
- -fno-common for *-*-darwin* *-*-mingw32* *-*-cygwin* targets.
-
- * gcc.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
- <xmmintrin.h>, define __m64 and __m128 directly.
-
-2008-11-13 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/test_raise_from_pure.adb: Adjust to match revised intent.
- * gnat.dg/wrap_raise_from_pure.adb: Remove.
- * gnat.dg/handle_raise_from_pure.adb: New test.
-
-2008-11-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38094
- * gfortran.dg/private_type_4.f90: Fix dg-error pattern.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36478
- * g++.old-deja/g++.mike/empty.C: Remove.
-
-2008-11-12 Dodji Seketeli <dodji@redhat.com>
-
- PR debug/27574
- * g++.dg/debug/dwarf2/local-var-in-contructor.C: New test.
-
-2008-11-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/execute/20081112-1.c: New test.
- * gnat.dg/concat1.adb: Likewise.
- * gnat.dg/concat1_pkg.ad[sb]: New helper.
-
-2008-11-12 Jason Merrill <jason@redhat.com>
-
- PR c++/38007
- * g++.dg/conversion/bitfield10.C: New test.
- * g++.dg/warn/pr35635.C (func1): Accept additional warning.
- * g++.old-deja/g++.mike/enum1.C: Expect warn about assignment.
- * g++.dg/expr/bitfield9.C: Pass -Wno-overflow.
-
-2008-11-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38065
- PR fortran/38094
- * gfortran.dg/private_type_4.f90: Add -std=f95 option.
-
-2008-11-12 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/frame-addr1.c: New testcase.
- * gcc.target/s390/frame-addr2.c: New testcase.
- * gcc.target/s390/return-addr1.c: New testcase.
- * gcc.target/s390/return-addr2.c: New testcase.
-
-2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
-
- PR testsuite/38008
- * gcc.c-torture/execute/builtins/lib/sprintf.c: Make
- sprintf call more portable for darwin10.
-
- PR testsuite/37202
- * gcc.dg/visibility-14.c: Skip on *-*-darwin*.
- * gcc.dg/visibility-15.c: Same.
- * gcc.dg/visibility-16.c: Same.
- * gcc.dg/visibility-17.c: Same.
- * gcc.dg/visibility-18.c: Same.
- * gcc.dg/visibility-19.c: Same.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34269
- * g++.dg/cpp0x/decltype13.C: New test.
- * g++.dg/cpp0x/decltype-33837.C: Adjust dg-error pattern.
- * g++.dg/cpp0x/pr33839.C: Likewise.
-
- PR target/35366
- PR fortran/33759
- * gfortran.dg/hollerith.f90: Don't assume a 32-bit value
- stored into logical variable will be preserved.
- * gfortran.dg/transfer_simplify_4.f90: Remove undefined cases.
- Run at all optimization levels. Add a couple of new tests.
- * gfortran.dg/hollerith5.f90: New test.
- * gfortran.dg/hollerith_legacy.f90: Add dg-warning.
-
- PR c++/35334
- * gcc.dg/pr35334.c: New test.
- * g++.dg/other/error29.C: New test.
-
-2008-11-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/38065
- * gfortran.dg/private_type_11.f90: New test.
- * gfortran.dg/private_type_12.f90: New test.
-
-2008-11-10 Catherine Moore <clm@codesourcery.com>
-
- * gcc.target/mips/no-smartmips-lwxs.c: New test.
- * gcc.target/mips/no-smartmips-ror-1.c: New test.
-
-2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * gcc.target/sh/pr37514.c: New test.
-
-2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
-
- * g++.dg/other/anon5.C: Skip on Solaris.
-
-2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pack11.adb: New test.
-
-2008-11-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/38021
- * g++.dg/cpp0x/enum1.C: New test.
-
-2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
-
- PR middle-end/37807
- PR middle-end/37809
- * gcc.target/i386/mmx-8.c: New test.
-
-2008-11-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37836
- * gfortran.dg/minmaxval_1.f90: New test.
-
-2008-11-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_boolean.adb: New test.
-
-2008-11-07 Thomas Quinot <quinot@adacore.com>
-
- * gnat.dg/hyper_flat.adb: New test.
-
-2008-11-07 Geert Bosch <bosch@adacore.com>
-
- * gnat.dg/test_8bitlong_overflow.adb: New test.
-
-2008-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * g++.dg/ipa/iinline-1.C: Remove -c flag, add -fpie for PIC targets.
-
- * gcc.dg/tree-ssa/inline-2.c (foo): Add 'inline' keyword.
-
-2008-11-06 Sebastian Pop <sebastian.pop@amd.com>
-
- * gcc.dg/graphite/pr37943.c: Fix missing end of file.
-
-2008-11-06 Joseph Myers <joseph@codesourcery.com>
+ * gcc.target/i386/pr37843-3.c: Replace _Decimal128 with __m128.
- * gcc.dg/utf-array-short-wchar.c, gcc.dg/utf-cvt.c,
- gcc.dg/utf-inc-init.c, gcc.dg/utf16-1.c, gcc.dg/utf16-2.c,
- gcc.dg/utf16-3.c, gcc.dg/utf16-4.c, gcc.dg/utf32-1.c,
- gcc.dg/utf32-2.c, gcc.dg/utf32-3.c, gcc.dg/utf32-4.c: Use
- __CHAR16_TYPE__ and __CHAR32_TYPE__ typedefs.
+2009-01-15 Dodji Seketeli <dodji@redhat.com>
-2008-11-06 Richard Guenther <rguenther@suse.de>
+ PR c++/38636
+ * g++.dg/parse/crash50.C: New test.
- * gcc.dg/torture/pr37969.c: New testcase.
+2009-01-14 Jakub Jelinek <jakub@redhat.com>
-2008-11-05 Janis Johnson <janis187@us.ibm.com>
-
- * lib/c-torture.exp: Use ADDITIONAL_TORTURE_OPTIONS if defined.
- * lib/gcc-dg.exp: Ditto.
- * lib/fortran-torture.exp: Ditto.
- * lib/objc-torture.exp: Ditto.
-
-2008-11-05 Michael Meissner <meissner@linux.vnet.ibm.com>
-
- PR target/38025
- * gcc.target/spu/intrinsics-1.c (f): Tune expected error messages
- to match current compiler.
-
-2008-11-05 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/38016
- * gcc.c-torture/execute/ieee/pr38016.c: New test.
- * gcc.c-torture/execute/ieee/pr38016.x: New file.
-
-2008-11-05 Martin Jambor <mjambor@suse.cz>
-
- PR middle-end/37861
- * gcc.dg/Warray-bounds-5.c: New test.
- * gcc.dg/Warray-bounds-6.c: New test.
-
-2008-11-05 Fabien Chene <fabien.chene@gmail.com>
-
- PR c++/32519
- * g++.dg/template/pr32519.C: New test.
-
-2008-11-05 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37742
- * gcc.c-torture/compile/pr37742.c: New testcase.
- * g++.dg/pr37742.C: Likewise.
- * gcc.dg/tree-ssa/forwprop-7.c: Check for two volatile loads.
-
-2008-11-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/37286
- * gfortran.dg/pr37286.f90: New test.
-
-2008-11-04 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37597
- * gfortran.dg/host_assoc_call_5.f90: New test.
-
-2008-11-04 Jakub Jelinek <jakub@redhat.com>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR c/35430
- * gcc.dg/pr35430.c: New test.
- * g++.dg/warn/Wsign-compare-2.C: New test.
-
-2008-11-04 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37106
- * gcc.dg/pr37106-1.c: New test.
- * gcc.dg/pr37106-2.c: New test.
-
-2008-11-03 Chao-ying Fu <fu@mips.com>
-
- * gcc.target/mips/dsp-ctrl.c: New test.
-
-2008-11-03 Steve Ellcey <sje@cup.hp.com>
-
- * gfortran.dg/f2003_io_1.f03: XFAIL until PR37839 is fixed.
- * gfortran.dg/f2003_io_4.f03: Ditto.
- * gfortran.dg/f2003_io_5.f03: Ditto.
- * gfortran.dg/f2003_io_6.f03: Ditto.
- * gfortran.dg/f2003_io_7.f03: Ditto.
-
-2008-11-03 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/37241
- * g++.dg/abi/key2.C: Adjust regexps to allow __ZTV1f and __ZTI1f
- sharing one .section directive.
-
- PR target/37812
- * gcc.target/powerpc/altivec_check.h (altivec_cell_check): Abort
- if __PPU__ isn't defined.
- * lib/target-supports.exp (check_effective_target_powerpc_ppu_ok): New.
- * gcc.target/powerpc/altivec-cell-8.c: Use powerpc_ppu_ok.
-
-2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/execute/20081103-1.c: New test.
-
-2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/array5.adb New test.
-
-2008-11-03 Richard Guenther <rguenther@suse.de>
- Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37573
- * gcc.c-torture/execute/pr37573.c: New testcase.
-
-2008-11-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37858
- * gcc.dg/pr37858.c: New test.
-
-2008-11-03 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37821
- * gfortran.dg/include_4.f90: New.
- * gfortran.dg/include_5.f90: New.
- * gfortran.dg/include_4.inc: New.
-
-2008-11-03 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37445
- * gfortran.dg/host_assoc_call_3.f90: New test.
- * gfortran.dg/host_assoc_call_4.f90: New test.
- * gfortran.dg/host_assoc_function_4.f90: New test.
-
-2008-11-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37542
- * gcc.dg/tree-ssa/ssa-pre-22.c: New testcase.
- * gcc.c-torture/compile/20081101-1.c: Likewise.
-
-2008-11-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37991
- * gcc.c-torture/compile/pr37991.c: New testcase.
-
-2008-11-01 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/37939
- * gcc.target/cris/biap.c: New test.
-
-2008-11-01 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36426
- * gfortran.dg/proc_decl_19.f90: New.
-
-2008-11-01 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/19925
- * gfortran.dg/initialization_20.f90: New test.
- * gfortran.dg/initialization_21.f90: Ditto.
-
-2008-11-01 Daniel Kraft <d@domob.eu>
-
- PR fortran/35681
- * gfortran.dg/mvbits_4.f90: New test.
-
-2008-11-01 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36322
- PR fortran/36463
- * gfortran.dg/proc_decl_17.f90: New.
- * gfortran.dg/proc_decl_18.f90: New.
-
-2008-11-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37976
- * gcc.c-torture/compile/pr37976.c: New testcase.
-
-2008-11-01 Dennis Wassel <dennis.wassel@gmail.com>
-
- PR fortran/37159
- * gfortran.dg/random_seed_1.f90: New testcase.
-
-2008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- * gcc.dg/cpp/Wsignprom.c: Add column numbers.
- * gcc.dg/cpp/if-mpar.c: Likewise.
-
-2008-10-31 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37967
- * g++.dg/cpp0x/auto8.C: New test.
-
- PR c++/37965
- * g++.dg/cpp0x/auto7.C: New test.
-
-2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35840
- * gfortran.dg/write_check4.f90: New test.
-
-2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/35820
- * gfortran.dg/nested_forall_1.f: New test.
-
-2008-10-30 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/37930
- * gfortran.dg/int_conv_2.f90: New test.
-
-2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37903
- * gfortran.dg/vector_subscript_4.f90: New test.
-
-2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
-
- PR fortran/37749
- * gfortran.dg/vector_subscript__5.f90: New test.
-
-2008-10-30 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.target/s390/pr36822.c: Avoid cast to pointer from integer
- of different size warning with -m31.
-
- PR middle-end/37730
- * gcc.dg/vect/pr37730.c: New test.
-
- PR debug/36668
- * g++.dg/other/PR23205.C: Allow foobar to be defined as variable.
- * g++.dg/other/pr23205-2.C: New test.
-
-2008-10-29 David Edelsohn <edelsohn@gnu.org>
-
- * gcc.c-torture/compile/pr37878.c: New test.
-
-2008-10-29 Steve Ellcey <sje@cup.hp.com>
-
- PR middle-end/37339
- * gcc.dg/pr33645-3.c: Remove.
-
-2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 11492
- * gcc.dg/pr11492.c: New.
- * g++.dg/warn/pr11492.C: New.
-
-2008-10-29 Joseph Myers <joseph@codesourcery.com>
-
- PR middle-end/36578
- * gcc.dg/dfp/convert-bfp-13.c, gcc.dg/dfp/convert-bfp-14.c,
- gcc.dg/dfp/convert-dfp-fold-2.c, gcc.target/i386/pr36578-1.c,
- gcc.target/i386/pr36578-2.c: New tests.
-
-2008-10-29 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37870
- * gcc.target/i386/pr37870.c: New test.
-
-2008-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c++/26997
- * g++.dg/parse/pr26997.C: New.
-
-2008-10-29 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37913
- * gcc.c-torture/compile/pr37913.c: New test.
-
-2008-10-28 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37663
- * gcc.dg/pr37663.c: Require int32plus.
-
- PR c/37924
- * gcc.c-torture/execute/pr37924.c: New test.
-
-2008-10-28 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/dfp/convert-bfp-12.c: New test.
-
-2008-10-28 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37931
- * gcc.c-torture/execute/pr37931.c: New test.
-
-2008-10-27 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37879
- * gcc.dg/pr37879.c: New test.
-
-2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
-
- PR target/37841
- * gcc.target/spu/abi.c: New file.
-
-2008-10-24 DJ Delorie <dj@redhat.com>
-
- * lib/scanasm.exp (scan-assembler, scan-assembler-not,
- scan-hidden, scan-not-hidden, scan-file, scan-file-not,
- scan-assembler-times, scan-assembler-dem, scan-assembler-dem-not):
- Extract first word of $testcase for all upvar uses, in case
- $testvar has compiler switches appended.
-
-2008-10-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36038
- * gcc.c-torture/compile/pr36038.c: New test.
-
-2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/7543
- * gcc.dg/Wparentheses-11.c: New.
- * g++.dg/warn/Wparentheses-25.C: New. XFAILED.
-
-2008-10-24 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37882
- * gcc.c-torture/execute/pr37882.c: Remove a field.
-
-2008-10-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/37707
- * gfortran.dg/namelist_18.f90: Update test.
- * gfortran.dg/namelist_55.f90: New test.
- * gfortran.dg/namelist_56.f90: New test.
-
-2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * gcc.target/bfin/hisilh.c: New file.
- * gcc.target/bfin/hisilh-O0.c: New file.
-
- From Mike Frysinger <michael.frysinger@analog.com>
- * gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0002.
- Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0002+.
- * gcc.target/bfin/mcpu-bf523.c: Likewise.
- * gcc.target/bfin/mcpu-bf524.c: Likewise.
- * gcc.target/bfin/mcpu-bf525.c: Likewise.
- * gcc.target/bfin/mcpu-bf526.c: Likewise.
- * gcc.target/bfin/mcpu-bf527.c: Likewise.
- * gcc.target/bfin/mcpu-bf531.c: Check SILICON_REVISION is 0x0006.
- Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0006+.
- * gcc.target/bfin/mcpu-bf532.c: Likewise.
- * gcc.target/bfin/mcpu-bf533.c: Likewise.
- * gcc.target/bfin/mcpu-bf538.c: Check SILICON_REVISION is 0x0005.
- Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0005+.
- * gcc.target/bfin/mcpu-bf539.c: Likewise.
- * gcc.target/bfin/mcpu-bf542.c: Check SILICON_REVISION is 0x0002.
- Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0002+.
- * gcc.target/bfin/mcpu-bf544.c: Likewise.
- * gcc.target/bfin/mcpu-bf547.c: Likewise.
- * gcc.target/bfin/mcpu-bf548.c: Likewise.
- * gcc.target/bfin/mcpu-bf549.c: Likewise.
- * gcc.target/bfin/mcpu-bf512.c: New file.
- * gcc.target/bfin/mcpu-bf514.c: Likewise.
- * gcc.target/bfin/mcpu-bf516.c: Likewise.
- * gcc.target/bfin/mcpu-bf518.c: Likewise.
-
-2008-10-22 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37882
- * gcc.c-torture/execute/pr37882.c: New test.
-
-2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/30949
- * gcc.target/i386/sse-vect-types.c: Update.
- * gcc.dg/simd-5.c: Update.
- * gcc.dg/assign-warn-2.c: Update.
- * gcc.dg/simd-2.c: Update.
- * gcc.dg/simd-6.c: Update.
- * gcc.dg/assign-warn-1.c: Update.
- * gcc.dg/dfp/composite-type.c: Update.
- * gcc.dg/simd-1.c: Update.
- * gcc.dg/pr36997.c: Update.
-
-2008-10-21 Paul Thomas <pault@gcc.gnu.org>
-
- PR libfortran/36795
- * gfortran.dg/char_expr_3.f90: Add the original test case.
-
-2008-10-21 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34670
- * gfortran.dg/transpose_2.f90: New test.
-
-2008-10-21 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37669
- * gcc.c-torture/compile/pr37669-2.c: New test.
-
-2008-10-21 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/alias-19.c: New testcase.
-
-2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR 12603
- * gcc.dg/pr12603.c: New testcase.
-
-2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c++/37004
- * g++.dg/warn/Wconversion-pr34389.C: Remove XFAIL.
-
-2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c/30260
- * gcc.dg/pr30260.c: New.
-
-2008-10-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37723
- * gfortran.dg/dependency_22.f90: New test.
-
-2008-10-18 Danny Smith <dannysmith@users.sourceforge.net>
-
- * gcc.dg/dll-2.c: Revert 2008-08-09 change (R138893): Change
- "dg-message" back to "dg-warning".
- * gcc.dg/dll-3.c: Likewise.
-
-2008-10-16 Alexander Monakov <amonakov@ispras.ru>
-
- PR target/37381
- * gcc.c-torture/compile/pr37381.c: New test.
-
-2008-10-16 Joseph Myers <joseph@codesourcery.com>
-
- PR c/33192
- * gcc.dg/imag-1.c: New test.
-
-2008-10-16 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/elemental_intrinsic_1.f03: New test.
-
-2008-10-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37664
- * gcc.c-torture/compile/pr37664.c: New test.
-
-2008-10-16 Joseph Myers <joseph@codesourcery.com>
-
- PR middle-end/37418
- * gcc.c-torture/compile/pr37418-1.c,
- gcc.c-torture/compile/pr37418-2.c,
- gcc.c-torture/compile/pr37418-3.c,
- gcc.c-torture/compile/pr37418-4.c: New tests.
-
-2008-10-15 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34670
- * gfortran.dg/reshape_3.f90: New test.
- * gfortran.dg/reshape_4.f90: New test.
- * gfortran.dg/reshape_order_1.f90: Use correct shape.
- * gfortran.dg/reshape_order_2.f90: Likewise.
- * gfortran.dg/reshape_order_3.f90: Likewise.
- * gfortran.dg/reshape_order_4.f90: Likewise.
-
-2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
-
- PR tree-optimization/37485
- * gcc.dg/graphite/pr37485.c: New.
-
-2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
-
- PR tree-optimization/37828
- * testsuite/gcc.dg/graphite/pr37828.c: New.
-
-2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/37686
- * testsuite/gcc.dg/tree-ssa/pr37686.c: New.
-
-2008-10-15 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36881
- * gcc.dg/tree-ssa/pr36881.c: New test.
-
-2008-10-14 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37819
- * g++.dg/expr/bitfield11.C: New test.
-
-2008-10-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/37650
- * g++.dg/template/crash83.C: New.
-
-2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/37553
- * g++.dg/ext/alias-canon2.C: New.
-
-2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org
-
- PR libfortran/37083
- * gfortran.dg/list_read_9.f90: New test.
- * gfortran.dg/arrayio_8.f90: Fix some typos.
-
-2008-10-13 Kai Tietz <kai.tietz@onevision.com>
-
- * testsuite/gcc.dg/format/ms-format1.c: New.
-
-2008-10-12 Daniel Kraft <d@domob.eu>
-
- PR fortran/37688
- * gfortran.dg/used_before_typed_6.f90: New test.
-
-2008-10-12 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37787
- * gfortran.dg/module_equivalence_5.f90: New test.
-
-2008-10-12 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/37792
- * gfortran.dg/arithmetic_overflow_1.f90: New test.
-
-2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_optimization5.adb: New test.
- * gnat.dg/loop_optimization5_pkg.adb: New helper.
-
-2008-10-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37794
- * gfortran.dg/used_types_24.f90: New test.
-
-2008-10-11 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35760
- * gcc.c-torture/compile/pr35760.c: New test.
-
-2008-10-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37146
- * g++.dg/torture/pr37146-1.C: New test.
- * g++.dg/torture/pr37146-2.C: New test.
- * g++.dg/expr/bitfield10.C: New test.
-
-2008-10-08 Jerry DeLisle <jvdelisle@gcc.gnu.org
-
- PR libfortran/37707
- * gfortran.dg/namelist_54.f90: Revise test, check a(3).
-
-2008-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/37753
- * gfortran.dg/convert_2.f90: New test case.
-
-2008-10-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/35723
- * gfortran.dg/restricted_expression_1.f90: New test.
- * gfortran.dg/restricted_expression_2.f90: New test.
- * gfortran.dg/restricted_expression_3.f90: New test.
-
-2008-10-08 Jerry DeLisle <jvdelisle@gcc.gnu.org
-
- PR libfortran/37707
- * gfortran.dg/namelist_54.f90: New test.
-
-2008-10-08 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/vect/ggc-pr37574.c: Cleanup "vect" tree dump.
- * gfortran.dg/intrinsic_optional_char_arg_1.f90: Cleanup
- "original" tree dump.
-
- * lib/gfortran-dg.exp (gfortran-dg-debug-runtest): Remove build
- file trivial.S.
-
-2008-10-08 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-exts-2.c: Compile it with -meb.
- * gcc.target/mips/octeon-exts-5.c: New test.
- * gcc.target/mips/octeon-bbit-3.c: Compile with -meb. Add
- comment why this is necessary.
-
-2008-10-08 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36635
- PR target/37290
- PR rtl-optimization/37341
- * gcc.c-torture/compile/pr37341.c: New test.
-
-2008-10-07 Simon Martin <simartin@users.sourceforge.net>
-
- PR c/35437
- * gcc.dg/struct-parse-2.c: New test.
- * g++.dg/parse/struct-4.C: New test.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/29609
- PR debug/36690
- PR debug/37616
- * gcc.dg/debug/pr29609-1.c: New test.
- * gcc.dg/debug/pr29609-2.c: New test.
- * gcc.dg/debug/pr36690-1.c: New test.
- * gcc.dg/debug/pr36690-2.c: New test.
- * gcc.dg/debug/pr36690-3.c: New test.
- * gcc.dg/debug/pr37616.c: New test.
- * gcc.dg/debug/dwarf2/pr29609-1.c: New test.
- * gcc.dg/debug/dwarf2/pr29609-2.c: New test.
- * gcc.dg/debug/dwarf2/pr36690-1.c: New test.
- * gcc.dg/debug/dwarf2/pr36690-2.c: New test.
- * gcc.dg/debug/dwarf2/pr36690-3.c: New test.
- * gcc.dg/debug/dwarf2/pr37616.c: New test.
-
-2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37731
- * gcc.dg/torture/pr37731-1.c: New.
- * gcc.dg/torture/pr37731-2.c: Likewise.
-
-2008-10-07 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37738
- * gfortran.dg/debug/pr37738.f: New test.
-
-2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_optimization4.adb: New test.
- * gnat.dg/loop_optimization4_pkg.ad[sb]: New helper.
-
-2008-10-07 Bob Wilson <bob.wilson@acm.org>
-
- * gcc.dg/compat/struct-layout-1_generate.c (dg_options): New. Moved
- dg-options lines to this array, and added options for xtensa*-*-*.
- (NDG_OPTIONS): Define.
- (switchfiles): Print dg-options lines from new dg_options array.
- * g++.dg/compat/struct-layout-1_generate.c (dg_options): Add options
- for xtensa*-*-* targets.
-
-2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/addr4.adb: New test.
- * gnat.dg/addr5.adb: Likewise.
-
-2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/mips.exp (dg-mips-options): Set mips_new_gp to
- 32 when -march=r3900 is passed.
- * testsuite/gcc.target/mips/r3900-mult.c: New test.
-
-2008-10-06 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/gomp/for-1.c: Test column.
- * gcc.dg/misc-column.c: Add column tests for unary arguments.
-
-2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/unchecked_convert2.adb: New test.
-
-2008-10-05 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/37410
- * g++.dg/debug/dwarf2/imported-module.C: New test.
-
-2008-10-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35680
- * gfortran.dg/transfer_array_intrinsic_5.f90: New test.
-
-2008-10-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/37638
- * gfortran.dg/typebound_call_9.f03: New test.
-
-2008-10-04 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37706
- * gfortran.dg/module_equivalence_4.f90: New test.
-
-2008-10-04 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-pre-21.c: New testcase.
-
-2008-10-03 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37726
- * gcc.dg/debug/dwarf2/pr37726.c: New test.
-
-2008-10-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/37719
- * g++.dg/template/error36.C: New.
-
-2008-10-02 Steven Bosscher <steven@gcc.gnu.org>
-
- PR fortran/37635
- * gfortran.fortran-torture/execute/intrinsic_leadz.f90: New test.
- * gfortran.fortran-torture/execute/intrinsic_trailz.f90: New test.
-
-2008-10-02 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.dg/torture/pr36891.c: Ignore an irrelevant warning.
-
- * gcc.target/powerpc/ppc64-abi-3.c: Initialize variables to suppress
- warning.
+ PR rtl-optimization/38245
+ * gcc.dg/pr38245-3.c: New test.
+ * gcc.dg/pr38245-3.h: New file.
+ * gcc.dg/pr38245-4.c: New file.
+ * gcc.dg/pr38364.c: New test.
-2008-10-02 Richard Guenther <rguenther@suse.de>
+2009-01-14 Adam Nemet <anemet@caviumnetworks.com>
- PR middle-end/37713
- * gcc.c-torture/compile/pr37713.c: New testcase.
+ * gcc.target/mips/mips.exp (mips_option_tests(-mips16)): Make the
+ sequence PC-relative.
-2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+2009-01-14 Mark Mitchell <mark@codesourcery.com>
- * gcc.target/powerpc/altivec-cell-1.c: New test.
- * gcc.target/powerpc/altivec-cell-2.c: New test.
- * gcc.target/powerpc/altivec-cell-3.c: New test.
- * gcc.target/powerpc/altivec-cell-4.c: New test.
- * gcc.target/powerpc/altivec-cell-5.c: New test.
- * g++.dg/ext/altivec-cell-1.C: New test.
- * g++.dg/ext/altivec-cell-2.C: New test.
- * g++.dg/ext/altivec-cell-3.C: New test.
- * g++.dg/ext/altivec-cell-4.C: New test.
- * g++.dg/ext/altivec-cell-5.C: New test.
+ * gcc.target/arm/long-calls-1.c: Tolerate the lack of sibling
+ calls and/or PLT markers.
+ * gcc.target/arm/long-calls-2.c: Tolerate the lack of sibling
+ calls and/or PLT markers.
+ * gcc.target/arm/long-calls-3.c: Tolerate the lack of sibling
+ calls and/or PLT markers.
+ * gcc.target/arm/long-calls-4.c: Tolerate the lack of sibling
+ calls and/or PLT markers.
-2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+2009-01-14 Daniel Jacobowitz <dan@codesourcery.com>
+ Nathan Froyd <froydnj@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
- * gcc.target/powerpc/altivec_check.h (altivec_cell_check):
+ * lib/target-supports.exp (check_effective_target_powerpc_spe_nocache):
New function.
- * gcc.target/powerpc/altivec-cell-6.c: New test.
- * gcc.target/powerpc/altivec-cell-7.c: New test.
- * gcc.target/powerpc/altivec-cell-8.c: New test.
-
-2008-10-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37617
- * gcc.c-torture/compile/pr37617.c: New testcase.
-
-2008-10-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37285
- * gcc.c-torture/compile/pr37285.c: New testcase.
-
-2008-10-01 Kai Tietz <kai.tietz@onevision.com>
-
- * g++.dg/abi/offsetof.C (main): Use __SIZE_TYPE__ instead of
- unsigned long for pointer cast.
- * g++.dg/init/struct1.C: Likewise.
- * g++.dg/init/struct2.C: Likewise.
- * g++.dg/init/struct3.C: Likewise.
- * g++.dg/ext/utf-cvt.C: Correct for w64.
- * gcc.dg/utf-cvt.c: Likewise.
- * lib/target-supports.exp (check_effective_target_llp64): New.
-
-2008-09-30 Simon Martin <simartin@users.sourceforge.net>
-
- PR c++/37555
- * g++.dg/parse/error32.C: New test.
-
- PR c++/37556
- * g++.dg/parse/error33.C: New test.
-
-2008-09-30 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37662
- PR tree-optimization/37663
- * gcc.c-torture/compile/pr37662.c: New test.
- * gcc.dg/pr37663.c: New test.
-
-2008-09-30 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36592
- * gfortran.dg/proc_ptr_common_1.f90: New.
- * gfortran.dg/proc_ptr_common_2.f90: New.
-
-2008-09-30 Paolo Bonzini <bonzini@gnu.org>
-
- * g++.dg/warn/if-empty-1.C: Copy from gcc.dg/if-empty-1.c.
-
-2008-09-30 Paolo Bonzini <bonzini@gnu.org>
-
- PR testsuite/36891
- PR testsuite/37675
- * gcc.dg/torture/pr36891.c: Add -msse on 32-bit i386.
-
-2008-09-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/37669
- * gcc.c-torture/compile/pr37669.c: New test.
-
-2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/37640
- * gcc.c-torture/compile/sync-3.c: New testcase to check that
- addresses of non zero offset works.
-
-2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
-
- PR tree-opt/36891
- * gcc.dg/torture/pr36891.c: New testcase.
-
-2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/conv_decimal.adb: New test.
-
-2008-09-26 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37275
- * gcc.target/i386/pr37275.c: New test.
-
-2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/static_initializer4.ads: New test.
- * gnat.dg/specs/static_initializer3.ads: Add missing marker.
-
-2008-09-26 Kai Tietz <kai.tietz@onevision.com>
-
- * g++.dg/compat/struct-layout-1_x1.h: Add __SIZE_TYPE__ cast
- to avoid pointer truncation warning.
-
-2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
-
- PR tree-optimization/37574
- * gcc.dg/vect/ggc-pr37574.c: New test.
- * gcc.dg/vect/vect.exp: Compile some tests with ggc flags.
-
-2008-09-25 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37645
- * gcc.dg/pr37645.c: New test.
-
-2008-09-25 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/vect/slp-7.c: Add alignment attribute, change target tests.
-
-2008-09-25 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/37649
- * g++.dg/template/crash82.C: New.
-
-2008-09-25 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37504
- * gfortran.dg/protected_7.f90: New test.
-
-2008-09-24 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/vect/O3-vect-pr34223.c: Check vect_int_mult.
-
-2008-09-24 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/gomp/for-1.c: Test for columns.
- * gcc.dg/func-outside-1.c: Same.
- * gcc.dg/bitfld-7.c: Same.
-
-2008-09-24 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/utf-array.c: Fix syntax of dg-error stmts.
-
-2008-09-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37626
- * gfortran.dg/allocatable_function_4.f90: New test.
-
-2008-09-23 Steve Ellcey <sje@cup.hp.com>
-
- * lib/target-supports.exp (check_effective_target_pow10): New.
- * g++.dg/cdce3.C: Set GNU_EXTENSION if pow10.
-
-2008-09-23 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37533
- * g++.dg/gomp/pr37533.C: New test.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/vect/slp-widen-mult-s16.c: Fix typo.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/cpp/cmdlne-dU-23.c: New test.
-
-2008-09-23 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/Walways-true-1.c: Test column numbers.
- * gcc.dg/c90-const-expr-5.c: Same.
- * gcc.dg/compare4.c: Same.
- * gcc.dg/Werror-1.c: Same.
-
-2008-09-23 Daniel Kraft <d@domob.eu>
-
- PR fortran/37588
- * gfortran.dg/typebound_generic_4.f03: New test.
- * gfortran.dg/typebound_generic_5.f03: New test.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/pragma-init-fini.c: Use dg-warning in lieu of dg-error.
- * gcc.dg/pragma-align-2.c: Likewise.
- * gcc.dg/format/cmn-err-1.c: Likewise.
-
-2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/cpp/cmdlne-dU-16.c: Specify -std=c89 on Solaris.
- * gcc.dg/cpp/cmdlne-dU-17.c: Likewise.
-
-2008-09-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37580
- * gfortran.dg/pointer_assign_5.f90: New test.
- * gfortran.dg/pointer_assign_6.f90: New test.
-
-2008-09-22 David Daney <ddaney@avtrex.com>
-
- PR target/37593
- * gcc.target/mips/long-calls-pg.c: New test.
-
-2008-09-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37145
- * gcc.c-torture/compile/20080922-1.c: New testcase.
- * gcc.dg/tree-ssa/ssa-fre-7.c: Remove XFAIL.
- * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise.
-
-2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-baddu-1.c: New test.
-
-2008-09-22 David Edelsohn <edelsohn@gnu.org>
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: Extend XFAIL to powerpc*-*-*.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-09-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37145
- * gcc.dg/tree-ssa/ssa-pre-15.c: Remove XFAIL.
-
-2008-09-22 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/37486
- * gfortran.dg/common_align_1.f90: New.
- * gfortran.dg/warn_align_commons.f90: New.
-
-2008-09-22 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/volatile3.adb: New test.
-
-2008-09-22 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37482
- * gcc.dg/vect/pr37482.c: New test.
-
-2008-09-22 Hans-Peter Nilsson <hp@axis.com>
-
- PR middle-end/37170
- PR middle-end/37280
- * gcc.dg/weak/weak-15.c, gcc.dg/weak/weak-16.c,
- g++.dg/ext/inline1.C: New tests.
-
-2008-09-21 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: XFAIL on sh*-*-*.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-09-21 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37583
- * gfortran.dg/entry_18.f90: New test.
-
-2008-09-21 Daniel Kraft <d@domob.eu>
-
- PR fortran/35846
- * gfortran.dg/nested_array_constructor_1.f90: New test.
- * gfortran.dg/nested_array_constructor_2.f90: New test.
- * gfortran.dg/nested_array_constructor_3.f90: New test.
- * gfortran.dg/nested_array_constructor_4.f90: New test.
- * gfortran.dg/nested_array_constructor_5.f90: New test.
- * gfortran.dg/nested_array_constructor_6.f90: New test.
-
-2008-09-21 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/typebound_proc_4.f03: Changed expected error for not
- yet implemented PROCEDURE(interface).
-
-2008-09-21 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37539
- * gcc.dg/vect/pr37539.c: New test.
-
-2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: XFAIL on SPARC.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/30930
- * gcc.dg/tree-ssa/vector-2.c: New test.
- * gcc.dg/tree-ssa/vector-3.c: New test.
-
-2008-09-18 Bob Wilson <bob.wilson@acm.org>
-
- * gcc.c-torture/compile/pr11832.c: xfail on xtensa*-*-*.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-09-18 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/25241
- * lib/g++.exp (g++_init): Enable overrides of dg-error, dg-warning
- for C++ tests.
- * g++.dg/conversion/ambig1.C: Clean up dg-error/dg-warning; use
- dg-message for notes.
- * g++.dg/conversion/simd1.C: Ditto.
- * g++.dg/conversion/simd3.C: Ditto.
- * g++.dg/cpp0x/rv2n.C: Ditto.
- * g++.dg/cpp0x/rv3n.C: Ditto.
- * g++.dg/cpp0x/rv4n.C: Ditto.
- * g++.dg/cpp0x/rv5n.C: Ditto.
- * g++.dg/cpp0x/rv6n.C: Ditto.
- * g++.dg/cpp0x/rv7n.C: Ditto.
- * g++.dg/cpp0x/variadic36.C: Ditto.
- * g++.dg/cpp0x/variadic59.C: Ditto.
- * g++.dg/cpp0x/variadic71.C: Ditto.
- * g++.dg/cpp0x/variadic-ex13.C: Ditto.
- * g++.dg/expr/cond9.C: Ditto.
- * g++.dg/expr/pmf-1.C: Ditto.
- * g++.dg/ext/case-range2.C: Ditto.
- * g++.dg/ext/case-range3.C: Ditto.
- * g++.dg/ext/is_class_error2.C: Ditto.
- * g++.dg/ext/label5.C: Ditto.
- * g++.dg/ext/pr27019.C: Ditto.
- * g++.dg/gomp/pr26690-1.C: Ditto.
- * g++.dg/gomp/pr26690-2.C: Ditto.
- * g++.dg/gomp/pr34694.C: Ditto.
- * g++.dg/gomp/tpl-parallel-2.C: Ditto.
- * g++.dg/inherit/base3.C: Ditto.
- * g++.dg/inherit/using6.C: Ditto.
- * g++.dg/init/brace6.C: Ditto.
- * g++.dg/init/ctor4.C: Ditto.
- * g++.dg/lookup/conv-1.C: Ditto.
- * g++.dg/lookup/new1.C: Ditto.
- * g++.dg/lookup/scoped6.C: Ditto.
- * g++.dg/lookup/using7.C: Ditto.
- * g++.dg/lookup/using9.C: Ditto.
- * g++.dg/other/abstract1.C: Ditto.
- * g++.dg/other/abstract2.C: Ditto.
- * g++.dg/other/anon5.C: Ditto.
- * g++.dg/other/crash-4.C: Ditto.
- * g++.dg/other/error10.C: Ditto.
- * g++.dg/other/error13.C: Ditto.
- * g++.dg/other/error20.C: Ditto.
- * g++.dg/other/error5.C: Ditto.
- * g++.dg/other/field1.C: Ditto.
- * g++.dg/other/offsetof5.C: Ditto.
- * g++.dg/other/semicolon.C: Ditto.
- * g++.dg/overload/ambig1.C: Ditto.
- * g++.dg/overload/arg3.C: Ditto.
- * g++.dg/overload/builtin1.C: Ditto.
- * g++.dg/overload/copy1.C: Ditto.
- * g++.dg/overload/new1.C: Ditto.
- * g++.dg/overload/template4.C: Ditto.
- * g++.dg/overload/using2.C: Ditto.
- * g++.dg/parse/bitfield2.C: Ditto.
- * g++.dg/parse/constant4.C: Ditto.
- * g++.dg/parse/crash20.C: Ditto.
- * g++.dg/parse/crash36.C: Ditto.
- * g++.dg/parse/crash5.C: Ditto.
- * g++.dg/parse/error11.C: Ditto.
- * g++.dg/parse/error12.C: Ditto.
- * g++.dg/parse/error19.C: Ditto.
- * g++.dg/parse/error28.C: Ditto.
- * g++.dg/parse/friend5.C: Ditto.
- * g++.dg/parse/invalid-op1.C: Ditto.
- * g++.dg/parse/missing-template1.C: Ditto.
- * g++.dg/parse/non-dependent2.C: Ditto.
- * g++.dg/parse/ret-type2.C: Ditto.
- * g++.dg/parse/specialization1.C: Ditto.
- * g++.dg/parse/template18.C: Ditto.
- * g++.dg/parse/template3.C: Ditto.
- * g++.dg/parse/template9.C: Ditto.
- * g++.dg/tc1/dr108.C: Ditto.
- * g++.dg/tc1/dr152.C: Ditto.
- * g++.dg/tc1/dr166.C: Ditto.
- * g++.dg/template/access11.C: Ditto.
- * g++.dg/template/access2.C: Ditto.
- * g++.dg/template/access3.C: Ditto.
- * g++.dg/template/access7.C: Ditto.
- * g++.dg/template/copy1.C: Ditto.
- * g++.dg/template/crash13.C: Ditto.
- * g++.dg/template/crash37.C: Ditto.
- * g++.dg/template/crash40.C: Ditto.
- * g++.dg/template/crash58.C: Ditto.
- * g++.dg/template/ctor5.C: Ditto.
- * g++.dg/template/dependent-expr5.C: Ditto.
- * g++.dg/template/eh2.C: Ditto.
- * g++.dg/template/error2.C: Ditto.
- * g++.dg/template/error33.C: Ditto.
- * g++.dg/template/error4.C: Ditto.
- * g++.dg/template/friend31.C: Ditto.
- * g++.dg/template/friend32.C: Ditto.
- * g++.dg/template/instantiate1.C: Ditto.
- * g++.dg/template/instantiate3.C: Ditto.
- * g++.dg/template/instantiate5.C: Ditto.
- * g++.dg/template/instantiate7.C: Ditto.
- * g++.dg/template/local6.C: Ditto.
- * g++.dg/template/lookup2.C: Ditto.
- * g++.dg/template/member5.C: Ditto.
- * g++.dg/template/memfriend15.C: Ditto.
- * g++.dg/template/memfriend16.C: Ditto.
- * g++.dg/template/memfriend17.C: Ditto.
- * g++.dg/template/memfriend7.C: Ditto.
- * g++.dg/template/meminit1.C: Ditto.
- * g++.dg/template/nested3.C: Ditto.
- * g++.dg/template/new3.C: Ditto.
- * g++.dg/template/nontype12.C: Ditto.
- * g++.dg/template/nontype13.C: Ditto.
- * g++.dg/template/nontype6.C: Ditto.
- * g++.dg/template/non-type-template-argument-1.C: Ditto.
- * g++.dg/template/overload9.C: Ditto.
- * g++.dg/template/ptrmem15.C: Ditto.
- * g++.dg/template/ptrmem17.C: Ditto.
- * g++.dg/template/ptrmem4.C: Ditto.
- * g++.dg/template/ptrmem6.C: Ditto.
- * g++.dg/template/ptrmem8.C: Ditto.
- * g++.dg/template/qualified-id1.C: Ditto.
- * g++.dg/template/qualttp20.C: Ditto.
- * g++.dg/template/qualttp3.C: Ditto.
- * g++.dg/template/qualttp4.C: Ditto.
- * g++.dg/template/qualttp5.C: Ditto.
- * g++.dg/template/qualttp6.C: Ditto.
- * g++.dg/template/qualttp7.C: Ditto.
- * g++.dg/template/qualttp8.C: Ditto.
- * g++.dg/template/recurse.C: Ditto.
- * g++.dg/template/sfinae10.C: Ditto.
- * g++.dg/template/sfinae3.C: Ditto.
- * g++.dg/template/spec22.C: Ditto.
- * g++.dg/template/spec23.C: Ditto.
- * g++.dg/template/static9.C: Ditto.
- * g++.dg/template/template-id-2.C: Ditto.
- * g++.dg/template/typename2.C: Ditto.
- * g++.dg/template/typename4.C: Ditto.
- * g++.dg/template/using14.C: Ditto.
- * g++.dg/template/using2.C: Ditto.
- * g++.dg/template/warn1.C: Ditto.
- * g++.dg/warn/incomplete1.C: Ditto.
- * g++.dg/warn/noeffect2.C: Ditto.
- * g++.dg/warn/noeffect4.C: Ditto.
- * g++.dg/warn/pr8570.C: Ditto.
- * g++.dg/warn/Wparentheses-13.C: Ditto.
- * g++.dg/warn/Wparentheses-15.C: Ditto.
- * g++.dg/warn/Wparentheses-16.C: Ditto.
- * g++.dg/warn/Wparentheses-17.C: Ditto.
- * g++.dg/warn/Wparentheses-18.C: Ditto.
- * g++.dg/warn/Wparentheses-19.C: Ditto.
- * g++.dg/warn/Wparentheses-20.C: Ditto.
- * g++.dg/warn/Wparentheses-23.C: Ditto.
- * g++.dg/warn/Wstrict-aliasing-3.C: Ditto.
- * g++.old-deja/g++.benjamin/15799.C: Ditto.
- * g++.old-deja/g++.benjamin/15800-1.C: Ditto.
- * g++.old-deja/g++.benjamin/16077.C: Ditto.
- * g++.old-deja/g++.bob/inherit2.C: Ditto.
- * g++.old-deja/g++.brendan/ambiguity1.C: Ditto.
- * g++.old-deja/g++.brendan/crash29.C: Ditto.
- * g++.old-deja/g++.brendan/crash48.C: Ditto.
- * g++.old-deja/g++.brendan/crash56.C: Ditto.
- * g++.old-deja/g++.brendan/cvt3.C: Ditto.
- * g++.old-deja/g++.brendan/overload1.C: Ditto.
- * g++.old-deja/g++.brendan/overload4.C: Ditto.
- * g++.old-deja/g++.brendan/overload9.C: Ditto.
- * g++.old-deja/g++.bugs/900127_01.C: Ditto.
- * g++.old-deja/g++.bugs/900205_04.C: Ditto.
- * g++.old-deja/g++.bugs/900330_02.C: Ditto.
- * g++.old-deja/g++.bugs/900404_03.C: Ditto.
- * g++.old-deja/g++.bugs/900514_03.C: Ditto.
- * g++.old-deja/g++.eh/ctor1.C: Ditto.
- * g++.old-deja/g++.eh/spec6.C: Ditto.
- * g++.old-deja/g++.ext/overload1.C: Ditto.
- * g++.old-deja/g++.jason/conversion11.C: Ditto.
- * g++.old-deja/g++.jason/crash3.C: Ditto.
- * g++.old-deja/g++.jason/lineno3.C: Ditto.
- * g++.old-deja/g++.jason/lineno4.C: Ditto.
- * g++.old-deja/g++.jason/opeq3.C: Ditto.
- * g++.old-deja/g++.jason/overload16.C: Ditto.
- * g++.old-deja/g++.jason/overload28.C: Ditto.
- * g++.old-deja/g++.jason/pmf5.C: Ditto.
- * g++.old-deja/g++.jason/scoping10.C: Ditto.
- * g++.old-deja/g++.jason/template30.C: Ditto.
- * g++.old-deja/g++.jason/temporary2.C: Ditto.
- * g++.old-deja/g++.jason/tredecl4.C: Ditto.
- * g++.old-deja/g++.law/arg11.C: Ditto.
- * g++.old-deja/g++.law/arg1.C: Ditto.
- * g++.old-deja/g++.law/arm9.C: Ditto.
- * g++.old-deja/g++.law/ctors11.C: Ditto.
- * g++.old-deja/g++.law/ctors17.C: Ditto.
- * g++.old-deja/g++.law/ctors5.C: Ditto.
- * g++.old-deja/g++.law/ctors9.C: Ditto.
- * g++.old-deja/g++.law/enum4.C: Ditto.
- * g++.old-deja/g++.law/missed-error2.C: Ditto.
- * g++.old-deja/g++.law/operators9.C: Ditto.
- * g++.old-deja/g++.mike/net22.C: Ditto.
- * g++.old-deja/g++.mike/net2.C: Ditto.
- * g++.old-deja/g++.mike/p11110.C: Ditto.
- * g++.old-deja/g++.mike/p1989.C: Ditto.
- * g++.old-deja/g++.mike/p2431.C: Ditto.
- * g++.old-deja/g++.mike/p438.C: Ditto.
- * g++.old-deja/g++.mike/p807a.C: Ditto.
- * g++.old-deja/g++.mike/p9068.C: Ditto.
- * g++.old-deja/g++.niklas/t120.C: Ditto.
- * g++.old-deja/g++.niklas/t121.C: Ditto.
- * g++.old-deja/g++.niklas/t128.C: Ditto.
- * g++.old-deja/g++.ns/overload2.C: Ditto.
- * g++.old-deja/g++.ns/template13.C: Ditto.
- * g++.old-deja/g++.ns/using12.C: Ditto.
- * g++.old-deja/g++.oliva/delete1.C: Ditto.
- * g++.old-deja/g++.oliva/overload1.C: Ditto.
- * g++.old-deja/g++.other/crash24.C: Ditto.
- * g++.old-deja/g++.other/crash25.C: Ditto.
- * g++.old-deja/g++.other/decl3.C: Ditto.
- * g++.old-deja/g++.other/expr1.C: Ditto.
- * g++.old-deja/g++.other/overcnv2.C: Ditto.
- * g++.old-deja/g++.other/overload11.C: Ditto.
- * g++.old-deja/g++.other/pmf3.C: Ditto.
- * g++.old-deja/g++.other/ptrmem7.C: Ditto.
- * g++.old-deja/g++.other/vaarg3.C: Ditto.
- * g++.old-deja/g++.other/volatile1.C: Ditto.
- * g++.old-deja/g++.pt/assign1.C: Ditto.
- * g++.old-deja/g++.pt/auto_ptr.C: Ditto.
- * g++.old-deja/g++.pt/const2.C: Ditto.
- * g++.old-deja/g++.pt/crash10.C: Ditto.
- * g++.old-deja/g++.pt/crash20.C: Ditto.
- * g++.old-deja/g++.pt/crash36.C: Ditto.
- * g++.old-deja/g++.pt/crash38.C: Ditto.
- * g++.old-deja/g++.pt/derived3.C: Ditto.
- * g++.old-deja/g++.pt/error2.C: Ditto.
- * g++.old-deja/g++.pt/explicit34.C: Ditto.
- * g++.old-deja/g++.pt/explicit70.C: Ditto.
- * g++.old-deja/g++.pt/friend23.C: Ditto.
- * g++.old-deja/g++.pt/ptrmem10.C: Ditto.
- * g++.old-deja/g++.pt/redecl1.C: Ditto.
- * g++.old-deja/g++.pt/spec35.C: Ditto.
- * g++.old-deja/g++.pt/t05.C: Ditto.
- * g++.old-deja/g++.pt/typename3.C: Ditto.
- * g++.old-deja/g++.pt/typename6.C: Ditto.
- * g++.old-deja/g++.pt/unify8.C: Ditto.
- * g++.old-deja/g++.pt/vaarg3.C: Ditto.
- * g++.old-deja/g++.robertl/eb109.C: Ditto.
- * g++.old-deja/g++.robertl/eb131.C: Ditto.
- * g++.old-deja/g++.robertl/eb22.C: Ditto.
- * g++.old-deja/g++.robertl/eb44.C: Ditto.
- * g++.old-deja/g++.robertl/eb4.C: Ditto.
- * g++.old-deja/g++.robertl/eb69.C: Ditto.
- * g++.dg/parse/constructor1.C: Remove "error" from dg-error,
- preserving column number.
- * g++.dg/parse/error10.C: Ditto.
- * g++.dg/parse/error13.C: Ditto.
- * g++.dg/parse/error14.C: Ditto.
- * g++.dg/parse/error15.C: Ditto.
- * g++.dg/parse/error16.C: Ditto.
- * g++.dg/parse/error17.C: Ditto.
- * g++.dg/parse/error18.C: Ditto.
- * g++.dg/parse/error1.C: Ditto.
- * g++.dg/parse/error20.C: Ditto.
- * g++.dg/parse/error21.C: Ditto.
- * g++.dg/parse/error22.C: Ditto.
- * g++.dg/parse/error23.C: Ditto.
- * g++.dg/parse/error24.C: Ditto.
- * g++.dg/parse/error25.C: Ditto.
- * g++.dg/parse/error26.C: Ditto.
- * g++.dg/parse/error27.C: Ditto.
- * g++.dg/parse/error29.C: Ditto.
- * g++.dg/parse/error2.C: Ditto.
- * g++.dg/parse/error30.C: Ditto.
- * g++.dg/parse/error31.C: Ditto.
- * g++.dg/parse/error3.C: Ditto.
- * g++.dg/parse/error4.C: Ditto.
- * g++.dg/parse/error5.C: Ditto.
- * g++.dg/parse/error6.C: Ditto.
- * g++.dg/parse/error7.C: Ditto.
- * g++.dg/parse/error8.C: Ditto.
- * g++.dg/parse/error9.C: Ditto.
- * g++.dg/parse/error-column.C: Ditto.
- * g++.dg/template/crash80.C: Ditto.
- * g++.dg/template/friend44.C: Ditto.
- * g++.dg/warn/pr26785.C: Ditto.
- * g++.old-deja/g++.brendan/crash16.C: Ditto.
-
-2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37394
- * g++.dg/other/pr37394.C: New.
-
-2008-09-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35945
- * gfortran.dg/host_assoc_types_2.f90: New test.
-
- PR fortran/36700
- * gfortran.dg/host_assoc_call_2.f90: New test.
-
-2008-09-18 DJ Delorie <dj@redhat.com>
-
- * gcc.c-torture/execute/20060420-1.c: Fix alignment logic.
-
-2008-09-18 Simon Baldwin <simonb@google.com>
-
- * gcc.dg/builtin-redefine.c: New.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37258
- * gcc.c-torture/compile/pr37258.c: New testcase.
-
-2008-09-18 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/37102
- * gcc.c-torture/execute/pr37102.c: New Test.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37284
- * g++.dg/tree-ssa/pr37284.C: New testcase.
-
-2008-09-18 Daniel Kraft <d@domob.eu>
-
- PR fortran/37507
- * gfortran.dg/allocate_error_1.f90: New test.
- * gfortran.dg/deallocate_error_1.f90: New test.
- * gfortran.dg/deallocate_error_2.f90: New test.
-
-2008-09-18 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37456
- * testsuite/g++.dg/torture/pr37456.C: New testcase.
-
-2008-09-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/37544
- * gcc.dg/pr37544.c: New test.
-
-2008-09-17 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/25241
- * g++.old-deja/g++.brendan/crash7.C: Remove "error" or "warning" from
- message for dg-error/dg-warning.
- * g++.old-deja/g++.jason/crash11.C: Ditto.
- * g++.old-deja/g++.oliva/template1.C: Ditto.
- * g++.old-deja/g++.benjamin/tem03.C: Ditto.
- * g++.dg/rtti/no-rtti.C: Ditto.
- * g++.dg/cpp/pedantic-errors.C: Ditto.
- * g++.dg/cpp/string-2.C: Ditto.
- * g++.dg/ext/fpreg1.C: Ditto.
- * g++.dg/ext/altivec-types-1.C: Ditto.
- * g++.dg/warn/write-strings-default.C: Ditto.
- * g++.dg/warn/Wvla-2.C: Ditto.
- * g++.dg/warn/register-var-1.C: Ditto.
- * g++.dg/warn/deprecated-3.C: Ditto.
- * g++.dg/warn/pr30551-2.C: Ditto.
- * g++.dg/warn/overflow-warn-1.C: Ditto.
- * g++.dg/warn/pr30551.C: Ditto.
- * g++.dg/warn/pointer-integer-comparison.C: Ditto.
- * g++.dg/warn/pr12242.C: Ditto.
- * g++.dg/warn/write-strings.C: Ditto.
- * g++.dg/warn/overflow-warn-3.C: Ditto.
- * g++.dg/warn/overflow-warn-4.C: Ditto.
- * g++.dg/warn/overflow-warn-6.C: Ditto.
- * g++.dg/parse/crash43.C: Ditto.
- * g++.dg/parse/crash44.C: Ditto.
- * g++.dg/parse/offsetof8.C: Ditto.
- * g++.dg/gomp/pr35158.C: Ditto.
- * g++.dg/template/crash81.C: Ditto.
-
-2008-09-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/37274
- * gfortran.dg/used_types_22.f90: New test.
- * gfortran.dg/used_types_23.f90: New test.
-
- PR fortran/36374
- * gfortran.dg/generic_17.f90: New test.
- * gfortran.dg/ambiguous_specific_2.f90: New test.
- * gfortran.dg/generic_actual_arg.f90: Add test for case that is
- not ambiguous.
-
- PR fortran/36454
- * gfortran.dg/access_spec_3.f90: New test.
-
-2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/static_initializer3.ads: New test.
-
-2008-09-17 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37552
- * g++.dg/parse/crash49.C: New test.
-
- PR preprocessor/37324
- * lib/target-supports.exp
- (check_effective_target_wchar_t_char16_t_compatible,
- check_effective_target_wchar_t_char32_t_compatible): New.
- * gcc.dg/utf-array.c: Use __CHAR{16,32}_TYPE__ macros in typedefs.
- Only require from incompatible errors for char{16,32}_t vs. wchar_t
- initializations if those types are indeed incompatible.
-
-2008-09-16 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/25241
- * testsuite/g++.dg/charset/attribute2.c: Replace dg-error with
- dg-warning or vice versa.
- * testsuite/g++.dg/conversion/dr195.C: Ditto.
- * testsuite/g++.dg/cpp0x/variadic60.C: Ditto.
- * testsuite/g++.dg/expr/cast2.C: Ditto.
- * testsuite/g++.dg/ext/anon-struct4.C: Ditto.
- * testsuite/g++.dg/ext/member-attr.C: Ditto.
- * testsuite/g++.dg/ext/utf-array.C: Ditto.
- * testsuite/g++.dg/ext/utf-array-short-wchar.C: Ditto.
- * testsuite/g++.dg/ext/utf-typedef-cxx0x.C: Ditto.
- * testsuite/g++.dg/ext/visibility/redecl1.C: Ditto.
- * testsuite/g++.dg/ext/visibility/warn4.C: Ditto.
- * testsuite/g++.dg/parse/defarg11.C: Ditto.
- * testsuite/g++.dg/template/error17.C: Ditto.
- * testsuite/g++.dg/warn/pedantic2.C: Ditto.
- * testsuite/g++.dg/warn/pr21983.C: Ditto.
- * testsuite/g++.dg/warn/return-reference2.C: Ditto.
- * testsuite/g++.old-deja/g++.bob/inherit1.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/crash13.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/crash17.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/crash52.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/crash55.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/enum7.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/operators4.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/template17.C: Ditto.
- * testsuite/g++.old-deja/g++.brendan/warnings1.C: Ditto.
- * testsuite/g++.old-deja/g++.bugs/900205_03.C: Ditto.
- * testsuite/g++.old-deja/g++.bugs/900227_01.C: Ditto.
- * testsuite/g++.old-deja/g++.ext/arrnew.C: Ditto.
- * testsuite/g++.old-deja/g++.ext/attrib4.C: Ditto.
- * testsuite/g++.old-deja/g++.jason/cond.C: Ditto.
- * testsuite/g++.old-deja/g++.jason/operator.C: Ditto.
- * testsuite/g++.old-deja/g++.jason/report.C: Ditto.
- * testsuite/g++.old-deja/g++.law/friend5.C: Ditto.
- * testsuite/g++.old-deja/g++.law/temps1.C: Ditto.
- * testsuite/g++.old-deja/g++.law/union4.C: Ditto.
- * testsuite/g++.old-deja/g++.martin/pure1.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/empty.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/for2.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/misc9.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/p10769b.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/p2855.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/p3060c.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/p700.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/p9732c.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/pmf6.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/warn1.C: Ditto.
- * testsuite/g++.old-deja/g++.mike/warn5.C: Ditto.
- * testsuite/g++.old-deja/g++.niklas/t141.C: Ditto.
- * testsuite/g++.old-deja/g++.other/cast6.C: Ditto.
- * testsuite/g++.old-deja/g++.other/cond5.C: Ditto.
- * testsuite/g++.old-deja/g++.other/conv8.C: Ditto.
- * testsuite/g++.old-deja/g++.other/decl5.C: Ditto.
- * testsuite/g++.old-deja/g++.other/delete2.C: Ditto.
- * testsuite/g++.old-deja/g++.other/delete4.C: Ditto.
- * testsuite/g++.old-deja/g++.other/linkage1.C: Ditto.
- * testsuite/g++.old-deja/g++.other/ptrmem8.C: Ditto.
- * testsuite/g++.old-deja/g++.other/typename1.C: Ditto.
- * testsuite/g++.old-deja/g++.pt/typename14.C: Ditto.
- * testsuite/g++.old-deja/g++.pt/typename4.C: Ditto.
- * testsuite/g++.old-deja/g++.pt/typename5.C: Ditto.
- * testsuite/g++.old-deja/g++.pt/typename7.C: Ditto.
-
-2008-09-16 Jakub Jelinek <jakub@redhat.com>
- Adam Nemet <anemet@caviumnetworks.com>
-
- PR rtl-optimization/37483
- * gcc.c-torture/compile/pr37483.c: New test.
- * gcc.c-torture/compile/pr37395.c: New test.
-
-2008-09-16 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37529
- * gcc.dg/pr37529.c: New test.
-
- PR c++/37530
- * g++.dg/parse/crash48.C: New test.
-
- PR c++/37531
- * g++.dg/parse/crash47.C: New test.
-
- PR c++/37532
- * g++.dg/parse/crash46.C: New test.
-
- PR testsuite/36889
- * lib/fortran-torture.exp (get-fortran-torture-options): Only
- set test_tree_vectorize on i?86/x86_64 resp. sparc* if sse2 resp.
- ultrasparc hw is available.
-
-2008-09-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37380
- * gcc.c-torture/compile/pr37380.c: New testcase.
-
-2008-09-16 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37508
- * gcc.dg/tree-ssa/pr37508.c: New testcase.
-
->>>>>>> .r140590
-2008-09-15 Aldy Hernandez <aldyh@redhat.com>
-
- * g++.old-deja/g++.brendan/crash16.C: Function name is the correct
- location for an error regarding a function.
- * g++.old-deja/g++.other/pmf3.C: Same.
- * g++.old-deja/g++.law/ctors5.C: Same.
- * g++.old-deja/g++.pt/explicit34.C: Same.
- * g++.dg/parse/error28.C: Same.
- * g++.dg/parse/error17.C: Same.
- * g++.dg/template/friend44.C: Same.
-
-2008-09-13 Raksit Ashok <raksit@google.com>
-
- PR rtl-optimization/37489
- * g++.dg/opt/cse3.C: New.
-
-2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/37495
- * gcc.c-torture/compile/vector-4.c: Add "dg-do compile".
-
-2008-09-13 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.c-torture/pr36141.c: Move to ...
- * gcc.c-torture/compile/pr36141.c: ... here.
- * gcc.dg/arm-g2.c: Move to ...
- * gcc.target/arm/g2.c: ... here.
- * gcc.dg/arm-vfp1.c: Move to ...
- * gcc.target/arm/vfp1.c: ... here.
- * gcc.dg/20031108-1: Move to ...
- * gcc.target/arm/20031108-1.c: ... here.
- * gcc.dg/20030909-1: Move to ...
- * gcc.target/arm/20030909-1.c: ... here.
- * gcc.dg/arm-mmx-1.c: Move to ...
- * gcc.target/arm/mmx-1.c: ... here.
- * gcc.dg/arm-scd[123].c: Move to ...
- * gcc.target/arm/scd[123].c: ... here.
- * gcc.dg/arm-asm.c: Move to ...
- * gcc.target/arm/asm.c: ... here.
- * gcc.dg/20080410-1: Move to ...
- * gcc.target/sh/20080410-1.c: ... here.
- * gcc.dg/globalreg-1.c: Move to ...
- * gcc.target/sparc/globalreg-1.c: ... here.
-
-2008-09-13 Daniel Kraft <d@domob.eu>
-
- PR fortran/35770
- * gfortran.dg/implicit_13.f90: New test.
-
-2008-09-11 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.c-torture/compile/pr11832.c: xfail on ia64-*-*.
- * gcc.c-torture/compile/pr33009.c: Ditto.
-
-2008-09-11 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.dg/dfp/dec-eval-method-2.c: New test.
-
-2008-09-11 Joseph Myers <joseph@codesourcery.com>
-
- * lib/compat.exp, gcc.dg/compat/struct-layout-1.exp,
- g++.dg/compat/struct-layout-1.exp: Use .exe extension for compat
- test executables.
- * gcc.dg/compat/struct-layout-1_generate.c,
- g++.dg/compat/struct-layout-1_generate.c: Convert backslash to
- slash in srcdir for dg-options string.
-
-2008-09-11 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/i386/sse5-haddX.c, gcc.target/i386/sse5-hsubX.c:
- Avoid intN_t types.
-
-2008-09-11 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/builtins-8.c: Condition cbrt test on HAVE_C99_RUNTIME.
-
-2008-09-11 Paolo Bonzini <bonzini@gnu.org>
-
- * gcc.dg/tree-ssa/vrp47.c: New.
- * gcc.target/i386/andor-2.c: New.
-
-2008-09-11 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37474
- * gcc.dg/vect/pr37474.c: New test.
-
-2008-09-11 Andreas Schwab <schwab@suse.de>
-
- * gcc.target/m68k/xgot-1.c: Add -mcpu=5206 to select a ColdFire
- target.
-
-2008-09-11 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37382
- * gcc.c-torture/compile/pr37382.c: New test.
-
-2008-09-11 Daniel Kraft <d@domob.eu>
-
- PR fortran/36214
- * gfortran.dg/boz_9.f90: Corrected test.
- * gfortran.dg/boz_13.f90: New test.
- * gfortran.dg/boz_14.f90: New test.
-
-2008-09-10 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36904
- * gcc.target/powerpc/altivec-27.c: New test.
-
-2008-09-10 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/37333
- * gcc.c-torture/compile/20080910-1.c: New testcase.
-
-2008-09-10 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37432
- * gcc.c-torture/compile/pr37432.c: New testcase.
-
-2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37434:
- * gcc.target/i386/pr37434-1.c: New.
- * gcc.target/i386/pr37434-2.c: Likewise.
- * gcc.target/i386/pr37434-3.c: Likewise.
- * gcc.target/i386/pr37434-4.c: Likewise.
- * gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
- * gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-1a.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-2a.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-3a.c: Likewise.
-
-2008-09-10 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37420
- * gfortran.dg/warn_unused_var.f90: New test.
- * gfortran.dg/warn_unused_var.f90: Add cleanup-modules.
-
-2008-09-10 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37353
- * gcc.dg/pr37353.c: New test.
-
-2008-09-10 Martin Michlmayr <tbm@cyrius.com>
- Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37385
- * gcc.dg/vect/pr37385.c: New test.
-
-2008-09-09 H.J. Lu <hongjiu.lu@intel.com>
-
- PR rtl-optimization/37435
- * gcc.dg/dfp/pr37435.c: New.
-
-2008-09-09 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37417
- * g++.dg/ext/vla5.C: New test.
-
- PR middle-end/37356
- * g++.dg/tree-ssa/pr37356.C: New test.
-
- PR target/37438
- * gcc.dg/pr37438.c: New test.
-
- PR c++/37389
- * g++.dg/parse/enum4.C: New test.
-
-2008-09-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/37429
- * gfortran.dg/typebound_call_7.f03: New test.
- * gfortran.dg/typebound_call_8.f03: New test.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37354
- PR middle-end/30165
- * g++.dg/torture/pr37354.C: New testcase.
-
-2008-09-09 Aldy Hernandez <aldyh@redhat.com>
-
- PR/37442
- * gcc.target/i386/pr12329.c: Place error message on function name
- line.
- * gcc.target/i386/sse-5.c: Same.
-
-2008-09-09 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/always_inline.c: Place error message on function
- name line.
- * gcc.dg/winline-6.c: Same.
- * gcc.dg/noreturn-1.c: Same.
- * gcc.dg/noreturn-7.c: Same.
- * gcc.dg/inline-14.c: Same.
- * gcc.dg/always_inline3.c: Same.
- * gcc.dg/winline-3.c: Same.
- * gcc.dg/wtr-func-def-1.c: Same.
- * gcc.dg/winline-5.c: Same.
- * gcc.dg/winline-7.c: Same.
- * gcc.dg/winline-9.c: Same.
- * gcc.dg/noreturn-4.c: Same.
- * gcc.dg/20041213-1.c: Use column numbers.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37433
- * gcc.c-torture/compile/pr37433.c: New testcase.
-
-2008-09-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37387
- * gcc.c-torture/compile/pr37387.c: New testcase.
-
-2008-09-09 Daniel Kraft <d@domob.eu>
-
- PR fortran/37411
- * gfortran.dg/array_function_4.f90: New test.
-
-2008-09-08 Daniel Jacobowitz <dan@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
-
- * g++.dg/compat/eh/filter2_x.C: Declare abort.
- * g++.dg/compat/eh/new1_x.C, g++.dg/compat/eh/new1_y.C: Include
- cstddef and use std::size_t.
-
- * gcc.dg/compat/compat-common.h: Define SKIP_COMPLEX_INT if
- SKIP_COMPLEX. Honor SKIP_COMPLEX.
- * gcc.dg/compat/scalar-by-value-3_x.c,
- gcc.dg/compat/scalar-by-value-3_y.c,
- gcc.dg/compat/scalar-by-value-4_x.c,
- gcc.dg/compat/scalar-by-value-4_y.c,
- gcc.dg/compat/scalar-by-value-5.c,
- gcc.dg/compat/scalar-by-value-5_main.c,
- gcc.dg/compat/scalar-by-value-6.c,
- gcc.dg/compat/scalar-by-value-6_main.c,
- gcc.dg/compat/scalar-by-value-6_x.c,
- gcc.dg/compat/scalar-by-value-6_y.c,
- gcc.dg/compat/struct-by-value-16_x.c,
- gcc.dg/compat/struct-by-value-16_y.c,
- gcc.dg/compat/struct-by-value-16a_x.c,
- gcc.dg/compat/struct-by-value-16a_y.c,
- gcc.dg/compat/struct-by-value-17_x.c,
- gcc.dg/compat/struct-by-value-17_y.c,
- gcc.dg/compat/struct-by-value-17a_x.c,
- gcc.dg/compat/struct-by-value-17a_y.c,
- gcc.dg/compat/struct-by-value-18_x.c,
- gcc.dg/compat/struct-by-value-18_y.c,
- gcc.dg/compat/struct-by-value-18a_x.c,
- gcc.dg/compat/struct-by-value-18a_y.c,
- gcc.dg/compat/struct-layout-1.h,
- gcc.dg/compat/scalar-return-3_x.c,
- gcc.dg/compat/scalar-return-3_y.c,
- gcc.dg/compat/scalar-return-4_x.c,
- gcc.dg/compat/scalar-return-4_y.c: Honor SKIP_COMPLEX.
-
- * gcc.dg/compat/scalar-by-value-y.h: Use stdarg.h for non-GCC
- compilers.
-
- * gcc.dg/compat/struct-by-value-22_y.c,
- gcc.dg/compat/struct-by-value-22_main.c,
- gcc.dg/compat/struct-by-value-22_x.c: Honor SKIP_VLA_IN_STRUCT.
-
- * lib/c-compat.exp (compat_setup_dfp): Check the compiler under test
- first.
- * lib/compat.exp: Document COMPLEX and VLA_IN_STRUCT skips.
-
-2008-09-08 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/struct/wo_prof_escape_substr_value.c: Limit allocation
- based on STACK_SIZE.
- * gcc.dg/struct/wo_prof_array_through_pointer.c: Ditto.
- * gcc.dg/struct/wo_prof_escape_substr_pointer.c: Ditto.
- * gcc.dg/struct/wo_prof_escape_arg_to_local.c: Limit allocation
- based on STACK_SIZE. Check malloc return for NULL.
- * gcc.dg/struct/w_prof_local_var.c: Ditto.
- * gcc.dg/struct/wo_prof_mult_field_peeling.c: Ditto.
- * gcc.dg/struct/w_prof_local_array.c: Limit allocation based on
- STACK_SIZE. XFAIL AVR target.
- * gcc.dg/struct/wo_prof_local_array.c: Ditto.
- * gcc.dg/struct/w_prof_two_strs.c: Limit allocation based on
- STACK_SIZE. Limit random size to N.
- * gcc.dg/struct/wo_prof_two_strs.c: Limit allocation based on
- STACK_SIZE. XFAIL AVR target. Limit random size to N.
- * gcc.dg/struct/w_prof_single_str_global.c: XFAIL AVR target.
- * gcc.dg/struct/wo_prof_array_field.c: Ditto.
- * gcc.dg/struct/wo_prof_double_malloc.c: Ditto.
- * gcc.dg/struct/wo_prof_global_array.c: Ditto.
- * gcc.dg/struct/wo_prof_single_str_global.c: Ditto.
- * gcc.dg/struct/wo_prof_single_str_local.c: Ditto.
- * gcc.dg/struct/w_prof_global_var.c: Limit allocation based on
- STACK_SIZE. Check malloc return for NULL. XFAIL AVR target.
- * gcc.dg/struct/wo_prof_global_var.c: Ditto.
- * gcc.dg/struct/wo_prof_local_var.c: Ditto.
- * gcc.dg/struct/wo_prof_malloc_size_var.c: Access only allocated
- space. Limit allocation based on STACK_SIZE. XFAIL AVR target.
-
-2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * g++.dg/cdce3.C: Require c99 runtime.
-
-2008-09-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37393
- * g++.dg/tree-ssa/pr37393.C: New test.
-
- PR middle-end/37414
- * g++.dg/opt/init2.C: New test.
-
- PR middle-end/37337
- * g++.dg/tree-ssa/pr37337.C: New test.
-
-2008-09-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37421
- * g++.dg/torture/pr37421.C: New testcase.
-
-2008-09-08 Daniel Kraft <d@domob.eu>
-
- PR fortran/36167
- * gfortran.dg/array_function_3.f90: New test.
- * gfortran.dg/save_3.f90: Added cleanup-modules directive.
- * gfortran.dg/string_compare_1.f90: Ditto.
-
-2008-09-08 Daniel Kraft <d@domob.eu>
-
- PR fortran/37199
- * gfortran.dg/array_function_2.f90: New test.
-
-2008-09-08 Tobias Burnus <burnus@net.b.de>
-
- PR fortran/37400
- * gfortran.dg/implicit_12.f90: New test.
-
-2008-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/37203
- * gfortran.d/reshape_order_1.f90: New test case.
- * gfortran.d/reshape_order_2.f90: New test case.
- * gfortran.d/reshape_order_3.f90: New test case.
- * gfortran.d/reshape_order_4.f90: New test case.
-
-2008-09-07 Richard Guenther <rguenther@suse.de>
- Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36630
- * gcc.dg/vect/pr36630.c: New test.
-
-2008-09-07 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/stfunc_6.f90: Extended testcase to include more tests
- related to PURE and statement functions.
-
-2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
- Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35642
- * lib/target-supports.exp (check_effective_target_vect_short_mult):
- Add powerpc.
-
-2008-09-07 Victor Kaplansky <victork@il.ibm.com>
-
- PR testsuite/37334
- * gcc.dg/fastmath-2.c: Add volatile to
- definition of b, change -ffast-math to -ffinite-math-only
- and rename test to ...
- * gcc.dg/div-double-1.c: ... this.
-
-2008-09-06 Jeff Law <law@redhat.com>
-
- * gcc.c-torture/execute/memcpy-bi.c: Include <string.h>
-
-2008-09-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37399
- * gfortran.dg/size_kind.f90: Remove allocate statement
- as it overflows at compile time on 32bit systems.
-
-2008-09-06 Jan Hubicka <jh@suse.cz>
-
- * g++.dg/tree-ssa-pr14703.C: New testcase.
-
-2008-09-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36153
- * gfortran.dg/size_kind.f90: New test.
-
-2008-09-06 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/33229
- * gfortran.dg/intrinsic_subroutine.f90: New test.
-
-2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/mips.exp (dg-mips-options): Make
- -mr10k-cache-barrier=* imply -mips3 or above.
- * gcc.target/mips/cache-1.c: New test.
- * gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-10.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
- * gcc.target/mips/r10k-cache-barrier-15.c: Likewise.
-
-2008-09-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/35837
- * gfortran.dg/save_3.f90: New test.
-
-2008-09-05 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/37342
- * g++.dg/other/canon-37342.C: New.
-
-2008-09-05 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.c-torture/compile/20080903-1.c: New test.
-
-2008-09-05 Daniel Kraft <d@domob.eu>
-
- PR fortran/36746
- * gfortran.dg/implicit_derived_type_1.f90: New test.
- * gfortran.dg/used_before_typed_5.f90: New test.
-
-2008-09-04 Jan Hubicka <jh@suse.cz>
-
- * gcc.target/i386/cold-attribute-1.c: Update testcase.
-
-2008-09-04 Ian Lance Taylor <iant@google.com>
-
- * g++.dg/init/const7.C: New test.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/seq-1.c: New test.
- * gcc.target/mips/octeon-seq-1.c: New test.
- * gcc.target/mips/octeon-seq-2.c: New test.
- * gcc.target/mips/octeon-seq-3.c: New test.
- * gcc.target/mips/octeon-seq-4.c: New test.
- * gcc.target/mips/scc-2.c: Also pass on sltiu.
- * gcc.target/mips/scc-3.c: Likewise.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/truncate-2.c: New test.
- * gcc.target/mips/octeon-exts-1.c: New test.
- * gcc.target/mips/octeon-exts-2.c: New test.
- * gcc.target/mips/octeon-exts-3.c: New test.
- * gcc.target/mips/octeon-exts-4.c: New test.
-
-2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-cins-1.c: New test.
- * gcc.target/mips/octeon-cins-2.c: New test.
-
-2008-09-04 Richard Guenther <rguenther@suse.de>
-
- * gfortran.dg/internal_pack_4.f90: Adjust pattern.
-
-2008-09-04 Daniel Kraft <d@domob.eu>
-
- PR fortran/37099
- * gfortran.dg/string_compare_1.f90: New text.
- * gfortran.dg/string_compare_2.f90: New text.
- * gfortran.dg/string_compare_3.f90: New text.
-
-2008-09-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR rtl-optimization/37243
- * gfortran.dg/pr37243.f: New.
-
-2008-09-03 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/37343
- * g++.dg/torture/pr37343.C New file.
-
-2008-09-03 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/slp-perm-1.c: Add call to check_vect.
- * gcc.dg/vect/slp-perm-2.c, gcc.dg/vect/slp-perm-3.c,
- gcc.dg/vect/slp-perm-4.c, gcc.dg/vect/slp-perm-5.c,
- gcc.dg/vect/slp-perm-6.c, gcc.dg/vect/slp-perm-7.c,
- gcc.dg/vect/slp-perm-8.c, gcc.dg/vect/slp-perm-9.c: Likewise.
-
-2008-09-03 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/37345
- PR tree-optimization/37358
- PR tree-optimization/37357
- * g++.dg/torture/pr37345.C: New file.
-
-2008-09-03 Tobias Grosser <grosser@fim.uni-passau.de>
-
- * lib/target-supports.exp (check_effective_target_fgraphite): Fix test.
- Graphite is only available with -O1.
-
-2008-09-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.c-torture/compile/vector-4.c: Add -mavx for x86.
-
- * gcc.target/i386/avx-3.c: Require DFP support.
-
-2008-09-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37348
- * g++.dg/parse/crash45.C: New test.
-
- PR c++/37189
- * g++.dg/gomp/pr37189.C: New test.
-
- PR debug/37322
- * gfortran.dg/debug/pr35154-dwarf2.f: Fix up scan-assembler regexps.
-
-2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36445
- * g++.dg/torture/pr36445.C: New test.
-
-2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/37293
- * g++.dg/torture/ipa-cp-1.C: New test.
-
-2008-09-03 David Edelsohn <edelsohn@gnu.org>
-
- * g++.dg/ext/java-2.C: Disable on AIX.
-
-2008-09-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/37346
- * g++.dg/gomp/pr37346.C: New test.
-
-2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
-
- From Mike Frysinger <michael.frysinger@analog.com>
- * gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0001.
- * gcc.target/bfin/mcpu-bf523.c: Likewise.
- * gcc.target/bfin/mcpu-bf524.c: Likewise.
- * gcc.target/bfin/mcpu-bf525.c: Likewise.
- * gcc.target/bfin/mcpu-bf526.c: Likewise.
- * gcc.target/bfin/mcpu-bf527.c: Likewise.
- * gcc.target/bfin/mcpu-bf542.c: Likewise.
- * gcc.target/bfin/mcpu-bf544.c: Likewise.
- * gcc.target/bfin/mcpu-bf547.c: Likewise.
- * gcc.target/bfin/mcpu-bf548.c: Likewise.
- * gcc.target/bfin/mcpu-bf549.c: Likewise.
-
-2008-09-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * gcc.c-torture/compile/pr33009.c: xfail on hppa*-*-*.
- * gcc.c-torture/compile/pr11832.c: Likewise.
-
-2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/amd64-abi-3.c: New test.
- * gcc.target/i386/amd64-abi-4.c: Likewise.
- * gcc.target/i386/amd64-abi-5.c: Likewise.
- * gcc.target/i386/amd64-abi-6.c: Likewise.
-
-2008-09-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36766
- * g++.dg/tree-ssa/pr36766.C: New test.
-
- PR target/36332
- * gcc.c-torture/execute/ieee/pr36332.c: New test.
-
- PR c/37171
- * g++.dg/ext/attrib34.C: New test.
-
-2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
- Tobias Grosser <grosser@fim.uni-passau.de>
- Jan Sjodin <jan.sjodin@amd.com>
- Harsha Jagasia <harsha.jagasia@amd.com>
- Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
- Konrad Trifunovic <konrad.trifunovic@inria.fr>
- Adrien Eliche <aeliche@isty.uvsq.fr>
-
- Merge from graphite branch.
- * gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18}.c: New.
- * gcc.dg/graphite/graphite.exp: New.
- * gcc.dg/graphite/scop-matmult.c: New.
- * gcc.dg/graphite/block-0.c: New.
- * lib/target-supports.exp (check_effective_target_fgraphite): New.
- * gfortran.dg/graphite/block-1.f90: New.
- * gfortran.dg/graphite/scop-{1,2}.f: New.
- * gfortran.dg/graphite/block-{1,3,4}.f90: New.
- * gfortran.dg/graphite/graphite.exp: New.
-
-2008-09-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37327
- * gcc.c-torture/compile/pr37327.c: New testcase.
-
-2008-09-02 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc.dg/fastmath-2.c: New.
-
-2008-09-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/37095
- * g++.dg/inherit/thunk9.C: New test.
-
-2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/37228
- * gfortran.dg/fmt_g0_4.f08: Revised test.
-
-2008-09-02 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/abstract_type_1.f90: New test.
- * gfortran.dg/abstract_type_2.f03: New test.
- * gfortran.dg/abstract_type_3.f03: New test.
- * gfortran.dg/abstract_type_4.f03: New test.
-
-2008-09-01 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/20010516-1.c: Test for columns.
-
-2008-09-01 Daniel Kraft <d@domob.eu>
-
- PR fortran/37193
- * gfortran.dg/use_rename_4.f90: New test.
- * gfortran.dg/use_rename_5.f90: New test.
-
-2008-09-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37305
- * gcc.c-torture/compile/pr37305.c: New testcase.
-
-2008-09-01 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36449
- * g++.dg/opt/pr36449.C: New test.
-
-2008-08-31 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c/37271
- * gcc.dg/pr37186.c: Add dg-message command for line 5.
-
-2008-08-31 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37289
- * gcc.dg/pr37289.c: New testcase.
-
-2008-08-31 Jakub Jelinek <jakub@redhat.com>
-
- PR target/37168
- * gcc.target/powerpc/pr37168.c: New test.
-
-2008-08-31 Jan Hubicka <jh@suse.cz>
-
- * gcc.target/i386/cold-attribute-1.c: New testcase.
- * gcc.target/i386/cold-attribute-2.c: New testcase.
- * gcc.target/i386/cold-attribute-3.c: New testcase.
- * gcc.target/i386/cold-attribute-4.c: New testcase.
-
-2008-08-31 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37287
- * gfortran.dg/pr37287-1.f90: New test.
- * gfortran.dg/pr37287-2.F90: New test.
-
-2008-08-31 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/typebound_generic_1.f03: New test.
- * gfortran.dg/typebound_generic_2.f03: New test.
- * gfortran.dg/typebound_generic_3.f03: New test.
-
-2008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36444
- * g++.dg/torture/pr36444.C: New testcase.
- * gcc.c-torture/compile/vector-4.c: New testcase.
-
-2008-08-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/36895
- * gfortran.dg/namelist_53.f90: New test.
-
-2008-08-29 Michael Meissner <gnu@the-meissners.org>
-
- * gcc.target/i386/sse-22.c: Change #pragma GCC option to #pragma
- GCC target. Change attribute((option(...))) to
- attribute((target(...))).
- * gcc.target/i386/sse-23.c: Ditto.
- * gcc.target/i386/funcspec-1.c: Ditto.
- * gcc.target/i386/funcspec-2.c: Ditto.
- * gcc.target/i386/funcspec-3.c: Ditto.
- * gcc.target/i386/funcspec-4.c: Ditto.
- * gcc.target/i386/funcspec-5.c: Ditto.
- * gcc.target/i386/funcspec-6.c: Ditto.
- * gcc.target/i386/funcspec-7.c: Ditto.
- * gcc.target/i386/funcspec-8.c: Ditto.
- * gcc.target/i386/funcspec-9.c: Ditto.
- * gcc.target/i386/funcspec-10.c: Ditto.
- * gcc.target/i386/funcspec-11.c: Ditto.
-
- * gcc.target/i386/cold-1.c: Delete.
- * gcc.target/i386/hot-1.c: Ditto.
-
- * gcc.dg/pr36997.c: Add -msse2 to the target flags.
-
- * gcc.target/i386/funcspec-8.c: #pragma GCC option push is now
- #pragma GCC push_options, and #pragma GCC option pop is now
- #pragma GCC pop_options.
- * gcc.target/i386/opt-2.c: Ditto.
-
-2008-08-29 Mark Mitchell <mark@codesourcery.com>
-
- * g++.dg/abi/mangle-neon.C: Add substitution test.
-
-2008-08-29 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37261
- * gcc.dg/pr37261.c: New test.
-
- PR fortran/23057
- * gfortran.dg/debug/pr35154-dwarf2.f: Adjust for replacement
- of DW_TAG_member with DW_TAG_variable.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/ipa/modif-1.c: Update template.
-
-2008-08-29 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/ipa/ipa-1.c: Fix template for better debug output.
- * gcc.dg/ipa/ipa-2.c: Fix template for better debug output.
- * gcc.dg/ipa/ipa-3.c: Fix template for better debug output.
- * gcc.dg/ipa/ipa-4.c: Fix template for better debug output.
- * gcc.dg/ipa/ipa-5.c: Fix template for better debug output.
- * gcc.dg/ipa/ipa-7.c: Fix template for better debug output.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- * gfortran.fortran-torture/compile/20080805-1.f90: New testcase.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37236
- * gfortran.fortran-torture/compile/pr37236.f: New testcase.
-
-2008-08-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37207
- * gcc.dg/tree-ssa/vrp46.c: New testcase.
-
-2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-bbit-1.c: New test.
- * gcc.target/mips/octeon-bbit-2.c: New test.
- * gcc.target/mips/octeon-bbit-3.c: New test.
-
-2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
- Andrew Pinski <pinskia@gcc.gnu.org>
-
- PR 18050
- * gcc.dg/Wsequence-point-pr18050.c: New.
- * g++.dg/warn/Wsequence-point-pr18050.C: New.
-
-2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/37260
- * g++.dg/parse/crash44.C: New.
-
-2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-dmul-1.c: New test.
- * gcc.target/mips/octeon-dmul-2.c: New test.
- * gcc.target/mips/dmult-1.c: New test.
-
-2008-08-28 Xuepeng Guo <xuepeng.guo@intel.com>
- Joey Ye <joey.ye@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.dg/compat/vector-1b_main.c: New.
- * gcc.dg/compat/vector-1b_x.c: Likewise.
- * gcc.dg/compat/vector-1b_y.c: Likewise.
- * gcc.dg/compat/vector-2b_main.c: Likewise.
- * gcc.dg/compat/vector-2b_x.c: Likewise.
- * gcc.dg/compat/vector-2b_y.c: Likewise.
- * gcc.target/i386/aes-avx-check.h: Likewise.
- * gcc.target/i386/avx-1.c: Likewise.
- * gcc.target/i386/avx-2.c: Likewise.
- * gcc.target/i386/avx-3.c: Likewise.
- * gcc.target/i386/avx-check.h: Likewise.
- * gcc.target/i386/avx-set1-epi32-1.c: Likewise.
- * gcc.target/i386/avx-set1-pd-256-1.c: Likewise.
- * gcc.target/i386/avx-set1-ps-256-1.c: Likewise.
- * gcc.target/i386/avx-set-v16hi-1.c: Likewise.
- * gcc.target/i386/avx-set-v16hi-2.c: Likewise.
- * gcc.target/i386/avx-set-v16hi-3.c: Likewise.
- * gcc.target/i386/avx-set-v16hi-4.c: Likewise.
- * gcc.target/i386/avx-set-v16hi-5.c: Likewise.
- * gcc.target/i386/avx-set-v32qi-1.c: Likewise.
- * gcc.target/i386/avx-set-v32qi-2.c: Likewise.
- * gcc.target/i386/avx-set-v32qi-3.c: Likewise.
- * gcc.target/i386/avx-set-v32qi-4.c: Likewise.
- * gcc.target/i386/avx-set-v32qi-5.c: Likewise.
- * gcc.target/i386/avx-set-v4df-1.c: Likewise.
- * gcc.target/i386/avx-set-v4df-2.c: Likewise.
- * gcc.target/i386/avx-set-v4df-3.c: Likewise.
- * gcc.target/i386/avx-set-v4df-4.c: Likewise.
- * gcc.target/i386/avx-set-v4df-5.c: Likewise.
- * gcc.target/i386/avx-set-v4di-1.c: Likewise.
- * gcc.target/i386/avx-set-v4di-2.c: Likewise.
- * gcc.target/i386/avx-set-v4di-3.c: Likewise.
- * gcc.target/i386/avx-set-v4di-4.c: Likewise.
- * gcc.target/i386/avx-set-v4di-5.c: Likewise.
- * gcc.target/i386/avx-set-v8sf-1.c: Likewise.
- * gcc.target/i386/avx-set-v8sf-2.c: Likewise.
- * gcc.target/i386/avx-set-v8sf-3.c: Likewise.
- * gcc.target/i386/avx-set-v8sf-4.c: Likewise.
- * gcc.target/i386/avx-set-v8sf-5.c: Likewise.
- * gcc.target/i386/avx-set-v8si-1.c: Likewise.
- * gcc.target/i386/avx-set-v8si-2.c: Likewise.
- * gcc.target/i386/avx-set-v8si-3.c: Likewise.
- * gcc.target/i386/avx-set-v8si-4.c: Likewise.
- * gcc.target/i386/avx-set-v8si-5.c: Likewise.
- * gcc.target/i386/avx-setzero-pd-256-1.c: Likewise.
- * gcc.target/i386/avx-setzero-ps-256-1.c: Likewise.
- * gcc.target/i386/avx-setzero-si256-1.c: Likewise.
- * gcc.target/i386/avx-vaddpd-1.c: Likewise.
- * gcc.target/i386/avx-vaddpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vaddps-1.c: Likewise.
- * gcc.target/i386/avx-vaddps-256-1.c: Likewise.
- * gcc.target/i386/avx-vaddsd-1.c: Likewise.
- * gcc.target/i386/avx-vaddss-1.c: Likewise.
- * gcc.target/i386/avx-vaddsubpd-1.c: Likewise.
- * gcc.target/i386/avx-vaddsubpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vaddsubps-1.c: Likewise.
- * gcc.target/i386/avx-vaddsubps-256-1.c: Likewise.
- * gcc.target/i386/avx-vaesdec-1.c: Likewise.
- * gcc.target/i386/avx-vaesdeclast-1.c: Likewise.
- * gcc.target/i386/avx-vaesenc-1.c: Likewise.
- * gcc.target/i386/avx-vaesenclast-1.c: Likewise.
- * gcc.target/i386/avx-vaesimc-1.c: Likewise.
- * gcc.target/i386/avx-vaeskeygenassist-1.c: Likewise.
- * gcc.target/i386/avx-vandnpd-1.c: Likewise.
- * gcc.target/i386/avx-vandnpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vandnps-1.c: Likewise.
- * gcc.target/i386/avx-vandnps-256-1.c: Likewise.
- * gcc.target/i386/avx-vandpd-1.c: Likewise.
- * gcc.target/i386/avx-vandpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vandps-1.c: Likewise.
- * gcc.target/i386/avx-vandps-256-1.c: Likewise.
- * gcc.target/i386/avx-vblendpd-1.c: Likewise.
- * gcc.target/i386/avx-vblendpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vblendps-256-1.c: Likewise.
- * gcc.target/i386/avx-vblendvpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vblendvps-256-1.c: Likewise.
- * gcc.target/i386/avx-vbroadcastf128-256-1.c: Likewise.
- * gcc.target/i386/avx-vbroadcastf128-256-2.c: Likewise.
- * gcc.target/i386/avx-vbroadcastsd-1.c: Likewise.
- * gcc.target/i386/avx-vbroadcastss-1.c: Likewise.
- * gcc.target/i386/avx-vbroadcastss-2.c: Likewise.
- * gcc.target/i386/avx-vcmppd-1.c: Likewise.
- * gcc.target/i386/avx-vcmppd-256-1.c: Likewise.
- * gcc.target/i386/avx-vcmpps-1.c: Likewise.
- * gcc.target/i386/avx-vcmpps-256-1.c: Likewise.
- * gcc.target/i386/avx-vcmpsd-1.c: Likewise.
- * gcc.target/i386/avx-vcmpss-1.c: Likewise.
- * gcc.target/i386/avx-vcomisd-1.c: Likewise.
- * gcc.target/i386/avx-vcomisd-2.c: Likewise.
- * gcc.target/i386/avx-vcomisd-3.c: Likewise.
- * gcc.target/i386/avx-vcomisd-4.c: Likewise.
- * gcc.target/i386/avx-vcomisd-5.c: Likewise.
- * gcc.target/i386/avx-vcomisd-6.c: Likewise.
- * gcc.target/i386/avx-vcomiss-1.c: Likewise.
- * gcc.target/i386/avx-vcomiss-2.c: Likewise.
- * gcc.target/i386/avx-vcomiss-3.c: Likewise.
- * gcc.target/i386/avx-vcomiss-4.c: Likewise.
- * gcc.target/i386/avx-vcomiss-5.c: Likewise.
- * gcc.target/i386/avx-vcomiss-6.c: Likewise.
- * gcc.target/i386/avx-vcvtdq2pd-1.c: Likewise.
- * gcc.target/i386/avx-vcvtdq2pd-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvtdq2ps-1.c: Likewise.
- * gcc.target/i386/avx-vcvtpd2dq-1.c: Likewise.
- * gcc.target/i386/avx-vcvtpd2dq-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvtpd2ps-1.c: Likewise.
- * gcc.target/i386/avx-vcvtpd2ps-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvtps2dq-1.c: Likewise.
- * gcc.target/i386/avx-vcvtps2dq-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvtps2pd-1.c: Likewise.
- * gcc.target/i386/avx-vcvtps2pd-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvtsd2si-1.c: Likewise.
- * gcc.target/i386/avx-vcvtsd2si-2.c: Likewise.
- * gcc.target/i386/avx-vcvtsd2ss-1.c: Likewise.
- * gcc.target/i386/avx-vcvtsi2sd-1.c: Likewise.
- * gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise.
- * gcc.target/i386/avx-vcvtsi2ss-1.c: Likewise.
- * gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise.
- * gcc.target/i386/avx-vcvtss2sd-1.c: Likewise.
- * gcc.target/i386/avx-vcvtss2si-1.c: Likewise.
- * gcc.target/i386/avx-vcvtss2si-2.c: Likewise.
- * gcc.target/i386/avx-vcvttpd2dq-1.c: Likewise.
- * gcc.target/i386/avx-vcvttpd2dq-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvttps2dq-1.c: Likewise.
- * gcc.target/i386/avx-vcvttps2dq-256-1.c: Likewise.
- * gcc.target/i386/avx-vcvttsd2si-1.c: Likewise.
- * gcc.target/i386/avx-vcvttsd2si-2.c: Likewise.
- * gcc.target/i386/avx-vcvttss2si-1.c: Likewise.
- * gcc.target/i386/avx-vcvttss2si-2.c: Likewise.
- * gcc.target/i386/avx-vdivpd-1.c: Likewise.
- * gcc.target/i386/avx-vdivpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vdivps-1.c: Likewise.
- * gcc.target/i386/avx-vdivps-256-1.c: Likewise.
- * gcc.target/i386/avx-vdivsd-1.c: Likewise.
- * gcc.target/i386/avx-vdivss-1.c: Likewise.
- * gcc.target/i386/avx-vdppd-1.c: Likewise.
- * gcc.target/i386/avx-vdppd-2.c: Likewise.
- * gcc.target/i386/avx-vdpps-1.c: Likewise.
- * gcc.target/i386/avx-vdpps-2.c: Likewise.
- * gcc.target/i386/avx-vextractf128-256-1.c: Likewise.
- * gcc.target/i386/avx-vextractf128-256-2.c: Likewise.
- * gcc.target/i386/avx-vextractps-1.c: Likewise.
- * gcc.target/i386/avx-vhaddpd-1.c: Likewise.
- * gcc.target/i386/avx-vhaddpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vhaddps-1.c: Likewise.
- * gcc.target/i386/avx-vhaddps-256-1.c: Likewise.
- * gcc.target/i386/avx-vhsubpd-1.c: Likewise.
- * gcc.target/i386/avx-vhsubpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vhsubps-1.c: Likewise.
- * gcc.target/i386/avx-vhsubps-256-1.c: Likewise.
- * gcc.target/i386/avx-vinsertf128-256-1.c: Likewise.
- * gcc.target/i386/avx-vinsertf128-256-2.c: Likewise.
- * gcc.target/i386/avx-vinsertf128-256-3.c: Likewise.
- * gcc.target/i386/avx-vinsertps-1.c: Likewise.
- * gcc.target/i386/avx-vinsertps-2.c: Likewise.
- * gcc.target/i386/avx-vlddqu-1.c: Likewise.
- * gcc.target/i386/avx-vlddqu-256-1.c: Likewise.
- * gcc.target/i386/avx-vmaskmovpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmaskmovpd-256-2.c: Likewise.
- * gcc.target/i386/avx-vmaskmovps-256-1.c: Likewise.
- * gcc.target/i386/avx-vmaskmovps-256-2.c: Likewise.
- * gcc.target/i386/avx-vmaxpd-1.c: Likewise.
- * gcc.target/i386/avx-vmaxpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmaxps-1.c: Likewise.
- * gcc.target/i386/avx-vmaxps-256-1.c: Likewise.
- * gcc.target/i386/avx-vmaxsd-1.c: Likewise.
- * gcc.target/i386/avx-vmaxss-1.c: Likewise.
- * gcc.target/i386/avx-vminpd-1.c: Likewise.
- * gcc.target/i386/avx-vminpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vminps-1.c: Likewise.
- * gcc.target/i386/avx-vminps-256-1.c: Likewise.
- * gcc.target/i386/avx-vminsd-1.c: Likewise.
- * gcc.target/i386/avx-vminss-1.c: Likewise.
- * gcc.target/i386/avx-vmovapd-1.c: Likewise.
- * gcc.target/i386/avx-vmovapd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovapd-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovapd-2.c: Likewise.
- * gcc.target/i386/avx-vmovaps-1.c: Likewise.
- * gcc.target/i386/avx-vmovaps-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovaps-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovaps-2.c: Likewise.
- * gcc.target/i386/avx-vmovd-1.c: Likewise.
- * gcc.target/i386/avx-vmovd-2.c: Likewise.
- * gcc.target/i386/avx-vmovddup-1.c: Likewise.
- * gcc.target/i386/avx-vmovddup-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovdqa-1.c: Likewise.
- * gcc.target/i386/avx-vmovdqa-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovdqa-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovdqa-2.c: Likewise.
- * gcc.target/i386/avx-vmovdqu-1.c: Likewise.
- * gcc.target/i386/avx-vmovdqu-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovdqu-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovdqu-2.c: Likewise.
- * gcc.target/i386/avx-vmovhlps-1.c: Likewise.
- * gcc.target/i386/avx-vmovhpd-1.c: Likewise.
- * gcc.target/i386/avx-vmovhpd-2.c: Likewise.
- * gcc.target/i386/avx-vmovhps-1.c: Likewise.
- * gcc.target/i386/avx-vmovhps-2.c: Likewise.
- * gcc.target/i386/avx-vmovlhps-1.c: Likewise.
- * gcc.target/i386/avx-vmovlpd-1.c: Likewise.
- * gcc.target/i386/avx-vmovlpd-2.c: Likewise.
- * gcc.target/i386/avx-vmovmskpd-1.c: Likewise.
- * gcc.target/i386/avx-vmovmskpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovmskps-1.c: Likewise.
- * gcc.target/i386/avx-vmovmskps-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovntdq-1.c: Likewise.
- * gcc.target/i386/avx-vmovntdqa-1.c: Likewise.
- * gcc.target/i386/avx-vmovntpd-1.c: Likewise.
- * gcc.target/i386/avx-vmovntps-1.c: Likewise.
- * gcc.target/i386/avx-vmovq-1.c: Likewise.
- * gcc.target/i386/avx-vmovq-2.c: Likewise.
- * gcc.target/i386/avx-vmovq-3.c: Likewise.
- * gcc.target/i386/avx-vmovsd-1.c: Likewise.
- * gcc.target/i386/avx-vmovsd-2.c: Likewise.
- * gcc.target/i386/avx-vmovshdup-1.c: Likewise.
- * gcc.target/i386/avx-vmovshdup-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovsldup-1.c: Likewise.
- * gcc.target/i386/avx-vmovsldup-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovss-1.c: Likewise.
- * gcc.target/i386/avx-vmovss-2.c: Likewise.
- * gcc.target/i386/avx-vmovss-3.c: Likewise.
- * gcc.target/i386/avx-vmovupd-1.c: Likewise.
- * gcc.target/i386/avx-vmovupd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovupd-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovupd-2.c: Likewise.
- * gcc.target/i386/avx-vmovups-1.c: Likewise.
- * gcc.target/i386/avx-vmovups-256-1.c: Likewise.
- * gcc.target/i386/avx-vmovups-256-2.c: Likewise.
- * gcc.target/i386/avx-vmovups-2.c: Likewise.
- * gcc.target/i386/avx-vmpsadbw-1.c: Likewise.
- * gcc.target/i386/avx-vmulpd-1.c: Likewise.
- * gcc.target/i386/avx-vmulpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vmulps-1.c: Likewise.
- * gcc.target/i386/avx-vmulps-256-1.c: Likewise.
- * gcc.target/i386/avx-vmulsd-1.c: Likewise.
- * gcc.target/i386/avx-vmulss-1.c: Likewise.
- * gcc.target/i386/avx-vorpd-1.c: Likewise.
- * gcc.target/i386/avx-vorpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vorps-1.c: Likewise.
- * gcc.target/i386/avx-vorps-256-1.c: Likewise.
- * gcc.target/i386/avx-vpabsb-1.c: Likewise.
- * gcc.target/i386/avx-vpabsd-1.c: Likewise.
- * gcc.target/i386/avx-vpabsw-1.c: Likewise.
- * gcc.target/i386/avx-vpackssdw-1.c: Likewise.
- * gcc.target/i386/avx-vpacksswb-1.c: Likewise.
- * gcc.target/i386/avx-vpackusdw-1.c: Likewise.
- * gcc.target/i386/avx-vpackuswb-1.c: Likewise.
- * gcc.target/i386/avx-vpaddb-1.c: Likewise.
- * gcc.target/i386/avx-vpaddd-1.c: Likewise.
- * gcc.target/i386/avx-vpaddq-1.c: Likewise.
- * gcc.target/i386/avx-vpaddsb-1.c: Likewise.
- * gcc.target/i386/avx-vpaddsw-1.c: Likewise.
- * gcc.target/i386/avx-vpaddusb-1.c: Likewise.
- * gcc.target/i386/avx-vpaddusw-1.c: Likewise.
- * gcc.target/i386/avx-vpaddw-1.c: Likewise.
- * gcc.target/i386/avx-vpalignr-1.c: Likewise.
- * gcc.target/i386/avx-vpand-1.c: Likewise.
- * gcc.target/i386/avx-vpandn-1.c: Likewise.
- * gcc.target/i386/avx-vpavgb-1.c: Likewise.
- * gcc.target/i386/avx-vpavgw-1.c: Likewise.
- * gcc.target/i386/avx-vpblendvb-1.c: Likewise.
- * gcc.target/i386/avx-vpblendw-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpeqb-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpeqd-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpeqq-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpeqw-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpestri-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpestri-2.c: Likewise.
- * gcc.target/i386/avx-vpcmpestrm-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpestrm-2.c: Likewise.
- * gcc.target/i386/avx-vpcmpgtb-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpgtd-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpgtq-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpgtw-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpistri-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpistri-2.c: Likewise.
- * gcc.target/i386/avx-vpcmpistrm-1.c: Likewise.
- * gcc.target/i386/avx-vpcmpistrm-2.c: Likewise.
- * gcc.target/i386/avx-vperm2f128-256-1.c: Likewise.
- * gcc.target/i386/avx-vperm2f128-256-2.c: Likewise.
- * gcc.target/i386/avx-vperm2f128-256-3.c: Likewise.
- * gcc.target/i386/avx-vpermil2pd-1.c: Likewise.
- * gcc.target/i386/avx-vpermil2pd-256-1.c: Likewise.
- * gcc.target/i386/avx-vpermil2ps-1.c: Likewise.
- * gcc.target/i386/avx-vpermil2ps-256-1.c: Likewise.
- * gcc.target/i386/avx-vpermilpd-1.c: Likewise.
- * gcc.target/i386/avx-vpermilpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vpermilpd-256-2.c: Likewise.
- * gcc.target/i386/avx-vpermilpd-2.c: Likewise.
- * gcc.target/i386/avx-vpermilps-1.c: Likewise.
- * gcc.target/i386/avx-vpermilps-256-1.c: Likewise.
- * gcc.target/i386/avx-vpermilps-256-2.c: Likewise.
- * gcc.target/i386/avx-vpermilps-2.c: Likewise.
- * gcc.target/i386/avx-vpextrb-1.c: Likewise.
- * gcc.target/i386/avx-vpextrd-1.c: Likewise.
- * gcc.target/i386/avx-vpextrq-1.c: Likewise.
- * gcc.target/i386/avx-vpextrw-1.c: Likewise.
- * gcc.target/i386/avx-vphaddd-1.c: Likewise.
- * gcc.target/i386/avx-vphaddsw-1.c: Likewise.
- * gcc.target/i386/avx-vphaddw-1.c: Likewise.
- * gcc.target/i386/avx-vphminposuw-1.c: Likewise.
- * gcc.target/i386/avx-vphsubd-1.c: Likewise.
- * gcc.target/i386/avx-vphsubsw-1.c: Likewise.
- * gcc.target/i386/avx-vphsubw-1.c: Likewise.
- * gcc.target/i386/avx-vpinsrb-1.c: Likewise.
- * gcc.target/i386/avx-vpinsrd-1.c: Likewise.
- * gcc.target/i386/avx-vpinsrq-1.c: Likewise.
- * gcc.target/i386/avx-vpmaddubsw-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxsb-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxsd-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxsw-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxub-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxud-1.c: Likewise.
- * gcc.target/i386/avx-vpmaxuw-1.c: Likewise.
- * gcc.target/i386/avx-vpminsb-1.c: Likewise.
- * gcc.target/i386/avx-vpminsd-1.c: Likewise.
- * gcc.target/i386/avx-vpminsw-1.c: Likewise.
- * gcc.target/i386/avx-vpminub-1.c: Likewise.
- * gcc.target/i386/avx-vpminud-1.c: Likewise.
- * gcc.target/i386/avx-vpminuw-1.c: Likewise.
- * gcc.target/i386/avx-vpmovmskb-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxbd-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxbq-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxbw-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxdq-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxwd-1.c: Likewise.
- * gcc.target/i386/avx-vpmovsxwq-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxbd-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxbq-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxbw-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxdq-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxwd-1.c: Likewise.
- * gcc.target/i386/avx-vpmovzxwq-1.c: Likewise.
- * gcc.target/i386/avx-vpmuldq-1.c: Likewise.
- * gcc.target/i386/avx-vpmulhrsw-1.c: Likewise.
- * gcc.target/i386/avx-vpmulhuw-1.c: Likewise.
- * gcc.target/i386/avx-vpmulhw-1.c: Likewise.
- * gcc.target/i386/avx-vpmulld-1.c: Likewise.
- * gcc.target/i386/avx-vpmullw-1.c: Likewise.
- * gcc.target/i386/avx-vpmuludq-1.c: Likewise.
- * gcc.target/i386/avx-vpor-1.c: Likewise.
- * gcc.target/i386/avx-vpsadbw-1.c: Likewise.
- * gcc.target/i386/avx-vpshufb-1.c: Likewise.
- * gcc.target/i386/avx-vpshufd-1.c: Likewise.
- * gcc.target/i386/avx-vpshufhw-1.c: Likewise.
- * gcc.target/i386/avx-vpshuflw-1.c: Likewise.
- * gcc.target/i386/avx-vpsignb-1.c: Likewise.
- * gcc.target/i386/avx-vpsignd-1.c: Likewise.
- * gcc.target/i386/avx-vpsignw-1.c: Likewise.
- * gcc.target/i386/avx-vpslld-1.c: Likewise.
- * gcc.target/i386/avx-vpslld-2.c: Likewise.
- * gcc.target/i386/avx-vpslldq-1.c: Likewise.
- * gcc.target/i386/avx-vpsllq-1.c: Likewise.
- * gcc.target/i386/avx-vpsllq-2.c: Likewise.
- * gcc.target/i386/avx-vpsllw-1.c: Likewise.
- * gcc.target/i386/avx-vpsllw-2.c: Likewise.
- * gcc.target/i386/avx-vpsrad-1.c: Likewise.
- * gcc.target/i386/avx-vpsrad-2.c: Likewise.
- * gcc.target/i386/avx-vpsraw-1.c: Likewise.
- * gcc.target/i386/avx-vpsraw-2.c: Likewise.
- * gcc.target/i386/avx-vpsrld-1.c: Likewise.
- * gcc.target/i386/avx-vpsrld-2.c: Likewise.
- * gcc.target/i386/avx-vpsrldq-1.c: Likewise.
- * gcc.target/i386/avx-vpsrlq-1.c: Likewise.
- * gcc.target/i386/avx-vpsrlq-2.c: Likewise.
- * gcc.target/i386/avx-vpsrlw-1.c: Likewise.
- * gcc.target/i386/avx-vpsrlw-2.c: Likewise.
- * gcc.target/i386/avx-vpsubb-1.c: Likewise.
- * gcc.target/i386/avx-vpsubd-1.c: Likewise.
- * gcc.target/i386/avx-vpsubq-1.c: Likewise.
- * gcc.target/i386/avx-vpsubsb-1.c: Likewise.
- * gcc.target/i386/avx-vpsubsw-1.c: Likewise.
- * gcc.target/i386/avx-vpsubw-1.c: Likewise.
- * gcc.target/i386/avx-vptest-1.c: Likewise.
- * gcc.target/i386/avx-vptest-256-1.c: Likewise.
- * gcc.target/i386/avx-vptest-256-2.c: Likewise.
- * gcc.target/i386/avx-vptest-256-3.c: Likewise.
- * gcc.target/i386/avx-vptest-2.c: Likewise.
- * gcc.target/i386/avx-vptest-3.c: Likewise.
- * gcc.target/i386/avx-vpunpckhbw-1.c: Likewise.
- * gcc.target/i386/avx-vpunpckhdq-1.c: Likewise.
- * gcc.target/i386/avx-vpunpckhqdq-1.c: Likewise.
- * gcc.target/i386/avx-vpunpckhwd-1.c: Likewise.
- * gcc.target/i386/avx-vpunpcklbw-1.c: Likewise.
- * gcc.target/i386/avx-vpunpckldq-1.c: Likewise.
- * gcc.target/i386/avx-vpunpcklqdq-1.c: Likewise.
- * gcc.target/i386/avx-vpunpcklwd-1.c: Likewise.
- * gcc.target/i386/avx-vpxor-1.c: Likewise.
- * gcc.target/i386/avx-vrcpps-1.c: Likewise.
- * gcc.target/i386/avx-vrcpps-256-1.c: Likewise.
- * gcc.target/i386/avx-vroundpd-1.c: Likewise.
- * gcc.target/i386/avx-vroundpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vroundpd-256-2.c: Likewise.
- * gcc.target/i386/avx-vroundpd-256-3.c: Likewise.
- * gcc.target/i386/avx-vroundpd-2.c: Likewise.
- * gcc.target/i386/avx-vroundpd-3.c: Likewise.
- * gcc.target/i386/avx-vroundps-256-1.c: Likewise.
- * gcc.target/i386/avx-vrsqrtps-1.c: Likewise.
- * gcc.target/i386/avx-vrsqrtps-256-1.c: Likewise.
- * gcc.target/i386/avx-vshufpd-1.c: Likewise.
- * gcc.target/i386/avx-vshufpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vshufps-1.c: Likewise.
- * gcc.target/i386/avx-vshufps-256-1.c: Likewise.
- * gcc.target/i386/avx-vsqrtpd-1.c: Likewise.
- * gcc.target/i386/avx-vsqrtpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vsqrtps-1.c: Likewise.
- * gcc.target/i386/avx-vsqrtps-256-1.c: Likewise.
- * gcc.target/i386/avx-vsubpd-1.c: Likewise.
- * gcc.target/i386/avx-vsubpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vsubps-1.c: Likewise.
- * gcc.target/i386/avx-vsubps-256-1.c: Likewise.
- * gcc.target/i386/avx-vsubsd-1.c: Likewise.
- * gcc.target/i386/avx-vsubss-1.c: Likewise.
- * gcc.target/i386/avx-vtestpd-1.c: Likewise.
- * gcc.target/i386/avx-vtestpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vtestpd-256-2.c: Likewise.
- * gcc.target/i386/avx-vtestpd-256-3.c: Likewise.
- * gcc.target/i386/avx-vtestpd-2.c: Likewise.
- * gcc.target/i386/avx-vtestpd-3.c: Likewise.
- * gcc.target/i386/avx-vtestps-1.c: Likewise.
- * gcc.target/i386/avx-vtestps-256-1.c: Likewise.
- * gcc.target/i386/avx-vtestps-256-2.c: Likewise.
- * gcc.target/i386/avx-vtestps-256-3.c: Likewise.
- * gcc.target/i386/avx-vtestps-2.c: Likewise.
- * gcc.target/i386/avx-vtestps-3.c: Likewise.
- * gcc.target/i386/avx-vucomisd-1.c: Likewise.
- * gcc.target/i386/avx-vucomisd-2.c: Likewise.
- * gcc.target/i386/avx-vucomisd-3.c: Likewise.
- * gcc.target/i386/avx-vucomisd-4.c: Likewise.
- * gcc.target/i386/avx-vucomisd-5.c: Likewise.
- * gcc.target/i386/avx-vucomisd-6.c: Likewise.
- * gcc.target/i386/avx-vucomiss-1.c: Likewise.
- * gcc.target/i386/avx-vucomiss-2.c: Likewise.
- * gcc.target/i386/avx-vucomiss-3.c: Likewise.
- * gcc.target/i386/avx-vucomiss-4.c: Likewise.
- * gcc.target/i386/avx-vucomiss-5.c: Likewise.
- * gcc.target/i386/avx-vucomiss-6.c: Likewise.
- * gcc.target/i386/avx-vunpckhpd-1.c: Likewise.
- * gcc.target/i386/avx-vunpckhpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vunpckhps-1.c: Likewise.
- * gcc.target/i386/avx-vunpckhps-256-1.c: Likewise.
- * gcc.target/i386/avx-vunpcklpd-1.c: Likewise.
- * gcc.target/i386/avx-vunpcklpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vunpcklps-1.c: Likewise.
- * gcc.target/i386/avx-vunpcklps-256-1.c: Likewise.
- * gcc.target/i386/avx-vxorpd-1.c: Likewise.
- * gcc.target/i386/avx-vxorpd-256-1.c: Likewise.
- * gcc.target/i386/avx-vxorps-1.c: Likewise.
- * gcc.target/i386/avx-vxorps-256-1.c: Likewise.
- * gcc.target/i386/avx-vzeroall-1.c: Likewise.
- * gcc.target/i386/avx-vzeroall-2.c: Likewise.
- * gcc.target/i386/avx-vzeroupper-1.c: Likewise.
- * gcc.target/i386/avx-vzeroupper-2.c: Likewise.
- * gcc.target/i386/m256-1.c: Likewise.
- * gcc.target/i386/m256-2.c: Likewise.
- * gcc.target/i386/m256-check.h: Likewise.
- * gcc.target/i386/sse2-addpd-1.c: Likewise.
- * gcc.target/i386/sse2-addsd-1.c: Likewise.
- * gcc.target/i386/sse2-andnpd-1.c: Likewise.
- * gcc.target/i386/sse2-andpd-1.c: Likewise.
- * gcc.target/i386/sse2-comisd-1.c: Likewise.
- * gcc.target/i386/sse2-comisd-2.c: Likewise.
- * gcc.target/i386/sse2-comisd-3.c: Likewise.
- * gcc.target/i386/sse2-comisd-4.c: Likewise.
- * gcc.target/i386/sse2-comisd-5.c: Likewise.
- * gcc.target/i386/sse2-comisd-6.c: Likewise.
- * gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
- * gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
- * gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
- * gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
- * gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
- * gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
- * gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
- * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
- * gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
- * gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
- * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
- * gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
- * gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
- * gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
- * gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
- * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
- * gcc.target/i386/sse2-divpd-1.c: Likewise.
- * gcc.target/i386/sse2-divsd-1.c: Likewise.
- * gcc.target/i386/sse2-maxpd-1.c: Likewise.
- * gcc.target/i386/sse2-maxsd-1.c: Likewise.
- * gcc.target/i386/sse2-minpd-1.c: Likewise.
- * gcc.target/i386/sse2-minsd-1.c: Likewise.
- * gcc.target/i386/sse2-movapd-1.c: Likewise.
- * gcc.target/i386/sse2-movapd-2.c: Likewise.
- * gcc.target/i386/sse2-movd-1.c: Likewise.
- * gcc.target/i386/sse2-movd-2.c: Likewise.
- * gcc.target/i386/sse2-movdqa-1.c: Likewise.
- * gcc.target/i386/sse2-movdqa-2.c: Likewise.
- * gcc.target/i386/sse2-movdqu-1.c: Likewise.
- * gcc.target/i386/sse2-movdqu-2.c: Likewise.
- * gcc.target/i386/sse2-movhpd-1.c: Likewise.
- * gcc.target/i386/sse2-movhpd-2.c: Likewise.
- * gcc.target/i386/sse2-movlpd-1.c: Likewise.
- * gcc.target/i386/sse2-movlpd-2.c: Likewise.
- * gcc.target/i386/sse2-movmskpd-1.c: Likewise.
- * gcc.target/i386/sse2-movntdq-1.c: Likewise.
- * gcc.target/i386/sse2-movntpd-1.c: Likewise.
- * gcc.target/i386/sse2-movq-1.c: Likewise.
- * gcc.target/i386/sse2-movq-2.c: Likewise.
- * gcc.target/i386/sse2-movq-3.c: Likewise.
- * gcc.target/i386/sse2-movsd-1.c: Likewise.
- * gcc.target/i386/sse2-movsd-2.c: Likewise.
- * gcc.target/i386/sse2-movupd-1.c: Likewise.
- * gcc.target/i386/sse2-movupd-2.c: Likewise.
- * gcc.target/i386/sse2-mulpd-1.c: Likewise.
- * gcc.target/i386/sse2-mulsd-1.c: Likewise.
- * gcc.target/i386/sse2-orpd-1.c: Likewise.
- * gcc.target/i386/sse2-packssdw-1.c: Likewise.
- * gcc.target/i386/sse2-packsswb-1.c: Likewise.
- * gcc.target/i386/sse2-packuswb-1.c: Likewise.
- * gcc.target/i386/sse2-paddb-1.c: Likewise.
- * gcc.target/i386/sse2-paddd-1.c: Likewise.
- * gcc.target/i386/sse2-paddq-1.c: Likewise.
- * gcc.target/i386/sse2-paddsb-1.c: Likewise.
- * gcc.target/i386/sse2-paddsw-1.c: Likewise.
- * gcc.target/i386/sse2-paddusb-1.c: Likewise.
- * gcc.target/i386/sse2-paddusw-1.c: Likewise.
- * gcc.target/i386/sse2-paddw-1.c: Likewise.
- * gcc.target/i386/sse2-pand-1.c: Likewise.
- * gcc.target/i386/sse2-pandn-1.c: Likewise.
- * gcc.target/i386/sse2-pavgb-1.c: Likewise.
- * gcc.target/i386/sse2-pavgw-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
- * gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
- * gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
- * gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
- * gcc.target/i386/sse2-pmaxub-1.c: Likewise.
- * gcc.target/i386/sse2-pminsw-1.c: Likewise.
- * gcc.target/i386/sse2-pminub-1.c: Likewise.
- * gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
- * gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
- * gcc.target/i386/sse2-pmulhw-1.c: Likewise.
- * gcc.target/i386/sse2-pmullw-1.c: Likewise.
- * gcc.target/i386/sse2-pmuludq-1.c: Likewise.
- * gcc.target/i386/sse2-por-1.c: Likewise.
- * gcc.target/i386/sse2-psadbw-1.c: Likewise.
- * gcc.target/i386/sse2-pshufd-1.c: Likewise.
- * gcc.target/i386/sse2-pshufhw-1.c: Likewise.
- * gcc.target/i386/sse2-pshuflw-1.c: Likewise.
- * gcc.target/i386/sse2-pslld-1.c: Likewise.
- * gcc.target/i386/sse2-pslld-2.c: Likewise.
- * gcc.target/i386/sse2-pslldq-1.c: Likewise.
- * gcc.target/i386/sse2-psllq-1.c: Likewise.
- * gcc.target/i386/sse2-psllq-2.c: Likewise.
- * gcc.target/i386/sse2-psllw-1.c: Likewise.
- * gcc.target/i386/sse2-psllw-2.c: Likewise.
- * gcc.target/i386/sse2-psrad-1.c: Likewise.
- * gcc.target/i386/sse2-psrad-2.c: Likewise.
- * gcc.target/i386/sse2-psraw-1.c: Likewise.
- * gcc.target/i386/sse2-psraw-2.c: Likewise.
- * gcc.target/i386/sse2-psrld-1.c: Likewise.
- * gcc.target/i386/sse2-psrld-2.c: Likewise.
- * gcc.target/i386/sse2-psrldq-1.c: Likewise.
- * gcc.target/i386/sse2-psrlq-1.c: Likewise.
- * gcc.target/i386/sse2-psrlq-2.c: Likewise.
- * gcc.target/i386/sse2-psrlw-1.c: Likewise.
- * gcc.target/i386/sse2-psrlw-2.c: Likewise.
- * gcc.target/i386/sse2-psubb-1.c: Likewise.
- * gcc.target/i386/sse2-psubd-1.c: Likewise.
- * gcc.target/i386/sse2-psubq-1.c: Likewise.
- * gcc.target/i386/sse2-psubsb-1.c: Likewise.
- * gcc.target/i386/sse2-psubsw-1.c: Likewise.
- * gcc.target/i386/sse2-psubw-1.c: Likewise.
- * gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
- * gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
- * gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
- * gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
- * gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
- * gcc.target/i386/sse2-punpckldq-1.c: Likewise.
- * gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
- * gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
- * gcc.target/i386/sse2-pxor-1.c: Likewise.
- * gcc.target/i386/sse2-shufpd-1.c: Likewise.
- * gcc.target/i386/sse2-shufps-1.c: Likewise.
- * gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
- * gcc.target/i386/sse2-subpd-1.c: Likewise.
- * gcc.target/i386/sse2-subsd-1.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-1.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-2.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-3.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-4.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-5.c: Likewise.
- * gcc.target/i386/sse2-ucomisd-6.c: Likewise.
- * gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
- * gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
- * gcc.target/i386/sse2-xorpd-1.c: Likewise.
- * gcc.target/i386/sse-addps-1.c: Likewise.
- * gcc.target/i386/sse-addss-1.c: Likewise.
- * gcc.target/i386/sse-andnps-1.c: Likewise.
- * gcc.target/i386/sse-andps-1.c: Likewise.
- * gcc.target/i386/sse-comiss-1.c: Likewise.
- * gcc.target/i386/sse-comiss-2.c: Likewise.
- * gcc.target/i386/sse-comiss-3.c: Likewise.
- * gcc.target/i386/sse-comiss-4.c: Likewise.
- * gcc.target/i386/sse-comiss-5.c: Likewise.
- * gcc.target/i386/sse-comiss-6.c: Likewise.
- * gcc.target/i386/sse-cvtsi2ss-1.c: Likewise.
- * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise.
- * gcc.target/i386/sse-cvtss2si-1.c: Likewise.
- * gcc.target/i386/sse-cvtss2si-2.c: Likewise.
- * gcc.target/i386/sse-cvttss2si-1.c: Likewise.
- * gcc.target/i386/sse-cvttss2si-2.c: Likewise.
- * gcc.target/i386/sse-divps-1.c: Likewise.
- * gcc.target/i386/sse-divss-1.c: Likewise.
- * gcc.target/i386/sse-maxps-1.c: Likewise.
- * gcc.target/i386/sse-maxss-1.c: Likewise.
- * gcc.target/i386/sse-minps-1.c: Likewise.
- * gcc.target/i386/sse-minss-1.c: Likewise.
- * gcc.target/i386/sse-movaps-1.c: Likewise.
- * gcc.target/i386/sse-movaps-2.c: Likewise.
- * gcc.target/i386/sse-movhlps-1.c: Likewise.
- * gcc.target/i386/sse-movhps-1.c: Likewise.
- * gcc.target/i386/sse-movhps-2.c: Likewise.
- * gcc.target/i386/sse-movlhps-1.c: Likewise.
- * gcc.target/i386/sse-movmskps-1.c: Likewise.
- * gcc.target/i386/sse-movntps-1.c: Likewise.
- * gcc.target/i386/sse-movss-1.c: Likewise.
- * gcc.target/i386/sse-movss-2.c: Likewise.
- * gcc.target/i386/sse-movss-3.c: Likewise.
- * gcc.target/i386/sse-movups-1.c: Likewise.
- * gcc.target/i386/sse-movups-2.c: Likewise.
- * gcc.target/i386/sse-mulps-1.c: Likewise.
- * gcc.target/i386/sse-mulss-1.c: Likewise.
- * gcc.target/i386/sse-orps-1.c: Likewise.
- * gcc.target/i386/sse-rcpps-1.c: Likewise.
- * gcc.target/i386/sse-rsqrtps-1.c: Likewise.
- * gcc.target/i386/sse-sqrtps-1.c: Likewise.
- * gcc.target/i386/sse-subps-1.c: Likewise.
- * gcc.target/i386/sse-subss-1.c: Likewise.
- * gcc.target/i386/sse-ucomiss-1.c: Likewise.
- * gcc.target/i386/sse-ucomiss-2.c: Likewise.
- * gcc.target/i386/sse-ucomiss-3.c: Likewise.
- * gcc.target/i386/sse-ucomiss-4.c: Likewise.
- * gcc.target/i386/sse-ucomiss-5.c: Likewise.
- * gcc.target/i386/sse-ucomiss-6.c: Likewise.
- * gcc.target/i386/sse-unpckhps-1.c: Likewise.
- * gcc.target/i386/sse-unpcklps-1.c: Likewise.
- * gcc.target/i386/sse-xorps-1.c: Likewise.
- * gcc.target/i386/vararg-10.c: Likewise.
- * gcc.target/i386/vararg-3.c: Likewise.
- * gcc.target/i386/vararg-4.c: Likewise.
- * gcc.target/i386/vararg-5.c: Likewise.
- * gcc.target/i386/vararg-6.c: Likewise.
- * gcc.target/i386/vararg-7.c: Likewise.
- * gcc.target/i386/vararg-8.c: Likewise.
- * gcc.target/i386/vararg-9.c: Likewise.
- * g++.dg/other/i386-5.C: Likewise.
- * g++.dg/other/i386-6.C: Likewise.
-
- * gcc.target/i386/aesdec.c (CHECK_H): New.
- (TEST): New.
- Include CHECK_H instead of "XXX-check.h" and run TEST
- instead of XXX_test.
- * gcc.target/i386/aesdeclast.c: Likewise.
- * gcc.target/i386/aesenc.c: Likewise.
- * gcc.target/i386/aesenclast.c: Likewise.
- * gcc.target/i386/aesimc.c: Likewise.
- * gcc.target/i386/aeskeygenassist.c: Likewise.
- * gcc.target/i386/sse3-addsubpd.c: Likewise.
- * gcc.target/i386/sse3-addsubps.c: Likewise.
- * gcc.target/i386/sse3-haddpd.c: Likewise.
- * gcc.target/i386/sse3-haddps.c: Likewise.
- * gcc.target/i386/sse3-hsubpd.c: Likewise.
- * gcc.target/i386/sse3-hsubps.c: Likewise.
- * gcc.target/i386/sse3-lddqu.c: Likewise.
- * gcc.target/i386/sse3-movddup.c: Likewise.
- * gcc.target/i386/sse3-movshdup.c: Likewise.
- * gcc.target/i386/sse3-movsldup.c: Likewise.
- * gcc.target/i386/sse4_1-blendpd.c: Likewise.
- * gcc.target/i386/sse4_1-blendps.c: Likewise.
- * gcc.target/i386/sse4_1-dppd-1.c: Likewise.
- * gcc.target/i386/sse4_1-dppd-2.c: Likewise.
- * gcc.target/i386/sse4_1-dpps-1.c: Likewise.
- * gcc.target/i386/sse4_1-dpps-2.c: Likewise.
- * gcc.target/i386/sse4_1-extractps.c: Likewise.
- * gcc.target/i386/sse4_1-insertps-1.c: Likewise.
- * gcc.target/i386/sse4_1-insertps-2.c: Likewise.
- * gcc.target/i386/sse4_1-movntdqa.c: Likewise.
- * gcc.target/i386/sse4_1-mpsadbw.c: Likewise.
- * gcc.target/i386/sse4_1-packusdw.c: Likewise.
- * gcc.target/i386/sse4_1-pblendvb.c: Likewise.
- * gcc.target/i386/sse4_1-pblendw.c: Likewise.
- * gcc.target/i386/sse4_1-pcmpeqq.c: Likewise.
- * gcc.target/i386/sse4_1-pextrb.c: Likewise.
- * gcc.target/i386/sse4_1-pextrd.c: Likewise.
- * gcc.target/i386/sse4_1-pextrq.c: Likewise.
- * gcc.target/i386/sse4_1-pextrw.c: Likewise.
- * gcc.target/i386/sse4_1-phminposuw.c: Likewise.
- * gcc.target/i386/sse4_1-pinsrb.c: Likewise.
- * gcc.target/i386/sse4_1-pinsrd.c: Likewise.
- * gcc.target/i386/sse4_1-pinsrq.c: Likewise.
- * gcc.target/i386/sse4_1-pmaxsb.c: Likewise.
- * gcc.target/i386/sse4_1-pmaxsd.c: Likewise.
- * gcc.target/i386/sse4_1-pmaxud.c: Likewise.
- * gcc.target/i386/sse4_1-pmaxuw.c: Likewise.
- * gcc.target/i386/sse4_1-pminsb.c: Likewise.
- * gcc.target/i386/sse4_1-pminsd.c: Likewise.
- * gcc.target/i386/sse4_1-pminud.c: Likewise.
- * gcc.target/i386/sse4_1-pminuw.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxbd.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxbq.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxbw.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxdq.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxwd.c: Likewise.
- * gcc.target/i386/sse4_1-pmovsxwq.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxbd.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxbq.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxbw.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxdq.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxwd.c: Likewise.
- * gcc.target/i386/sse4_1-pmovzxwq.c: Likewise.
- * gcc.target/i386/sse4_1-pmuldq.c: Likewise.
- * gcc.target/i386/sse4_1-pmulld.c: Likewise.
- * gcc.target/i386/sse4_1-ptest-1.c: Likewise.
- * gcc.target/i386/sse4_1-ptest-2.c: Likewise.
- * gcc.target/i386/sse4_1-ptest-3.c: Likewise.
- * gcc.target/i386/sse4_1-roundpd-1.c: Likewise.
- * gcc.target/i386/sse4_1-roundpd-2.c: Likewise.
- * gcc.target/i386/sse4_1-roundpd-3.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestri-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpgtq.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
- * gcc.target/i386/ssse3-pabsb.c: Likewise. Don't run MMX
- tests for AVX.
- * gcc.target/i386/ssse3-pabsd.c: Likewise.
- * gcc.target/i386/ssse3-pabsw.c: Likewise.
- * gcc.target/i386/ssse3-palignr.c: Likewise.
- * gcc.target/i386/ssse3-phaddd.c: Likewise.
- * gcc.target/i386/ssse3-phaddsw.c: Likewise.
- * gcc.target/i386/ssse3-phaddw.c: Likewise.
- * gcc.target/i386/ssse3-phsubd.c: Likewise.
- * gcc.target/i386/ssse3-phsubsw.c: Likewise.
- * gcc.target/i386/ssse3-phsubw.c: Likewise.
- * gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
- * gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
- * gcc.target/i386/ssse3-pshufb.c: Likewise.
- * gcc.target/i386/ssse3-psignb.c: Likewise.
- * gcc.target/i386/ssse3-psignd.c: Likewise.
- * gcc.target/i386/ssse3-psignw.c: Likewise.
-
- * gcc.target/i386/i386.exp (check_effective_target_vaes): New.
-
- * gcc.target/i386/m128-check.h: Include <xmmintrin.h>. Include
- <emmintrin.h> for SSE2.
- (union128i_b): Defined only for SSE2.
- (union128i_w): Likewise.
- (union128i_d): Likewise.
- (union128i_q): Likewise.
- (union128d): Likewise.
- (check_union128i_b): Likewise.
- (check_union128i_w): Likewise.
- (check_union128i_d): Likewise.
- (check_union128i_q): Likewise.
- (check_union128d): Likewise.
- (union128i_ub): New.
- (union128i_uw): Likewise.
- (check_union128i_ub): Likewise.
- (check_union128i_uw): Likewise.
- (ESP_FLOAT): Likewise.
- (ESP_DOUBLE): Likewise.
- (CHECK_ARRAY): Likewise.
- (checkVd): Likewise.
- (checkVf): Likewise.
- (ieee754_float): Likewise.
- (ieee754_double): Likewise.
-
- * gcc.target/i386/sse-check.h: Include "m128-check.h".
-
- * gcc.target/x86_64/abi/abi-x86_64.exp: Replace asm-support.s
- with asm-support.S.
-
- * gcc.target/x86_64/abi/asm-support.s: Renamed to ...
- * gcc.target/x86_64/abi/asm-support.S: This. Add
- ".sse_check none" if __AVX__ is defined.
-
- * lib/target-supports.exp (check_effective_target_avx): New.
-
-2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/30949
- * gcc.dg/pr30949.c: New.
- * gcc.dg/transparent-union-1.c: Update.
- * gcc.dg/cleanup-1.c: Update.
- * gcc.dg/assign-warn-2.c: Update.
- * gcc.dg/conv-2.c: Update.
- * gcc.dg/Wpointer-sign-pedantic.c: Update.
- * gcc.dg/Wpointer-sign-Wall.c: Update.
- * gcc.dg/assign-warn-1.c: Update.
- * gcc.dg/dfp/composite-type.c: Update.
- * gcc.dg/noncompile/20020213-1.c: Update.
-
-2008-08-28 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/typebound_call_1.f03: New test.
- * gfortran.dg/typebound_call_2.f03: New test.
- * gfortran.dg/typebound_call_3.f03: New test.
- * gfortran.dg/typebound_call_4.f03: New test.
- * gfortran.dg/typebound_call_5.f03: New test.
- * gfortran.dg/typebound_call_6.f03: New test.
- * gfortran.dg/typebound_proc_1.f08: Don't expect not-implemented error.
- * gfortran.dg/typebound_proc_2.f90: Ditto.
- * gfortran.dg/typebound_proc_5.f03: Ditto.
- * gfortran.dg/typebound_proc_6.f03: Ditto.
- * gfortran.dg/typebound_proc_7.f03: Ditto.
- * gfortran.dg/typebound_proc_8.f03: Ditto.
-
-2008-08-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37207
- * gcc.c-torture/compile/pr37207.c: New testcase.
-
-2008-08-28 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/37253
- * gfortran.dg/proc_ptr_10.f90: New.
-
-2008-08-28 Dodji Seketeli <dodji@redhat.com>
-
- PR c++/36741
- * g++.dg/other/new-size-type.C: New test.
-
-2008-08-28 Ira Rosen <irar@il.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_vect_perm): New.
- * gcc.dg/vect/slp-perm-1.c: New testcase.
- * gcc.dg/vect/slp-perm-2.c: New testcase.
- * gcc.dg/vect/slp-perm-3.c: New testcase.
- * gcc.dg/vect/slp-perm-4.c: New testcase.
- * gcc.dg/vect/slp-perm-5.c: New testcase.
- * gcc.dg/vect/slp-perm-6.c: New testcase.
- * gcc.dg/vect/slp-perm-7.c: New testcase.
- * gcc.dg/vect/slp-perm-8.c: New testcase.
- * gcc.dg/vect/slp-perm-9.c: New testcase.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 37217
- * gcc.dg/pr37217.c: New.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/31673
- * gcc.dg/c90-fordecl-1.c: Update.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/37186
- * gcc.dg/pr37186.c: New.
-
-2008-08-27 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.dg/torture/type-generic-1.c: Revert previous change.
- * g++.dg/torture/type-generic-1.C: Ditto.
-
-2008-08-27 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/ipa/ipacost-1.c: Remove template matching only x86-64
- * gcc.dg/ipa/ipacost-2.c: Add -fipa-cp-clone; remove template matching
- only x86-64
- * gcc.dg/ipa/ipa-1.c: Add -fipa-cp-clone
- * gcc.dg/ipa/ipa-2.c: Add -fipa-cp-clone
- * gcc.dg/ipa/ipa-3.c: Add -fipa-cp-clone
- * gcc.dg/ipa/ipa-4.c: Add -fipa-cp-clone
- * gcc.dg/ipa/ipa-5.c: Add -fipa-cp-clone
- * gcc.dg/ipa/ipa-7.c: Add -fipa-cp-clone
-
-2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35321
- * g++.dg/parse/offsetof8.C: New.
-
-2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/17880
- * g++.dg/warn/sequence-pt-1.C: New.
- * g++.dg/warn/sequence-pt-pr17880.C: New.
-
-2008-08-26 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/cpp0x/scoped_enum_examples.C: New.
- * g++.dg/cpp0x/scoped_enum.C: New.
- * g++.dg/cpp0x/scoped_enum_98.C: New.
- * g++.dg/cpp0x/enum_base_warn.C: New.
- * g++.dg/cpp0x/enum_base.C: New.
-
-2008-08-26 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.target/powerpc/altivec-macros.c: Fix dg-message directives.
- * gcc.target/powerpc/ppu-intrinsics.c: Ignore some warnings.
- * gcc.target/powerpc/darwin-save-world-1.c: Require AltiVec hardware.
- * gcc.target/powerpc/altivec-types-1.c: Expect some notes.
- * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Ignore a warning.
- * g++.dg/ext/altivec-2.C: Initialize a local variable.
- * g++.dg/ext/altivec-3.C: Move AltiVec code out of main.
-
- * gcc.dg/torture/type-generic-1.c: Don't use IBM 128-bit long double.
- * g++.dg/torture/type-generic-1.C: Ditto.
-
-2008-08-26 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc.dg/vect/slp-18.c: Require vect_intfloat_cvt.
- * gcc.dg/vect/slp-11.c: Likewise.
- * gcc.dg/vect/fast-math-pr35982.c: Likewise.
- * lib/target-supports.exp:
- (check_effective_target_vect_pack_trunc): Add SPU to the list.
- (check_effective_target_vect_extract_even_odd): Likewise.
- (check_effective_target_vect_extract_even_odd_wide): Likewise.
- (check_effective_target_vect_interleave): Likewise.
-
-2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * gcc.target/powerpc/altivec-volatile.c: New test.
-
-2008-08-25 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/extends_7.f03: New test.
- * gfortran.dg/typebound_proc_7.f03: New test.
- * gfortran.dg/typebound_proc_8.f03: New test.
-
-2008-08-24 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/octeon-pop-1.c: New test.
-
-2008-08-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37201
- * gfortran.dg/bind_c_18.f90: New.
-
-2008-08-24 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/ipa/ipacost-1.c: New testcase.
- * gcc.dg/ipa/ipacost-2.c: New testcase.
- * gcc.dg/ipa/ipa-7.c: Update template.
-
-2008-08-24 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37201
- * gfortran.dg/bind_c_usage_17.f90: New.
- * gfortran.dg/bind_c_usage_17_c.c: New.
-
-2008-08-24 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/finalize_5.f03: Adapted expected error message to
- changes to handling of CONTAINS in derived-type declarations.
- * gfortran.dg/typebound_proc_1.f08: New test.
- * gfortran.dg/typebound_proc_2.f90: New test.
- * gfortran.dg/typebound_proc_3.f03: New test.
- * gfortran.dg/typebound_proc_4.f03: New test.
- * gfortran.dg/typebound_proc_5.f03: New test.
- * gfortran.dg/typebound_proc_6.f03: New test.
-
-2008-08-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37076
- * gfortran.dg/widechar_9.f90: New.
-
-2008-08-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/37025
- * gfortran.dg/widechar_8.f90: New.
-
-2008-08-23 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/37174
- * g++.dg/vect/pr37174.cc: New test.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37078
- * gcc.c-torture/compile/pr37078.c: New testcase.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37143
- * g++.dg/vect/pr37143.C: New testcase.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/30239
- * gfortran.dg/duplicate_type_1.f90: New test.
- * gfortran.dg/duplicate_type_2.f90: New test.
-
-2008-08-22 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/tree-ssa/pr21658.c (dg-options): Use -fdump-tree-ccp1-details.
- (dg-final): Use cleanup-tree-dump "ccp1".
- * gcc.dg/tree-prof/ic-misattribution-1a.c: Cleanup tree_profile.
- * gcc.dg/ipa/iinline-1.c: Cleanup ipa dump, not tree dump.
- * g++.dg/ipa/iinline-1.C: Ditto.
- * gfortran.dg/intrinsic_std_1.f90: Cleanup "original" tree dump.
- * gfortran.dg/char_eoshift_5.f90: Ditto.
- * gfortran.dg/index_2.f90: Ditto.
-
-2008-08-22 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/37184
- * gcc.target/i386/pr37184.c: New test.
-
- PR target/37191
- * gcc.target/i386/pr37191.c: New test.
-
- PR target/37197
- * gcc.target/i386/pr37197.c: New test.
-
-2008-08-22 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36548
- PR middle-end/37125
- * gcc.c-torture/execute/pr37125.c: New testcase.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/used_before_typed_4.f90: New test.
-
-2008-08-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/32095
- PR fortran/34228
- * gfortran.dg/used_before_typed_1.f90: New test.
- * gfortran.dg/used_before_typed_2.f90: New test.
- * gfortran.dg/used_before_typed_3.f90: New test.
- * gfortran.dg/array_constructor_26.f03: Add -std=gnu to not enable
- legacy-behaviour for the new check.
- * gfortran.dg/array_constructor_27.f03: Ditto.
- * gfortran.dg/blockdata_4.f90: Ditto.
- * gfortran.dg/bound_2.f90: Reordered declarations to satisfy the check.
- * gfortran.dg/result_in_spec_1.f90: Ditto.
- * gfortran.dg/argument_checking_7.f90: Adapted expected error messages.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 30457
- * gcc.dg/pr30457.c: New.
-
-2008-08-21 Aldy Hernandez <aldyh@redhat.com>
-
- * gcc.dg/20011008-1.c: Test column.
- * gcc.dg/20080820.c: New.
- * gcc.dg/fltconst-1.c: Test column.
- * gcc.dg/cpp/cpp.exp: Add -fno-show-column.
- * gcc.dg/cpp/trad/trad.exp: Same.
- * lib/gcc.exp (gcc_target_compile): Remove -fno-show-column.
- * lib/gcc-dg.exp (process-message): Handle columns.
-
-2008-08-21 Joseph Myers <joseph@codesourcery.com>
-
- * g++.dg/opt/anchor1.C (foo): Return the return value of
- ycf->ascent.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/vect/vect-fold-1.c: Scan ccp1 dump instead of dom1.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36817
- * gcc.c-torture/compile/pr36817.c: New testcase.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-fre-13.c: Remove XFAIL.
- * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-17.c: Likewise.
- * gcc.dg/tree-ssa/data-dep-1.c: Likewise.
- * gcc.dg/tree-ssa/ltrans-3.c: Likewise.
-
-2008-08-21 Richard Guenther <rguenther@suse.de>
-
- PR testsuite/37182
- * gcc.dg/pr17506.c: Remove duplicate testcase.
- * gcc.dg/uninit-15.c: Adjust to allow for both correct
- behaviors, one xfailed.
-
-2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/179
- * gcc.dg/uninit-6.c (make_something): Remove XFAIL.
- * gcc.dg/uninit-6-O0.c (make_something): Remove XFAIL.
- * gcc.dg/uninit-B.c (baz): Remove XFAIL.
- * gcc.dg/uninit-B-2.c: New.
- * gcc.dg/uninit-B-O0-2.c: New.
- * gcc.dg/uninit-pr19430-O0.c: New.
- * gcc.dg/uninit-pr19430.c: New.
- * gcc.dg/uninit-pr19430-2.c: New.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/35158
- * g++.dg/gomp/pr35158.C: New.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35701
- * gcc.dg/pr35701.c: New.
- * gcc.dg/Wconversion-real-integer.c: Add more tests.
- * gcc.dg/Wconversion-pr34389.c: Update.
- * g++.dg/warn/Wconversion-pr34389.C: Update.
-
-2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/35602
- * g++.dg/warn/pr35602.C: New.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/pr21829.c: Scan optimized and cddce2 dumps
- instead of phicprop2. Make sure all is fine after cddce2,
- add an XFAILed scan for merging the two remaining ifs.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/compile/20080820-1.c: New testcase.
-
-2008-08-20 Jakub Jelinek <jakub@redhat.com>
-
- PR c/37171
- * gcc.dg/pr37171.c: New test.
-
-2008-08-20 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/div_no_warning.adb: New test.
-
-2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37169
- * i386/sse2-init-v2di-2.c: New.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/forwprop-9.c: Scan FRE dump as well.
- * gcc.dg/tree-ssa/forwprop-10.c: New testcase.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/20030530-2.c: Scan dom2 dump.
- * gcc.dg/tree-ssa/20030611-1.c: Likewise.
- * gcc.dg/tree-ssa/20030703-1.c: Likewise.
- * gcc.dg/tree-ssa/20030703-2.c: Likewise.
- * gcc.dg/tree-ssa/20030708-1.c: Likewise.
- * gcc.dg/tree-ssa/20030709-3.c: Likewise.
- * gcc.dg/tree-ssa/20030710-1.c: Likewise.
- * gcc.dg/tree-ssa/20030711-1.c: Likewise.
- * gcc.dg/tree-ssa/20030711-2.c: Likewise.
- * gcc.dg/tree-ssa/20030711-3.c: Likewise.
- * gcc.dg/tree-ssa/20030714-1.c: Likewise.
- * gcc.dg/tree-ssa/20030714-2.c: Likewise.
- * gcc.dg/tree-ssa/20030729-1.c: Likewise.
- * gcc.dg/tree-ssa/20030730-1.c: Likewise.
- * gcc.dg/tree-ssa/20030730-2.c: Likewise.
- * gcc.dg/tree-ssa/20030731-1.c: Likewise.
- * gcc.dg/tree-ssa/20030807-1.c: Likewise.
- * gcc.dg/tree-ssa/20030807-11.c: Likewise.
- * gcc.dg/tree-ssa/20030807-2.c: Likewise.
- * gcc.dg/tree-ssa/20030807-3.c: Likewise.
- * gcc.dg/tree-ssa/20030807-5.c: Likewise.
- * gcc.dg/tree-ssa/20030807-8.c: Likewise.
- * gcc.dg/tree-ssa/20030807-9.c: Likewise.
- * gcc.dg/tree-ssa/20030814-1.c: Likewise.
- * gcc.dg/tree-ssa/20030814-2.c: Likewise.
- * gcc.dg/tree-ssa/20030814-3.c: Likewise.
- * gcc.dg/tree-ssa/20030814-4.c: Likewise.
- * gcc.dg/tree-ssa/20030814-5.c: Likewise.
- * gcc.dg/tree-ssa/20030814-6.c: Likewise.
- * gcc.dg/tree-ssa/20030814-7.c: Likewise.
- * gcc.dg/tree-ssa/20030922-1.c: Likewise.
- * gcc.dg/tree-ssa/20040729-1.c: Likewise.
- * gcc.dg/tree-ssa/20041122-1.c: Likewise.
- * gcc.dg/tree-ssa/pr21417.c: Likewise.
- * gcc.dg/tree-ssa/pr21829.c: Scan phicprop2 dump.
- * gcc.dg/tree-ssa/ssa-dce-1.c: Scan dce2 dump.
- * gcc.dg/tree-ssa/ssa-dce-2.c: Likewise.
- * g++.dg/tree-ssa/pr31146.C: Remove XFAIL, adjust pattern.
- * gfortran.dg/ldist-1.f90: Adjust.
-
-2008-08-20 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc.dg/vect/vect-multitypes-15.c: Fix typo.
- * lib/target-supports.exp
- (check_effective_target_vect_long_long): Remove spu-*-*.
- * gcc.dg/vect/vect-multitypes-16.c: Make init loop unvectorizable.
- * gcc.dg/vect/slp-widen-mult-u8.c: Likewise.
-
-2008-08-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/pr20701.c: Scan vrp1 dump.
- * gcc.dg/tree-ssa/ssa-dom-thread-1.c: Pass -fno-tree-vrp.
- * gcc.dg/tree-ssa/ssa-pre-20.c: New testcase.
-
-2008-08-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.dg/torture/fp-int-convert-float.c: Reenable test on SPU.
- * gcc.dg/torture/fp-int-convert-timode.c: Reenable "float" test on SPU.
-
-2008-08-19 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-ccp-14.c: XFAIL.
-
-2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/37157
- * gcc.target/i386/sse2-unpack-1.c: New.
-
-2008-08-19 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/37156
- * gcc.dg/pr37156.c: New test.
-
-2008-08-19 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35972
- PR tree-optimization/23094
- * gcc.dg/tree-ssa/ssa-pre-19.c: New testcase.
- * gcc.dg/autopar/reduc-1.c: Move constant initialized arrays to
- global memory.
- * gcc.dg/autopar/reduc-1char.c: Likewise.
- * gcc.dg/autopar/reduc-1short.c: Likewise.
- * gcc.dg/autopar/reduc-2.c: Likewise.
- * gcc.dg/autopar/reduc-2char.c: Likewise.
- * gcc.dg/autopar/reduc-2short.c: Likewise.
- * gcc.dg/autopar/reduc-3.c: Likewise.
- * gcc.dg/tree-ssa/ifc-20040816-1.c: Likewise.
- * gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Likewise.
- * gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Likewise.
- * gcc.dg/vect/fast-math-vect-reduc-5.c: Likewise.
- * gcc.dg/vect/fast-math-vect-reduc-7.c: Likewise.
- * gcc.dg/vect/no-trapping-math-2.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-111.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c: Likewise.
- * gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c: Likewise.
- * gcc.dg/vect/no-vfa-vect-37.c: Likewise.
- * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
- * gcc.dg/vect/pr18400.c: Likewise.
- * gcc.dg/vect/slp-12b.c: Likewise.
- * gcc.dg/vect/slp-14.c: Likewise.
- * gcc.dg/vect/slp-7.c: Likewise.
- * gcc.dg/vect/slp-15.c: Likewise.
- * gcc.dg/vect/slp-16.c: Likewise.
- * gcc.dg/vect/slp-17.c: Likewise.
- * gcc.dg/vect/slp-24.c: Likewise.
- * gcc.dg/vect/slp-28.c: Likewise.
- * gcc.dg/vect/slp-3.c: Likewise.
- * gcc.dg/vect/slp-34.c: Likewise.
- * gcc.dg/vect/slp-6.c: Likewise.
- * gcc.dg/vect/slp-8.c: Likewise.
- * gcc.dg/vect/vect-107.c: Likewise.
- * gcc.dg/vect/vect-108.c: Likewise.
- * gcc.dg/vect/vect-11.c: Likewise.
- * gcc.dg/vect/vect-112.c: Likewise.
- * gcc.dg/vect/vect-115.c: Likewise.
- * gcc.dg/vect/vect-11a.c: Likewise.
- * gcc.dg/vect/vect-34.c: Likewise.
- * gcc.dg/vect/vect-9.c: Likewise.
- * gcc.dg/vect/vect-97.c: Likewise.
- * gcc.dg/vect/vect-align-1.c: Likewise.
- * gcc.dg/vect/vect-float-extend-1.c: Likewise.
- * gcc.dg/vect/vect-floatint-conversion-1.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-17.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-2.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-3.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-4.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-5.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-6.c: Likewise.
- * gcc.dg/vect/vect-ifcvt-7.c: Likewise.
- * gcc.dg/vect/vect-intfloat-conversion-1.c: Likewise.
- * gcc.dg/vect/vect-intfloat-conversion-2.c: Likewise.
- * gcc.dg/vect/vect-intfloat-conversion-3.c: Likewise.
- * gcc.dg/vect/vect-intfloat-conversion-4a.c: Likewise.
- * gcc.dg/vect/vect-intfloat-conversion-4b.c: Likewise.
- * gcc.dg/vect/vect-multitypes-2.c: Likewise.
- * gcc.dg/vect/vect-multitypes-5.c: Likewise.
- * gcc.dg/vect/vect-reduc-1.c: Likewise.
- * gcc.dg/vect/vect-reduc-1char.c: Likewise.
- * gcc.dg/vect/vect-reduc-1short.c: Likewise.
- * gcc.dg/vect/vect-reduc-2.c: Likewise.
- * gcc.dg/vect/vect-reduc-3.c: Likewise.
- * gcc.dg/vect/vect-shift-1.c: Likewise.
- * gcc.dg/vect/vect-strided-float.c: Likewise.
- * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.
- * gcc.dg/vect/wrapv-vect-reduc-2char.c: Likewise.
- * gcc.dg/vect/wrapv-vect-reduc-2short.c: Likewise.
- * gcc.dg/tree-ssa/gen-vect-11.c: Likewise.
- * gcc.dg/tree-ssa/gen-vect-11a.c: Likewise.
- * gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
- * gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: Likewise.
-
-2008-08-19 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/slp-multitypes-1.c: New testcase.
- * gcc.dg/vect/slp-multitypes-2.c, gcc.dg/vect/slp-multitypes-3.c,
- gcc.dg/vect/slp-multitypes-4.c, gcc.dg/vect/slp-multitypes-5.c,
- gcc.dg/vect/slp-multitypes-6.c, gcc.dg/vect/slp-multitypes-7.c,
- gcc.dg/vect/slp-multitypes-8.c, gcc.dg/vect/slp-multitypes-9.c,
- gcc.dg/vect/slp-multitypes-10.c, gcc.dg/vect/slp-multitypes-11.c,
- gcc.dg/vect/slp-multitypes-12.c, gcc.dg/vect/slp-widen-mult-u8.c,
- gcc.dg/vect/slp-widen-mult-s16.c, gcc.dg/vect/vect-multitypes-16.c,
- gcc.dg/vect/vect-multitypes-17.c: Likewise.
- * gcc.dg/vect/slp-9.c: Now vectorizable using SLP.
- * gcc.dg/vect/slp-14.c, gcc.dg/vect/slp-5.c: Likewise.
- * lib/target-supports.exp (check_effective_target_vect_long_long): New.
-
-2008-08-18 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/ext-1.c: Add -mgp64 to dg-mips-options.
-
-2008-08-18 Steve Ellcey <sje@cup.hp.com>
-
- * g++.dg/other/anon5.C: Skip on *-*-hpux*.
-
-2008-08-18 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/vect/no-vfa-pr29145.c: XFAIL if no_vect_align.
-
-2008-08-18 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.target/ia64/types-1.c: Change error to message.
-
-2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR cpp/7263
- * gcc.dg/cpp/pr7263-2.c: New.
- * gcc.dg/cpp/pr7263-2.h: New.
- * gcc.dg/cpp/pr7263-3.c: New.
- * gcc.dg/cpp/pr7263-3.h: New.
-
-2008-08-18 Robert Dewar <dewar@adacore.com>
-
- PR ada/30827
- * gnat.dg/test_version.adb: New.
-
-2008-08-18 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/15808
- * gnat.dg/specs/abstract_private.ads: New.
-
-2008-08-18 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-alloca-1.c: Scan cfg dump instead of cleanup_cfg1.
- * gcc.dg/fold-compare-3.c: Likewise.
- * gcc.dg/tree-ssa/20030709-2.c: Scan cddce2 dump.
- * gcc.dg/tree-ssa/20030808-1.c: Likewise.
- * gcc.dg/tree-ssa/20040211-1.c: Likewise.
- * gcc.dg/tree-ssa/20040305-1.c: Likewise.
- * gcc.dg/tree-ssa/forwprop-1.c: Adjust pattern.
- * gcc.dg/tree-ssa/forwprop-2.c: Likewise..
- * gcc.dg/tree-ssa/ssa-dce-3.c: Scan cddce1 dump.
-
-2008-08-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36825
- * gfortran.dg/rank_1.f90: Modify error message.
-
-2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35863
- * gfortran.dg/utf8_1.f03: New test.
- * gfortran.dg/utf8_2.f03: New test.
-
-2008-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * gcc.dg/pr30551-6.c: Skip for SPU.
- * gcc.dg/pr30551-3.c: Likewise.
- * gcc.dg/pr30551.c: Likewise.
- * g++.dg/warn/pr30551-2.C: Likewise.
- * g++.dg/warn/pr30551.C: Likewise.
-
-2008-08-14 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36705
- * gfortran.dg/argument_checking_7.f90: Modified.
- * gfortran.dg/conflicts.f90: Modified.
- * gfortran.dg/proc_decl_1.f90: Modified.
- * gfortran.dg/proc_ptr_9.f90: New.
-
-2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/34485
- * g++.dg/template/crash81.C: New.
- * g++.old-deja/g++.benjamin/tem03.C: Adjust.
- * g++.old-deja/g++.benjamin/tem04.C: Likewise.
- * g++.old-deja/g++.brendan/crash7.C: Likewise.
-
-2008-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/36886
- * gfortran.dg/cshift_char_3.f90: New test case.
- * gfortran.dg/cshift_nan_1.f90: New test case.
-
-2008-08-14 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * gcc.dg/visibility-14.c: New test.
- * gcc.dg/visibility-15.c: New test.
- * gcc.dg/visibility-16.c: New test.
- * gcc.dg/visibility-17.c: New test.
- * gcc.dg/visibility-18.c: New test.
- * gcc.dg/visibility-19.c: New test.
-
-2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/34600
- * g++.dg/parse/crash43.C: New.
-
-2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/28152
- * gcc.dg/parser-pr28152.c: New.
- * gcc.dg/parser-pr28152-2.c: New.
-
-2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
-
- * gcc.dg/vect/vect-outer-4g.c: Change loop bound.
- * gcc.dg/vect/vect-outer-4k.c: Likewise.
- * gcc.dg/vect/vect-outer-4l.c: Likewise.
- * gcc.dg/vect/vect-outer-4f.c: Likewise.
- * gcc.dg/vect/vect-outer-4a.c: Vectorizable. Remove obsolete comment.
- * gcc.dg/vect/vect-outer-4i.c: Likewise.
- * gcc.dg/vect/vect-outer-4b.c: Likewise.
- * gcc.dg/vect/vect-outer-4j.c: Likewise.
-
-2008-08-14 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/37101
- * gcc.target/i386/pr37101.c: New test.
-
-2008-08-14 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37103
- * gcc.c-torture/execute/20080813-1.c: New test.
-
-2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/incoming-1.c: Skip *-*-darwin*.
- * gcc.target/i386/incoming-2.c: Likewise.
- * gcc.target/i386/incoming-3.c: Likewise.
- * gcc.target/i386/incoming-4.c: Likewise.
- * gcc.target/i386/incoming-5.c: Likewise.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 30551
- * gcc.dg/pr30551.c: New.
- * gcc.dg/pr30551-2.c: New.
- * gcc.dg/pr30551-3.c: New.
- * gcc.dg/pr30551-4.c: New.
- * gcc.dg/pr30551-5.c: New.
- * gcc.dg/pr30551-6.c: New.
- * gcc.dg/tree-ssa/reassoc-3.c: Don't compile with -pedantic-errors.
- * g++.dg/warn/pr30551.C: New.
- * g++.dg/warn/pr30551-2.C: New.
-
-2008-08-13 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-ccp-21.c: New testcase.
- * gcc.dg/tree-ssa/ssa-ccp-22.c: Likewise.
- * gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
-
-2008-08-13 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/36777
- * gnat.dg/protected_self_ref1.adb, gnat.dg/protected_self_ref2.adb:
- New.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/15236
- * gcc.dg/pr15236.c: New.
- * gcc.dg/torture/pr25183.c: Update.
-
-2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35635
- * gcc.dg/pr35635.c: New.
- * gcc.dg/Wconversion-integer.c: Update.
- * gcc.dg/Wconversion-integer-no-sign.c: Update.
- * gcc.dg/Wsign-conversion.c: Update.
- * g++.dg/warn/pr35635.C: New.
- * g++.dg/warn/Wconversion-integer.C: Update.
- * g++.dg/warn/Wsign-conversion.C: Update.
-
-2008-08-13 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/15255
- * gcc.dg/tree-ssa/reassoc-14.c: New testcase.
- * gcc.dg/tree-ssa/reassoc-15.c: Likewise.
- * gcc.dg/tree-ssa/reassoc-16.c: Likewise.
- * gcc.dg/torture/reassoc-1.c: Likewise.
- * gcc.dg/tree-ssa/recip-2.c: Adjust.
- * gcc.dg/tree-ssa/recip-6.c: Likewise.
- * gcc.dg/tree-ssa/recip-7.c: Likewise.
- * gfortran.dg/reassoc_4.f: Likewise.
-
-2008-08-12 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.target/i386/pr32000-2.c: Use dg-skip-if for target expression.
- * gcc.target/i386/stackalign/return-3.c: Ditto.
- * gcc.target/sparc/ultrasp3.c: Ditto.
- * lib/target-supports-dg.exp (dg-require-effective-target): Error
- if argument is not a single effective-target keyword.
-
- PR testsuite/36087
- * gcc.dg/var-expand3.c: Fix name of dump file.
-
-2008-08-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- * g++.old-deja/g++.other/decl5.C: Expand new expected errors.
-
-2008-08-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/37087
- * g++.dg/template/crash80.C: New.
- * g++.old-deja/g++.other/decl5.C: Adjust.
-
-2008-08-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/37014
- * gcc.c-torture/compile/20080812-1.c: New test.
-
- PR tree-optimization/37084
- * g++.dg/tree-ssa/pr37084.C: New test.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.c-torture/execute/20031003-1.c (main): Update test to
- accommodate SPU single-precision rounding mode.
- * gcc.c-torture/execute/conversion.c (test_float_to_integer,
- test_float_to_longlong_integer): Likewise.
- * gcc.c-torture/execute/ieee/rbug.c (main): Likewise.
- * gcc.dg/hex-round-1.c: Skip test on SPU.
- * gcc.dg/hex-round-2.c: Likewise.
-
-2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.c-torture/execute/ieee/inf-2.c (testf): Skip on the SPU.
-
-2008-08-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36688
- * g++.dg/init/const6.C: New test.
-
-2008-08-12 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/vect-multitypes-12.c: New.
- * gcc.dg/vect/vect-multitypes-13.c, gcc.dg/vect/vect-multitypes-14.c,
- gcc.dg/vect/vect-multitypes-15.c : Likewise.
- * gcc.dg/vect/vect-reduc-dot-u8a.c: Avoid vectorization of the
- init loop.
- * gcc.dg/vect/vect-72.c, gcc.dg/vect/vect-strided-store-a-u8-i2.c:
- Likewise.
- * gcc.dg/vect/vect-reduc-dot-u8b.c: Avoid vectorization of the init
- loop.
- Should be vectorizable on targets that support vector unpack.
- * gcc.dg/vect/vect-widen-mult-u8.c,
- gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c,
- gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
- * gcc.dg/vect/vect-35.c: Should be vectorizable on targets that
- support vector pack. Avoid vectorization of the init loop.
- * gcc.dg/vect/vect-reduc-pattern-1b.c: Should be vectorizable on
- targets that support vector unpack.
- * gcc.dg/vect/vect-reduc-pattern-2b.c,
- gcc.dg/vect/vect-reduc-dot-s8c.c, gcc.dg/vect/vect-112.c: Likewise.
-
-2008-08-11 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36998
- * gcc.dg/pr36998.c: New test.
-
-2008-08-11 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/20080806-1.c: Move testcase ...
- * gcc.c-torture/compile/20080806-1.c: ... to here and make it
- stack size sensitive.
-
-2008-08-10 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/exp0_eval.adb: New.
-
-2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/20644
- * gcc.dg/uninit-pr20644-O0.c: New.
- * gcc.dg/uninit-pr20644.c: New.
-
-2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 36901
- * gcc.dg/pr36901.h: Do not depend on limits.h.
- * gcc.dg/pr36901-3.c: Update.
- * gcc.dg/pr36901-4.c: Update.
-
-2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36238
- * gcc.c-torture/compile/pr36238.c: New testcase.
-
-2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * lib/target-supports.exp (check_profiling_available): Return false
- for -p and -pg on MIPS16 targets.
-
-2008-08-09 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/inline-2.c: New testcase.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c/17880
- * gcc.dg/sequence-pt-pr17880.c: New.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/12242
- * g++.dg/warn/pr12242.C: New.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 36901
- * gcc.dg/pr36901-1.c: New.
- * gcc.dg/pr36901-3.c: New.
- * gcc.dg/pr36901-2.c: New.
- * gcc.dg/pr36901-4.c: New.
- * gcc.dg/pr36901-system.h: New.
- * gcc.dg/pr36901.h: New.
- * gcc.target/powerpc/altivec-macros.c: Update.
- * gcc.target/i386/regparm.c: Update.
- * gcc.dg/funcdef-var-1.c: Update.
- * gcc.dg/parm-mismatch-1.c: Update.
- * gcc.dg/attr-noinline.c: Update.
- * gcc.dg/wtr-static-1.c: Update.
- * gcc.dg/redecl-11.c: Update.
- * gcc.dg/pr27953.c: Update.
- * gcc.dg/proto-1.c: Update.
- * gcc.dg/decl-3.c: Update.
- * gcc.dg/redecl-13.c: Update.
- * gcc.dg/pr15360-1.c: Update.
- * gcc.dg/redecl-15.c: Update.
- * gcc.dg/enum-compat-1.c: Update.
- * gcc.dg/dll-3.c: Update.
- * gcc.dg/array-5.c: Update.
- * gcc.dg/Wredundant-decls-2.c: Update.
- * gcc.dg/inline4.c: Update.
- * gcc.dg/redecl-2.c: Update.
- * gcc.dg/inline-14.c: Update.
- * gcc.dg/tls/diag-3.c: Update.
- * gcc.dg/funcdef-var-2.c: Update.
- * gcc.dg/20041213-1.c: Update.
- * gcc.dg/old-style-then-proto-1.c: Update.
- * gcc.dg/decl-2.c: Update.
- * gcc.dg/redecl-12.c: Update.
- * gcc.dg/decl-4.c: Update.
- * gcc.dg/Wshadow-1.c: Update.
- * gcc.dg/transparent-union-2.c: Update.
- * gcc.dg/visibility-7.c: Update.
- * gcc.dg/dll-2.c: Update.
- * gcc.dg/redecl-16.c: Update.
- * gcc.dg/inline1.c: Update.
- * gcc.dg/decl-8.c: Update.
- * gcc.dg/nested-redef-1.c: Update.
- * gcc.dg/inline3.c: Update.
- * gcc.dg/redecl-1.c: Update.
- * gcc.dg/inline5.c: Update.
- * gcc.dg/pr35899.c: Update.
- * gcc.dg/noncompile/label-lineno-1.c: Update.
- * gcc.dg/noncompile/label-1.c: Update.
- * gcc.dg/noncompile/20020220-1.c: Update.
- * gcc.dg/noncompile/redecl-1.c: Update.
- * gcc.dg/redecl-5.c: Update.
- * gcc.dg/qual-return-3.c: Update.
- * gcc.dg/label-decl-4.c: Update.
-
-2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 7651
- * g++.dg/warn/Wuninitializable-member.C: New.
- * g++.dg/warn/Wuninitializable-member-no.C: New.
-
-2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28875
- * gcc.dg/unused-6-no.c: New.
- * gcc.dg/unused-6-WallWextra.c: New.
-
-2008-08-08 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c++/35985
- * g++.dg/inherit/base3.C: New.
-
-2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_vect_floatint_cvt):
- Add powerpc.
-
-2008-08-08 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/finalize_9.f03: New test.
- * gfortran.dg/module_md5_1.f90: Adapted MD5-sum for changed module
- file format.
-
-2008-08-08 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-ccp-20.c: New testcase.
-
-2008-08-08 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/37056
- * gcc.c-torture/compile/pr37056.c: New testcase.
-
-2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/Wcxx-compat-2.c: Check for bool/_Bool.
-
-2008-08-07 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/cpp0x/decltype12.C: New.
-
-2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36992
- * gcc.target/i386/pr36992-1.c: Scan movq.
- * gcc.target/i386/pr36992-2.c: Use "-O2 -msse4" instead of
- "-O0 -msse2". Scan movq.
-
-2008-08-07 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37042
- * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: New testcase.
-
-2008-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.c-torture/compile/20080806-1.c: Move testcase ...
- * gcc.target/s390/20080806-1.c: ... to here.
-
-2008-08-06 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/36460
- * g++.dg/cpp0x/bracket3.C: Add another test case for the >>
- warning under -Wc++0x-compat.
- * g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460.
-
-2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/Wcxx-compat-2.c: Adjust test for more warnings.
-
-2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 26785
- * g++.dg/warn/pr26785.C: New.
-
-2008-08-06 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c: New test.
-
-2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 8715
- * gcc.dg/pr8715.c: New.
- * g++.dg/warn/pr8715.C: New.
-
-2008-08-06 Marc Gauthier <marc@tensilica.com>
-
- * lib/target-supports.exp (check_profiling_available): Match more
- processor names for Xtensa.
- * g++.old-deja/g++.jason/thunk3.C: Likewise.
- * gcc.dg/intmax_t-1.c: Likewise.
- * gcc.dg/sibcall-3.c: Likewise.
- * gcc.dg/sibcall-4.c: Likewise.
- * gcc.c-torture/compile/20001226-1.c: Likewise.
-
-2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37010
- * gcc.dg/torture/stackalign/push-1.c: New.
-
-2008-08-06 Michael Matz <matz@suse.de>
-
- PR target/36613
- * gcc.target/i386/pr36613.c: New testcase.
-
-2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/37009
- * gcc.dg/torture/stackalign/alloca-2.c: New.
- * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
- * gcc.dg/torture/stackalign/alloca-4.c: Likewise.
- * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
- * gcc.target/i386/incoming-1.c: Likewise.
- * gcc.target/i386/incoming-2.c: Likewise.
- * gcc.target/i386/incoming-3.c: Likewise.
- * gcc.target/i386/incoming-4.c: Likewise.
- * gcc.target/i386/incoming-5.c: Likewise.
-
-2008-08-06 Aldy Hernandez <aldyh@redhat.com>
-
- PR middle-end/35432
- * gcc.c-torture/compile/pr35432.c: New file.
-
-2008-08-06 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/iface_test.ad[s,b]: New test.
- * gnat.dg/test_call.adb: New test.
-
-2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.c-torture/compile/20080806-1.c: New testcase.
-
-2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * gcc.target/ia64/20080802-1.c: New test.
-
-2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/37024
- * gcc.dg/tree-ssa/tailcall-4.c: New testcase.
-
-2008-08-05 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/37026
- * gcc.c-torture/compile/pr37026.c: New testcase.
-
-2008-08-04 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/access_discr2.adb: New test.
- * gnat.dg/not_null.adb: New test.
-
-2008-08-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36691
- * gcc.c-torture/execute/pr36691.c: New testcase.
-
-2008-08-04 Victor Kaplansky <victork@il.ibm.com>
-
- * gcc.dg/vect/vect-complex-5.c: New test.
-
-2008-08-04 Simon Baldwin <simonb@google.com>
-
- PR c++/36999
- * g++.dg/warn/pr36999.C: New.
-
-2008-08-04 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/bip_aggregate_bug.adb: New test.
- * gnat.dg/test_ai254.adb: New test.
-
-2008-08-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * gfortran.dg/fmt_t_7.f: Replace CR-LF with LF.
-
-2008-08-03 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36992
- * gcc.target/i386/pr36992-1.c: New test.
- * gcc.target/i386/pr36992-2.c: Ditto.
-
-2008-08-02 Richard Guenther <rguenther@suse.de>
-
- PR target/35252
- * lib/target-supports.exp (vect_extract_even_odd_wide) Add.
- (vect_strided_wide): Likewise.
- * gcc.dg/vect/fast-math-pr35982.c: Enable for
- vect_extract_even_odd_wide.
- * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
- * gcc.dg/vect/vect-1.c: Likewise.
- * gcc.dg/vect/vect-107.c: Likewise.
- * gcc.dg/vect/vect-98.c: Likewise.
- * gcc.dg/vect/vect-strided-float.c: Likewise.
- * gcc.dg/vect/slp-11.c: Enable for vect_strided_wide.
- * gcc.dg/vect/slp-12a.c: Likewise.
- * gcc.dg/vect/slp-12b.c: Likewise.
- * gcc.dg/vect/slp-19.c: Likewise.
- * gcc.dg/vect/slp-23.c: Likewise.
- * gcc.dg/vect/slp-5.c: Likewise.
-
-2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/boolean_expr2.adb: New test.
-
-2008-08-01 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/conv4.adb: New test.
- * gnat.dg/overloading.adb: New test.
-
-2008-08-01 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36991
- * gcc.dg/pr36991.c: New test.
-
-2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/boolean_expr.ad[sb]: Rename to boolean_expr1.ad[sb].
-
-2008-08-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36997
- * gcc.dg/pr36997.c: New testcase.
-
-2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/deferred_const1.adb: New test.
- * gnat.dg/deferred_const2.adb: Likewise.
- * gnat.dg/deferred_const2_pkg.ad[sb]: New helper.
- * gnat.dg/deferred_const3.adb: New test.
- * gnat.dg/deferred_const3_pkg.ad[sb]: New helper.
-
-2008-08-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36988
- * gcc.c-torture/compile/pr36988.c: New testcase.
-
-2008-08-01 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/raise_from_pure.ad[bs],
- * gnat.dg/wrap_raise_from_pure.ad[bs]: Support for ...
- * gnat.dg/test_raise_from_pure.adb: New test.
-
-2008-07-31 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/ext-1.c: New test.
-
-2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr10.ad[sb]: New test.
-
-2008-07-31 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35100
- * gcc.target/powerpc/longcall-1.c: New test.
-
- PR preprocessor/36649
- * gcc.dg/pch/cpp-3.hs: Add include guards.
- * gcc.dg/pch/cpp-3a.h: Likewise.
- * gcc.dg/pch/cpp-3b.h: Likewise.
- * gcc.dg/cpp/mi8.c: New test.
- * gcc.dg/cpp/mi8a.h: New file.
- * gcc.dg/cpp/mi8b.h: New file.
- * gcc.dg/cpp/mi8c.h: New file.
- * gcc.dg/cpp/mi8d.h: New file.
-
- PR rtl-optimization/36419
- * g++.dg/eh/async-unwind2.C: New test.
-
- PR c++/36405
- * g++.dg/rtti/typeid8.C: New test.
-
-2008-07-31 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36978
- * gcc.dg/torture/pr36978.c: New testcase.
-
-2008-07-31 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/sync_iface_test.ad[s,b]: New test.
-
- * gnat.dg/specs/sync_iface_test.ads: New test.
- * gnat.dg/specs/null_aggr_bug.ads: New test.
-
-2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.dg/torture/stackalign/pr16660-1.c: Include "check.h".
- (f): Align to 64 byte. Use check instead of asm statement.
-
-2008-07-31 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/missing_acc_check.adb: New test.
-
-2008-07-31 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/uninit-1-O0.c: New testcase.
- * gcc.dg/uninit-2-O0.c: Likewise.
- * gcc.dg/uninit-3-O0.c: Likewise.
- * gcc.dg/uninit-4-O0.c: Likewise.
- * gcc.dg/uninit-5-O0.c: Likewise.
- * gcc.dg/uninit-6-O0.c: Likewise.
- * gcc.dg/uninit-8-O0.c: Likewise.
- * gcc.dg/uninit-9-O0.c: Likewise.
- * gcc.dg/uninit-A-O0.c: Likewise.
- * gcc.dg/uninit-B-O0.c: Likewise.
- * gcc.dg/uninit-C-O0.c: Likewise.
- * gcc.dg/uninit-D-O0.c: Likewise.
- * gcc.dg/uninit-E-O0.c: Likewise.
- * gcc.dg/uninit-F-O0.c: Likewise.
- * gcc.dg/uninit-G-O0.c: Likewise.
- * gcc.dg/uninit-H-O0.c: Likewise.
- * gcc.dg/uninit-I-O0.c: Likewise.
- * gcc.dg/uninit-10-O0.c: Likewise.
- * gcc.dg/uninit-11-O0.c: Likewise.
- * gcc.dg/uninit-12-O0.c: Likewise.
- * gcc.dg/uninit-13-O0.c: Likewise.
- * gcc.dg/uninit-14-O0.c: Likewise.
- * gcc.dg/uninit-15-O0.c: Likewise.
- * gcc.dg/Wall.c: Avoid uninitialized warning.
- * gcc.dg/Wno-all.c: Likewise.
- * gcc.dg/pr3074-1.c: Likewise.
-
-2008-07-31 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/specs/genericppc.ads: New test.
-
-2008-07-31 Jakub Jelinek <jakub@redhat.com>
-
- PR c/36970
- * gcc.dg/free-1.c: New test.
- * gcc.dg/free-2.c: New test.
-
- PR debug/36278
- * g++.dg/debug/namespace2.C: New test.
-
- PR preprocessor/36649
- * gcc.dg/pch/cpp-3.c: New test.
- * gcc.dg/pch/cpp-3.hs: New file.
- * gcc.dg/pch/cpp-3a.h: New file.
- * gcc.dg/pch/cpp-3b.h: New file.
-
-2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/boolean_expr.ad[sb]: New test.
-
-2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
- Joey Ye <joey.ye@intel.com>
-
- * gcc.dg/dfp/func-vararg-alternate-d128-2.c: New.
- * gcc.dg/dfp/func-vararg-mixed-2.c: Likewise.
- * gcc.dg/torture/stackalign/alloca-1.c: Likewise.
- * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise.
- * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
- * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise.
- * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise.
- * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise.
- * gcc.dg/torture/stackalign/check.h: Likewise.
- * gcc.dg/torture/stackalign/comp-goto-1.c: Likewise.
- * gcc.dg/torture/stackalign/fastcall-1.c: Likewise.
- * gcc.dg/torture/stackalign/global-1.c: Likewise.
- * gcc.dg/torture/stackalign/inline-1.c: Likewise.
- * gcc.dg/torture/stackalign/inline-2.c: Likewise.
- * gcc.dg/torture/stackalign/nested-1.c: Likewise.
- * gcc.dg/torture/stackalign/nested-2.c: Likewise.
- * gcc.dg/torture/stackalign/nested-3.c: Likewise.
- * gcc.dg/torture/stackalign/nested-4.c: Likewise.
- * gcc.dg/torture/stackalign/nested-5.c: Likewise.
- * gcc.dg/torture/stackalign/nested-6.c: Likewise.
- * gcc.dg/torture/stackalign/non-local-goto-1.c: Likewise.
- * gcc.dg/torture/stackalign/non-local-goto-2.c: Likewise.
- * gcc.dg/torture/stackalign/non-local-goto-3.c: Likewise.
- * gcc.dg/torture/stackalign/non-local-goto-4.c: Likewise.
- * gcc.dg/torture/stackalign/non-local-goto-5.c: Likewise.
- * gcc.dg/torture/stackalign/pr16660-1.c: Likewise.
- * gcc.dg/torture/stackalign/pr16660-2.c: Likewise.
- * gcc.dg/torture/stackalign/pr16660-3.c: Likewise.
- * gcc.dg/torture/stackalign/regparm-1.c: Likewise.
- * gcc.dg/torture/stackalign/ret-struct-1.c: Likewise.
- * gcc.dg/torture/stackalign/setjmp-1.c: Likewise.
- * gcc.dg/torture/stackalign/setjmp-2.c: Likewise.
- * gcc.dg/torture/stackalign/setjmp-3.c: Likewise.
- * gcc.dg/torture/stackalign/setjmp-4.c: Likewise.
- * gcc.dg/torture/stackalign/sibcall-1.c: Likewise.
- * gcc.dg/torture/stackalign/stackalign.exp: Likewise.
- * gcc.dg/torture/stackalign/struct-1.c: Likewise.
- * gcc.dg/torture/stackalign/vararg-1.c: Likewise.
- * gcc.dg/torture/stackalign/vararg-2.c: Likewise.
- * gcc.target/i386/align-main-1.c: Likewise.
- * gcc.target/i386/align-main-2.c: Likewise.
- * gcc.target/i386/pr32000-2.c: Likewise.
- * gcc.target/i386/stackalign/asm-1.c: Likewise.
- * gcc.target/i386/stackalign/return-1.c: Likewise.
- * gcc.target/i386/stackalign/return-2.c: Likewise.
- * gcc.target/i386/stackalign/return-3.c: Likewise.
- * gcc.target/i386/stackalign/return-4.c: Likewise.
- * gcc.target/i386/stackalign/return-5.c: Likewise.
- * gcc.target/i386/stackalign/return-6.c: Likewise.
- * gcc.target/i386/stackalign/stackalign.exp: Likewise.
- * g++.dg/torture/stackalign/check.h: Likewise.
- * g++.dg/torture/stackalign/eh-alloca-1.C: Likewise.
- * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
- * g++.dg/torture/stackalign/eh-global-1.C: Likewise.
- * g++.dg/torture/stackalign/eh-inline-1.C: Likewise.
- * g++.dg/torture/stackalign/eh-inline-2.C: Likewise.
- * g++.dg/torture/stackalign/eh-vararg-1.C: Likewise.
- * g++.dg/torture/stackalign/eh-vararg-2.C: Likewise.
- * g++.dg/torture/stackalign/stackalign.exp: Likewise.
- * g++.dg/torture/stackalign/stdcall-1.C: Likewise.
- * g++.dg/torture/stackalign/test-unwind.h: Likewise.
- * g++.dg/torture/stackalign/throw-1.C: Likewise.
- * g++.dg/torture/stackalign/throw-2.C: Likewise.
- * g++.dg/torture/stackalign/throw-3.C: Likewise.
- * g++.dg/torture/stackalign/throw-4.C: Likewise.
- * g++.dg/torture/stackalign/unwind-0.C: Likewise.
- * g++.dg/torture/stackalign/unwind-1.C: Likewise.
- * g++.dg/torture/stackalign/unwind-2.C: Likewise.
- * g++.dg/torture/stackalign/unwind-3.C: Likewise.
- * g++.dg/torture/stackalign/unwind-4.C: Likewise.
- * g++.dg/torture/stackalign/unwind-5.C: Likewise.
- * g++.dg/torture/stackalign/unwind-6.C: Likewise.
-
- * gcc.target/i386/20060512-1.c: Add -mpreferred-stack-boundary=4.
- (main): Move "popl" after check.
- * gcc.target/i386/20060512-3.c: Likewise.
-
- * gcc.target/i386/20060512-2.c: Add -mpreferred-stack-boundary=4.
- Remove dg-error.
-
- * gcc.target/i386/20060512-4.c: Add -mpreferred-stack-boundary=4.
- Remove dg-warning.
-
- * lib/target-supports.exp (check_effective_target_unaligned_stack):
- Always return 0.
- (check_effective_target_automatic_stack_alignment): New.
-
-2008-07-30 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36967
- * gfortran.dg/pr36967.f: New testcase.
-
-2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
-
- * gcc.dg/visibility-14.c: New test.
- * gcc.dg/visibility-15.c: New test.
- * gcc.dg/visibility-16.c: New test.
- * gcc.dg/visibility-17.c: New test.
- * gcc.dg/visibility-18.c: New test.
- * gcc.dg/visibility-19.c: New test.
-
-2008-07-30 Dodji Seketeli <dseketel@redhat.com>
-
- PR c++/36767
- * g++.dg/parse/crash42.C: New test.
-
-2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 34389
- * gcc.dg/Wconversion-pr34389.c: New.
- * g++.dg/warn/Wconversion-pr34389.C: New.
-
-2008-07-29 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/pr32370.c: Force 64 bits on IA64.
-
-2008-07-29 Paul Thomas <pault@gcc.gnu.org>
-
- * gfortran.dg/extends_1.f03: New test.
- * gfortran.dg/extends_2.f03: New test.
- * gfortran.dg/extends_3.f03: New test.
- * gfortran.dg/extends_4.f03: New test.
- * gfortran.dg/extends_5.f03: New test.
- * gfortran.dg/extends_6.f03: New test.
- * gfortran.dg/private_type_6.f90: Modify error message.
- * gfortran.dg/structure_constructor_7.f03: Modify error message.
- * gfortran.dg/structure_constructor_8.f03: Modify error message.
-
-2008-07-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36945
- * gcc.dg/tree-ssa/ssa-pre-18.c: New testcase.
-
-2008-07-29 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36852
- * g++.dg/pch/array-1.C: New test.
- * g++.dg/pch/array-1.Hs: New file.
-
-2008-07-29 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/20040206-1.c: Expect frontend warning now.
-
-2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 34985
- * gcc.dg/pr34985.c: New.
- * g++.dg/warn/pr34985.C: New.
-
-2008-07-29 Daniel Kraft <d@domob.eu>
-
- PR fortran/36403
- * gfortran.dg/char_eoshift_5.f90: New test.
- * gfortran.dg/intrinsic_optional_char_arg_1.f90: New test.
-
-2008-07-28 Richard Guenther <rguenther@suse.de>
-
- Merge from gimple-tuples-branch.
-
- * gcc.c-torture/compile/20080721-1.c: New testcase.
- * gcc.dg/torture/20080716-1.c: Likewise.
- * gcc.dg/tree-ssa/tailcall-3.c: Likewise.
- * gcc.dg/tree-ssa/20080530.c: Likewise.
- * gcc.dg/20080615-1.c: Likewise.
- * g++.dg/torture/pr36826.C: Likewise.
- * gcc.dg/fold-alloca-1.c: Look into cleanup_cfg1 dump instead of
- useless dump.
- * gcc.dg/tree-ssa/pr21658.c: Update search pattern.
- * gfortran.dg/gomp/block-1.f90: Adjust dg-error.
- * gcc.dg/tree-ssa/20030728-1.c: Test final_cleanup instead of
- optimized dump.
-
-2008-07-28 Simon Baldwin <simonb@google.com>
-
- * gcc.dg/pragma-message.c: New.
-
-2008-07-27 Victor Kaplansky <victork@il.ibm.com>
-
- PR tree-optimization/35252
- * gcc.dg/vect/vect-complex-1.c, gcc.dg/vect/vect-complex-2.c,
- gcc.dg/vect/fast-math-vect-complex-3.c,
- gcc.dg/vect/vect-complex-4.c: New tests.
-
-2008-07-27 H.J. Lu <hongjiu.lu@intel.com>
-
- PR c++/36944
- * g++.dg/other/pr36944.C: New.
-
-2008-07-27 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/36724
- * gfortran.dg/pointer_to_substring.f90: New test.
-
-2008-07-27 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36132
- PR fortran/29952
- PR fortran/36909
- * gfortran.dg/internal_pack_4.f90: New.
- * gfortran.dg/internal_pack_5.f90: New.
- * gfortran.dg/array_temporaries_2.f90: New.
-
-2008-07-26 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36934
- * gfortran.dg/allocatable_module_1.f90: New test case.
-
-2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/36936
- * gcc.target/i386/cmov8.c: New.
- * gcc.target/i386/funcspec-10.c: Likewise.
- * gcc.target/i386/funcspec-11.c: Likewise.
-
-2008-07-25 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_arm_thumb1_ok):
- New.
- * g++.dg/inherit/thunk8.C: Use it.
-
-2008-07-24 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/winline-4.c: Remove.
- * gcc.dg/pch/valid-3.hs: Remove.
- * gcc.dg/pch/valid-3.c: Remove.
- * g++.old-deja/g++.brendan/crash52.C: Accept returning void warning
- * g++.old-deja/g++.jason/report.C: Likewise.
- * testsuite/g++.dg/warn/pr23075.C: We get returning void warning
- instead of control flow warning.
-
-2008-07-24 Daniel Kraft <d@domob.eu>
-
- PR fortran/33141
- * gfortran.dg/intrinsic_shadow_1.f03: New test for -Wintrinsic-shadow.
- * gfortran.dg/intrinsic_shadow_2.f03: Ditto.
- * gfortran.dg/intrinsic_shadow_3.f03: Ditto.
- * gfortran.dg/intrinsic_std_1.f90: New test for -Wintrinsics-std.
- * gfortran.dg/intrinsic_std_2.f90: Ditto.
- * gfortran.dg/intrinsic_std_3.f90: Ditto.
- * gfortran.dg/intrinsic_std_4.f90: Ditto.
- * gfortran.dg/warn_std_1.f90: Removed option -Wnonstd-intrinsics.
- * gfortran.dg/warn_std_2.f90: Replaced -Wnonstd-intrinsics by
- -Wintrinsics-std and adapted expected errors/warnings.
- * gfortran.dg/warn_std_3.f90: Ditto.
- * gfortran.dg/c_sizeof_2.f90: Adapted expected error/warning message.
- * gfortran.dg/gamma_2.f90: Ditto.
- * gfortran.dg/selected_char_kind_3.f90: Ditto.
- * gfortran.dg/fmt_g0_2.f08: Call with -fall-intrinsics to allow abort.
-
-2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/29952
- * gfortran.dg/array_temporaries_1.f90: New test case.
-
-2008-07-23 Ian Lance Taylor <iant@google.com>
-
- * gcc.target/i386/20080723-1.c: New test.
-
-2008-07-24 Ben Elliston <bje@au.ibm.com>
-
- * gcc.target/spu/vector.c: New test.
- * gcc.target/spu/vector-ansi.c: Likewise.
-
-2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 35058
- * gcc.dg/Wdeclaration-after-statement-3.c: New.
- * gcc.dg/Wpointer-arith.c: New.
-
-2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/36852
- * gfortran.dg/namelist_52.f90: New test.
-
-2008-07-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_spu_auto_overlay):
- New procedure.
- * lib/compat.exp (compat-execute): Use it to test whether toolchain
- supports automatic overlay generation for the SPU.
-
-2008-07-22 Daniel Kraft <d@domob.eu>
-
- PR fortran/29835
- * gfortran.dg/fmt_error_3.f90: New test.
- * gfortran.dg/fmt_error_4.f90: New test.
- * gfortran.dg/fmt_error_5.f90: New test.
-
-2008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28079
- * gcc.dg/cpp/line6.c: New.
-
-2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * gfortran.dg/fmt_g0_3.f08: Fix typo in expected error message.
-
-2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36871
- PR c++/36872
- * g++.dg/ext/has_nothrow_copy.C: Rename to...
- * g++.dg/ext/has_nothrow_copy-1.C: ... this.
- * g++.dg/ext/has_nothrow_copy-2.C: New.
- * g++.dg/ext/has_nothrow_copy-3.C: Likewise.
- * g++.dg/ext/has_nothrow_copy-4.C: Likewise.
- * g++.dg/ext/has_nothrow_copy-5.C: Likewise.
- * g++.dg/ext/has_nothrow_copy-6.C: Likewise.
- * g++.dg/ext/has_nothrow_copy-7.C: Likewise.
-
-2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/36773
- * gfortran.dg/zero_sized_5.f90: New test case.
-
-2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36870
- * g++.dg/ext/has_nothrow_assign_odr.C: New.
- * g++.dg/ext/has_nothrow_copy_odr.C: Likewise.
- * g++.dg/ext/has_nothrow_constructor_odr.C: Likewise.
- * g++.dg/ext/has_nothrow_assign.C: Adjust.
- * g++.dg/ext/has_nothrow_copy.C: Likewise.
- * g++.dg/ext/has_nothrow_constructor.C: Likewise.
-
-2008-07-17 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/36822
- * gcc.target/s390/pr36822.c: New testcase.
-
-2008-07-21 Hans-Peter Nilsson <hp@axis.com>
-
- PR middle-end/36143
- * g++.dg/tree-ssa/pr19637.C: XFAIL.
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: Skip for CRIS.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
- PR middle-end/36509
- * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: XFAIL.
-
-2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/36879
- * gcc.c-torture/execute/20080719-1.c: New testcase.
-
-2008-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- * gcc.dg/tree-ssa/data-dep-1.c: XFAIL.
-
-2008-07-20 Daniel Berlin <dberlin@dberlin.org>
-
- * gcc.dg/tree-ssa/ssa-fre-7.c: XFAIL.
- * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
- * gcc.dg/tree-ssa/ssa-fre-9.c: Ditto.
- * gcc.dg/tree-ssa/ssa-fre-13.c: Ditto.
- * gcc.dg/tree-ssa/ssa-fre-14.c: Ditto.
- * gcc.dg/tree-ssa/ssa-fre-17.c: Ditto.
- * gcc.dg/tree-ssa/ssa-pre-15.c: Ditto.
- * gcc.dg/tree-ssa/loadpre1.c: PASS.
-
-2008-07-19 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36877
- * gcc.dg/gomp/atomic-11.c: New test.
-
-2008-07-19 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36795
- * char_expr_1.f90: New.
- * char_expr_2.f90: New.
-
-2008-07-19 Olivier Hainque <hainque@adacore.com>
-
- * gcc.dg/mallign.c: New test.
- * gnat.dg/allocator_maxalign1.adb: New test.
- * gnat.dg/test_allocator_maxalign2.adb: Main caller for ...
- * gnat.dg/allocator_maxalign2.ad[bs]: New test.
-
-2008-07-19 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/intrinsic_argument_conformance_2.f90: New.
- * gfortran.dg/zero_sized_1.f90: Fix conformance bugs.
-
-2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- * g++.dg/ext/utf-array.C: Fix broken merge/checkin.
- * g++.dg/ext/utf-array-short-wchar.C: Idem
- * gcc.dg/utf-array.c: Idem
- * gcc.dg/utf-array-short-wchar.c: Idem
-
-2008-07-18 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/fshort-wchar.c: Use -Wl,--no-wchar-size-warning on
- arm*-*-*eabi.
-
-2008-07-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36786
- * gcc.target/i386/pr36786.c: New test.
-
-2008-07-18 Dodji Seketeli <dseketel@redhat.com>
-
- PR c++/36407
- * g++.dg/conversion/op5.C: New testcase.
-
-2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- * g++.dg/ext/utf-array.C: Fix broken merge/checkin.
- * g++.dg/ext/utf-array-short-wchar.C: Idem
- * gcc.dg/utf-array.c: Idem
- * gcc.dg/utf-array-short-wchar.c: Idem
-
-2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- Tests for char16_t and char32_t support.
- * g++.dg/ext/utf-array.C: New
- * g++.dg/ext/utf-array-short-wchar.C: New
- * g++.dg/ext/utf-rtti.C: New
- * g++.dg/ext/utf-type.c: New
- * gcc.dg/utf-array.c: New
- * gcc.dg/utf-array-short-wchar.c: New
- * gcc.dg/utf-inc-init.c: New
- * gcc.dg/utf-type.c: New
-
-2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36859
- * gcc.target/i386/vararg-2.c: New.
-
-2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/36858
- * gcc.target/i386/vararg-1.c: New.
-
-2008-07-18 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/parameter_array_init_4.f90: Silence pedantic warning.
-
-2008-07-17 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/tree_static_def.ad[bs]: Support for ...
- * gnat.dg/tree_static_use.adb: New test.
- * gnat.dg/decl_ctx_def.ads: Support for ...
- * gnat.dg/decl_ctx_use.ad[bs]: New test.
-
-2008-07-17 Julian Brown <julian@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
-
- * g++.dg/ext/visibility/arm3.C: Add explanatory text. Skip on
- non-DLL targets.
- * g++.dg/ext/visibility/arm1.C: Skip on non-DLL targets.
-
-2008-07-17 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36855
- * g++.dg/ext/has_trivial_destructor.C: Rename to...
- * g++.dg/ext/has_trivial_destructor-1.C: ... this.
- * g++.dg/ext/has_trivial_destructor-2.C: New.
-
-2008-07-17 Paolo Bonzini <bonzini@gnu.org>
-
- PR rtl-optimization/36753
- * gcc.target/i386/pr36753.c: New.
-
-2008-07-17 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36825
- PR fortran/36824
- * gfortran.dg/rank_2.f90: Add additional array-rank test.
- * gfortran.dg/array_4.f90: New.
-
-2008-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/36443
- * objc.dg/gnu-encoding/gnu-encoding.exp: Temporarily unset
- GCC_EXEC_PREFIX from environment when running $HOSTCC.
-
-2008-07-16 Dodji Seketeli <dseketel@redhat.com>
-
- PR c++/13699
- * g++.dg/lookup/extern-c-redecl.C: New test.
-
-2008-07-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36369
- * gcc.dg/Wstrict-aliasing-bogus-ref-all.c: New testcase.
-
-2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31568
- * gcc.target/powerpc/asm-y.c: New testcase.
-
-2008-07-14 Eric Botcazou <ebotcazou@adacore.com>
-
- * case_optimization1.ad[sb]: New test.
- * case_optimization_pkg1.ads: New helper.
-
-2008-07-14 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36745
- * g++.dg/torture/pr36745.C: Use __SIZE_TYPE__ in size_t typedef.
-
-2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/36745
- * g++.dg/torture/pr36745.C: New testcase.
-
-2008-07-14 Ben Elliston <bje@au.ibm.com>
-
- * gcc.target/powerpc/altivec-macros.c: New test.
- * gcc.target/powerpc/altviec-26.c: Likewise.
- * gcc.dg/vmx/1b-06.c: Remove bool variable.
- * gcc.dg/vmx/1b-07.c: Likewise.
- * gcc.dg/vmx/1b-06-ansi.c: New test for the pre-define method.
- * gcc.dg/vmx/1b-07-ansi.c: Likewise.
-
-2008-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36725
- gfortran.dg/fmt_go_4.f08: New test.
-
-2008-07-14 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/35492
- * gcc.c-torture/compile/pr35492.c: New test.
-
-2008-07-12 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/used_types_21.f90: New test.
-
-2008-07-11 Ian Lance Taylor <iant@google.com>
-
- * gcc.dg/Wcxx-compat-2.c: New test.
-
-2008-07-11 Dodji Seketeli <dseketel@redhat.com>
-
- PR c++/13101
- * g++.dg/parse/func-ptr-decl.C: New test.
- * g++.old-deja/g++.jason/crash11.C: Update this to
- catch a warning that is generated by virtue of fixing this bug.
-
-2008-07-11 Dodji Seketeli <dseketel@redhat.com>
-
- * g++.dg/other/semicolon.C: Tighten this test, making it column aware.
- * g++.dg/parse/error15.C: update this because of more accurate column
- numbers in error reporting.
- * g++.old-deja/g++.brendan/crash16.C: Tighten the test, making it
- column aware.
- * g++.old-deja/g++.law/ctors5.C: Likewise.
- * g++.old-deja/g++.other/crash25.C: Likewise.
-
-2008-06-30 Dodji Seketeli <dseketel@redhat.com>
-
- * g++.dg/parse/constructor1.C, g++.dg/parse/error*.C: Update these
- tests to make them catch column number regressions. Make these tests
- run with the -fshow-column option.
- * g++.dg/parse/error-column.C: new column number test.
-
-2008-07-11 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36765
- * gcc.c-torture/execute/pr36765.c: New testcase.
-
-2008-07-10 Joseph Myers <joseph@codesourcery.com>
-
- PR middle-end/29056
- * gcc.target/powerpc/ppc-negeq0-1.c: Use long instead of int.
- Adjust shift and scan-assembler-not pattern to allow for 64-bit
- case.
-
-2008-07-10 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36790
- * gcc.dg/gomp/pr36790.c: New test.
- * g++.dg/gomp/pr36790.C: New test.
-
- PR rtl-optimization/36419
- * g++.dg/eh/async-unwind1.C: New test.
-
-2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
-
- PR other/28322
- * gcc.dg/pr28322-2.c: Check that emitted diagnostic for -Wno-foobar
- is a warning and not an error.
-
-2008-07-09 Ian Lance Taylor <iant@google.com>
-
- * gcc.dg/no-asm-1.c: New test.
- * gcc.dg/no-asm-2.c: New test.
- * gcc.dg/no-asm-3.c: New test.
- * gcc.dg/no-asm-4.c: New test.
- * g++.dg/ext/no-asm-1.C: New test.
- * g++.dg/ext/no-asm-2.C: New test.
- * g++.dg/ext/no-gnu-keywords-1.C: New test.
-
-2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36760
- * g++.dg/warn/Wreturn-type-4.C: Adjust.
-
-2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR target/35802
- * gcc.target/mips/pr35802.c: New test.
-
-2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36760
- * g++.dg/warn/pragma-system_header5.C: New.
- * g++.dg/warn/pragma-system_header5.h: Likewise.
-
-2008-07-09 Raksit Ashok <raksit@google.com>
-
- * gcc.dg/wdisallowed-functions-1.c: New test.
- * gcc.dg/wdisallowed-functions-2.c: New test.
- * g++.dg/warn/Wdisallowed-functions-1.C: New test.
- * g++.dg/warn/Wdisallowed-functions-2.C: New test.
-
-2008-07-08 Simon Martin <simartin@users.sourceforge.net>
-
- PR c++/34963
- * g++.dg/parse/dtor13.C: New test.
-
-2008-07-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.dg/compat/struct-layout-1_generate.c (vector_types): Add
- v32qi, v16hi, v8si, v4di, v8sf, v4df, u32qi, u16hi, u8si, u4di,
- u8sf and u4df.
-
- * gcc.dg/compat/union-m128-1_main.c: Run only on x86. Remove
- __x86_64__ check. Include "cpuid.h".
- (main): Check SSE2 at runtime.
-
- * gcc.dg/compat/union-m128-1_x.c: Compile with -msse2. Remove
- __x86_64__ check.
- * gcc.dg/compat/union-m128-1_y.c: Likewise.
-
- * gcc.dg/compat/vector-1_x.c: Add 32byte vector tests.
- * gcc.dg/compat/vector-1_y.c: Likewise.
- * gcc.dg/compat/vector-2_x.c: Likewise.
- * gcc.dg/compat/vector-2_y.c: Likewise.
-
- * gcc.dg/compat/vector-1a_main.c: New.
- * gcc.dg/compat/vector-1a_x.c: Likewise.
- * gcc.dg/compat/vector-1a_y.c: Likewise.
- * gcc.dg/compat/vector-2a_main.c: Likewise.
- * gcc.dg/compat/vector-2a_x.c: Likewise.
- * gcc.dg/compat/vector-2a_y.c: Likewise.
-
- * gcc.dg/compat/vector-defs.h (v32qi): New.
- (v16hi): Likewise.
- (v8si): Likewise.
- (v4di): Likewise.
- (v8sf): Likewise.
- (v4df): Likewise.
- (u32qi): Likewise.
- (u16hi): Likewise.
- (u8si): Likewise.
- (u4di): Likewise.
- (u8sf): Likewise.
- (u4df): Likewise.
-
- * lib/compat.exp (compat-get-options-main): Support dg-skip-if.
-
-2008-07-07 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.c-torture/compile/20080625-1.c: Skip for AVR target.
- * gcc.dg/torture/pr36373-10.c: Correct test where target pointer
- is not same size as unsigned long.
-
-2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36670
- * gfortran.dg/product_sum_bounds_1.f90: New test case.
-
-2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36341
- PR fortran/34670
- * gfortran.dg/matmul_bounds_2.f90: New test.
- * gfortran.dg/matmul_bounds_3.f90: New test.
- * gfortran.dg/matmul_bounds_4.f90: New test.
- * gfortran.dg/matmul_bounds_5.f90: New test.
-
-2008-07-07 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/torture/pta-ptrarith-1.c: New testcase.
- * gcc.dg/torture/pta-ptrarith-2.c: Likewise.
- * gcc.dg/torture/ipa-pta-1.c: Likewise.
-
-2008-07-07 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36726
- * gfortran.dg/gomp/pr36726.f90: New test.
-
-2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Expect the
- macros to be defined for MIPS16 too.
- * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
- * gcc.target/mips/gcc-have-sync-compare-and-swap-3.c: New test.
- * gcc.target/mips/gcc-have-sync-compare-and-swap-4.c: Likewise.
-
-2008-07-06 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/pta-callused.c: Adjust testcase.
-
-2008-07-06 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/callabi/callabi.h: New.
- * gcc.dg/callabi/vaarg-1.c: New.
- * gcc.dg/callabi/vaarg-2.c: New.
- * gcc.dg/callabi/vaarg-3.c: New.
- * gcc.dg/callabi/func-1.c: New.
-
-2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * g++.dg/tree-ssa/ptrmemfield.C: New testcase.
-
-2008-07-05 Joseph Myers <joseph@codesourcery.com>
-
- * lib/gcc-dg.exp (remove-build-file): Remove files on remote host
- as well as on build.
-
-2008-07-04 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/pta-callused.c: New testcase.
-
-2008-07-04 Richard Sandiford <richard@codesourcery.com>
-
- * gcc.target/m68k/interrupt-2.c: New file.
- * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL for m68k*-*-*.
-
-2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.dg/compat/struct-by-value-17a_x.c: Remove duplicated code.
- * gcc.dg/compat/struct-by-value-17a_y.c: Likewise.
-
-2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_optimization3.adb: New test.
- * gnat.dg/loop_optimization3_pkg.ad[sb]: New helper.
-
-2008-07-03 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36710
- * gcc.target/i386/float128-2.c: New test.
-
-2008-07-03 Michael Meissner <gnu@the-meissners.org>
-
- PR middle-end/35736
- * gcc.dg/pr35736.c: New file.
-
-2008-07-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.dg/pr28243.c: Skip on SPU.
- * gcc.dg/torture/pr25947-1.c: Likewise.
- * gcc.dg/20030702-1.c: Likewise.
- * g++.old-deja/g++.other/comdat5.C: Likewise.
- * g++.old-deja/g++.other/local-alloc1.C: Likewise.
- * g++.dg/opt/vt1.C: Likewise.
-
-2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.dg/compat/struct-by-value-17a_main.c: Remove duplicated code.
-
-2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/float128-1.c: New.
-
-2008-07-03 Andrew Haley <aph@redhat.com>
-
- PR preprocessor/33305
- * gcc.dg/cpp/avoidpaste1.c: Use dg-options "-ansi" to avoid
- "-pedantic".
- * gcc.dg/cpp/avoidpaste2.c: Likewise
- * gcc.dg/cpp/20000519-1.c: Likewise.
- * g++.dg/ext/gnu-inline-global-reject.C: Likewise.
- * gcc.dg/cpp/c99-empty-macro-args.c: New test.
- * gcc.dg/cpp/c90-empty-macro-args.c: New test.
-
-2008-07-03 Richard Guenther <rguenther@suse.de>
-
- PR c++/36128
- * g++.dg/other/builtin1.C: New testcase.
-
-2008-07-02 Joseph Myers <joseph@codesourcery.com>
-
- * g++.dg/compat/struct-layout-1.exp: Compile generator on build system.
- * gcc.dg/compat/struct-layout-1.exp: Likewise.
- * objc.dg/gnu-encoding/gnu-encoding.exp: Likewise.
-
-2008-07-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR testsuite/36285
- * gcc.dg/compat/struct-by-value-16_x.c: Move some tests to new file
- to reduce code size.
- * gcc.dg/compat/struct-by-value-16_y.c: Ditto.
- * gcc.dg/compat/struct-by-value-16a_main.c: New file.
- * gcc.dg/compat/struct-by-value-16a_x.c: Ditto.
- * gcc.dg/compat/struct-by-value-16a_y.c: Ditto.
- * gcc.dg/compat/struct-by-value-17_x.c: Move some tests to new file
- to reduce code size.
- * gcc.dg/compat/struct-by-value-17_y.c: Ditto.
- * gcc.dg/compat/struct-by-value-17a_main.c: New file.
- * gcc.dg/compat/struct-by-value-17a_x.c: Ditto.
- * gcc.dg/compat/struct-by-value-17a_y.c: Ditto.
- * gcc.dg/compat/struct-by-value-18_x.c: Move some tests to new file
- to reduce code size.
- * gcc.dg/compat/struct-by-value-18_y.c: Ditto.
- * gcc.dg/compat/struct-by-value-18a_main.c: New file.
- * gcc.dg/compat/struct-by-value-18a_x.c: Ditto.
- * gcc.dg/compat/struct-by-value-18a_y.c: Ditto.
-
-
-2008-07-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/pr36227.c: Correct test for targets where long is
- not the same size as pointer.
-
-2008-07-02 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * g++.dg/cdce3.C: Test long double math functions for
- large_long_double target only. Skip pow10 and exp10
- functions for *-*-darwin*.
-
-2008-07-02 Janus Weil <janus@gcc.gnu.org>
- Tobias Burnus <burnus@net-b.de>
-
- PR fortran/32580
- * gfortran.dg/c_f_pointer_tests_3.f90: Updated.
- * gfortran.dg/proc_decl_1.f90: Updated.
- * gfortran.dg/proc_ptr_1.f90: New.
- * gfortran.dg/proc_ptr_2.f90: New.
- * gfortran.dg/proc_ptr_3.f90: New.
- * gfortran.dg/proc_ptr_4.f90: New.
- * gfortran.dg/proc_ptr_5.f90: New.
- * gfortran.dg/proc_ptr_6.f90: New.
- * gfortran.dg/proc_ptr_7.f90: New.
- * gfortran.dg/proc_ptr_8.f90: New.
-
-2008-07-02 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/arm/neon/polytypes.c: Use dg-message separately from
- dg-error to match separate messages.
-
-2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * g++.dg/abi/mangle24.C: Remove -mmmx.
- * gcc.dg/const-float80-ped.c: Likewise.
- * gcc.dg/const-float80.c: Likewise.
- * gcc.dg/torture/fp-int-convert-float80.c: Likewise.
-
- * g++.dg/abi/mangle25.C: Enable x86.
- * gcc.dg/const-float128-ped.c: Likewise.
- * gcc.dg/const-float128.c: Likewise.
- * gcc.dg/torture/fp-int-convert-float128.c: Likewise.
- * gcc.target/i386/pr32191.c: Likewise.
- * gcc.target/i386/pr32268.c: Likewise.
-
-2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- PR target/36698
- * gcc.c-torture/compile/20001226-1.c: XFAIL -O0 case on SPU.
-
- * gcc.dg/pr27095.c: Provide target-specific regexp for SPU.
-
-2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * lib/compat.exp (compat-execute): Add -ffunction-sections
- and -Wl,--auto-overlay when building for spu-*-elf*.
-
-2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.dg/nrv3.c (S): Increase size of padding for SPU.
- * g++.dg/opt/temp1.C (struct T): Likewise.
-
-2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * gcc.c-torture/execute/20030222-1.x: New file.
- * gcc.dg/tree-ssa/ssa-fre-3.c: Disable test on SPU.
- * gcc.dg/lower-subreg-1.c: Likewise.
-
-2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- SPU single-precision FP does not support subnormals:
- * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: New file.
-
- SPU single-precision FP does not support Inf or Nan:
- * gcc.c-torture/execute/ieee/inf-1.c: Disable "float" Inf test on SPU.
- * gcc.c-torture/execute/ieee/compare-fp-1.x: New file.
- * gcc.c-torture/execute/ieee/compare-fp-4.x: Disable test on SPU.
- * gcc.c-torture/execute/ieee/fp-cmp-2.x: Disable test on SPU.
- * gcc.c-torture/execute/ieee/fp-cmp-4f.x: New file.
- * gcc.c-torture/execute/ieee/fp-cmp-8f.x: New file.
- * gcc.dg/pr15784-3.c: Disable test on SPU.
- * gcc.dg/pr28796-2.c: Likewise.
- * gcc.dg/float-range-1.c: Likewise.
- * gcc.dg/float-range-3.c: Likewise.
- * gcc.dg/float-range-4.c: Likewise.
- * gcc.dg/float-range-5.c: Likewise.
- * gcc.dg/fold-overflow-1.c: Likewise.
- * gcc.dg/builtins-1.c: SPU does not support __builtin_inff.
- * gcc.dg/builtin-inf-1.c: SPU does not support __builtin_inff.
- Check for error instead of warning "does not support infinity".
- * gcc.dg/builtins-43.c: Disable "float" Inf/Nan tests on SPU.
- * gcc.dg/builtins-44.c: Likewise.
- * gcc.dg/builtins-45.c: Likewise.
- * gcc.dg/torture/builtin-math-2.c: Likewise.
- * gcc.dg/torture/builtin-logb-1.c: Likewise.
- * gcc.dg/torture/builtin-modf-1.c: Likewise.
- * gcc.dg/torture/builtin-ldexp-1.c: Likewise.
- * gcc.dg/torture/builtin-frexp-1.c: Likewise.
- * gcc.dg/torture/type-generic-1.c: Disable test on SPU.
- * g++.dg/torture/type-generic-1.C: Likewise.
-
- SPU single-precision FP always rounds towards zero:
- * gcc.c-torture/execute/ieee/920518-1.x: New file.
- * gcc.c-torture/execute/ieee/20010114-2.x: New file.
- * gcc.c-torture/execute/ieee/20030331-1.x: New file.
- * gcc.dg/torture/fp-int-convert-float.c: Disable test on SPU.
- * gcc.dg/torture/fp-int-convert-timode.c: Disable "float" test on SPU.
-
-2008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36590
- PR fortran/36681
- * gfortran.dg/count_mask_1.f90: New test.
-
-2008-07-02 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c: Add noinline
- attribute to main1().
- * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Increase the loop
- bound in order to make it worth to vectorize the loop.
- * gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c: Likewise.
-
-2008-07-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36676
- * gfortran.dg/namelist_51.f90: New test.
-
-2008-07-01 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_vect_int,
- check_effective_target_vect_shift,
- check_effective_target_vect_long,
- check_effective_target_vect_float,
- check_effective_target_vect_no_align,
- check_effective_target_vect_int_mult): Check for ARM.
- (check_effective_target_arm_neon): New.
- (check_effective_target_vect_cmdline_needed): Use it.
-
-2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
-
- * g++.dg/other/opaque-1.C, g++.dg/other/opaque-2.C,
- g++.dg/other/opaque-3.C: Also run on powerpc*-*-linux*spe*.
-
-2008-07-01 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/quad-sse.c: New test.
-
-2008-07-01 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36666
- * gcc.c-torture/compile/pr36666.c: New testcase.
-
-2008-07-01 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pack10.adb: New test.
-
-2008-06-30 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/36598
- * gcc.dg/memcpy-1.c: Mark test XFAIL for avr target.
-
-2008-06-30 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/movti.c: New test.
-
-2008-06-30 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36662
- * g++.dg/ext/altivec-16.C: New test.
-
-2008-06-30 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36648
- * g++.dg/vect/pr36648.cc: New testcase.
-
-2008-06-29 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36655
- * g++.dg/cpp0x/extern_template-2.C: New.
- * g++.dg/cpp0x/extern_template.C: Rename to...
- * g++.dg/cpp0x/extern_template-1.C: ... this.
-
-2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/36341
- * gfortran.dg/matmul_bounds_1.f90: New test.
-
-2008-06-29 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/36620
- * gcc.dg/pr36504.c: Add -w to dg-options.
-
-2008-06-29 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/pr36493.c: Require vect_long.
-
-2008-06-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * gfortran.dg/namelist_50.f90: New test.
-
-2008-06-28 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.c-torture/compile/20080628-1.c: New test.
-
-2008-06-28 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/pta-field-1.c: Add return 0.
- * gcc.c-torture/execute/pta-field-2.c: Likewise.
-
-2008-06-28 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/pr24287.c: Remove XFAIL.
-
-2008-06-27 Mark Mitchell <mark@codesourcery.com>
-
- * g++.dg/abi/arm_cxa_vec2.C: New test.
-
-2008-06-28 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36364
- * g++.dg/template/repo9.C: New test.
-
-2008-06-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36655
- * g++.dg/cpp0x/extern_template.C: New.
-
-2008-06-27 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.dg/gomp/pr27388-3.c: Adjust dg-final.
-
-2008-06-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36400
- PR tree-optimization/36373
- PR tree-optimization/36344
- * gcc.dg/torture/pr36373-1.c: New testcase.
- * gcc.dg/torture/pr36373-2.c: Likewise.
- * gcc.dg/torture/pr36373-3.c: Likewise.
- * gcc.dg/torture/pr36373-4.c: Likewise.
- * gcc.dg/torture/pr36373-5.c: Likewise.
- * gcc.dg/torture/pr36373-6.c: Likewise.
- * gcc.dg/torture/pr36373-7.c: Likewise.
- * gcc.dg/torture/pr36373-8.c: Likewise.
- * gcc.dg/torture/pr36373-9.c: Likewise.
- * gcc.dg/torture/pr36373-10.c: Likewise.
- * gcc.dg/torture/pr36400.c: Likewise.
- * gcc.c-torture/execute/pta-field-1.c: Likewise.
- * gcc.c-torture/execute/pta-field-2.c: Likewise.
- * gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL.
- * gcc.dg/tree-ssa/pr24287.c: XFAIL.
-
-2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/aggr9.ad[sb]: New test.
- * gnat.dg/aggr9_pkg.ads: New helper.
-
-2008-06-27 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/aligned_vla.adb: New test.
-
-2008-06-26 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/inline-32.c, gcc.dg/inline-32a.c: New tests.
-
-2008-06-26 Ira Rosen <irar@il.ibm.com>
-
- * lib/target-supports.exp
- (check_effective_target_vect_cmdline_needed): Add SPU to the list
- of targets that do not need command line argument to enable SIMD.
-
-2008-06-26 Ira Rosen <irar@il.ibm.com>
-
- * gcc.dg/vect/vect.exp: Run tests with -funroll-loops for SPU in case
- of -O3.
-
-2008-06-26 Ira Rosen <irar@il.ibm.com>
-
- PR target/36510
- * gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c: Change the loop
- bound.
- * gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c,
- gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c: Likewise.
-
-2008-06-25 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36526
- * gfortran.dg/proc_formal_proc_2.f90: New test.
-
-2008-06-25 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/compile/20080625-1.c: New testcase.
-
-2008-06-25 Richard Guenther <rguenther@suse.de>
-
- * g++.dg/torture/20080625-1.C: New testcase.
-
-2008-06-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36371
- * gfortran.dg/data_array_5.f90: New test.
-
-2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/warn5.adb: New test.
-
-2008-06-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36504
- * gcc.dg/pr36504.c: New test.
-
-2008-06-23 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/36584
- * gcc.dg/pr36584.c: New test.
- * gcc.target/i386/local2.c: Remove invalid test.
-
-2008-06-23 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36533
- * gcc.target/i386/pr36533.c: New test.
-
- PR tree-optimization/36508
- * gcc.dg/pr36508.c: New test.
-
-2008-06-20 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/inline-31.c: New test.
-
-2008-06-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * gfortran.dg/fmt_l.f90: Fix end of line test pattern.
-
-2008-06-19 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * lib/target-supports.exp
- (check_effective_target_keeps_null_pointer_checks) : New function.
- * gcc.dg/tree-ssa/20030730-1.c: Use keeps_null_pointer_checks to
- determine correct test response.
- * gcc.dg/tree-ssa/20030730-2.c: Ditto.
- * gcc.dg/tree-ssa/pr20701.c: Ditto.
- * gcc.dg/tree-ssa/pr20702.c: Ditto.
- * gcc.dg/tree-ssa/pr21086.c: Ditto.
- * gcc.dg/tree-ssa/vrp02.c:: Ditto.
- * gcc.dg/tree-ssa/vrp07.c:: Ditto.
- * gcc.dg/tree-ssa/vrp08.c:: Ditto.
-
-2008-06-19 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/pragma-pack-4.c: Skip for AVR target.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/builtin-apply2.c: Mark skip for avr target.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR c/36571
- * gcc.dg/builtin-return-1.c: Mark as xfail on AVR.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/tree-ssa/loop-35.c: xfail avr target. Add new avr specific
- tests.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/tree-ssa/forwprop-6.c: Use long or int to match size of
- float. Otherwise error.
- * gcc.dg/tree-ssa/ssa-fre-7.c: Ditto.
- * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.c-torture/execute/20020619-1.c: Correct for targets
- without 32 bit int.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.c-torture/execute/ieee/20000320-1.x: Skip for AVR target.
- * gcc.c-torture/execute/ieee/rbug.x: Ditto.
- * gcc.c-torture/execute/ieee/pr30704.x: Add new file. Skip for AVR
- target.
- * gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.x: Ditto.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR testsuite/36284
- * gcc.dg/compat/struct-layout-1_generate.c (switchfiles): Require
- int32plus for generated main files.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR c/36460
- * gcc.dg/utf32-1.c: Mark xfail for AVR target.
- * gcc.dg/utf32-2.c: Ditto.
- * gcc.dg/utf32-3.c: Ditto.
-
-2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.c-torture/compile/limits-fndefn.c: Skip for AVR.
- * gcc.dg/builtins-config.h: Use standard independent __AVR__ symbol.
- * gcc.dg/cdce1.c: Skip for AVR.
- * gcc.dg/cdce2.c: Ditto.
- * gcc.dg/fold-bitand-1.c: Ignore warnings such as alignment.
- * gcc.dg/fold-eqandshift-3.c: Use long on AVR.
- * gcc.dg/fold-overflow-1.c: Skip for AVR.
- * gcc.dg/multiple-overflow-warn-3.c: Use target independent macro
- for ms bit position.
- * gcc.dg/pch/struct-1.c: Allow for target without 32 bit int.
- * gcc.dg/tree-ssa/pr33920.c: Add warning check for AVR.
- * gcc.dg/ucnid-5.c: Skip for AVR.
- * gcc.dg/Wconversion-5.c: Mark warning xfail for AVR target.
- * gcc.dg/Wconversion-real-integer.c: Skip for AVR.
- * gcc.dg/Wconversion-real.c: Ditto.
- * gcc.dg/wtr-conversion-1.c: Add warning test for AVR.
- * gcc.dg/utf-cvt.c: Skip tests and mark excess xfail for AVR.
- * gcc.dg/Wtype-limits-Wextra.c: Ditto.
- * gcc.dg/Wtype-limits.c: Ditto.
-
-2008-06-18 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/dfp/convert-bfp-6.c, gcc.dg/dfp/convert-bfp-9.c: XFAIL
- for lax_strtofp.
-
-2008-06-18 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp
- (check_effective_target_powerpc_hard_double): New.
- * gcc.dg/tree-ssa/loop-19.c: Use powerpc_hard_double instead of
- powerpc*-*-*.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/weak/weak-2.c: We no longer complain about incompatibilty.
- * gcc.dg/weak/weak-3.c: We no longer complain about incompatibilty.
- * gcc.dg/weak/weak-4.c: We no longer complain about incompatibilty.
- * gcc.dg/weak/weak-5.c: We no longer complain about incompatibilty.
- * gcc.dg/weak/weak-6.c: Fix thinko in previous change.
- * gcc.dg/weak/weak-7.c: Likewise.
-
-2008-06-16 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/asm-wide-1.c: Do not require extra errors we output
- confused by earlier errors.
- * gcc.target/i386/sseregparm-2.c: Remove markers for errors not
- output at parsing time.
- * gcc.target/i386/sseregparm-8.c: Move here compile time errors
- from gcc.target/i386/sseregparm-2.c.
- * gcc.dg/weak/weak-6.c: Do not require extra errors we output
- confused by earlier errors.
- * gcc.dg/weak/weak-7.c: Likewise.
-
-2008-06-18 Daniel Kraft <d@domob.eu>
-
- PR fortran/36517, fortran/36492
- * gfortran.dg/array_constructor_25.f03: New test.
- * gfortran.dg/array_constructor_26.f03: New test.
- * gfortran.dg/array_constructor_27.f03: New test.
- * gfortran.dg/array_constructor_28.f03: New test.
- * gfortran.dg/array_constructor_29.f03: New test.
- * gfortran.dg/array_constructor_30.f03: New test.
- * gfortran.dg/array_constructor_type_19.f03: New test.
- * gfortran.dg/array_constructor_type_20.f03: New test.
- * gfortran.dg/array_constructor_type_21.f03: New test.
-
-2008-06-17 Daniel Kraft <d@domob.eu>
-
- PR fortran/36112
- * gfortran.dg/bounds_check_array_ctor_1.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_2.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_3.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_4.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_5.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_6.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_7.f90: New test.
- * gfortran.dg/bounds_check_array_ctor_8.f90: New test.
- * gfortran.dg/arrayio_0.f90: Fixed invalid array constructor.
- * gfortran.dg/char_cons_len.f90: Ditto.
- * gfortran.dg/char_initializer_actual.f90: Ditto.
- * gfortran.dg/pr15959.f90: Ditto.
- * gfortran.dg/transfer_simplify_2.f90: Ditto.
- * gfortran.dg/char_length_1.f90: Changed expected error messages.
-
-2008-06-17 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36366
- * gfortran.dg/used_types_20.f90: New test.
-
-2008-06-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36546
- * gfortran.dg: namelist_49.f90: New test.
-
-2008-06-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36544
- * gfortran.dg/fseek.f90: Adjust test conditions for variable newline.
-
-2008-06-16 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36493
- * gcc.dg/vect/pr36493.c: New testcase.
-
-2008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36515
- * gfortran.dg/no_range_check_2.f90: New test.
-
-2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_mips_loongson): New.
- * gcc.target/mips/loongson-simd.c: New.
-
-2008-06-14 Simon Martin <simartin@users.sourceforge.net>
-
- PR c++/35320
- * g++.dg/parse/bitfield3.C: New test.
-
-2008-06-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36538
- * gfortran.dg: namelist_48.f90: New test.
-
-2008-06-14 Simon Martin <simartin@users.sourceforge.net>
-
- PR c++/35317
- * g++.dg/other/dtor2.C: New test.
-
-2008-06-13 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/task_stack_align.adb: New test.
-
-2008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35863
- * gfortran.dg/widechar_IO_1.f90: New test.
- * gfortran.dg/widechar_IO_2.f90: New test.
- * gfortran.dg/widechar_IO_3.f90: New test.
- * gfortran.dg/widechar_IO_4.f90: New test.
-
-2008-06-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36476
- * gfortran.dg/parameter_array_init_4.f90: New.
-
-2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/compile/20080613-1.c: New test.
-
-2008-06-13 Jakub Jelinek <jakub@redhat.com>
-
- PR c/36507
- * gcc.dg/inline-28.c: New test.
- * gcc.dg/inline-29.c: New test.
- * gcc.dg/inline-30.c: New test.
-
-2008-06-12 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36462
- * gfortran.dg/index_2.f90: New.
-
-2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr9.ad[sb]: New test.
-
-2008-06-12 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
- Always initialize.
- * g++.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
- Always initialize.
-
-2008-06-12 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/36443
- * gcc.dg/compat/struct-layout-1.exp: Temporarily unset
- GCC_EXEC_PREFIX from environment when running $HOSTCC.
- * g++.dg/compat/struct-layout-1.exp: Likewise.
-
-2008-06-12 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36345
- * gcc.c-torture/execute/20020619-1.c: Remove broken part of
- the testcase.
-
-2008-06-11 Edmar Wienskoski <edmar@freescale.com>
-
- PR target/36425
- * gcc.target/powerpc/e500-1.c: New test case to verify
- mno-isel option.
-
-2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/varsize_copy.ad[sb]: New test.
-
-2008-06-10 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/bt-mask-1.c: New test.
- * gcc.target/i386/bt-mask-2.c: Ditto.
-
-2008-06-10 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36473
- * gcc.target/i386/bt-1.c: New test.
- * gcc.target/i386/bt-2.c: Ditto.
-
-2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.c-torture/execute/builtins/lib/chk.c: Only include sys/types.h
- for unix to check for uClibc.
-
-2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR testsuite/36285
- * gcc.dg/compat/struct-return-10_y.c: Remove test_va.
- * gcc.dg/compat/vector-defs.h: Add check for availability of 8 byte
- double.
- * gcc.dg/compat/struct-layout-1_test.h: Change bitfield to match
- integer size.
-
-2008-06-09 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/pr34856.c: Condition use of -maltivec on
- powerpc_altivec_ok. Use -w on other powerpc*-*-linux*.
-
-2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.dg/torture/mips-hilo-1.c: Delete.
- * gcc.target/mips/pr35232.c: Likewise.
- * gcc.target/mips/fix-vr4130-1.c: Use modulus to create an mfhi.
- * gcc.target/mips/fix-vr4130-3.c: Likewise.
- * gcc.target/mips/int-moves-1.c: New test.
- * gcc.target/mips/int-moves-2.c: Likewise.
- * gcc.target/mips/fix-r4000-1.c: Likewise.
- * gcc.target/mips/fix-r4000-2.c: Likewise.
- * gcc.target/mips/fix-r4000-3.c: Likewise.
- * gcc.target/mips/fix-r4000-4.c: Likewise.
- * gcc.target/mips/fix-r4000-5.c: Likewise.
- * gcc.target/mips/fix-r4000-6.c: Likewise.
- * gcc.target/mips/fix-r4000-7.c: Likewise.
- * gcc.target/mips/fix-r4000-8.c: Likewise.
- * gcc.target/mips/fix-r4000-9.c: Likewise.
- * gcc.target/mips/fix-r4000-10.c: Likewise.
- * gcc.target/mips/fix-r4000-11.c: Likewise.
- * gcc.target/mips/fix-r4000-12.c: Likewise.
- * gcc.target/mips/timode-1.c: Likewise.
- * gcc.target/mips/timode-2.c: Likewise.
-
-2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/pack3.ads: New test.
- * gnat.dg/specs/pack3_pkg.ads: New helper.
-
-2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35242
- * g++.dg/cpp0x/vt-35242.C: New.
-
-2008-06-08 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36459
- * gfortran.dg/proc_decl_16.f90: New.
-
-2008-06-08 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35830
- * proc_decl_13.f90: New.
- * proc_decl_14.f90: New.
- * proc_decl_15.f90: New.
-
-2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/36420
- PR fortran/36421
- PR fortran/36422
- * gfortran.dg/fmt_g0_1.f08: New test.
- * gfortran.dg/fmt_g0_2.f08: New test.
- * gfortran.dg/fmt_g0_3.f08: New test.
-
-2008-06-07 Xinliang David Li <davidxl@google.com>
-
- PR/36440
- * gcc.dg/cdce1.c: Remove run target clause.
- * gcc.dg/cdce2.c: Ditto.
- * g++.dg/cdce3.C: Fix a bug in target specification.
-
-2008-06-07 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36437
- * gfortran.dg/c_sizeof_1.f90: New.
- * gfortran.dg/c_sizeof_2.f90: New.
-
-2008-06-07 Joseph Myers <joseph@codesourcery.com>
-
- * g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
- * g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
- * g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
- 7.
- * gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
- strongarm*-*-* and cris-*-aout*.
- * gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
- strongarm*-*-*.
- * gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
- strongarm*-*-*.
- * gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
- strongarm*-*-*.
- * gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
- * gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
- * gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
- * gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
- * gcc.dg/cpp/assert4.c: Don't handle BeOS.
- * gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
- * gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
- xscale*-*-elf*.
- * gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
- * gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
- * gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
- * gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
- * gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
- * gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
- powerpc-*-sysv*.
- * gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
- * lib/target-supports.exp: Don't handle strongarm*-*-elf,
- xscale*-*-elf and *-*-windiss.
- * obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
- * objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
- * objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
- * gcc.dg/mt-loopi1.c: Remove.
-
-2008-06-07 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/specs/oversize.ads: New.
-
-2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35327
- * g++.dg/parse/crash41.C: New.
-
-2008-06-06 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/36438
- * gcc.target/i386/pr36438.c
-
-2008-06-06 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36362
- * gcc.c-torture/execute/20080529-1.c: New test.
-
-2008-06-06 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.dg/gomp/collapse-1.c: New test.
- * gcc.dg/gomp/nesting-1.c: New test.
- * g++.dg/gomp/task-1.C: New test.
- * g++.dg/gomp/predetermined-1.C: New test.
- * g++.dg/gomp/tls-4.C: New test.
- * gfortran.dg/gomp/collapse1.f90: New test.
- * gfortran.dg/gomp/sharing-3.f90: New test.
- * gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
- * g++.dg/gomp/pr27499.C (foo): Likewise.
- * g++.dg/gomp/for-16.C (foo): Likewise.
- * g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
- * g++.dg/gomp/pr34607.C: Adjust dg-error location.
- * g++.dg/gomp/for-16.C (foo): Add a new dg-error.
- * gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
- * gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
- * gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
- * gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
- * gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
- * gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
- about allocatable array.
- * gfortran.dg/gomp/reduction1.f90: Likewise.
-
-2008-06-06 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/alias-18.c: XFAIL some sub-tests.
-
-2008-06-04 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_powerpc_spu):
- Call check_effective_target_powerpc_altivec_ok.
- * gcc.target/powerpc/dfp-dd.c, gcc.target/powerpc/dfp-td.c,
- gcc.target/powerpc/ppc32-abi-dfp-1.c,
- gcc.target/powerpc/ppu-intrinsics.c: Require powerpc_fprs.
-
-2008-06-04 Xinliang David Li <davidxl@google.com>
-
- * gcc.dg/cdce1.c: New test.
- * gcc.dg/cdce2.c: Ditto.
- * g++.dg/cdce3.C: Ditto.
-
-2008-06-04 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36322
- PR fortran/36275
- * gfortran.dg/proc_decl_2.f90: Extended.
-
-2008-06-04 Joseph Myers <joseph@codesourcery.com>
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * gcc.target/m68k/xgot-1.c: New test.
-
-2008-06-04 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/20080604-1.c: New testcase.
-
-2008-06-03 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR/34880
- * gcc.c-torture/execute/float-floor.c: Adjust test for 4 byte
- doubles.
-
-2008-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/aliasing1.ad[sb]: New test.
- * gnat.dg/aliasing2.ad[sb]: Likewise.
-
-2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.target/avr/avr.exp: Add avr testsuite.
- * gcc.target/avr/trivial.c: Add simple test.
- * gcc.target/avr/torture/avr-torture.exp: Add avr-torture testsuite.
- * gcc.target/avr/torture/trivial.c: Add simple test.
-
-2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/pr19340.c: Disable for AVR as it has no scheduling.
- * gcc.dg/section1.c: XFAIL AVR as bss section is used differently.
-
-2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/pr18241-1.c: Use long on small int target.
- * gcc.dg/pr32912-2.c: Ditto.
- * gcc.dg/pr35065.c: Ditto.
- * gcc.dg/pr36300-1.c: Ditto.
- * gcc.dg/pr36300-2.c: Ditto.
- * gcc.dg/pr27639.c: Reduce array size for small int target.
- * gcc.dg/pr28755.c: Skip test if pointers are smaller than 32 bits.
- * gcc.dg/pr36194.c: Reduce constant on small int target.
- * gcc.dg/torture/builtin-frexp-1.c: Ditto.
-
-2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/torture/pr34330.c: Skip test for targets without pthread.
- * gcc.dg/torture/pr36244.c: Ditto.
- * gcc.dg/tree-ssa/pr36181.c: Ditto.
-
-2008-06-02 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36361
- * gfortran.dg/interface_24.f90: New.
-
-2008-06-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/36404
- * g++.dg/template/crash79.C: New.
- * g++.dg/other/pr28114.C: Adjust.
-
-2008-06-02 Daniel Kraft <d@domob.eu>
-
- * finalize_1.f08: New test.
- * finalize_2.f03: New test.
- * finalize_3.f03: New test.
- * finalize_4.f03: New test.
- * finalize_5.f03: New test.
- * finalize_6.f90: New test.
- * finalize_7.f03: New test.
- * finalize_8.f03: New test.
-
-2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.c-torture/execute/ieee/ieee.exp: Load c-torture.exp.
-
-2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/fpr-moves-7.c: New test.
- * gcc.target/mips/fpr-moves-8.c: New test.
-
-2008-05-30 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * gcc.target/bfin/mcpu-default.c: Adjust for recent changes: default
- CPU has all workarounds, and no longer explicitly sets bf532 as CPU
- type.
-
- * gcc.target/bfin/mcpu-bf531.c: Adjust for WORKAROUND_RETS.
- * gcc.target/bfin/mcpu-bf532.c: Likewise.
- * gcc.target/bfin/mcpu-bf533.c: Likewise.
- * gcc.target/bfin/mcpu-bf534.c: Likewise.
- * gcc.target/bfin/mcpu-bf536.c: Likewise.
- * gcc.target/bfin/mcpu-bf537.c: Likewise.
- * gcc.target/bfin/mcpu-bf548.c: Likewise.
- * gcc.target/bfin/mcpu-bf549.c: Likewise.
- * gcc.target/bfin/mcpu-bf561.c: Likewise.
- * gcc.target/bfin/mcpu-bf523.c: Likewise.
- * gcc.target/bfin/mcpu-bf524.c: Likewise.
- * gcc.target/bfin/mcpu-bf526.c: Likewise.
- * gcc.target/bfin/mcpu-bf522.c: Likewise.
- * gcc.target/bfin/mcpu-bf525.c: Likewise.
- * gcc.target/bfin/mcpu-bf527.c: Likewise.
- * gcc.target/bfin/mcpu-bf538.c: Likewise.
- * gcc.target/bfin/mcpu-bf539.c: Likewise.
- * gcc.target/bfin/mcpu-bf542.c: Likewise.
- * gcc.target/bfin/mcpu-bf544.c: Likewise.
- * gcc.target/bfin/mcpu-default.c: Likewise.
- * gcc.target/bfin/workarounds-any.c: Likewise.
- * gcc.target/bfin/workarounds-none.c: Likewise.
- * gcc.target/bfin/workarounds-1.c: Likewise.
- * gcc.target/bfin/workarounds-2.c: Likewise.
- * gcc.target/bfin/workarounds-3.c: Likewise.
- * gcc.target/bfin/workarounds-4.c: Likewise.
-
-2008-05-30 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/36320:
- * gcc.dg/cpp/pr36320.c: New file.
-
-2008-05-29 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35243
- * g++.dg/cpp0x/vt-35243.C: New.
-
-2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35771
- * gcc.dg/torture/pr35771.h: New.
- * gcc.dg/torture/pr35771-1.c: Likewise.
- * gcc.dg/torture/pr35771-2.c: Likewise.
- * gcc.dg/torture/pr35771-3.c: Likewise.
-
-2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/nested-func-6.c: New test.
-
-2008-05-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36343
- * gcc.c-torture/execute/pr36343.c: New testcase.
-
-2008-05-29 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/abstract1.ad[sb]: New test.
-
-2008-05-28 Janus Weil <janus@gcc.gnu.org>
-
- PR fortran/36325
- PR fortran/35830
- * gfortran.dg/interface_23.f90: New.
- * gfortran.dg/gomp/reduction3.f90: Fixed invalid code.
- * gfortran.dg/proc_decl_12.f90: New:
- * gfortran.dg/external_procedures_1.f90: Fixed error message.
-
-2008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36319
- * gfortran.dg/widechar_5.f90: New file.
- * gfortran.dg/widechar_6.f90: New file.
- * gfortran.dg/widechar_7.f90: New file.
- * gfortran.dg/widechar_intrinsics_5.f90: Uncomment the lines
- testing the SPREAD intrinsic.
- * gfortran.dg/widechar_intrinsics_6.f90: New file.
- * gfortran.dg/widechar_intrinsics_7.f90: New file.
- * gfortran.dg/widechar_intrinsics_8.f90: New file.
- * gfortran.dg/widechar_intrinsics_9.f90: New file.
- * gfortran.dg/widechar_intrinsics_10.f90: New file.
-
-2008-05-28 Seongbae Park <seongbae.park@gmail.com>
-
- * gcc.dg/tree-prof/ic-misattribution-1.c: New test.
- * gcc.dg/tree-prof/ic-misattribution-1a.c: New test.
- * lib/profopt.exp (profopt-get-options): Support
- dg-additional-sources.
- (profopt-execute): Handle additional sources.
-
-2008-05-28 Rafael Espíndola <espindola@google.com>
-
- * gcc.dg/20080528-1.c: New test.
-
-2008-05-28 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/old_errors.adb, gnat.dg/deep_old.adb: Adjust.
-
- * gnat.dg/specs/iface_eq_test.ads,
- gnat.dg/specs/iface_eq_test-child.ads: New test.
- * gnat.dg/specs/self_class.ads: New test.
- * gnat.dg/fixce.adb: New test.
- * gnat.dg/frunaligned*.ad[sb]: New test.
-
-2008-05-27 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/tree-ssa/data-dep-1.c: Skip test for avr-*-* too much code.
- * gcc.dg/tree-ssa/ldist-3.c: Ditto.
- * gcc.dg/tree-ssa/ldist-5.c: Ditto.
- * gcc.dg/tree-ssa/ifc-20040816-2 .c: Adjust for int size < 4 bytes.
- * gcc.dg/tree-ssa/pr32540-1.c: Ditto.
- * gcc.dg/tree-ssa/pr32540-2.c: Ditto.
- * gcc.dg/tree-ssa/ssa-lim-5.c: Ditto.
- * gcc.dg/tree-ssa/pr23115.c: Adjust test for double size < 8 bytes.
-
-2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35767
- PR target/35771
- * gcc.target/i386/pr35767-1.c: New.
- * gcc.target/i386/pr35767-1d.c: Likewise.
- * gcc.target/i386/pr35767-1i.c: Likewise.
- * gcc.target/i386/pr35767-2.c: Likewise.
- * gcc.target/i386/pr35767-2d.c: Likewise.
- * gcc.target/i386/pr35767-2i.c: Likewise.
- * gcc.target/i386/pr35767-3.c: Likewise.
- * gcc.target/i386/pr35767-4.c: Likewise.
- * gcc.target/i386/pr35767-5.c: Likewise.
-
-2008-05-27 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/assignment_3.f90: Add missing cleanup-modules.
-
-2008-05-27 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36316
- * gfortran.dg/assignment_3.f90: New.
-
-2008-05-27 Richard Sandiford <rdsandiford@googlemail.com>
-
- * lib/fortran-torture.exp (get-fortran-torture-options):
- New function, replacing old FORTRAN_TORTURE_OPTIONS code.
- * gfortran.fortran-torture/compile/compile.exp: Use
- [get-fortran-torture-options] instead of $FORTRAN_TORTURE_OPTIONS.
- * gfortran.fortran-torture/execute/execute.exp: Likewise.
-
-2008-05-27 Michael Matz <matz@suse.de>
-
- PR c++/27975
- * g++.dg/warn/Wenum-compare.C: New testcase.
- * g++.dg/warn/Wenum-compare-no.C: Ditto.
-
-2008-05-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36339
- * gcc.c-torture/execute/pr36339.c: New testcase.
- * gcc.dg/tree-ssa/loadpre8.c: XFAIL.
-
-2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pack9.ad[sb]: New test.
-
-2008-05-27 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/sync1.ad[sb]: New test.
- * gnat.dg/interface5.ad[sb]: New test.
-
-2008-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.c-torture/compile/pr11832.c: XFAIL on (x86 && ilp32 && pic).
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-05-27 Alexandre Oliva <aoliva@redhat.com>
-
- PR c++/35909
- * g++.dg/conversion/bitfield9.C: New.
-
-2008-05-26 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/specs/array_no_def_init.ads: New test.
-
-2008-05-26 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc-c.torture/execute/pr36321.c: New.
-
-2008-05-26 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36300
- * gcc.dg/pr36300-1.c: New testcase.
- * gcc.dg/pr36300-2.c: Likewise.
-
-2008-05-26 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/set_in_pproc.adb: New test.
- * gnat.dg/modular2.adb: New test.
- * gnat.dg/pak.ad[sb]: New test.
-
-2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/trampoline1.adb: New test.
- * gnat.dg/trampoline2.adb: Likewise.
-
-2008-05-25 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/32600
- * gfortran.dg/c_f_pointer_tests_3.f90: New.
-
-2008-05-25 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/17526
- * gcc.dg/torture/pr17526.c: New testcase.
-
-2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/tg-tests.h: Fix spelling of FP_INFINITE.
-
-2008-05-23 Sandra Loosemore <sandra@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
-
- * g++.dg/other/profile1.C: Use dg-require-profiling.
-
-2008-05-24 Hans-Peter Nilsson <hp@axis.com>
-
- PR testsuite/22523
- * g++.dg/template/inline1.C: For the not-defined symbol, use the
- pattern from g++.dg/template/qualttp17.C.
-
-2008-05-23 Rafael Espíndola <espindola@google.com>
-
- * gcc.c-torture/compile/20080522-1.c: Move to gcc.dg.
- * gcc.dg/20080522-1.c: Moved from gcc.c-torture.
-
-2008-05-23 Paul Brook <paul@codesourcery.com>
- Carlos O'Donell <carlos@codesourcery.com>
-
- * gcc.target/arm/naked-1.c: New test.
- * gcc.target/arm/naked-2.c: New test.
-
-2008-05-23 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36314
- * gfortran.dg/eoshift_large_1.f90: Replace tabs by spaces.
-
-2008-05-23 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/addr_slice.adb: New test.
-
-2008-05-23 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36237
- * g++.dg/gomp/pr36237.C: New test.
-
-2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/builtins-error.c: Test __builtin_fpclassify. Also
- add tests for all previous type-generic builtins.
- * gcc.dg/pr28796-2.c: Add -DUNSAFE flag.
- * gcc.dg/tg-tests.h: Test __builtin_fpclassify.
-
-2008-05-22 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libgfortran/36302
- * gfortran.dg/cshift_large_1.f90: New test.
- * gfortran.dg/eoshift_large_1.f90: New test.
-
-2008-05-22 Rafael Espíndola <espindola@google.com>
-
- * gcc.c-torture/compile/20080522-1.c: New testcase.
-
-2008-05-22 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/20080522-1.c: New testcase.
-
-2008-05-22 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/alias-18.c: New testcase.
-
-2008-05-22 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/slice5.adb: New test.
- * gnat.dg/notnot.adb: New test.
- * gnat.dg/tf_interface_1.ad[sb]: New test.
- * gnat.dg/const1.adb: New test.
- * gnat.dg/parameterlessfunc.adb: New test.
- * gnat.dg/specs/interface5.ads: New test.
- * gnat.dg/specs/cpp_assignment.ads: New test.
-
-2008-05-22 Nathan Sidwell <nathan@codesourcery.com>
-
- * lib/dg-pch.exp (dg-pch): Fix if bracing.
-
-2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/m128-check.h (ARRAY_SIZE): New.
- (CHECK_EXP): Use it.
-
- * gcc.target/i386/set-v16qi-3.h: New.
- * gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-3.c: Likewise.
-
-2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36287
- PR tree-optimization/36286
- * gcc.dg/tree-ssa/pr36287.c: New.
- * gfortran.dg/pr36286.f90: New.
-
-2008-05-21 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/27777:
- * gcc.dg/cpp/pr27777.c: New file.
-
-2008-05-21 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/36023
- * g++.dg/ext/complit10.C: New test.
-
-2008-05-21 Janis Johnson <janis187@us.ibm.com>
-
- * gfortran.dg/nint_2.f90: XFAIL only when using -O0.
-
- * lib/target-supports-dg.exp (dg-xfail-run-if): New.
- * gcc.test-framework/dg-do-run-xrif-exp-F.c: New test.
- * gcc.test-framework/dg-do-run-xrif-exp-P.c: New test.
- * gcc.test-framework/dg-do-run-xrif-exp-XF.c: New test.
- * gcc.test-framework/dg-do-run-xrif-exp-XP.c: New test.
- * gcc.test-framework/dg-dot-run-xrif-exp-F.c: New test.
- * gcc.test-framework/dg-dot-run-xrif-exp-P.c: New test.
- * gcc.test-framework/dg-dot-run-xrif-exp-XF.c: New test.
- * gcc.test-framework/dg-dot-run-xrif-exp-XP.c: New test.
- * gcc.test-framework/test-framework.awk: Handle new tests.
-
-2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36257
- * gfortran.dg/char_length_12.f90: New test.
-
-2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
-
- * gcc.c-torture/execute/builtins/memops-asm.c: Set inside_main.
-
- * lib/gcc-dg.exp (cleanup-saved-temps): Add optional list of
- suffixes not to delete.
- * gcc.dg/pch/save-temps-1.c: Don't delete ".s" temp.
- * g++.dg/pch/pch.C: Likewise.
-
- * g++.old-deja/g++.pt/static11.C: Replace xfail by target requirement.
-
- * lib/dg-pch.exp (dg-pch): Don't expect .s files if there are
- dg-errors expected.
-
-2008-05-20 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/20771
- * lib/dg-pch.exp: Move a flag in arguments to dg-test to differentiate
- compile results for pch test lines in gcc.sum.
- * gcc.dg/pch/counter-2.c: Add comments to dg-error directives to
- make them unique in gcc.sum.
- * gcc.dg/pch/valid-1.c: Ditto.
- * gcc.dg/pch/valid-2.c: Ditto.
- * gcc.dg/pch/valid-3.c: Ditto.
- * gcc.dg/pch/warn-1.c: Same for dg-warning.
-
-2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/array-quals-1.c: xfail read only section
- check for avr target.
-
-2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR testsuite/34889
- * gcc.c-torture/execute/builtins/pr23484-chk.c : Correct test for
- 16bit int target.
-
-2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/tree-ssa/ifc-20040816-1.c : signal.h not required.
- * gcc.c-torture/execute/ieee/fp-cmp-1.c : Do not include signal.h if
- SIGNAL_SUPPRESS.
- * gcc.c-torture/execute/ieee/fp-cmp-2.c : Ditto.
- * gcc.c-torture/execute/ieee/fp-cmp-3.c : Ditto.
-
-2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/builtins-config.h: AVR does not have C99 runtime.
-
-2008-05-20 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/22523
- * g++.dg/template/inline1.C: Handle syntax for more assemblers.
-
- * lib/scandump.exp (scan-dump): Handle non-existent dump file.
- (scan-dump-times): Ditto.
- (scan-dump-not): Ditto.
- (scan-dump-dem): Ditto.
- (scan-dump-dem-not): Ditto.
-
- * obj-c++.dg/bitfield-1.mm: XFAIL for ICE; move dg-options after other
- test directives; use dg-prune-output instead of dg-excess-errors for
- possible message to ignore; adjust line numbers for messages.
-
- * obj-c++.dg/comp-types-10.mm: XFAIL for ICE.
- * obj-c++.dg/try-catch-9.mm: XFAILfor ICE, move dg-options after
- other test directives.
-
- * obj-c++.dg/try-catch-2.mm: Move dg-options after dg-xfail-if.
- * obj-c++.dg/encode-8.mm: Move dg-options after dg-do.
- * obj-c++.dg/bitfield-4.mm: Ditto; use dg-prune-output instead of
- dg-excess-errors for possible additional message.
- * obj-c++.dg/layout-1.mm: Use dg-prune-output instead of
- dg-excess-errors for possible additional message.
-
- * g++.dg/ext/vector14.C: Ignore a possible warning.
-
-2008-05-20 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/modular.adb: Remove test, gnat.dg/modular1.adb already
- checks that the bug is fixed and is more concise.
-
-2008-05-20 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/35791
- * gnat.dg/check_displace_generation.adb: New.
-
-2008-05-20 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/30740
- * gnat.dg/modular.adb: New test.
-
-2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36181
- * gcc.dg/tree-ssa/pr36181.c: New.
-
-2008-05-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/36057
- * g++.dg/compat/struct-layout-1_generate.c (DG_OPTIONS): Remove.
- (const char *dg_options): New array.
- (switchfiles): Loop through dg_options array to generate dg-options
- directives. Remove numbered arguments usage from fprintf
- format strings.
-
-2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/36206
- * gfortran.dg/pr36206.f: New.
-
-2008-05-20 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/testint.adb: New test.
- * gnat.dg/modular1.adb: New test.
- * gnat.dg/test_iface_aggr.adb: New test.
- * gnat.dg/gen_disp.ad[sb]: New test.
- * gnat.dg/specs/tag2.ads: Adjust.
- * gnat.dg/specs/empty_variants.ads: Adjust.
-
-2008-05-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
- * gcc.dg/tree-ssa/ssa-sink-2.c: Likewise.
- * gcc.dg/tree-ssa/ssa-sink-3.c: Likewise.
- * gcc.dg/tree-ssa/ssa-sink-4.c: Likewise.
-
-2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
-
- * gcc.c-torture/compile/20061214-1.c: New test.
-
-2008-05-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/20080519-1.c: New testcase.
-
-2008-05-19 Xinliang David Li <davidxl@google.com>
-
- * gcc.dg/cdce1.c: Remove test.
- * gcc.dg/cdce2.c: Remove test.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36265
- * gfortran.dg/char_length_11.f90: New test.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/widechar_intrinsics_5.f90: Add dg-do directive and
- use -fbackslash option.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/char_cast_2.f90: Adjust count in scanning the tree
- dump file.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/bind_c_module.f90: Adjust expected error messages.
-
-2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/char_cast_1.f90: Adjust count in scanning the tree
- dump file.
-
-2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/builtins-error.c: Test __builtin_isinf_sign.
- * gcc.dg/tg-tests.h: Likewise. Mark variables volatile.
- * gcc.dg/torture/builtin-isinf_sign-1.c: New test.
-
-2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/achar_3.f90: Adjust error messages.
- * gfortran.dg/achar_5.f90: New test.
- * gfortran.dg/achar_6.F90: New test.
- * gfortran.dg/widechar_1.f90: New test.
- * gfortran.dg/widechar_2.f90: New test.
- * gfortran.dg/widechar_3.f90: New test.
- * gfortran.dg/widechar_4.f90: New test.
- * gfortran.dg/widechar_intrinsics_1.f90: New test.
- * gfortran.dg/widechar_intrinsics_2.f90: New test.
- * gfortran.dg/widechar_intrinsics_3.f90: New test.
- * gfortran.dg/widechar_intrinsics_4.f90: New test.
- * gfortran.dg/widechar_intrinsics_5.f90: New test.
- * gfortran.dg/widechar_select_1.f90: New test.
- * gfortran.dg/widechar_select_2.f90: New test.
-
-2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_optimization2.ad[sb]: New test.
-
-2008-05-18 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36090
- * gcc.c-torture/execute/20080502-1.c: New test.
-
-2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/stat_1.f90: Skip on mingw.
- * gfortran.dg/stat_2.f90: Skip on mingw.
-
-2008-05-18 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/36251
- gfortran.dg/public_private_module.f90: new test.
- gfortran.dg/bind_c_module.f90: new test.
-
-2008-05-17 Xinliang David Li <davidxl@google.com>
-
- * gcc.dg/cdce1.c: New test
- * gcc.dg/cdce2.c: New test
-
-2008-05-17 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/initialization_19.f90: New test.
-
-2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/bit_packed_array3.adb: New test.
-
-2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/warn4.adb: New test.
-
-2008-05-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35756
- PR fortran/35759
- * gfortran.dg/where_1.f90: New test.
-
- PR fortran/35743
- PR fortran/35745
- * gfortran.dg/where_2.f90: New test.
-
-2008-05-16 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/rank_1.f90
- * gfortran.dg/rank_2.f90
-
-2008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- * gfortran.dg/missing_parens_1.f90: Update test.
- * gfortran.dg/fmt_t_7.f: Update test.
-
-2008-05-16 Steven G. Kargl <kargls@comcast.net>
-
- * gfortran.dg/int_3.f90: New test.
- * gfortran.dg/and_or_xor.f90: New test.
-
-2008-05-16 Daniel Kraft <d@domob.eu>
-
- PR fortran/27997
- * gfortran.dg/array_constructor_type_1.f03: New test
- * gfortran.dg/array_constructor_type_2.f03: New test
- * gfortran.dg/array_constructor_type_3.f03: New test
- * gfortran.dg/array_constructor_type_4.f03: New test
- * gfortran.dg/array_constructor_type_5.f03: New test
- * gfortran.dg/array_constructor_type_6.f03: New test
- * gfortran.dg/array_constructor_type_7.f03: New test
- * gfortran.dg/array_constructor_type_8.f03: New test
- * gfortran.dg/array_constructor_type_9.f: New test
- * gfortran.dg/array_constructor_type_10.f03: New test
- * gfortran.dg/array_constructor_type_11.f03: New test
- * gfortran.dg/array_constructor_type_12.f03: New test
- * gfortran.dg/array_constructor_type_13.f90: New test
- * gfortran.dg/array_constructor_type_14.f03: New test
- * gfortran.dg/array_constructor_type_15.f03: New test
- * gfortran.dg/array_constructor_type_16.f03: New test
- * gfortran.dg/array_constructor_type_17.f03: New test
- * gfortran.dg/array_constructor_type_18.f03: New test
-
-2008-05-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36246
- * gcc.target/i386/pr36246.c: New test.
-
-2008-05-16 Sebastian Pop <sebastian.pop@amd.com>
- Jan Sjodin <jan.sjodin@amd.com>
-
- PR tree-optimization/36228
- * gcc.dg/vect/pr36228.c: New.
-
-2008-05-16 Hans-Peter Nilsson <hp@axis.com>
-
- * gfortran.dg/f2003_io_4.f03, gfortran.dg/f2003_io_5.f03,
- gfortran.dg/f2003_io_7.f03, gfortran.dg/namelist_45.f90,
- gfortran.dg/namelist_46.f90, gfortran.dg/namelist_47.f90,
- gfortran.dg/f2003_io_1.f03: Gate test on effective_target
- fd_truncate.
- * gfortran.dg/fmt_t_7.f: Ditto. Apply dos2unix.
-
-2008-05-16 Daniel Kraft <d@domob.eu>
-
- * gfortran.dg/private_type_6.f90: Adapted expected error messages.
- * gfortran.dg/structure_constructor_1.f03: New test.
- * gfortran.dg/structure_constructor_2.f03: New test.
- * gfortran.dg/structure_constructor_3.f03: New test.
- * gfortran.dg/structure_constructor_4.f03: New test.
- * gfortran.dg/structure_constructor_5.f03: New test.
- * gfortran.dg/structure_constructor_6.f03: New test.
- * gfortran.dg/structure_constructor_7.f03: New test.
- * gfortran.dg/structure_constructor_8.f03: New test.
- * gfortran.dg/structure_constructor_9.f90: New test.
-
-2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/m128-check.h: New.
- * gcc.target/i386/set-v16qi-1.h: Likewise.
- * gcc.target/i386/set-v16qi-2.h: Likewise.
- * gcc.target/i386/set-v8hi-1.h: Likewise.
- * gcc.target/i386/set-v8hi-2.h: Likewise.
- * gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
- * gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
- * gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
- * gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-1.c: Likewise.
- * gcc.target/i386/sse4_1-set-v16qi-2.c: Likewise.
-
- * gcc.target/i386/sse2-check.h: Include m128-check.h. Don't
- include <stdio.h>.
- * gcc.target/i386/sse4_1-check.h: Likewise.
-
-2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
-
- PR middle-end/36194
- * gcc.dg/pr36194.c: New test.
-
-2008-05-15 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR libfortran/34974
- * gfortran.dg/fmt_t_7.f: Remove XFAIL, patch for PR 25561/Part 1 fixes
- this.
-
-2008-05-15 Janis Johnson <janis187@us.ibm.com>
-
- * lib/torture-options.exp: New support for torture options.
- * lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture procs.
- * lib/c-torture.exp: Define C_TORTURE_OPTIONS instead of
- TORTURE_OPTIONS; don't define torture_with_loops and
- torture_without_loops.
- * lib/gcc-dg.exp: Define DG_TORTURE_OPTIONS instead of
- TORTURE_OPTIONS; don't define torture_with_loops and
- torture_without_loops.
- (gcc-dg-runtest): Use new torture procs if no torture options defined.
- * lib/fortran-torture.exp: Define FORTRAN_TORTURE_OPTIONS instead of
- TORTURE_OPTIONS.
- (fortran-torture-execute): Use torture_with_loops instead of
- TORTURE_OPTIONS.
- (fortran-torture): Ditto.
- * lib/objc-torture.exp: Define OBJC_TORTURE_OPTIONS instead of
- TORTURE_OPTIONS; don't define torture_with_loops and
- torture_without_loops.
- * gcc.c-torture/execute/execute.exp: Use new torture procs.
- * gcc.c-torture/execute/builtins/builtins.exp: Ditto.
- * gcc.c-torture/execute/ieee/ieee.exp: Ditto.
- * gcc.c-torture/unsorted/unsorted.exp: Ditto.
- * gfortran.fortran-torture/execute/execute.exp: Ditto.
- * gfortran.fortran-torture/compile/compile.exp: Ditto.
- * gcc.target/x86_64/abi/abi-x86_64.exp: Ditto.
- * gcc.target/i386/math-torture/math-torture.exp: Define
- MATH_TORTURE_OPTIONS, use new torture procs.
- * gcc.dg/pch/pch.exp: Use new torture procs.
- * gcc.dg/format/format.exp: Ditto.
- * gcc.misc-tests/i386-prefetch.exp: Ditto.
- * gcc.misc-tests/dectest.exp: Ditto.
- * objc.dg/pch/pch.exp: Ditto.
- * objc/execute/execute.exp: Ditto.
- * objc/execute/exceptions/exceptions.exp: Ditto.
- * objc/compile/compile.exp: Ditto.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36245
- * gcc.c-torture/compile/pr36245.c: New testcase.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/loadpre7.c: Adjust scan for not performed
- transformation.
- * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36244
- * gcc.dg/torture/pr36244.c: New testcase.
-
-2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr8.ad[sb]: New test.
- * gnat.dg/discr8_pkg[123].ads: New helpers.
-
-2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/sse-set-ps-1.c: New.
- * gcc.target/i386/sse4_1-set-ps-1.c: Likewise.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36009
- PR tree-optimization/36204
- * gcc.dg/tree-ssa/ssa-lim-5.c: New testcase.
- * gcc.dg/tree-ssa/ssa-lim-6.c: Likewise.
-
-2008-05-15 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34330
- * gcc.dg/torture/pr34330.c: New testcase.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36059
- * gfortran.dg/repack_arrays_1.f90: New test.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36186
- * gfortran.dg/boz_11.f90: New test.
- * gfortran.dg/boz_12.f90: New test.
-
-2008-05-14 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36233
- * gfortran.dg/actual_procedure_1.f90: New test
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35682
- * gfortran.dg/bound_4.f90: New test.
- * gfortran.dg/bounds_check_14.f90: New test.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35685
- * gfortran.dg/bound_3.f90: New test.
-
-2008-05-14 Michael Meissner <michael.meissner@amd.com>
- Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
-
- * gcc.target/i386/sse5-imul32widen-vector.c: New file to test x86
- SSE5 optimizations.
- * gcc.target/i386/sse5-imul64-vector.c: Ditto.
- * gcc.target/i386/sse5-rotate1-vector.c: Ditto.
- * gcc.target/i386/sse5-rotate2-vector.c: Ditto.
- * gcc.target/i386/sse5-rotate3-vector.c: Ditto.
- * gcc.target/i386/sse5-shift1-vector.c: Ditto.
- * gcc.target/i386/sse5-shift2-vector.c: Ditto.
- * gcc.target/i386/sse5-shift3-vector.c: Ditto.
-
-2008-05-14 Michael Meissner <michael.meissner@amd.com>
-
- PR target/36224
- * gcc.dg/pr36224.c: New file.
-
-2008-05-14 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/blkextract_from_reg.adb: New test.
-
-2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36215
- * gfortran.dg/include_3.f95: New test.
-
-2008-05-14 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36098
- * gcc.dg/vect/vect.exp: Compile with -O3 all the tests named "O3-*".
- * gcc.dg/vect/O3-pr36098.c: New test.
-
-2008-05-14 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/old_errors.ads, gnat.dg/old_errors.adb: New.
-
-2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * g++.dg/eh/080513-1.C: New testcase.
-
-2008-05-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36222
- * gcc.target/i386/pr36222-1.c: New test.
-
-2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/sse-init-v4hi-1.c: New.
- * gcc.target/i386/sse-init-v4sf-1.c: Likewise.
- * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
- * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
- * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
- * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
- * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise.
- * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise.
- * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise.
- * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise.
-
-2008-05-13 Janis Johnson <janis187@us.ibm.com>
-
- PR testsuite/35127
- * gcc.c-torture/compile/20031125-1.c: Remove dg-do, dg-options.
- * gcc.c-torture/compile/20031125-2.c: Ditto.
- * gcc.c-torture/compile/20031203-1.c: Ditto.
- * gcc.c-torture/compile/acc1.c: Remove -O2 from dg-options.
- * gcc.c-torture/compile/builtin_constant_p.c: Remove dg-options.
- * gcc.c-torture/compile/pr21562.c: Remove -O3 from dg-options.
- * gcc.c-torture/compile/pr25483.c: Remove -O from dg-options.
- * gcc.c-torture/compile/pr32349.c: Remove -O2 from dg-options.
- * gcc.c-torture/compile/pr32355.c: Remove dg-options.
- * gcc.c-torture/compile/pr34448.c: Ditto.
- * gcc.c-torture/compile/pr34648.c: Remove -O2 from dg-options.
-
-2008-05-13 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/22168:
- * gcc.dg/pch/import-2.hs: Add -Wno-deprecated.
- * gcc.dg/pch/import-1.hs: Add -Wno-deprecated.
- * gcc.dg/pch/import-2.c: Add -Wno-deprecated.
- * gcc.dg/pch/import-1.c: Add -Wno-deprecated.
- * gcc.dg/cpp/import2.c: Add -Wno-deprecated.
- * gcc.dg/cpp/import1.c: Add -Wno-deprecated.
- * gcc.dg/cpp/trad/assert3.c: Add -Wno-deprecated.
- * gcc.dg/cpp/trad/assert2.c: Add -Wno-deprecated.
- * gcc.dg/cpp/trad/assert1.c: Add -Wno-deprecated.
- * gcc.dg/cpp/ident.c: Add -Wno-deprecated.
- * gcc.dg/cpp/ident-1.c: Add -Wno-deprecated.
- * gcc.dg/cpp/extratokens.c: Add -Wno-deprecated.
- * gcc.dg/cpp/assert3.c: Add -Wno-deprecated.
- * gcc.dg/cpp/assert2.c: Add -Wno-deprecated.
- * gcc.dg/cpp/assert1.c: Add -Wno-deprecated.
- * gcc.dg/cpp/assert4.c: Compile with -ansi and not -pedantic. Add
- -Wno-deprecated.
- * gcc.dg/cpp/pr22168.c: New file.
- * gcc.dg/cpp/pr22168-2.c: New file.
-
-2008-05-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36227
- * gcc.dg/pr36227.c: New testcase.
-
-2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr7.adb: New test
- * gnat.dg/conv_integer.adb: Likewise.
-
-2008-05-12 Janis Johnson <janis187@us.ibm.com>
-
- * gcc.c-torture/compile/pr11832.c: XFAIL for mips and powerpc-linux,
- then ignore ICE message to avoid a second failure.
- * gcc.c-torture/compile/pr33009.c: Ditto.
- * lib/gcc-dg.exp: Explain in comment how to XFAIL an ICE.
-
-2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/pr34457-1.c: Skip for target without trampolines.
- * gcc.dg/20050607-1.c: Ditto.
- * gcc.dg/trampoline-1.c: Ditto.
- * gcc.dg/debug/debug-3.c: Ditto.
- * gcc.dg/debug/debug-5.c: Ditto.
-
-2008-05-12 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/specs/statically_matching.ads: New.
-
-2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/sse2-set-epi32-1.c: New.
- * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
- * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise.
- * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise.
-
-2008-05-12 Uros Bizjak <ubizjak@gmail.com>
-
- PR rtl-optimization/36111
- * gcc.dg/pr36111.c: New test.
-
-2008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36176
- * gfortran.dg/transfer_simplify_9.f90: New test.
-
-2008-05-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/35331
- * g++.dg/cpp0x/vt-35331.C: New.
- * g++.dg/cpp0x/pr32125.C: Adjust.
- * g++.dg/cpp0x/pr32126.C: Likewise.
- * g++.dg/cpp0x/pr31438.C: Likewise.
- * g++.dg/cpp0x/variadic81.C: Likewise.
- * g++.dg/cpp0x/vt-34055.C: Likewise.
- * g++.dg/cpp0x/vt-34606.C: Likewise.
-
-2008-05-12 Ira Rosen <irar@il.ibm.com>
-
- * gfortran.dg/vect/pr36119.f: Rename to ...
- * gfortran.dg/vect/O3-pr36119.f90: ... this. Compile for all targets
- with -O3.
-
-2008-05-11 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/mips.exp: Move passing -DMIPS16=... from here ...
- * lib/target-supports.exp (add_options_for_mips16_attribute):
- ... to here.
-
-2008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/35719
- * gfortran.dg/associated_5.f90: New test.
-
-2008-05-11 Richard Sandiford <rdsandiford@googlemail.com>
-
- * gcc.target/mips/scc-1.c: Require mips16_attribute, and add
- the associated options.
- * gcc.target/mips/scc-3.c: Likewise.
-
-2008-05-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/default_format_1.f90: Move denormals tests to
- gfortran.dg/default_format_denormal_1.f90.
- * gfortran.dg/default_format_denormal_1.f90: Added denormal tests.
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/nint_2.f90: XFAIL on mingw.
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/streamio_15.f90: Take care of Windows CRLF line
- terminator.
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/fseek.f90: Take care of Windows CRLF line
- terminator.
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/fmt_t_5.f90: Take care of Windows CRLF line
- terminator.
-
-2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
-
- PR rtl-optimization/36185
- * g++.dg/opt/pr36185.C
-
-2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * write_to_null.f90: Rename to write_to_null.F90.
- * write_to_null.F90: On Windows, "nul" is the equivalent of the
- Unix /dev/null.
-
-2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
-
- PR rtl-optimization/33642
- * gcc.c-torture/compile/pr11832.c: Skip for MIPS.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-05-09 Tom Tromey <tromey@redhat.com>
-
- * gcc.dg/pr22231.c: Fix dg-error call.
-
-2008-05-09 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/22231:
- * gcc.dg/pr22231.c: New file.
-
-2008-05-09 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36187
- * g++.dg/opt/pr36187.C: New testcase.
-
-2008-05-08 Jan Sjodin <jan.sjodin@amd.com>
- Sebastian Pop <sebastian.pop@amd.com>
-
- * gcc.dg/tree-ssa/data-dep-1.c: New.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/20040911-1.c: Adjust.
- * gcc.dg/tree-ssa/20040517-1.c: Likewise.
- * gcc.dg/tree-ssa/pr26421.c: Likewise.
- * gcc.dg/tree-ssa/pr23382.c: Likewise.
- * gcc.dg/tree-ssa/alias-15.c: Likewise.
- * gcc.dg/tree-ssa/inline_asm-1.c: Likewise.
- * gcc.dg/tree-ssa/inline_asm-2.c: Likewise.
- * gcc.dg/tree-ssa/pta-fp.c: Likewise.
- * gcc.dg/tree-ssa/20031015-1.c: Likewise.
- * gcc.dg/tree-ssa/alias-12.c: Likewise.
-
-2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/36162
- * gfortran.dg/module_widestring_1.f90: New test.
-
-2008-05-08 Rafael Espíndola <espindola@google.com>
-
- * gcc.dg/vect/vect-111.c: Rename to no-trapping-math-vect-111.c
- * gcc.dg/vect/vect-ifcvt-11.c: Rename to
- no-trapping-math-vect-ifcvt-11.c
- * gcc.dg/vect/vect-ifcvt-12.c: Rename to
- no-trapping-math-vect-ifcvt-12.c
- * gcc.dg/vect/vect-ifcvt-13.c: Rename to
- no-trapping-math-vect-ifcvt-13.c
- * gcc.dg/vect/vect-ifcvt-14.c: Rename to
- no-trapping-math-vect-ifcvt-14.c
- * gcc.dg/vect/vect-ifcvt-15.c: Rename to
- no-trapping-math-vect-ifcvt-15.c
-
-2008-05-08 David Daney <ddaney@avtrex.com>
-
- * lib/target-supports.exp (check_effective_target_sync_int_long): Add
- mips*-*-*.
- (check_effective_target_sync_char_short): Same.
-
-2008-05-08 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.c-torture/compile/pr36172.c: Replace unsigned long by
- __SIZE_TYPE__.
-
-2008-05-08 Sa Liu <saliu@de.ibm.com>
-
- * gcc.target/spu/subti3.c: New.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36154
- * gcc.c-torture/compile/pr36154.c: New testcase.
-
-2008-05-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36172
- * gcc.c-torture/compile/pr36172.c: New testcase.
-
-2008-05-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35714
- * gcc.target/i386/pr35714.c: New test.
-
-2008-05-07 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/36013
- * gcc.c-torture/execute/20080506-2.c: New test.
-
- PR middle-end/36137
- * gcc.c-torture/execute/20080506-1.c: New test.
-
-2008-05-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34974
- * gfortran.dg/fmt_t_7.f: XFAIL this until we get issue resolved.
-
-2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/36155
- * g++.dg/ext/utf32-4.C: Fix a typo.
-
-2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/36155
- * gcc.dg/utf32-4.c: Fix a typo.
-
- * lib/target-supports.exp (check_effective_target_4byte_wchar_t):
- Use __WCHAR_TYPE__ instead of wchar_t.
-
-2008-05-06 Mark Shinwell <shinwell@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
- Andrew Jenner <andrew@codesourcery.com>
-
- * g++.old-deja/g++.jason/enum6.C, g++.old-deja/g++.law/enum9.C,
- g++.old-deja/g++.other/enum4.C, gfortran/enum_9.f90,
- gfortran.dg/enum_10.f90: Broaden dg-options pattern.
-
-2008-05-06 Tom Tromey <tromey@redhat.com>
-
- PR preprocessor/35313, PR preprocessor/36088:
- * gcc.dg/cpp/pr35313.c: New file.
- * gcc.dg/cpp/if-oppr.c: Remove test for ',' in a conditional
- expression.
- * gcc.dg/cpp/if-oppr2.c: New file.
-
-2008-05-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/36117
- * gfortran.dg/bessel_2.f90: New.
-
-2008-05-06 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/fatp_sra.adb: New test.
-
-2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/36141
- * gcc.c-torture/pr36141.c: New testcase.
-
-2008-05-06 Danny Smith <dannysmith@users.sourceforge.net>
-
- * lib/target-supports.exp (check_effective_target_4byte_wchar_t):
- New proc.
- * gcc.dg/utf16-4.c: Use it.
- * gcc.dg/utf32-4.c: Use it.
- * g++.dg/ext/utf16-4.C: Use it.
- * g++.dg/ext/utf32-4.C: Use it.
-
-2008-05-05 Danny Smith <dannysmith@users.sourceforge.net>
-
- * gfortran.dg/dev_null.f90. Remove and replace with...
- * gfortran.dg/dev_null.F90: Use preprocessor define to
- generalize the DEV_NULL name.
-
-2008-05-05 Andrew Pinski <andrew.pinski@playstation.sony.com>
-
- * gcc.dg/tree-ssa/forwprop-5.c: New testcase.
- * gcc.dg/tree-ssa/forwprop-6.c: New testcase.
- * gcc.dg/tree-ssa/forwprop-7.c: New testcase.
- * gcc.dg/tree-ssa/forwprop-8.c: New testcase.
- * gcc.dg/tree-ssa/forwprop-9.c: New testcase.
-
-2008-05-05 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/36119
- * gfortran.dg/vect/pr36119.f: New test.
-
-2008-05-04 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35995
- * gfortran.dg/intrinsic_ifunction_1.f90: New test case.
-
-2008-05-04 Andy Hutchinson <hutchinsonandy@aim.com>
-
- * gcc.dg/nested-func-5.c: Skip for target without trampolines.
- * gcc.dg/torture/nested-fn-1.c: Ditto.
-
-2008-05-04 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35990
- * gfortran.dg/intrinsic_pack_4.f90: New test case.
-
-2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr6_pkg.ads: New helper.
- * gnat.dg/discr6.adb: New test.
-
-2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/alignment4.adb: Adjust.
- * gnat.dg/alignment5.adb: Likewise.
- * gnat.dg/alignment6.adb: XFAIL.
-
-2008-05-03 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/loop-36.c: Cleanup the dump file.
-
-2008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/33268
- * gfortran.dg/io_constraints_4.f90: New test.
-
-2008-05-01 Simon Baldwin <simonb@google.com>
-
- PR bootstrap/36108
- * gcc.dg/Warray-bounds.c: Removed frontend warnings update.
- * g++.dg/warn/Warray-bounds.c: Ditto.
- * gcc.dg/Warray-bounds-noopt.c: Removed testcase.
- * g++.dg/warn/Warray-bounds-noopt.c: Ditto.
-
-2008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
-
- PR fortran/35940
- * gfortran.dg/index.f90: New test.
-
-2008-05-01 Simon Baldwin <simonb@google.com>
-
- * gcc.dg/Warray-bounds.c: Updated for frontend warnings,
- additional tests for arrays of size 0 and size 1.
- * g++.dg/warn/Warray-bounds.c: Ditto.
- * gcc.dg/Warray-bounds-noopt.c: New testcase.
- * g++.dg/warn/Warray-bounds-noopt.c: Ditto.
-
-2008-05-01 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36093
- * gcc.c-torture/execute/pr36093.c: New testcase.
-
-2008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * gfortran.dg/selected_char_kind_1.f90: New test.
- * gfortran.dg/selected_char_kind_2.f90: New test.
- * gfortran.dg/selected_char_kind_3.f90: New test.
-
-2008-04-28 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35997
- * gfortran.dg/use_rename_3.f90
-
-2008-04-30 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/21636
- * gcc.dg/tree-ssa/ssa-ccp-19.c: New testcase.
-
-2008-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35993
- * gfortran.dg/intrinsic_product_1.f90: New test case.
-
-2008-04-30 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14847
- * gcc.dg/tree-ssa/ssa-ifcombine-6.c: New testcase.
-
-2008-04-30 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35986
- * g++.dg/overload/template4.C: New test.
-
-2008-04-30 Kai Tietz <kai.tietz@onevision.com>
-
- * gfortran.dg/chmod_1.f90: Disable for *-*-mingw*.
- * gfortran.dg/chmod_2.f90: Likewise.
- * gfortran.dg/chmod_3.f90: Likewise.
- * gfortran.dg/open_errors.f90: Likewise.
-
-2008-04-30 Nathan Sidwell <nathan@codesourcery.com>
-
- * gcc.dg/tls/section-2.c: Restrict to vxworks.
-
-2008-04-29 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/35792
- * gnat.dg/specs/tag2.ads: New.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36078
- * gfortran.fortran-torture/compile/pr36078.f90: New testcase.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/15255
- * gcc.dg/fold-plusmult.c: New testcase.
-
-2008-04-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36077
- * gcc.c-torture/execute/pr36077.c: New testcase.
-
-2008-04-29 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/sync-2.c: Set dg-options "-ansi".
-
-2008-04-29 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35650
- * g++.dg/init/ref17.C: New test.
-
- PR c++/35987
- * g++.dg/other/error28.C: New test.
-
-2008-04-28 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36073
- * gcc.target/i386/pr36073.c: New test.
-
-2008-04-28 Richard Guenther <rguenther@suse.de>
-
- PR testsuite/34223
- * gcc.dg/vect/vect-118.c: Rename to ...
- * gcc.dg/vect/O3-vect-pr34223.c: ... this.
-
-2008-04-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36066
- * gcc.dg/torture/pr36066.c: New testcase.
-
-2008-04-28 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/36064
- * gcc.target/i386/pr36064.c: New test.
-
-2008-04-28 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/36056
- * g++.dg/ext/vector14.C: Add -msse for 32bit x86 targets.
-
-2008-04-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/18754
- PR tree-optimization/34223
- * gcc.dg/tree-ssa/loop-36.c: New testcase.
- * gcc.dg/tree-ssa/loop-37.c: Likewise.
- * gcc.dg/vect/vect-118.c: Likewise.
- * gcc.dg/Wunreachable-8.c: XFAIL bogus warning.
- * gcc.dg/vect/vect-66.c: Increase loop trip count.
- * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
- * gcc.dg/vect/no-section-anchors-vect-69.c: Likewise.
- * gcc.dg/vect/vect-76.c: Likewise.
- * gcc.dg/vect/vect-outer-6.c: Likewise.
- * gcc.dg/vect/vect-outer-1.c: Likewise.
- * gcc.dg/vect/vect-outer-1a.c: Likewise.
- * gcc.dg/vect/vect-11a.c: Likewise.
- * gcc.dg/vect/vect-shift-1.c: Likewise.
- * gcc.target/i386/vectorize1.c: Likewise.
-
-2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
-
- * gcc.dg/tls/section-2.c: New.
- * gcc.dg/tls/emutls-1.c: New.
- * lib/target-supports.exp (check_effective_target_tls_native):
- Exclude vxworks.
-
-2008-04-26 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/36053
- * gcc.dg/large-size-array-2.c: Fix x86_64-*-mingw* check.
- * gcc.dg/large-size-array-4.c: Likewise.
-
-2008-04-26 George Helffrich <george@gcc.gnu.org>
-
- PRs fortran/35154, fortran/23057
- * gfortran.dg/debug/pr35154-stabs.f: New test case for
- .stabs functionality.
- * gfortran.dg/debug/pr35154-dwarf2.f: New test case for
- DWARF functionality.
-
-2008-04-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Expect
- __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 and
- __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 to be defined.
- * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
-
-2008-04-25 Tobias Burnus <burnus@net-b.de>
-
- * gfortran/array_constructor_23.f: Change REAL(10) into kind > 8.
- * gfortran/array_constructor_24.f: New; REAL(8) version of the test.
-
-2008-04-25 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/array-quals-1.c: Add xfail for x86_64-*-mingw*.
- * gcc.dg/builtins-12.c: Add dg-options "-ansi".
- * gcc.dg/builtins-13.c: Likewise.
- * gcc.dg/pr25682.c: Likewise.
- * gcc.dg/pr33694.c: Likewise.
- * gcc.dg/c90-const-expr-2.c: Add check for _WIN64 define.
- * gcc.dg/c99-const-expr-2.c: Likewise.
- * gcc.dg/ia64-sync-1.c: Add typedef of size_t, for prototype.
- * gcc.dg/ia64-sync-2.c: Likewise.
- * gcc.dg/ia64-sync-3.c: Likewise
- * gcc.dg/large-size-array.c: Add check for _WIN64 define.
- * gcc.dg/large-size-array-3.c: Likewise.
- * gcc.dg/large-size-array-2.c: Add x86_64-*-mingw* for ignore error
+ * gcc.target/powerpc/20030218-1.c: Skip if not powerpc_spe_nocache
+ and use consistent CFLAGS.
+ * gcc.target/powerpc/20030505.c: Likewise.
+ * gcc.target/powerpc/20081204-1.c: Likewise.
+ * gcc.target/powerpc/ppc-spe.c: Likewise.
+ * gcc.target/powerpc/spe1.c: Likewise.
+ * g++.dg/ext/spe1.C: Likewise.
+ * g++.dg/other/opaque-1.C: Likewise.
+ * g++.dg/other/opaque-2.C: Likewise.
+ * g++.dg/other/opaque-3.C: Likewise.
+
+2009-01-14 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.dg/vect/vect-105.c: Prevent compiler from hoisting abort
+ out of loop.
+
+2009-01-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38826
+ PR middle-end/38477
+ * gcc.dg/Wstrict-aliasing-bogus-pta-1.c: New testcase.
+
+2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/graphite/pr38786.c: Fix commit problem.
+
+2009-01-14 Nick Clifton <nickc@redhat.com>
+
+ PR c++/37862
+ * g++.cp/parse/pr37862.C: New test.
+
+2009-01-14 Julian Brown <julian@codesourcery.com>
+
+ * gcc.target/arm/eabi1.c (__eabi_uread4, __eabi_uwrite4)
+ (__eabi_uread8, __eabi_uwrite8): Change spellings of declarations
+ to...
+ (__aeabi_uread4, __aeabi_uwrite4, __aeabi_uread8, __aeabi_uwrite8):
+ These.
+
+2009-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/38774
+ * gcc.dg/torture/pr38774.c: New test.
+
+ PR c++/38795
+ * g++.dg/cpp0x/pr38795.C: New test.
+
+2009-01-13 Daniel Jacobowitz <dan@codesourcery.com>
+ Nathan Froyd <froydnj@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/powerpc/altivec-consts.c: Run if vmx_hw, compile
+ otherwise. Do not check for AltiVec at runtime.
+ * gcc.target/powerpc/altivec-varargs-1.c: Likewise.
+ * gcc.target/powerpc/altivec-vec-merge.c: Likewise.
+ * gcc.target/powerpc/altivec-1.c: Likewise.
+ * gcc.target/powerpc/altivec-3.c: Likewise.
+ * gcc.target/powerpc/altivec-10.c: Likewise.
+ * gcc.target/powerpc/altivec-12.c: Likewise.
+ * gcc.target/powerpc/altivec-24.c: Likewise.
+ * gcc.target/powerpc/altivec-cell-2.c: Likewise.
+ * gcc.target/powerpc/altivec-cell-3.c: Likewise.
+ * gcc.target/powerpc/altivec-cell-4.c: Likewise.
+ * gcc.target/powerpc/pr35907.c: Likewise.
+ * gcc.target/powerpc/altivec-cell-8.c: Run if cell_hw, compile
+ otherwise. Do not check for Cell at runtime.
+ * gcc.target/powerpc/altivec_check.h: Delete.
+
+ * g++.dg/ext/altivec-2.C: Do not check for AltiVec at runtime.
+ * g++.dg/ext/altivec-3.C: Run if vmx_hw, compile otherwise. Do
+ not check for AltiVec at runtime.
+ * g++.dg/ext/altivec-cell-2.C: Likewise.
+ * g++.dg/ext/altivec-cell-3.C: Likewise.
+ * g++.dg/ext/altivec-cell-4.C: Likewise.
+ * g++.dg/eh/simd-2.C: Only use -maltivec if vmx_hw.
+ * g++.dg/eh/check-vect.h (sig_ill_handler): Remove AltiVec runtime
check.
- * gcc.dg/large-size-array-4.c: Likewise.
- * gcc.dg/max-1.c: Replace use of long by ssize_t.
-
-2008-04-24 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/lower-subreg-1.c: Skip IA64 platform.
-
-2008-04-24 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/vect/slp-15.c: Fix scan when vect_int_mult is false.
-
-2008-04-24 Steve Ellcey <sje@cup.hp.com>
-
- PR testsuite/36035
- * gcc.dg/vect/vect-vfa-slp.c: Remove bad check.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.dg/pr36017.c: Run on all targets, remove -lm from dg-options.
-
- PR c++/35758
- * g++.dg/ext/vector14.C: New test.
-
-2008-04-24 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/builtin-constant_p-1.c: New testcase.
- * gcc.dg/builtin-errors.c: Adjust expected error.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/36008
- * gcc.c-torture/execute/20080424-1.c: New test.
-
-2008-04-24 Ira Rosen <irar@il.ibm.com>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/36034
- * gcc.c-torture/execute/pr36034-1.c: New testcase.
- * gcc.c-torture/execute/pr36034-2.c: Likewise.
-
-2008-04-24 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/concat_length.adb: New test.
-
-2008-04-24 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35982
- * gcc.dg/vect/fast-math-pr35982.c: New.
-
-2008-04-24 Danny Smith <dannysmith@users.net>
-
- * gcc.dg/format/ms-warnI64-1.c: New file.
-
-2008-04-24 Jakub Jelinek <jakub@redhat.com>
-
- PR target/36015
- * gcc.dg/pr36015.c: New test.
-
-2008-04-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR rtl-optimization/36006
- * gfortran.dg/pr36006-1.f90: New test.
- * gfortran.dg/pr36006-2.f90: Ditto.
-
-2008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35994
- * gfortran.dg/minmaxloc_5.f90: New test.
- * gfortran.dg/minmaxloc_6.f90: New test.
-
-2008-04-23 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/array-init-1.c: Add big-endian number to check.
-
-2008-04-23 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/27799
- PR tree-optimization/32921
- PR tree-optimization/32624
- * gcc.dg/tree-ssa/pr27799.c: New testcase.
- * gcc.dg/tree-ssa/20030807-7.c: Remove xfail, scan vrp dump.
-
-2008-04-23 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/36021
- * gcc.dg/attr-alloc_size-2.c: New testcase.
-
-2008-04-23 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/20020919-1.c (loc_size_t): New type.
- (_dl_stat): Use loc_size_t to cast pointers.
- * gcc.c-torture/compile/20010327-1.c: Skip for x86_64-*-mingw*.
-
-2008-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35988
- * gfortran.dg/matmul_7.f90: New test.
-
-2008-04-22 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/struct/wo_prof_global_var.c: Initialize array.
- * gcc.dg/struct/wo_prof_malloc_size_var.c: Ditto.
- * gcc.dg/struct/w_prof_local_var.c: Ditto.
- * gcc.dg/struct/w_prof_global_var.c: Ditto.
- * gcc.dg/struct/wo_prof_local_var.c: Ditto.
-
-2008-04-22 Jason Merrill <jason@redhat.com>
-
- PR c++/35316
- * g++.dg/cpp0x/decltype11.C: New.
-
-2008-04-23 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/36017
- * gcc.dg/pr36017.c: New test.
-
-2008-04-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35747
- * g++.dg/ext/stmtexpr13.C: New test.
-
-2008-04-22 Ian Lance Taylor <iant@google.com>
-
- * gcc.c-torture/compile/20080419-1.c: New test.
-
-2008-04-22 Kris Van Hees <kris.van.hees@oracle.com>
-
- PR testsuite/35981
- * g++.dg/ext/utf-cvt.C: Handle 64-bit platforms correctly.
- Add tests for 'long long'.
- * gcc.dg/utf-cvt.c: Handle 64-bit platforms correctly.
- Add tests for 'long long'.
-
-2008-04-22 Nick Clifton <nickc@redhat.com>
-
- * gcc.dg/Wconversion-real.c: Add missing end of comment marker.
-
-2008-04-21 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/31486
- * gcc.target/i386/pr31486.c: New test.
-
-2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.dg/profile-dir-1.c, gcc.dg/profile-dir-2.c,
- gcc.dg/profile-dir-3.c: Generate tree_profile dump. Check gcda
- file name there instead of the assembly. Cleanup tree_profile
- dump file.
-
-2008-04-21 Steve Ellcey <sje@cup.hp.com>
-
- * gcc.dg/vect/vect-vfa-slp.c: XFAIL if vect_no_align.
- * gcc.dg/vect/slp-25.c: Ditto.
- * gcc.dg/vect/vect-outer-5.c: Ditto.
- * gcc.dg/vect/pr33804.c: Ditto.
- * gcc.dg/vect/vect-outer-4c.c: Ditto.
- * gcc.dg/vect/no-vfa-vect-depend-1.c: Ditto.
- * gcc.dg/vect/pr33953.c: Ditto.
- * gcc.dg/vect/slp-3.c: Ditto.
- * gcc.dg/vect/vect-iv-6.c: Ditto.
-
-2008-04-22 Jakub Jelinek <jakub@redhat.com>
-
- * g++.dg/ext/fixed1.C: Add dg-options.
-
-2008-04-21 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/26445
- * g++.dg/other/i386-4.C: New test.
-
-2008-04-21 Jason Merrill <jason@redhat.com>
-
- PR c++/35325
- * g++.dg/ext/fixed1.C: New.
-
- PR c++/35678
- * g++.dg/template/ttp27.C: New.
-
-2008-04-21 Tom Tromey <tromey@redhat.com>
-
- PR libcpp/33415:
- * gcc.dg/cpp/pr33415.c: New file.
-
-2008-04-21 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/bltins.adb: New testcase.
-
-2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35991
- * gfortran.dg/zero-sized_4.f90: New test.
-
-2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35882
- * gfortran.dg/continuation_5.f: Add some comment lines.
- * gfortran.dg/continuation_3.f90: Add some comment lines.
-
-2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35960
- * gfortran.dg/reshape_zerosize_1.f90: New file.
-
-2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/alignment6.adb: New test.
-
-2008-04-19 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35944
- PR fortran/35946
- PR fortran/35947
- * gfortran.dg/array_constructor_23.f: New test.
-
- PR fortran/35959
- * gfortran.dg/alloc_comp_default_init_2.f90: New test.
- * gfortran.dg/alloc_comp_basics_1.f90: Change occurrences of
- "builtin_free" to 27.
- * gfortran.dg/alloc_comp_constructor_1.f90: Change occurrences
- of "builtin_free" to 21.
-
-2008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35892
- * gfortran.dg/pr35154-dwarf2.f: Remove.
- * gfortran.dg/pr35154-stabs.f: Remove.
-
-2008-04-18 Ian Lance Taylor <iant@google.com>
-
- PR tree-optimization/35977
- * gcc.dg/tree-ssa/forwprop-3.c: Use -O2 rather than -O.
-
-2008-04-18 Jakub Jelinek <jakub@redhat.com>
- Peter Bergner <bergner@vnet.ibm.com>
-
- PR target/35907
- * gcc.target/powerpc/pr35907.c: New test.
-
-2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/dynamic_elab_pkg.ads: New helper.
- * gnat.dg/dynamic_elab1.ad[sb]: New test.
- * gnat.dg/dynamic_elab2.ad[sb]: Likewise.
-
-2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
-
- Tests for char16_t and char32_t support.
- * g++.dg/ext/utf-cvt.C: New
- * g++.dg/ext/utf-cxx0x.C: New
- * g++.dg/ext/utf-cxx98.C: New
- * g++.dg/ext/utf-dflt.C: New
- * g++.dg/ext/utf-gnuxx0x.C: New
- * g++.dg/ext/utf-gnuxx98.C: New
- * g++.dg/ext/utf-mangle.C: New
- * g++.dg/ext/utf-typedef-cxx0x.C: New
- * g++.dg/ext/utf-typedef-cxx98.C: New
- * g++.dg/ext/utf-typespec.C: New
- * g++.dg/ext/utf16-1.C: New
- * g++.dg/ext/utf16-2.C: New
- * g++.dg/ext/utf16-3.C: New
- * g++.dg/ext/utf16-4.C: New
- * g++.dg/ext/utf32-1.C: New
- * g++.dg/ext/utf32-2.C: New
- * g++.dg/ext/utf32-3.C: New
- * g++.dg/ext/utf32-4.C: New
- * gcc.dg/utf-cvt.c: New
- * gcc.dg/utf-dflt.c: New
- * gcc.dg/utf16-1.c: New
- * gcc.dg/utf16-2.c: New
- * gcc.dg/utf16-3.c: New
- * gcc.dg/utf16-4.c: New
- * gcc.dg/utf32-1.c: New
- * gcc.dg/utf32-2.c: New
- * gcc.dg/utf32-3.c: New
- * gcc.dg/utf32-4.c: New
-
-2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/varsize_return.ads: New test.
- * gnat.dg/specs/varsize_return_pkg1.ad[sb]: New helper.
- * gnat.dg/specs/varsize_return_pkg2.ad[sb]: Likewise.
-
-2008-04-17 Jason Merrill <jason@redhat.com>
-
- PR c++/35773
- * g++.dg/overload/autoptr1.C: New.
-
-2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/alignment4.adb: New test.
- * gnat.dg/alignment5.adb: Likewise.
- * gnat.dg/frame_overflow.adb: Adjust.
-
-2008-04-17 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-fre-17.c: New testcase.
-
-2008-04-17 Christian Bruel <christian.bruel@st.com>
-
- * gcc.dg/long-long-compare-1.c: New testcase.
-
-2008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35724
- * gfortran.dg/eoshift_2.f90: New test.
-
-2008-04-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35932
- * gfortran.dg/intrinsic_char_1.f90: New test.
-
-2008-04-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR target/35944
- * gfortran.dg/pr35944-1.f90: New test.
- * gfortran.dg/pr35944-2.f90: Ditto.
-
-2008-04-16 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35739
- * gcc.dg/dfp/pr35739.c: New test.
-
- PR tree-optimization/35899
- * gcc.dg/pr35899.c: New test.
-
- PR target/35662
- * gfortran.dg/pr35662.f90: New test.
-
-2008-04-16 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/loop-35.c: New testcase.
-
-2008-04-16 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/29015
- * gnat.dg/incomplete1.ads, gnat.dg/incomplete2.ads,
- gnat.dg/incomplete2.adb: New.
-
-2008-04-16 Hans-Peter Nilsson <hp@axis.com>
-
- PR tree-optimization/35629
- * gcc.dg/tree-ssa/loop-25.c: Xfail all but the first
- scan-tree-dump-times.
-
-2008-04-15 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/22387
- * gnat.dg/specs/corr_discr.ads: New.
-
-2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/string_slice2.adb: New test.
-
-2008-04-15 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-compare-2.c: Adjust testcase.
- * gcc.dg/tree-ssa/pr21086.c: Likewise.
-
-2008-04-15 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/salias-1.c: Remove.
- * gcc.dg/tree-ssa/pr26421.c: Adjust pattern.
- * gcc.dg/tree-ssa/alias-15.c: Likewise.
- * gcc.dg/tree-ssa/ssa-lim-3.c: Run at -O2.
-
-2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_optimization1.ad[sb]: New test.
-
-2008-04-15 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35751
- * gcc.dg/gomp/pr35751.c: New test.
- * g++.dg/gomp/pr35751.C: New test.
-
-2008-04-15 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/16086
- * gnat.dg/prot_def.adb: New.
-
-2008-04-14 Ian Lance Taylor <iant@google.com>
-
- * gcc.dg/strict-overflow-6.c: New.
- * gcc.dg/no-strict-overflow-7.c: New.
- * gcc.dg/Wstrict-overflow-22.c: New.
-
-2008-04-14 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/specs/storage.ads: Fix expected error message.
-
-2008-04-14 Robert Dewar <dewar@adacore.com>
-
- * gnat.dg/specs/linker_section.ads: Check for more error conditions.
-
-2008-04-14 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/18680
- * gnat.dg/specs/linker_section.ads: New.
-
-2008-04-14 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/16098
- * gnat.dg/specs/renamings.ads: New.
-
-2008-04-14 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/15915
- * gnat.dg/specs/storage.ads: New.
-
-2008-04-14 Samuel Tardieu <sam@rfc1149.net>
-
- * gnat.dg/deep_old.adb: New.
-
-2008-04-14 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_address2.adb: New test.
-
-2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35882
- * gfortran.dg/continuation_3.f90: Update test.
- * gfortran.dg/continuation_5.f: Update test.
- * gfortran.dg/continuation_10.f90: New test.
-
-2008-04-13 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/32972
- PR libfortran/32512
- * gfortran.dg/internal_pack_1.f90: Add test for derived type.
- * gfortran.dg/intrinsic_spread_1.f90: Likewise.
- * gfortran.dg/intrinsic_pack_1.f90: Likewise.
- * gfortran.dg/intrinsic_unpack_1.f90: Likewise.
-
-2008-04-13 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/17985
- * gnat.dg/ancestor_type.ads, gnat.dg/ancestor_type.adb: New test.
-
-2008-04-12 Andrew Pinski <pinskia@gmail.com>
-
- * gcc.target/powerpc/darwin-save-world-1.c: New test.
-
-2008-04-11 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35869
- * gcc.c-torture/compile/pr35869.c: New testcase.
-
-2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * gcc.target/i386/sse-13.c: Move __builtin_ia32_round* to new
- /* mmintrin-common.h */ section.
-
- * gcc.target/i386/sse-14.c: Add tests for mmintrin-common.h.
-
-2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35744
- * gcc.dg/attr-error-1.c: New test.
-
-2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/scc-2.c: New test.
- * gcc.target/mips/scc-3.c: New test.
- * gcc.target/mips/scc-4.c: New test.
-
-2008-04-10 Ira Rosen <irar@il.ibm.com>
-
- PR tree-optimization/35821
- * gcc.dg/vect/pr35821-altivec.c: New.
- * gcc.dg/vect/pr35821-spu.c: New.
-
-2008-04-09 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR testsuite/34894
- PR testsuite/33782
- * lib/target-supports.dg: Add check_effective_target_trampolines.
- Disable profiling for avr-*-*.
- * gcc.c-torture/compile/pr27889.c: dg-requires trampolines.
- * gcc.c-torture/compile/nested-1.c: Ditto.
- * gcc.c-torture/compile/20050122-2.c: Ditto.
- * gcc.c-torture/compile/20010226-1.c: Ditto.
- * gcc.c-torture/compile/20010327-1.c: Skip for avr-*-*.
- * gcc.c-torture/compile/980506-1.c: Ditto.
- * gcc.c-torture/compile/20020604-1.c: Ditto.
- * gcc.c-torture/compile/limits-stringlit.c: Ditto
- * gcc.c-torture/compile/20001226-1.c: Ditto
-
-2008-04-09 Jason Merrill <jason@redhat.com>
-
- PR c++/35708
- * g++.dg/ext/complit9.C: New.
-
-2008-04-09 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/28305
- * gnat.dg/specs/fe_inlining.ads, gnat.dg/specs/fe_inlining_helper.ads,
- gnat.dg/specs/fe_inlining_helper.adb: New test.
-
-2008-04-09 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/torture/fp-int-convert.h: Use TImode type for
- x86_64-pc-mingw target.
- * gcc.dg/titype-1.c: Likewise.
-
-2008-04-09 Richard Sandiford <richard@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_vxworks_kernel):
- Fix comment.
- (check_effective_target_vxworks_rtp): New procedure.
- * g++.dg/opt/20050511-1.C: Rename UINT32 for VxWorks kernel mode.
- * g++.dg/warn/miss-format-1.C: XFAIL for VxWorks.
- * g++.old-deja/g++.abi/cxa_vec.C: XFAIL for VxWorks kernels.
- * g++.old-deja/g++.brendan/new3.C: Likewise.
- * g++.old-deja/g++.eh/badalloc1.C: XFAIL for VxWorks RTPs.
- * g++.old-deja/g++.law/missed-error2.C: Undefine max for
- VxWorks kernel mode.
- * g++.old-deja/g++.mike/init1.C: XFAIL for VxWorks kernel mode.
- * g++.old-deja/g++.mike/p2736.C: Likewise.
- * g++.old-deja/g++.mike/p658.C: Undefine OK for VxWorks kernel mode.
- * g++.old-deja/g++.other/headers1.C: Likewise min and max.
- * g++.old-deja/g++.robertl/eb79.C: Undefine max for VxWorks
- kernel mode.
-
-2008-04-09 Jakub Jelinek <jakub@redhat.com>
-
- * gfortran.dg/namelist_47.f90: New test.
-
-2008-04-09 Richard Guenther <rguenther@suse.de>
-
- * gfortran.dg/bind_c_usage_14.f03: Adjust.
-
-2008-04-08 Andy Hutchinson <hutchinsonandy@aim.com>
-
- PR target/35005
- * execute/20071221-1.c: Adapt test for 16 bit int targets.
- * execute/pr35163.c: Ditto.
-
-2008-04-08 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/20080408-1.c: New testcase.
-
-2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pack6.adb: New test.
- * gnat.dg/pack7.adb: Likewise.
- * gnat.dg/pack8.adb: Likewise.
-
-2008-04-08 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/parent_ltd_with-child_full_view.adb: New test.
- * gnat.dg/rt1.adb: New test.
- * gnat.dg/test_time_stamp.adb: New test.
- * gnat.dg/specs/warn_star.ads: New test.
- * gnat.dg/specs/aggr1.ads: New test.
-
-2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/25829 28655
- * gfortran.dg/write_check2.f90: Update dg-error.
- * gfortran.dg/io_constraints_1.f90: Udate dg-error.
-
-2008-04-07 Jason Merrill <jason@redhat.com>
-
- PR c++/35734
- * g++.dg/warn/ctor1.C: New.
-
-2008-04-07 Kai Tietz <kai.tietz@onevision.com>
-
- PR/35842
- * gcc.dg/torture/pr35842.c: New.
-
-2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/array4.adb: New test.
- * gnat.dg/specs/static_initializer2.ads: Likewise.
-
-2008-04-06 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35400
- * gcc.dg/torture/pr35400.c: New testcase.
- * g++.dg/torture/pr35400.C: Likewise.
-
-2008-04-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35780
- * gfortran.dg/simplify_argN_1.f90: New test.
-
-2008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
-
- PR fortran/35832
- * gfortran.dg/io_constraints_2.f90: Adapt to new error message.
-
-2008-04-06 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/f2003_io_1.f03: Make standard conform.
- * gfortran.dg/f2003_io_8.f03: New.
-
-2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pack5.adb: New test.
-
-2008-04-06 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/12329
- * gcc.target/i386/pr12329.c: New test.
-
-2008-04-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/pr35823.adb: Rename to size_attribute.adb.
-
-2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/25829 28655
- * gfortran.dg/f2003_io_1.f03: New test.
- * gfortran.dg/f2003_io_2.f03: New test.
- * gfortran.dg/f2003_io_3.f03: New test.
- * gfortran.dg/f2003_io_4.f03: New test.
- * gfortran.dg/f2003_io_5.f03: New test.
- * gfortran.dg/f2003_io_6.f03: New test.
- * gfortran.dg/f2003_io_7.f03: New test.
-
-2008-04-05 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35833
- * gcc.dg/torture/pr35833.c: New testcase.
-
-2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-band.c: New test.
- * gcc.target/sh/sh2a-bclrmem.c: New test.
- * gcc.target/sh/sh2a-bld.c: New test.
- * gcc.target/sh/sh2a-bor.c: New test.
- * gcc.target/sh/sh2a-bsetmem.c: New test.
- * gcc.target/sh/sh2a-bxor.c: New test.
-
-2008-04-04 Janis Johnson <janis187@us.ibm.com>
-
- * g++.dg/other/anon5.C: Don't depend on line number for error message.
-
- * gcc.dg/torture/builtin-modf-1.c: Use special options for
- powerpc*-*-linux*.
-
- * gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
-
- * gcc.dg/pr34856.c: Use -maltivec on powerpc linux.
-
- PR target/35620
- * gcc.dg/dfp/pr35620.c: New test.
- * gcc.dg/dfp/func-pointer.c: New test.
- * gcc.dg/dfp/func-deref.c: New test.
-
-2008-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR target/35364
- * g++.dg/gomp/pr35364.C: New test.
-
-2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * g++.dg/other/i386-2.C: Include <wmmintrin.h>.
- * g++.dg/other/i386-3.C: Likewise.
- * gcc.target/i386/sse-13.c: Likewise.
- * gcc.target/i386/sse-14.c: Likewise.
-
- * gcc.target/i386/aes-check.h: New.
- * gcc.target/i386/aesdec.c: Likewise.
- * gcc.target/i386/aesdeclast.c: Likewise.
- * gcc.target/i386/aesenc.c: Likewise.
- * gcc.target/i386/aesenclast.c: Likewise.
- * gcc.target/i386/aesimc.c: Likewise.
- * gcc.target/i386/aeskeygenassist.c: Likewise.
- * gcc.target/i386/pclmulqdq.c: Likewise.
- * gcc.target/i386/pclmul-check.h: Likewise.
-
- * gcc.target/i386/i386.exp (check_effective_target_aes): New.
- (check_effective_target_pclmul): Likewise.
-
-2008-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35440
- * gcc.dg/pr35440.c: New test.
-
-2008-04-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35823
- * gnat.dg/pr35823.adb: New testcase.
-
-2008-04-03 Janis Johnson <janis187@us.ibm.com>
-
- PR c/35712
- * gcc.dg/dfp/constants-zero.c: New test.
-
-2008-04-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c/35738
- * gcc.dg/gomp/pr35738.c: New test.
-
- PR middle-end/35818
- * gcc.dg/gomp/pr35818.c: New test.
-
- PR fortran/35786
- * gfortran.dg/gomp/pr35786-1.f90: New test.
- * gfortran.dg/gomp/pr35786-2.f90: New test.
-
-2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
-
- * gcc.target/mips/scc-1.c: New test.
-
-2008-04-03 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/vrp43.c: New testcase.
- * gcc.dg/tree-ssa/vrp44.c: Likewise.
- * gcc.dg/tree-ssa/vrp45.c: Likewise.
-
-2008-04-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35741
- * g++.dg/other/offsetof5.C: New test.
-
-2008-04-03 Paolo Bonzini <bonzini@gnu.org>
-
- PR rtl-optimization/35281
- * gcc.target/i386/pr35281.c: New test.
-
-2008-04-03 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35800
- * gcc.c-torture/execute/pr35800.c: New test.
-
-2008-04-02 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
- gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
- gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
- gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
- gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
- gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
- gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
- gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
- gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
- gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
- gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14495
- PR tree-optimization/34793
- * gcc.dg/tree-ssa/vrp41.c: New testcase.
- * gcc.dg/tree-ssa/vrp42.c: Likewise.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/14495
- * gcc.dg/tree-ssa/vrp40.c: New testcase.
-
-2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/discr_record_constant.ads: New test.
-
-2008-04-02 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/vrp38.c: New testcase.
- * gcc.dg/tree-ssa/vrp39.c: Likewise.
-
-2008-04-01 George Helffrich <george@gcc.gnu.org>
-
- PRs fortran/35154, fortran/23057
- * gcc.dg/debug/pr35154.c: New test to check that non-Fortran
- use of common is unchanged.
-
- * lib/gfortran-dg.exp: New harness to compile Fortran progs
- with all combinations of debug options available on target.
- * gfortran.dg/debug/debug.exp: Ditto.
- * gfortran.dg/debug/trivial.f: Ditto.
- * gfortran.dg/debug/pr35154-stabs.f: New test case for
- .stabs functionality.
- * gfortran.dg/debug/pr35154-dwarf2.f: New test case for
- DWARF functionality.
-
-2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35436
- * gcc.dg/format/gcc_gfc-2.c: New test.
-
-2008-03-31 Seongbae Park <seongbae.park@gmail.com>
-
- * g++.dg/bprob/bprob.exp: Do not check gcno files.
- Use -fprofile-use for profile use.
- * gcc.misc-tests/bprob.exp: Ditto.
- * g++.dg/tree-pro/tree-prof.exp: Do not check gcno files.
- * gcc.dg/matrix/matrix.exp: Ditto.
- * gcc.dg/struct/struct-reorg.exp: Ditto.
- * gcc.dg/tree-prof/tree-prof.exp: Ditto.
- * gcc.dg/profile-dir-1.c: New test.
- * gcc.dg/profile-dir-2.c: New test.
- * gcc.dg/profile-dir-3.c: New test.
-
-2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c/35750
- * gcc.dg/old-style-param-1.c: New test.
-
-2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/object_overflow.adb: New test.
-
-2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/30186
- * gcc.dg/tree-ssa/vector-1.c: New testcase.
- * gcc.c-torture/execute/vector-1.c: New testcase.
- * gcc.c-torture/execute/vector-2.c: New testcase.
-
-2008-03-31 Olivier Hainque <hainque@adacore.com>
+ * g++.dg/ext/altivec_check.h: Delete.
+
+2009-01-13 Nathan Froyd <froydnj@codesourcery.com>
- * gnat.dg/assign_from_packed_pixels.ads: Support for ...
- * gnat.dg/assign_from_packed.adb: New testcase.
+ * gcc.target/powerpc/altivec-macros.c: Require a powerpc_altivec_ok
+ effective target. Adjust line numbers accordingly.
-2008-03-31 Zdenek Dvorak <ook@ucw.cz>
+2009-01-13 Mark Mitchell <mark@codesourcery.com>
- PR rtl-optimization/35729
- * gcc.dg/pr35729.c: New test.
+ * gcc.target/i386/sse-10.c: Pass -mno-omit-leaf-frame-pointer.
-2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
- PR target/32000
- * gcc.target/i386/pr32000-1.c: New.
+ PR tree-optimization/38786
+ * gcc.dg/graphite/pr38786.c: New.
-2008-03-31 Arnaud Charlet <charlet@adacore.com>
-
- * gnat.dg/too_many_tasks.adb: Removed, causes resource issues
- on some environments.
-
-2008-03-31 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-opt/35431
- * gcc.c-torture/compile/pr35431.c: New testcase.
-
-2008-03-30 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * g++.dg/other/error27.C: Use -fno-finite-math-only on sh*
- targets.
-
-2008-03-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR c++/35245
- * g++.dg/other/anon5.C: Skip on hppa*-*-hpux*.
-
-2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
-
- PR c++/35578
- * g++.dg/parse/friend8.C: New test.
-
- PR c/35748
- * gcc.dg/union-cast-4.c: New test.
-
-2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35757
- * gcc.target/i386/sse4_1-blendps-2.c: New.
- * gcc.target/i386/sse4_1-pblendw-2.c: Likewise.
-
-2008-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * gfortran.dg/internal_pack_1.f90: Added complex to test case.
- * gfortran.dg/internal_pack_2.f90: Likewise.
- * gfortran.dg/intrinsic_spread_1.f90: Likewise.
- * gfortran.dg/intrinsic_spread_2.f90: Likewise.
- * gfortran.dg/intrinsic_pack_1.f90: Likewise.
- * gfortran.dg/intrinsic_pack_2.f90: Likewise.
- * gfortran.dg/intrinsic_unpack_1.f90: Likewise.
- * gfortran.dg/intrinsic_unpack_2.f90: Likewise.
-
-2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/bit_packed_array2.adb: New test.
-
-2008-03-30 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35740
- * gfortran.dg/transpose_conjg_1.f90: New test.
-
-2008-03-29 Laurent GUERBY <laurent@guerby.net>
-
- * gnat.dg/socket2.adb: Remove since identical to socket1.adb.
-
-2008-03-29 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35698
- * gfortran.dg/allocate_zerosize_3.f: New test.
-
- PR fortran/35702
- * gfortran.dg/character_assign_1.f90: New test.
-
-2008-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/32972
- PR libfortran/32512
- * gfortran.dg/intrinsic_spread_1.f90: New file.
- * gfortran.dg/intrinsic_spread_2.f90: New file.
- * gfortran.dg/intrinsic_spread_3.f90: New file.
-
-2008-03-28 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34714
- * gfortran.dg/alloc_alloc_expr_3.f90: New test.
- * gfortran.dg/allocate_stat.f90: Adjusted error-match text.
- * gfortran.dg/func_assign.f90: Likewise.
- * gfortran.dg/implicit_11.f90: Likewise.
- * gfortran.dg/proc_assign_1.f90: Likewise.
- * gfortran.dg/proc_assign_2.f90: Likewise.
- * gfortran.dg/procedure_lvalue.f90: Likewise.
-
-2008-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35699
- * gfortran.dg/direct_io_10.f: New test.
-
-2008-03-28 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/vectorize6.c: New test.
-
-2008-03-28 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35721
- * gfortran.dg/associated_target_2.f90: New.
-
-2008-03-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/19580
- * gcc.dg/tree-ssa/loop-34.c: New testcase.
-
-2008-03-28 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/30317
- PR tree-optimization/30911
- PR tree-optimization/34793
- * gcc.dg/tree-ssa/vrp35.c: New testcase.
- * gcc.dg/tree-ssa/vrp36.c: Likewise.
- * gcc.dg/tree-ssa/vrp37.c: Likewise.
-
-2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31334
- * gcc.target/powerpc/altivec-25.c: New testcase.
-
-2008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35724
- * gfortran.dg/cshift_shift_real_2.f90: New test.
-
-2008-03-26 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.c-torture/execute/multi-ix.c: Limit CHUNK size between 1 and 500.
- (main): Exit early for CHUNK less than 40 to avoid stack corruption.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- PR c/32511
- * gcc.dg/attr-weak-1.c: New testcase.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/32810
- * gcc.dg/tree-ssa/ssa-ccp-18.c: New testcase.
-
-2008-03-27 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/cpp0x/variadic91.C: New.
-
-2008-03-27 Zdenek Dvorak <ook@ucw.cz>
-
- * gcc.dg/tree-ssa/loop-32.c: New testcase.
- * gcc.dg/tree-ssa/loop-33.c: Likewise.
-
-2008-03-27 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-addr-1.c: New testcase.
-
-2008-03-27 Andrew Pinski <pinskia@gmail.com>
-
- PR middle-end/35429
- * gcc.c-torture/compile/complex-5.c: New test.
-
-2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/uninit-16.c (decode_reloc): Mark static.
-
-2008-03-26 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35546
- * g++.dg/ext/attrib33.C: New test.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
+2009-01-13 Uros Bizjak <ubizjak@gmail.com>
Revert:
- 2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-addr-1.c: New testcase.
-
-2008-03-26 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/sse-13.c: Include <mm_malloc.h>
- before redefinitions of extern and __inline.
- * gcc.target/i386/sse-13.c: Ditto.
-
-2008-03-26 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35332
- * g++.dg/other/error27.C: New test.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-addr-1.c: New testcase.
-
-2008-03-26 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/20030731-2.c: Scan dce1 dump.
- * gcc.dg/tree-ssa/20030917-1.c: Scan optimized dump.
- * gcc.dg/tree-ssa/20030917-3.c: Scan ccp1 dump.
- * gcc.dg/tree-ssa/20040721-1.c: Test linking, do not disable DOM.
- * gcc.dg/tree-ssa/pr21574.c: Scan the fre dump.
- * gcc.dg/tree-ssa/ssa-ccp-1.c: Scan ccp1 dump.
- * gcc.dg/tree-ssa/ssa-ccp-3.c: Scan ccp2 dump.
-
-2008-03-26 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/cpp0x/variadic84.C: Update to reflect the change in
- variadic template template parameter binding semantics.
- * g++.dg/cpp0x/variadic85.C: Ditto.
- * g++.dg/cpp0x/variadic88.C: New.
- * g++.dg/cpp0x/variadic89.C: New.
- * g++.dg/cpp0x/variadic90.C: New.
- * g++.dg/cpp0x/variadic-ex14.C: Update to reflect the change in
- variadic template template parameter binding semantics.
- * g++.dg/cpp0x/variadic-lambda.C: New.
-
-2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR target/31558
- * g++.dg/ext/altivec-15.C: New testcase.
-
-2008-03-25 Andrew Pinski <pinskia@gmail.com>
-
- PR objc/29197
- * objc.dg/method-20.m: New testcase.
-
-2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR rtl-optimization/35232
- * gcc.target/mips/pr35232.c: New test.
-
-2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/template/sfinae4.C: New.
- * g++.dg/template/sfinae5.C: New.
- * g++.dg/template/sfinae6.C: New.
- * g++.dg/template/sfinae6_neg.C: New.
- * g++.dg/template/sfinae7.C: New.
- * g++.dg/template/sfinae8.C: New.
- * g++.dg/template/sfinae9.C: New.
- * g++.dg/template/sfinae10.C: New.
- * g++.dg/template/sfinae11.C: New.
- * g++.dg/template/sfinae12.C: New.
- * g++.dg/template/sfinae13.C: New.
- * g++.dg/template/sfinae14C: New.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-bclr.c: New test.
- * gcc.target/sh/sh2a-bset.c: New test.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-movrt.c: New test.
-
-2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-prefetch.c: New test.
-
-2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
- Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-movi20s.c: New test.
-
-2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
- Jayant Sonar <Jayant.sonar@kpitcummins.com>
- Naveen.H.S <naveen.hs@kpitcummins.com>
-
- * gcc.target/sh/sh2a-resbank.c: New test.
- * gcc.target/sh/sh2a-tbr-jump.c: New test.
- * gcc.target/sh/sh2a-jsrn.c: New test.
- * gcc.target/sh/sh2a-rtsn.c: New test.
-
-2008-03-25 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/sse-17.c: Include sse2-check.h.
- (main): Change to void and rename to sse2_test.
- * gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Set
- dg-do-what-default to "compile" if SSE2 hardware is not available.
- * gcc.dg/vect/costmodel/i386/x86_64-costmodel-vect.exp: Ditto.
- * gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Remove
- xfail vect_no_int_max from "vectorization not profitable" check.
-
-2008-03-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/26222
- * gcc.dg/torture/pr26222.c: New testcase.
+ 2009-01-05 Uros Bizjak <ubizjak@gmail.com>
-2008-03-24 Paul Thomas <pault@gcc.gnu.org>
+ * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mieee
+ for alpha*-*-* targets.
+ * g++.dg/compat/struct-layout-1_generate.c (dg-options): Ditto.
- PR fortran/34813
- * gfortran.dg/null_3.f90 : New test
+2009-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- PR fortran/33295
- * gfortran.dg/module_function_type_1.f90 : New test
+ PR libfortran/38772
+ * gfortran.dg/fmt_bz_bn_err.f: New test.
-2008-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
+2009-01-12 Nathan Froyd <froydnj@codesourcery.com>
- PR libfortran/32972
- * gfortran.dg/intrinsic_unpack_1.f90: New test case.
- * gfortran.dg/intrinsic_unpack_2.f90: New test case.
- * gfortran.dg/intrinsic_unpack_3.f90: New test case.
+ * gcc.target/powerpc/ppc-spe64-1.c: Add dg-error handler.
-2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
+2009-01-12 Daniel Jacobowitz <dan@codesourcery.com>
- * gcc.target/mips/dse-1.c: Add checks for zeros.
+ * lib/target-supports.exp (check_effective_target_powerpc64): New.
+ * gcc.target/powerpc/darwin-longlong.c: Explicitly require 64-bit
+ instruction support. Do not check for it at runtime.
-2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
+2009-01-12 Jason Merrill <jason@redhat.com>
- PR target/27946
- * gcc.target/powerpc/ppc64-double-1.c: New testcase.
+ PR c++/35109
+ * g++.dg/lookup/friend11.C: Remove expected error.
+ * g++.dg/lookup/friend14.C: New test.
+ * g++.dg/lookup/friend15.C: New test.
-2008-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
+2009-01-12 Dodji Seketeli <dodji@redhat.com>
- PR libfortran/32972
- * internal_pack_1.f90: New test case.
- * internal_pack_2.f90: New test case.
- * internal_pack_3.f90: New test case.
-
-2008-03-21 Olivier Hainque <hainque@adacore.com>
-
- * gnat.dg/empty_vector_length.adb: New testcase.
-
-2008-03-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/ssa-ccp-17.c: New testcase.
-
-2008-03-20 Victor Kaplansky <victork@gcc.gnu.org>
- Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/34168
- * lib/target-supports.exp (check_sse2_hw_available): New procedure.
- * gcc.dg/vect/vect.exp: Set dg-do-what-default to "compile"
- if SSE2 hardware is not available.
- * g++.dg/vect/vect.exp: Update target-dependent overrides to match
- gcc.dg/vect/vect.exp.
- * gfortran.dg/vect/vect.exp: Ditto.
- (check_effective_target_lp64_or_vect_no_align): Remove procedure.
-
-2008-03-20 Andreas Schwab <schwab@suse.de>
-
- * gcc.dg/cpp/cmdlne-dD-M.c: Fix test for makefile rule and remove
- xfail.
-
-2008-03-20 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/gomp/pr34692.c: Cleanup gimple dump file.
- * gcc.dg/tree-ssa/ssa-lim-3.c: Remove -fdump-tree-optimized
- from dg-options.
-
-2008-03-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/35621
- * gcc.target/i386/ssse3-pabsb.c: Add -fno-strict-aliasing.
- * gcc.target/i386/ssse3-pabsd.c: Likewise.
- * gcc.target/i386/ssse3-pabsw.c: Likewise.
- * gcc.target/i386/ssse3-palignr.c: Likewise.
- * gcc.target/i386/ssse3-phaddd.c: Likewise.
- * gcc.target/i386/ssse3-phaddsw.c: Likewise.
- * gcc.target/i386/ssse3-phaddw.c: Likewise.
- * gcc.target/i386/ssse3-phsubd.c: Likewise.
- * gcc.target/i386/ssse3-phsubsw.c: Likewise.
- * gcc.target/i386/ssse3-phsubw.c: Likewise.
- * gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
- * gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
- * gcc.target/i386/ssse3-pshufb.c: Likewise.
- * gcc.target/i386/ssse3-psignb.c: Likewise.
- * gcc.target/i386/ssse3-psignd.c: Likewise.
- * gcc.target/i386/ssse3-psignw.c: Likewise.
-
-2008-03-20 Andreas Schwab <schwab@suse.de>
-
- PR testsuite/35647
- * gcc.dg/cpp/cmdlne-dI-M.c: Match optional continuation.
- * gcc.dg/cpp/cmdlne-dM-M.c: Likewise.
- * gcc.dg/cpp/cmdlne-dN-M.c: Match correct file name and optional
- continuation and remove xfail.
-
-2008-03-20 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/32972
- * gfortran.dg/internal_pack_3.f90: Add missing parameter
- in subroutine.
-
-2008-03-20 Kai Tietz <kai.tietz@onevision.com>
-
- * gcc.dg/format/ms_array-1.c: New.
- * gcc.dg/format/ms_c90-scanf-3.c: New.
- * gcc.dg/format/ms_c99-strftime-1.c: New.
- * gcc.dg/format/ms_no-y2k-1.c: New.
- * gcc.dg/format/ms_attr-1.c: New.
- * gcc.dg/format/ms_c90-scanf-4.c: New.
- * gcc.dg/format/ms_c99-strftime-2.c: New.
- * gcc.dg/format/ms_nonlit-1.c: New.
- * gcc.dg/format/ms_c90-scanf-5.c: New.
- * gcc.dg/format/ms_cast-1.c: New.
- * gcc.dg/format/ms_nonlit-2.c: New.
- * gcc.dg/format/ms_attr-2.c: New.
- * gcc.dg/format/ms_c90-strftime-1.c: New.
- * gcc.dg/format/ms_miss-1.c: New.
- * gcc.dg/format/ms_nonlit-3.c: New.
- * gcc.dg/format/ms_attr-3.c: New.
- * gcc.dg/format/ms_c90-strftime-2.c: New.
- * gcc.dg/format/ms_miss-2.c: New.
- * gcc.dg/format/ms_nul-1.c: New.
- * gcc.dg/format/ms_attr-4.c: New.
- * gcc.dg/format/ms_c94-printf-1.c: New.
- * gcc.dg/format/ms_miss-3.c: New.
- * gcc.dg/format/ms_nul-2.c: New.
- * gcc.dg/format/ms_attr-7.c: New.
- * gcc.dg/format/ms_c94-scanf-1.c: New.
- * gcc.dg/format/ms_miss-4.c: New.
- * gcc.dg/format/ms_null-1.c: New.
- * gcc.dg/format/ms_bitfld-1.c: New.
- * gcc.dg/format/ms_c99-printf-1.c: New.
- * gcc.dg/format/ms_miss-5.c: New.
- * gcc.dg/format/ms_plus-1.c: New.
- * gcc.dg/format/ms_branch-1.c: New.
- * gcc.dg/format/ms_c99-printf-2.c: New.
- * gcc.dg/format/ms_miss-6.c: New.
- * gcc.dg/format/ms_sec-1.c: New.
- * gcc.dg/format/ms_c90-printf-1.c: New.
- * gcc.dg/format/ms_c99-printf-3.c: New.
- * gcc.dg/format/ms_multattr-1.c: New.
- * gcc.dg/format/ms_unnamed-1.c: New.
- * gcc.dg/format/ms_c90-printf-2.c: New.
- * gcc.dg/format/ms_c99-scanf-1.c: New.
- * gcc.dg/format/ms_multattr-2.c: New.
- * gcc.dg/format/ms_va-1.c: New.
- * gcc.dg/format/ms_c90-printf-3.c: New.
- * gcc.dg/format/ms_c99-scanf-2.c: New.
- * gcc.dg/format/ms_multattr-3.c: New.
- * gcc.dg/format/ms_c90-scanf-1.c: New.
- * gcc.dg/format/ms_c99-scanf-3.c: New.
- * gcc.dg/format/ms_no-exargs-1.c: New.
- * gcc.dg/format/ms_zero-length-1.c: New.
- * gcc.dg/format/ms_c90-scanf-2.c: New.
- * gcc.dg/format/ms_c99-scanf-4.c: New.
- * gcc.dg/format/ms_no-exargs-2.c: New.
- * gcc.dg/format/null-1.c: Add gnu style usage for mingw.
- * gcc.dg/format/miss-1.c: Likewise.
- * gcc.dg/format/miss-3.c: Likewise.
- * gcc.dg/format/multattr-2.c: Likewise.
- * gcc.dg/format/miss-5.c: Likewise.
- * gcc.dg/format/attr-2.c: Likewise.
- * gcc.dg/format/attr-4.c: Likewise.
- * gcc.dg/format/c90-scanf-4.c: Likewise.
- * gcc.dg/format/c99-printf-3.c: Likewise.
- * gcc.dg/format/multattr-1.c: Likewise.
- * gcc.dg/format/miss-4.c: Likewise.
- * gcc.dg/format/miss-6.c: Likewise.
- * gcc.dg/format/c90-printf-3.c: Likewise.
- * gcc.dg/format/attr-1.c: Likewise.
- * gcc.dg/format/attr-3.c: Likewise.
- * gcc.dg/format/attr-7.c: Likewise.
- * gcc.dg/format/format.h: Treat mingw and gnu style.
- * gcc.dg/format/sys_format.c: New.
-
-2008-03-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/35627
- * gfortran.dg/namelist_46.f90: New test.
-
-2008-03-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/14552
- * gcc.target/i386/pr14552.c: New test.
-
-2008-03-19 Michael Matz <matz@suse.de>
-
- PR middle-end/35616
- * gcc.dg/pr35616.c: New test.
-
-2008-03-19 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/35152
- * gfortran.dg/argument_checking_16.f90: New test.
-
-2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/32972
- * gfortran.dg/internal_pack_1.f90: New test case.
- * gfortran.dg/internal_pack_2.f90: New test case.
- * gfortran.dg/internal_pack_3.f90: New test case.
-
-2008-03-19 Jan Hubicka <jh@suse.cz>
-
- * gcc.dg/20050811-2.c: Update dumping flags.
- * gcc.dg/sms-2.c: Update dumping flags.
- * gcc.dg/var-expand1.c: Update dumping flags.
- * gcc.dg/var-expand3.c: Update dumping flags.
- * gcc.dg/pr30957-1.c: Update dumping flags.
- * gcc.dg/20050811-1.c: Update dumping flags.
- * gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
- * gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
+ PR c++/36019
+ * g++.dg/lookup/hidden-class12.C: New test.
+ * g++.dg/lookup/hidden-class13.C: New test.
+ * g++.dg/lookup/hidden-class14.C: New test.
+ * g++.dg/lookup/hidden-class15.C: New test.
+ * g++.dg/lookup/hidden-class16.C: New test.
-2008-03-19 Richard Guenther <rguenther@suse.de>
+2009-01-12 Mark Mitchell <mark@codesourcery.com>
- PR middle-end/35609
- * gcc.dg/uninit-15.c: New testcase.
- * gcc.dg/uninit-16.c: Likewise.
+ * gcc.dg/struct/wo_prof_single_str_global.c: Mask return value.
+ * gcc.dg/struct/wo_prof_single_str_local.c: Mask return value.
+ * gcc.dg/struct/wo_prof_single_str_pointer.c: Mask return value.
-2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
+2009-01-12 Jason Merrill <jason@redhat.com>
- PR target/35504
- * g++.dg/other/pr35504.C: New test.
+ PR c++/31488
+ * g++.dg/other/vararg-3.C: New test.
-2008-03-18 Richard Guenther <rguenther@suse.de>
+2009-01-12 Daniel Jacobowitz <dan@codesourcery.com>
- * gcc.dg/tree-ssa/forwprop-4.c: New testcase.
- * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise.
+ * gcc.target/powerpc/ppc-spe.c: Compile for all EABI targets.
+ Explicitly enable SPE.
+ * gcc.target/powerpc/20030505.c: Likewise. Add dg-message
+ directive.
-2008-03-18 Richard Guenther <rguenther@suse.de>
+ * gcc.target/powerpc/20030218-1.c: Pass -mfloat-gprs=single.
+ Expect -flax-vector-conversions message. Adjust incompatible
+ types errors.
+ * gcc.target/powerpc/spe1.c: Pass -mspe and -mfloat-gprs=single.
+ Make Foo extern.
- * gcc.dg/tree-ssa/loop-19.c: Revert previous change.
+ * gcc.dg/cpp/assert4.c: Recognize __PPC__.
-2008-03-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ * g++.dg/other/opaque-1.C: Run on targets with SPE.
- PR libfortran/35617
- * gfortran.dg/namelist_45.f90: New test.
+ * g++.dg/ext/spe-1.C: Pass -mspe and -mfloat-gprs=single.
+ * g++.dg/other/opaque-2.C: Likewise.
+ * g++.dg/other/opaque-3.C: Likewise.
-2008-03-17 James E. Wilson <wilson@tuliptree.org>
+2009-01-12 Jakub Jelinek <jakub@redhat.com>
- PR testsuite/35512
- * gcc.target/ia64/visibility-1.c (foo): Change return type to void.
- Write variables instead of reading them.
+ PR c/32041
+ * gcc.dg/pr32041.c: New test.
+ * g++.dg/parse/offsetof9.C: New test.
-2008-03-17 Jason Merrill <jason@redhat.com>
+2009-01-12 Daniel Jacobowitz <dan@codesourcery.com>
+ Nathan Froyd <froydnj@codesourcery.com>
- PR c++/35548
- * g++.dg/init/ref16.C: New testcase.
+ * g++.dg/conversion/simd1.C: Ignore irrelevant warning.
+ * g++.dg/ext/attribute-test-1.C: Likewise.
+ * g++.dg/ext/attribute-test-2.C: Likewise.
+ * g++.dg/ext/attribute-test-3.C: Likewise.
+ * g++.dg/ext/attribute-test-4.C: Likewise.
-2008-03-17 Richard Guenther <rguenther@suse.de>
+2009-01-12 Eric Botcazou <ebotcazou@adacore.com>
- PR tree-optimization/19637
- * g++.dg/tree-ssa/pr19637.C: New testcase.
+ * gnat.dg/unchecked_convert3.adb: New test.
-2008-03-16 Paul Thomas <pault@gcc.gnu.org>
+2009-01-12 Jakub Jelinek <jakub@redhat.com>
- PR fortran/35470
- * gfortran.dg/subref_array_pointer_3.f90 : New test.
+ PR c++/38794
+ * g++.dg/parse/typedef9.C: New test.
-2008-03-16 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/38807
+ * gcc.c-torture/compile/pr38807.c: New test.
- PR middle-end/35607
- * gcc.c-torture/compile/pr35607.c: New testcase.
- * gcc.dg/tree-ssa/loop-19.c: Use -O2 to avoid vectorization.
+2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
-2008-03-16 Daniel Franke <franke.daniel@gmail.com>
+ * gcc.target/mips/ins-2.c: New test.
- PR fortran/35582
- * gfortran.dg/write_invalid_format.f90: New test.
+2009-01-11 H.J. Lu <hongjiu.lu@intel.com>
-2008-03-15 Richard Guenther <rguenther@suse.de>
+ PR testsuite/38809
+ * gcc.dg/pr38616.c: Only run for targets with -fstack-protector.
- * gcc.dg/tree-ssa/ssa-ccp-16.c: New testcase.
+2009-01-11 Jakub Jelinek <jakub@redhat.com>
-2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR c++/36254
+ * g++.dg/warn/Wreturn-type-5.C: New test.
- PR testsuite/35184
- * gfortran.dg/elemental_subroutine_6.f90: New test.
+2009-01-11 Matthias Klose <doko@ubuntu.com>
-2008-03-15 Richard Guenther <rguenther@suse.de>
+ PR middle-end/38616
+ * gcc.dg/pr38616.c: New test.
- * gcc.dg/pr23911.c: Adjust testcase.
- * gcc.dg/tree-ssa/pr14841.c: Likewise.
- * gcc.dg/tree-ssa/20030922-2.c: Likewise.
+2009-01-10 Sebastian Pop <sebastian.pop@amd.com>
-2008-03-15 Richard Guenther <rguenther@suse.de>
+ * gcc.dg/graphite/block-3.c: Fix compile error on 32bit.
- PR middle-end/35593
- * g++.dg/warn/Warray-bounds-3.C: New testcase.
+2009-01-10 Andrew Pinski <pinskia@gmail.com>
-2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR c++/38648
+ * g++.dg/expr/string-1.C: New test.
+ * g++.dg/expr/string-2.C: New test.
- PR testsuite/35478
- * gfortran.dg/generic_16.f90: New test.
+ PR c++/36695
+ * g++.dg/ext/complex4.C: New test.
+ * g++.dg/ext/complex5.C: New test.
+ * g++.dg/init/reference1.C: New test.
+ * g++.dg/init/reference2.C: New test.
+ * g++.dg/init/reference3.C: New test.
-2008-03-15 Hans-Peter Nilsson <hp@axis.com>
+2009-01-10 Paul Thomas <pault@gcc.gnu.org>
- PR middle-end/35595
- * gcc.c-torture/compile/pr35595.c: New test.
+ PR fortran/38763
+ * gfortran.dg/transfer_null_1.f90: New test.
-2008-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+2009-01-10 Paul Thomas <pault@gcc.gnu.org>
- PR testsuite/33296
- * gfortran.dg/nearest_4.f90: New test.
+ PR fortran/38765
+ * gfortran.dg/host_assoc_function_6.f90: New test.
-2008-03-14 Richard Guenther <rguenther@suse.de>
+2009-01-09 Joel Sherrill <joel.sherrill@oarcorp.com>
- PR tree-optimization/13761
- * gcc.dg/tree-ssa/ssa-lim-3.c: New testcase.
+ * lib/target-supports.exp: Add method to determine if the effective
+ target is really a ppc405 after applying all compile options.
+ * gcc.target/powerpc/405-mulhhwu-2.c: Add dg-skip-if not ppc405.
+ * gcc.target/powerpc/405-nmachhw-1.c: Likewise.
+ * gcc.target/powerpc/405-nmaclhw-1.c: Likewise.
+ * gcc.target/powerpc/405-machhwu-1.c: Likewise.
+ * gcc.target/powerpc/405-mullhwu-1.c: Likewise.
+ * gcc.target/powerpc/405-nmacchw-1.c: Likewise.
+ * gcc.target/powerpc/405-mulchwu-1.c: Likewise.
+ * gcc.target/powerpc/405-nmachhw-2.c: Likewise.
+ * gcc.target/powerpc/405-nmaclhw-2.c: Likewise.
+ * gcc.target/powerpc/405-machhwu-2.c: Likewise.
+ * gcc.target/powerpc/405-mulhhw-1.c: Likewise.
+ * gcc.target/powerpc/405-machhw-1.c: Likewise.
+ * gcc.target/powerpc/405-mullhw-1.c: Likewise.
+ * gcc.target/powerpc/405-maclhw-1.c: Likewise.
+ * gcc.target/powerpc/405-dlmzb-strlen-1.c: Likewise.
+ * gcc.target/powerpc/405-mullhwu-2.c: Likewise.
+ * gcc.target/powerpc/405-nmacchw-2.c: Likewise.
+ * gcc.target/powerpc/405-mulchwu-2.c: Likewise.
+ * gcc.target/powerpc/405-mulchw-1.c: Likewise.
+ * gcc.target/powerpc/405-maclhwu-1.c: Likewise.
+ * gcc.target/powerpc/405-macchw-1.c: Likewise.
+ * gcc.target/powerpc/405-mulhhw-2.c: Likewise.
+ * gcc.target/powerpc/405-machhw-2.c: Likewise.
+ * gcc.target/powerpc/405-mullhw-2.c: Likewise.
+ * gcc.target/powerpc/405-maclhw-2.c: Likewise.
+ * gcc.target/powerpc/405-macchwu-1.c: Likewise.
+ * gcc.target/powerpc/405-mulhhwu-1.c: Likewise.
+ * gcc.target/powerpc/405-mulchw-2.c: Likewise.
+ * gcc.target/powerpc/405-maclhwu-2.c: Likewise.
+ * gcc.target/powerpc/405-macchw-2.c: Likewise.
+ * gcc.target/powerpc/405-macchwu-2.c: Likewise.
-2008-03-14 Richard Guenther <rguenther@suse.de>
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/34172
- * gcc.dg/tree-ssa/ssa-fre-11.c: New testcase.
- * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.
- * gcc.dg/tree-ssa/20031106-4.c: Remove XFAIL.
+ PR c++/35335
+ * g++.dg/other/error31.C: New testcase.
-2008-03-14 Uros Bizjak <ubizjak@gmail.com>
+ PR c/35742
+ * gcc.dg/pr35742.c: New test.
- PR libcpp/35322:
- * gcc.dg/cpp/pr35322.c: Add dg-error line.
+2009-01-09 John F. Carr <jfc@mit.edu>
-2008-03-14 Richard Guenther <rguenther@suse.de>
+ PR c++/37877
+ * g++.dg/parse/linkage3.C: New test.
- PR tree-optimization/34043
- PR tree-optimization/33989
- * gcc.dg/tree-ssa/ssa-fre-7.c: New testcase.
- * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise.
- * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise.
- * gcc.dg/tree-ssa/ssa-pre-17.c: Likewise.
+2009-01-09 Jakub Jelinek <jakub@redhat.com>
-2008-03-14 H.J. Lu <hongjiu.lu@intel.com>
- Uros Bizjak <ubizjak@gmail.com>
+ PR middle-end/38771
+ * gcc.c-torture/compile/pr38771.c: New test.
- PR testsuite/35538
- * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Support PIC targets.
- Skip *-*-darwin*.
- * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Skip *-*-darwin*.
+2009-01-08 Nathan Froyd <froydnj@codesourcery.com>
-2008-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
- Uros Bizjak <ubizjak@gmail.com>
+ * gcc.dg/pr34856.c: Ignore irrelevant warning.
- PR testsuite/35406
- * gcc.dg/tree-ssa/ldist-4.c: Update expected scan match
- count from 0 to 1 for lp64 targets.
- * gfortran.dg/ldist-1.f90: Update test to check
- for 5 loops distributed instead of 4 for lp64 targets.
+2009-01-08 Mark Mitchell <mark@codesourcery.com>
-2008-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/35475
- * gfortran.dg/derived_sub.f90: New test.
-
-2008-03-13 H.J. Lu <hongjiu.lu@intel.com>
-
- PR testsuite/35558
- * g++.dg/tls/static-1.C: Move dg-additional-sources after
- dg-require-effective-target.
- * g++.dg/tls/static-1a.cc: Likewise.
-
-2008-03-13 Tom Tromey <tromey@redhat.com>
-
- PR libcpp/35322:
- * gcc.dg/cpp/pr35322.c: New file.
-
-2008-03-13 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/vect/vect-align-2.c: Remove dg-do run directive.
- (main): Call check_vect.
-
-2008-03-13 Alon Dayan <alond@il.ibm.com>
- Olga Golovanevsky <olga@il.ibm.com>
-
- PR tree-optimization/35041
- * gcc.dg/struct/wo_prof_double_malloc.c: New test.
-
-2008-03-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34000
- PR target/35553
- * g++.dg/other/i386-3.C: New test.
- * gcc.target/i386/sse-13.c: Redefine extern instead of static.
- * gcc.target/i386/sse-14.c: Ditto.
- * gcc.target/i386/mmx-1.c: Ditto.
- * gcc.target/i386/mmx-2.c: Ditto.
- * gcc.target/i386/3dnow-1.c: Ditto.
- * gcc.target/i386/3dnow-2.c: Ditto.
- * gcc.target/i386/3dnowA-1.c: Ditto.
- * gcc.target/i386/3dnowA-2.c: Ditto.
-
-2008-03-13 Paolo Bonzini <bonzini@gnu.org>
-
- PR tree-opt/35422
- * gcc.target/i386/pr35422.c: Escape brackets.
-
-2008-03-12 Paolo Bonzini <bonzini@gnu.org>
-
- PR tree-opt/35422
- * gcc.dg/vect/slp-7.c: Change target keywords required for vectorizing
- third loop.
- * gcc.target/i386/pr35422.c: New.
-
-2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR tree-opt/35403
- * gcc.dg/tree-ssa/ipa-reference-1.c: New testcase.
-
-2008-03-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35540
- * gcc.target/i386/pr35540.c: New test.
-
-2008-03-11 Uros Bizjak <ubizjak@gmail.com>
-
- * g++.dg/inherit/override-attribs.C: Require ilp32 x86 target.
-
-2008-03-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/35526
- * g++.dg/torture/pr35526.C: New test.
-
-2008-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35328
- * g++.dg/gomp/pr35328.C: New test.
-
- PR c++/35337
- * g++.dg/gomp/pr35337.C: New test.
-
- PR c/35438
- PR c/35439
- * gcc.dg/gomp/pr35438.c: New test.
- * gcc.dg/gomp/pr35439.c: New test.
-
- PR middle-end/35099
- * g++.dg/gomp/pr35099.C: New test.
-
-2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/range_check2.adb: New test.
-
-2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR tree-optimization/35494
- * g++.dg/tree-ssa/ssa-store-ccp-1.C: New.
- * gcc.dg/tree-ssa/ssa-store-ccp-2.c: Likewise.
- * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Likewise.
- * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Likewise.
-
-2008-03-10 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34677
- * gcc.dg/tree-ssa/loadpre23.c: New testcase.
- * gcc.dg/tree-ssa/loadpre24.c: Likewise.
- * gcc.dg/tree-ssa/loadpre25.c: Likewise.
-
-2008-03-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/35474
- * gfortran.dg/module_commons_2.f90: New test.
+ * gcc.dg/sibcall-3.c: XFAIL for Thumb.
+ * gcc.dg/sibcall-4.c: Likewise.
-2008-03-09 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
- * gnat.dg/frame_overflow.adb: Improve portability.
+ PR tree-optimization/38559
+ * testsuite/gcc.dg/graphite/pr38559.c: New.
-2008-03-08 H.J. Lu <hongjiu.lu@intel.com>
+2009-01-08 Ira Rosen <irar@il.ibm.com>
- PR target/35350
- * gcc.target/i386/isa-1.c: Add -march=x86-64.
- * gcc.target/i386/isa-2.c: Likewise.
- * gcc.target/i386/isa-3.c: Likewise.
- * gcc.target/i386/isa-10.c: Likewise.
- * gcc.target/i386/isa-11.c: Likewise.
- * gcc.target/i386/isa-12.c: Likewise.
- * gcc.target/i386/isa-13.c: Likewise.
- * gcc.target/i386/isa-14.c: Likewise.
+ PR tree-optimization/37194
+ * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: New test.
-2008-03-08 Uros Bizjak <ubizjak@gmail.com>
+2009-01-07 Jakub Jelinek <jakub@redhat.com>
- PR target/22152
- * gcc.target/i386/pr22152.c: New test.
- * gcc.target/i386/sse2-mmx.c: Ditto.
+ PR c++/38725
+ * g++.dg/ext/label11.C: New test.
-2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-07 Joseph Myers <joseph@codesourcery.com>
- * gnat.dg/uninit_func.adb: New test.
+ * lib/target-supports.exp (check_weak_override_available): New.
+ * lib/target-supports-dg.exp (dg-require-weak-override): New.
+ * gcc.dg/tree-ssa/pr27781.c, g++.dg/eh/weak1.C: Use
+ dg-require-weak-override.
-2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
+ Alan Modra <amodra@bigpond.net.au>
- * gnat.dg/pack4.adb: New test.
+ * gcc.c-torture/compile/20090107-1.c: New test.
-2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-07 Uros Bizjak <ubizjak@gmail.com>
- * gnat.dg/small_alignment.adb: New test.
+ PR target/38706
+ * g++.dg/other/pr38706.C: New test.
-2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-07 Jason Merrill <jason@redhat.com>
- * gnat.dg/specs/alignment2.ads: New test.
+ * g++.dg/cpp0x/variadic92.C: New test.
+ * g++.dg/cpp0x/variadic93.C: New test.
-2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
+2009-01-07 Janis Johnson <janis187@us.ibm.com>
- * gnat.dg/pack3.adb: New test.
+ * lib/target-supports-dg.exp (current_compiler_flags): New.
+ (check-flags): Use it; do not access dg-test local variables.
+ (dg-skip-if): Do not access dg-test local variables.
+ (dg-xfail-run-if): Ditto.
+ (dg-shouldfail): Ditto.
+ * gcc.test-framework/test-framework.exp
+ (check_effective_target_def_nocache): New.
+ * gcc.test-framework/test-framework.awk: Handle scan tests.
+ * gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c: New test.
+ * gcc.test-framework/dg-error-nocache-exp-P.c: New test.
+ * gcc.test-framework/dg-nocache-scanasm-exp-XF.c: New test.
+ * gcc.test-framework/dg-warning-nocache-exp-P.c: New test.
+ * gcc.test-framework/dg-nocache-sif-exp-P.c: New test.
+ * gcc.test-framework/dg-nocache-sif-exp-U.c: New test.
+ * gcc.test-framework/dg-nocache-xif-exp-P.c: New test.
+ * gcc.test-framework/dg-do-run-sft-nocache-exp-P.c: New test.
+ * gcc.test-framework/dg-nocache-xif-exp-XP.c: New test.
-2008-03-07 Peter O'Gorman <pogma@thewrittenword.com>
+ * g++.dg/torture/pr38586.C: Ignore a possible warning.
- PR c++/20366
- * g++.dg/other/pr20366.C: New test.
+ * lib/target-supports-dg.exp (check_test_flags): Delete.
-2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
- PR tree-opt/35402
- * gcc.dg/tree-ssa/ssa-store-ccp-1.c: New test.
+ PR tree-optimization/38492
+ PR tree-optimization/38498
+ * testsuite/gcc.dg/graphite/pr38500.c: Fixed warning as committed
+ in trunk.
+ * testsuite/gcc.dg/graphite/block-0.c: Update test.
+ * testsuite/gcc.dg/graphite/block-1.c: Same.
+ * testsuite/gcc.dg/graphite/block-2.c: Remove xfail and test for blocking.
+ * testsuite/gcc.dg/graphite/block-4.c: Remove test for strip mine.
+ * testsuite/gcc.dg/graphite/block-3.c: New.
+ * testsuite/gcc.dg/graphite/pr38498.c: New.
-2008-03-06 Markus Milleder <markus.milleder@generali.at>
-
- PR preprocessor/35458
- * gcc.dg/cpp/cmdlne-M-2.c: New file.
- * gcc.dg/cpp/cmdlne-M-2#.h: New file.
- * gcc.dg/cpp/#cmdlne-M-2.h: New file.
-
-2008-03-06 Tom Tromey <tromey@redhat.com>
-
- * lib/treelang-dg.exp, lib/treelang.exp: Delete.
- * treelang: Delete.
-
-2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/pack33.ads: New test.
-
-2008-03-05 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35472
- * gcc.c-torture/execute/pr35472.c: New testcase.
-
-2008-03-05 Gabor Loki <loki@gcc.gnu.org>
-
- PR 33009
- * gcc.c-torture/compile/pr11832.c: Check -frtl-abstract-sequences.
- * gcc.c-torture/compile/pr33009.c: Likewise.
-
-2008-03-05 Victor Kaplansky <victork@gcc.gnu.org>
-
- PR 31341
- * gcc.dg/vect/pr31041.c: Fix.
-
-2008-03-05 Hans-Peter Nilsson <hp@axis.com>
-
- PR libfortran/35293
- * lib/lib/target-supports.exp (check_effective_target_fd_truncate):
- New.
- * gfortran.fortran-torture/execute/list_read_1.x,
- gfortran.fortran-torture/execute/read_null_string.x,
- gfortran.fortran-torture/execute/backspace.x,
- gfortran.fortran-torture/execute/seq_io.x,
- gfortran.fortran-torture/execute/slash_edit.x,
- gfortran.fortran-torture/execute/unopened_unit_1.x,
- gfortran.dg/namelist_21.f90, gfortran.dg/advance_5.f90,
- gfortran.dg/fmt_t_7.f, gfortran.dg/eor_1.f90,
- gfortran.dg/read_x_past.f, gfortran.dg/tl_editing.f90,
- gfortran.dg/ftell_2.f90, gfortran.dg/namelist_13.f90,
- gfortran.dg/namelist_22.f90, gfortran.dg/advance_6.f90,
- gfortran.dg/read_bad_advance.f90, gfortran.dg/func_derived_3.f90,
- gfortran.dg/namelist_40.f90, gfortran.dg/x_slash_2.f,
- gfortran.dg/namelist_14.f90, gfortran.dg/backspace_1.f,
- gfortran.dg/namelist_23.f90, gfortran.dg/pr17285.f90,
- gfortran.dg/read_noadvance.f90, gfortran.dg/namelist_use_only.f90,
- gfortran.dg/namelist_41.f90, gfortran.dg/namelist_15.f90,
- gfortran.dg/backspace_3.f, gfortran.dg/backslash_3.f,
- gfortran.dg/namelist_24.f90, gfortran.dg/pr17286.f90,
- gfortran.dg/endfile.f90, gfortran.dg/open_access_append_1.f90,
- gfortran.dg/fmt_huge.f90, gfortran.dg/namelist_42.f90,
- gfortran.dg/pr18392.f90, gfortran.dg/pr19155.f, gfortran.dg/pr12884.f,
- gfortran.dg/namelist_16.f90, gfortran.dg/backspace_5.f,
- gfortran.dg/open_readonly_1.f90, gfortran.dg/fmt_read.f90,
- gfortran.dg/iostat_1.f90, gfortran.dg/namelist_43.f90,
- gfortran.dg/read_size_noadvance.f90, gfortran.dg/inquire_5.f90,
- gfortran.dg/read_many_1.f, gfortran.dg/namelist_17.f90,
- gfortran.dg/list_read_1.f90, gfortran.dg/backspace_10.f90,
- gfortran.dg/namelist_26.f90, gfortran.dg/unf_read_corrupted_2.f90,
- gfortran.dg/record_marker_1.f90, gfortran.dg/convert_implied_open.f90,
- gfortran.dg/iostat_2.f90, gfortran.dg/write_check3.f90,
- gfortran.dg/namelist_44.f90, gfortran.dg/namelist_use.f90,
- gfortran.dg/rewind_1.f90, gfortran.dg/streamio_11.f90,
- gfortran.dg/namelist_18.f90, gfortran.dg/backspace_9.f,
- gfortran.dg/dos_eol.f, gfortran.dg/read_eof_1.f90,
- gfortran.dg/namelist_27.f90, gfortran.dg/pad_no.f90,
- gfortran.dg/endfile.f, gfortran.dg/namelist_11.f,
- gfortran.dg/namelist_19.f90, gfortran.dg/eor_handling_1.f90,
- gfortran.dg/write_rewind_1.f, gfortran.dg/comma.f,
- gfortran.dg/read_eof_2.f90, gfortran.dg/namelist_28.f90,
- gfortran.dg/record_marker_3.f90, gfortran.dg/complex_read.f90,
- gfortran.dg/namelist_37.f90, gfortran.dg/error_recovery_5.f90,
- gfortran.dg/namelist_char_only.f90, gfortran.dg/pr18122.f90,
- gfortran.dg/list_read_4.f90, gfortran.dg/eor_handling_2.f90,
- gfortran.dg/read_eof_3.f90, gfortran.dg/dollar_edit_descriptor_1.f,
- gfortran.dg/pr19467.f90, gfortran.dg/namelist_38.f90,
- gfortran.dg/inquire_9.f90, gfortran.dg/list_read_5.f90,
- gfortran.dg/noadv_size.f90, gfortran.dg/backslash_1.f90,
- gfortran.dg/eor_handling_3.f90, gfortran.dg/read_eof_4.f90,
- gfortran.dg/runtime_warning_1.f90, gfortran.dg/x_slash_1.f,
- gfortran.dg/namelist_39.f90, gfortran.dg/streamio_3.f90,
- gfortran.dg/read_comma.f, gfortran.dg/pr19657.f,
- gfortran.dg/streamio_15.f90, gfortran.dg/list_read_6.f90,
- gfortran.dg/eor_handling_4.f90, gfortran.dg/backslash_2.f90,
- gfortran.dg/pr19216.f, gfortran.dg/PR19872.f,
- gfortran.dg/backspace_2.f, gfortran.dg/empty_format_1.f90,
- gfortran.dg/streamio_4.f90, gfortran.dg/append_1.f90,
- gfortran.dg/fgetc_1.f90, gfortran.dg/complex_write.f90,
- gfortran.dg/list_read_7.f90, gfortran.dg/eor_handling_5.f90,
- gfortran.dg/fmt_t_1.f90, gfortran.dg/pr17090.f90,
- gfortran.dg/backspace_4.f, gfortran.dg/shape_3.f90,
- gfortran.dg/unf_io_convert_1.f90, gfortran.dg/fgetc_2.f90,
- gfortran.dg/vector_subscript_3.f90, gfortran.dg/list_read_8.f90,
- gfortran.dg/flush_1.f90, gfortran.dg/advance_1.f90,
- gfortran.dg/fmt_t_2.f90, gfortran.dg/backspace_6.f,
- gfortran.dg/slash_1.f90, gfortran.dg/stat_1.f90,
- gfortran.dg/unformatted_recl_1.f90, gfortran.dg/record_marker_2.f,
- gfortran.dg/overwrite_1.f, gfortran.dg/unf_io_convert_2.f90,
- gfortran.dg/fmt_t_3.f90, gfortran.dg/backspace_8.f,
- gfortran.dg/stat_2.f90, gfortran.dg/pr18210.f90,
- gfortran.dg/unformatted_subrecord_1.f90, gfortran.dg/pr20257.f90,
- gfortran.dg/eof_1.f90, gfortran.dg/fmt_t_4.f90,
- gfortran.dg/unf_short_record_1.f90, gfortran.dg/fmt_exhaust.f90,
- gfortran.dg/namelist_20.f90, gfortran.dg/advance_4.f90,
- gfortran.dg/fmt_t_5.f90, gfortran.dg/namelist_12.f,
- gfortran.dg/backspace_7.f90, gfortran.dg/write_rewind_2.f,
- gfortran.dg/ftell_1.f90, gfortran.dg/fseek.f90,
- gfortran.dg/write_back.f: Gate test on effective_target fd_truncate.
-
-2008-03-04 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/tree-ssa/loop-1.c: Handle i?86-*-mingw* i?86-*-cygwin* as
- targets declaring functions in assembly.
-
-2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28322
- * gcc.dg/pr28322-3.c: New.
-
-2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35453
- * gcc.target/i386/sse4_2-pcmpestri-1.c: Replace SIDD_XXX with
- _SIDD_XXX.
- * gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
- * gcc.target/i386/sse4_2-pcmpstr.h: Likewise.
-
-2008-03-04 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/35456
- * gcc.c-torture/execute/pr35456.c: New test.
-
-2008-03-04 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/i386/sse-10.c: Don't use
- -mno-accumulate-outgoing-args on *-*-mingw* *-*-cygwin*.
-
-2008-03-04 Uros Bizjak <ubizjak@gmail.com>
-
- * gfortran.dg/reassoc_1.f90: Cleanup dump files.
- * gfortran.dg/reassoc_2.f90: Ditto.
- * gfortran.dg/reassoc_3.f90: Ditto.
-
-2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/33197
- * gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
- * gfortran.dg/dg.exp: Likewise.
- * gfortran.dg/vect/vect.exp: Likewise.
- * gfortran.fortran-torture/execute/execute.exp: Likewise.
- * gfortran.fortran-torture/compile/compile.exp: Likewise.
- * gfortran.dg/gamma_1.f90: Also check log_gamma.
- * gfortran.dg/invalid_contains_1.f90: Remove warning about
- empty CONTAINS.
- * gfortran.dg/gamma_2.f90: Add a few error messages.
- * gfortran.dg/invalid_contains_2.f90: Remove warning about
- empty CONTAINS.
- * gfortran.dg/gamma_3.f90: Adjust error message.
- * gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
- * gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
- * gfortran.dg/bessel_1.f90: New test.
- * gfortran.dg/recursive_check_3.f90: Remove warnings.
- * gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
- * gfortran.dg/derived_function_interface_1.f90: Remove warning.
- * gfortran.dg/contains_empty_1.f03: New test.
- * gfortran.dg/erfc_scaled_1.f90: New test.
- * gfortran.dg/hypot_1.f90: New test.
- * gfortran.dg/contains_empty_2.f03: New test.
-
-2008-03-03 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/builtin-apply-mmx.c: Do not XFAIL on Darwin.
-
-2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 24924
- * g++.dg/cpp/string-2.C: This is a warning now.
- * g++.dg/cpp/pedantic-errors.C: -pedantic-errors is not enabled by
- default, so add it.
-
-2008-03-01 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/cpp0x/auto1.C: New.
-
-2008-03-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/34770
- * gfortran.dg/pointer_1.f90: New test.
-
-2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
+2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
- PR c++/35315
- * g++.dg/ext/attrib32.C: Add another test case.
+ AVX Programming Reference (December, 2008)
+ * gcc.target/i386/avx-vmovntdq-256-1.c: New.
+ * gcc.target/i386/avx-vmovntpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovntps-256-1.c: Likewise.
-2008-02-29 Tom Tromey <tromey@redhat.com>
+ * gcc.target/i386/sse2-movntdq-1.c (TEST): Align array to 16byte.
+ * gcc.target/i386/sse2-movntpd-1.c (TEST): Likewise.
- * g++.dg/warn/pragma-system_header2.C: Ignore "included from"
- line.
+2009-01-06 Thomas Koenig <tkoenig@gcc.gnu.org>
-2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
+ PR fortran/38220
+ * gfortran.dg/c_loc_pure_1.f90: New test.
- * gcc.dg/tree-ssa/ltrans-8.c: Increase the size of strides
- to make the interchange profitable.
+2009-01-06 Mikael Morin <mikael.morin@tele2.fr>
-2008-02-28 Daniel Franke <franke.daniel@gmail.com>
+ PR fortran/38669
+ * gfortran.dg/elemental_dependency_3.f90:
+ Add the final tree dump cleanup.
- PR fortran/31463
- PR fortran/33950
- PR fortran/34296
- * gfortran.dg/arrayio_11.f90: Fixed test.
- * gfortran.dg/arrayio_12.f90: Likewise.
- * gfortran.dg/module_read_1.f90: Added warning-directives.
- * gfortran.dg/pr32242.f90: Likewise.
- * gfortran.dg/result_in_spec_3.f90: Likewise.
- * gfortran.dg/use_12.f90: Likewise.
- * gfortran.dg/warn_function_without_result.f90 : New test.
+2009-01-06 Jakub Jelinek <jakub@redhat.com>
-2008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+ * gfortran.dg/pr23095.f: Require ilp32 in target selection instead of
+ passing -m32.
- PR fortran/34868
- * gfortran.dg/f2c_9.f90: New test.
+ PR rtl-optimization/38722
+ * gfortran.dg/pr38722.f90: New test.
-2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
+2009-01-06 Janis Johnson <janis187@us.ibm.com>
- * gcc.dg/tree-ssa/ldist-1.c: New.
- * gcc.dg/tree-ssa/ldist-1a.c: New.
- * gcc.dg/tree-ssa/ldist-2.c: New.
- * gcc.dg/tree-ssa/ldist-3.c: New.
- * gcc.dg/tree-ssa/ldist-4.c: New.
- * gcc.dg/tree-ssa/ldist-5.c: New.
- * gcc.dg/tree-ssa/ldist-6.c: New.
- * gcc.dg/tree-ssa/ldist-7.c: New.
- * gcc.dg/tree-ssa/ldist-8.c: New.
- * gcc.dg/tree-ssa/ldist-9.c: New.
- * gcc.dg/tree-ssa/ldist-10.c: New.
- * gcc.dg/tree-ssa/ldist-11.c: New.
- * gcc.dg/tree-ssa/ldist-12.c: New.
- * gfortran.dg/ldist-1.f90: New.
+ PR c/34252
+ * gcc.dg/dfp/decfloat-constants.c: Check for DECnn_SUBNORMAL_MIN
+ instead of DECnn_DEN. Support -DDBG to list lines that fail.
-2008-02-28 Uros Bizjak <ubizjak@gmail.com>
+2009-01-06 Dominique Dhumieres <dominiq@lps.ens.fr>
- * gcc.dg/pr34351.c: Compile for x86 targets only. Use %ebx register.
+ * gfortran.dg/implicit_12.f90: Add space around dg directive.
+ * gfortran.dg/typebound_call_8.f03: Same.
+ * gfortran.dg/elemental_bind_c.f90: Same.
+ * gfortran.dg/typebound_call_7.f03: Same.
+ * gfortran.dg/interface_proc_end.f90: Same
+ * gfortran.dg/pr37243.f: Fix typo.
-2008-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+2009-01-06 Uros Bizjak <ubizjak@gmail.com>
- * gfortran.dg/large_real_kind_3.F90: Reverse previous commit.
+ * gcc.dg/struct-ret-3.c (CHUNK_SIZE): New define. Use CHUNK_SIZE
+ instead of hardcoded number. Increase CHUNK_SIZE to 16384 for
+ large stack sizes.
-2008-02-27 Jan Beulich <jbeulich@novell.com>
+2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
- * gcc.target/i386/mmx-1.c: Add
- -Werror-implicit-function-declaration to dg-options.
- * gcc.target/i386/mmx-2.c: Likewise.
- * gcc.target/i386/sse-13.c: Likewise.
+ AVX Programming Reference (December, 2008)
+ * gcc.target/i386/avx-2.c: Remove tests for _mm_permute2_pd,
+ _mm256_permute2_pd, _mm_permute2_ps and _mm256_permute2_ps.
* gcc.target/i386/sse-14.c: Likewise.
-2008-02-27 Revital Eres <eres@il.ibm.com>
-
- PR rtl-optimization/34999
- * gcc.dg/tree-prof/pr34999.c: New.
-
-2008-02-27 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/25290
- * gcc.c-torture/execute/pr35390.c: New testcase.
-
-2008-02-27 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/22255
- * gnat.dg/test_direct_io.adb: New file.
-
-2008-02-27 Samuel Tardieu <sam@rfc1149.net>
-
- PR ada/34799
- * gnat.dg/specs/pr34799.ads: New test.
-
-2008-02-27 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34971
- * gcc.c-torture/execute/pr34971.c: New testcase.
-
-2008-02-27 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.dg/gomp/preprocess-1.c: New test.
-
- PR c++/35368
- * g++.dg/ext/visibility/typeinfo2.C: New test.
- * g++.dg/ext/visibility/typeinfo3.C: New test.
-
-2008-02-26 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/bf-ms-attrib.c (main): Return 0.
-
-2008-02-26 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/i386/mmx-4.c (dump64_64): Use printf %I64 on MinGW.
- * gcc.target/i386/sse-6.c (dump128_64): Likewise.
-
-2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR c/28800
- * gcc.dg/empty-source-2.c: Adjust for warning message.
- * gcc.dg/empty-source-3.c: Likewise.
- * gcc.dg/pack-test-2.c: Adjust comment.
- * gcc.dg/pragma-ep-2.c: Likewise.
- * gcc.dg/pragma-re-2.c: Likewise.
- * gcc.dg/va-arg-2.c: Likewise.
-
-2008-02-26 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/35033
- * gfortran.dg/assignment_2.f90: New.
-
-2008-02-26 Jason Merrill <jason@redhat.com>
-
- PR c++/35315
- * g++.dg/ext/attrib32.C: New.
-
-2008-02-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * gcc.c-torture/execute/nest-align-1.x: Delete.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 26264
- * 20021023-1.c: Use __builtin_va_start instead of
- __builtin_stdarg_start.
- * pr17301-1.c: Likewise.
- * pr17301-2.c: Likewise.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * gcc.dg/pr34351.c: New.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * gcc.dg/Wlarger-than2.c: New.
-
-2008-02-26 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35323
- * g++.dg/lookup/crash7.C: New.
-
-2008-02-26 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * gcc.c-torture/execute/nest-align-1.c: Use the largest alignment.
-
-2008-02-25 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.target/i386/pr25993.c: Skip on *-*-mingw*.
-
-2008-02-25 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/debug/dwarf2/aranges-fnsec-1.c: Add -w to dg-options.
-
-2008-02-25 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/builtins-config.h: Disable C99 runtime testing for
- Windows.
-
-2008-02-25 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp (check_profiling_available): Report -p
- unavailable on *-*-mingw*.
-
-2008-02-25 Joseph Myers <joseph@codesourcery.com>
-
- * lib/target-supports.exp (check_effective_target_pthread_h): New.
- * gcc.dg/pthread-init-1.c, gcc.dg/pthread-init-2.c: Use
- dg-require-effective-target pthread_h.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- * gcc.dg/Wswitch-enum-error.c: New.
- * gcc.dg/Wswitch-error.c: New.
- * gcc.dg/20011021-1.c: Use two directives to match two different
- messages.
-
-2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 28322
- * gcc.dg/pr28322.c: New.
- * gcc.dg/pr28322-2.c: New.
- * lib/prune.exp: Ignore "At top level" even if there is no ':'
- preceding it.
-
-2008-02-25 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35333
- * g++.dg/other/error26.C: New.
-
-2008-02-25 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35338
- * g++.dg/other/error25.C: New.
-
-2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR target/35258
- * gcc.dg/pr35258.c: New testcase.
-
-2008-02-25 Jan Beulich <jbeulich@novell.com>
-
- * gcc.dg/20020426-2.c: Remove bogus workaround.
- * g++.old-deja/g++.other/store-expr1.C: Likewise.
- * gcc.target/i386/movq-2.c: Also permit use of movzbl.
-
-2008-02-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- * gfortran.dg/large_real_kind_3.F90: Xfail on ppc-darwin.
-
-2008-02-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR middle-end/19984
- * gcc.dg/pr19984.c: New test.
- * gcc.dg/dfp/compare-special.h: Use _nan instead of nan as the
- name of the variable.
-
-2008-02-25 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/vect/vect-99.c: Include stdlib.h and tree-vect.h.
- (main): Call check_vect and foo. Check array values after
- the call to foo.
- * gcc.dg/vect/vect-117.c: Call check_vect.
- * gcc.dg/vect/no-vfa-pr29145.c: Ditto.
-
-2008-02-25 Jason Merrill <jason@redhat.com>
-
- PR c++/33486
- * g++.dg/lookup/strong-using-5.C: New.
-
-2008-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * gcc.dg/tree-ssa/ssa-pre-10.c: Use -fno-finite-math-only on
- sh* targets.
-
-2008-02-24 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35349
- * gcc.c-torture/execute/20050604-1.x: New file.
-
-2008-02-24 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr22076.c: Update number of mov insns
- for PIC targets.
- * gcc.target/i386/pr34256.c: Ditto.
-
-2008-02-24 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
-
- PR 33738
- * g++.dg/warn/pr33738.C: New.
-
-2008-02-24 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * gcc.c-torture/execute/nest-align-1.x: New file.
-
-2008-02-24 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR c++/34749
- * g++.dg.ext/dllimport13.C: New test.
-
-2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- PR libfortran/24685
- * gfortran.dg/large_real_kind_form_io_2.f90: XFAIL on
- powerpc*-apple-darwin*.
-
-2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- * gfortran.dg/large_real_kind_2.F90: Split testing of ERF and
- ERFC into gfortran.dg/large_real_kind_3.F90.
- * gfortran.dg/large_real_kind_3.F90: New test.
-
-2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR rtl-opt/33512
- * gcc.dg/and-1.c: New test.
-
-2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
-
- * gcc.c-torture/execute/20080222-1.c: New test.
-
-2008-02-23 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/22076
- PR target/34256
- * gcc.target/i386/pr22076.c: New test.
- * gcc.target/i386/pr34256.c: New test.
- * gcc.target/i386/vecinit-5.c: New test.
- * gcc.target/i386/vecinit-6.c: New test.
- * gcc.target/i386/vecinit-[1-4].c: Check that no MMX register is used.
-
- * g++.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
- <xmmintrin.h>, define __m64 and __m128 directly.
- * g++.dg/compat/struct-layout-1_generate.c: Add -mno-mmx for x86.
-
-2008-02-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR C++/34715
- * g++.dg/ext/always_inline-1.C: New test.
- * g++.dg/ext/always_inline-2.C: New test.
- * g++.dg/ext/always_inline-3.C: New test.
- * g++.dg/ext/always_inline-4.C: New test.
-
-2008-02-22 Hans-Peter Nilsson <hp@axis.com>
-
- * gcc.target/cris/asm-b-1.c: New test.
-
-2008-02-22 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35282
- * g++.dg/template/nontype17.C: Add.
-
-2008-02-22 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35282
- Revert:
- 2008-02-14 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/28743
- * g++.dg/template/nontype17.C: New.
- * g++.dg/template/nontype16.C: Add error.
-
-2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR c/19999
- * gcc.dg/Wfloat-equal-1.c: New.
- * g++.dg/warn/Wfloat-equal-1.C: New.
-
-2008-02-21 Michael Matz <matz@suse.de>
-
- PR target/35264
- * gcc.dg/pr35264.c: New testcase.
-
-2008-02-21 Richard Guenther <rguenther@suse.de>
-
- * gfortran.dg/reassoc_1.f90: New testcase.
- * gfortran.dg/reassoc_2.f90: Likewise.
- * gfortran.dg/reassoc_3.f90: Likewise.
-
-2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34974
- * gfortran.dg/fmt_t_7.f: New test.
-
- PR libfortran/35132
- * gfortran.dg/streamio_15.f90: New test.
-
-2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/35036
- * gfortran.dg/fmt_zero_digits.f90: Revise test.
-
-2008-02-20 Seongbae Park <seongbae.park@gmail.com>
-
- * gcc.dg/Wframe-larger-than.c: New option test.
-
-2008-02-20 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34997
- * gfortran.dg/dollar_sym_1.f90: New.
- * gfortran.dg/dollar_sym_2.f90: New.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35265
- * gcc.dg/builtins-66.c: New testcase.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/fold-reassoc-1.c: New testcase.
- * gcc.dg/tree-ssa/recip-3.c: Adjust to not compute d/d.
-
-2008-02-20 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/tree-ssa/reassoc-13.c: New testcase.
-
-2008-02-20 Ira Rosen <irar@il.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_vect_unpack):
- Return true for SPU.
- (check_effective_target_vect_short_mult): Likewise.
- * gcc.dg/vect/vect-reduc-dot-s16b.c: Expect vectorization of
- the loop on targets that support vect_unpack.
-
-2008-02-20 Uros Bizjak <ubizjak@gmail.com>
-
- * g++.dg/compat/struct-layout-1_generate.c (DG_OPTIONS): New define.
- (switchfiles): Use DG_OPTIONS. Explicitly name arguments in fprintf
- templates to reduce number of passed arguments.
-
-2008-02-19 Jason Merrill <jason@redhat.com>
-
- PR c++/34950
- * g++.dg/template/explicit-args1.C: New.
-
-2008-02-19 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34989
- * gcc.dg/pr34989-1.c: New testcase.
- * gcc.dg/pr34989-2.c: Likewise.
-
-2008-02-19 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35028
- * g++.dg/gomp/pr35028.C: New test.
-
- PR c++/34964
- PR c++/35244
- * gcc.dg/gomp/pr34964.c: New test.
- * g++.dg/gomp/pr34964.C: New test.
- * gcc.dg/gomp/pr35244.c: New test.
- * g++.dg/gomp/pr35244.C: New test.
-
- PR c++/35078
- * g++.dg/gomp/pr35078.C: New test.
-
-2008-02-19 Christian Bruel <christian.bruel@st.com>
-
- * gcc.dg/packed-array.c: New testcase.
-
-2008-02-19 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/33555
- * gcc.target/i386/pr33555.c: New test.
-
-2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR target/35189
- * gcc.target/i386/isa-1.c: New.
- * gcc.target/i386/isa-2.c: Likewise.
- * gcc.target/i386/isa-3.c: Likewise.
- * gcc.target/i386/isa-4.c: Likewise.
- * gcc.target/i386/isa-5.c: Likewise.
- * gcc.target/i386/isa-6.c: Likewise.
- * gcc.target/i386/isa-7.c: Likewise.
- * gcc.target/i386/isa-8.c: Likewise.
- * gcc.target/i386/isa-9.c: Likewise.
- * gcc.target/i386/isa-10.c: Likewise.
- * gcc.target/i386/isa-11.c: Likewise.
- * gcc.target/i386/isa-12.c: Likewise.
- * gcc.target/i386/isa-13.c: Likewise.
- * gcc.target/i386/isa-14.c: Likewise.
-
-2008-02-18 Joey Ye <joey.ye@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/34921
- * gcc.c-torture/execute/nest-align-1.c: New test case.
-
-2008-02-17 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35227
- * gcc.dg/torture/pr35227.c: New testcase.
-
-2008-02-17 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35231
- * gcc.c-torture/execute/pr35231.c: New testcase.
-
-2008-02-17 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr32268.c (test_lt): Add noinline attribute.
- (test_gt): Ditto.
-
-2008-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * obj-c++.dg/encode-2.mm: XFAIL.
- * obj-c++.dg/encode-3.mm: Likewise.
-
-2008-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
- Paolo Carlini <pcarlini@suse.de>
-
- * g++.dg/ext/has_nothrow_assign.C: Skip some tests when __PIC__.
- * g++.dg/ext/has_nothrow_constructor.C: Likewise.
- * g++.dg/ext/has_nothrow_copy.C: Likewise.
-
-2008-02-16 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/fastcall-sseregparm.c: Include sse-check.h.
- (main): Change to void and rename to sse_test.
- * gcc.target/i386/pr24306.c: Ditto.
- * gcc.target/i386/pr32065-2.c: Ditto.
- * gcc.target/i386/20060512-1.c: Include sse2-check.h.
- (main): Change to void and rename to sse2_test.
- * gcc.target/i386/20060512-3.c: Ditto.
-
-2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35150
- * gfortran.dg/c_loc_tests_12.f03: New test.
-
-2008-02-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/35023
- PR c++/35024
- PR c++/35026
- * g++.dg/cpp0x/vt-35026.C: New.
- * g++.dg/cpp0x/vt-35023.C: New.
- * g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
- * g++.dg/cpp0x/vt-35024.C: New.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.c-torture/execute/va-arg-25.x: Remove.
-
-2008-02-15 Richard Guenther <rguenther@suse.de>
- Zdenek Dvorak <ook@ucw.cz>
-
- PR tree-optimization/35164
- * g++.dg/torture/pr35164-1.C: New testcase.
- * g++.dg/torture/pr35164-2.C: Likewise.
-
-2008-02-15 Dominique d'Humières <dominiq@lps.ens.fr>
-
- PR testsuite/35119
- * g++.dg/template/spec35.C: Change the regular expressions
- in dg-final to match the assembly code generated by Darwin 9.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.dg/cpp/pragma-pop_macro-1.c: Fix dg-do directive.
-
-2008-02-15 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr35160.c: Skip if !nonpic for 32bit x86 targets.
-
-2008-02-15 Hans-Peter Nilsson <hp@axis.com>
-
- * lib/dejapatches.exp: New file.
-
-2008-02-14 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34050
- * g++.dg/cpp0x/vt-34050.C: New.
-
-2008-02-14 Jason Merrill <jason@redhat.com>
-
- PR c++/5645
- PR c++/11159
- * g++.dg/warn/pr11159.C: New.
- * g++.dg/warn/pr5645.C: Likewise.
-
-2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR preprocessor/35061
- * gcc.dg/cpp/pragma_pop_macro-1.c: New test.
-
-2008-02-14 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/28743
- * g++.dg/template/nontype17.C: New.
- * g++.dg/template/nontype16.C: Add error.
-
-2008-02-13 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35138
- * g++.dg/template/member8.C: New test.
-
-2008-02-13 Michael Matz <matz@suse.de>
-
- * gcc.dg/pr35065.c: Fix testcase warnings.
-
-2008-02-13 Jason Merrill <jason@redhat.com>
-
- PR c++/34962, c++/34937, c++/34939
- * g++.dg/ext/tmplattr9.C: New.
-
-2008-02-13 Michael Matz <matz@suse.de>
-
- PR debug/35065
- * gcc.dg/pr35065.c: New testcase.
-
-2008-02-12 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/35171
- * gcc.c-torture/compile/pr35171.c: New testcase.
-
-2008-02-12 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35163
- * gcc.c-torture/execute/pr35163.c: New testcase.
-
-2008-02-12 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/asm-3.c: Fix dg-skip-if for all 32bit PIC targets.
-
-2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/loop_address.adb: New test.
-
-2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * obj-c++.dg/bitfield-1.mm: Expect failures.
- * obj-c++.dg/bitfield-4.mm: Likewise.
- * obj-c++.dg/cxx-ivars-2.mm: Likewise.
- * obj-c++.dg/encode-8.mm: Likewise.
- * obj-c++.dg/isa-field-1.mm: Likewise.
- * obj-c++.dg/layout-1.mm: Likewise.
- * obj-c++.dg/lookup-2.mm: Likewise.
- * obj-c++.dg/try-catch-2.mm: Likewise.
- * obj-c++.dg/try-catch-9.mm: Likewise.
-
-2008-02-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/35144
- * g++.dg/tree-ssa/pr35144.C: New test.
-
- PR inline-asm/35160
- * gcc.target/i386/pr35160.c: New test.
-
- PR c++/34862
- * g++.dg/init/new27.C: New test.
-
-2008-02-11 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/35077
- * g++.dg/template/crash78.C: New.
-
-2008-02-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/35047
- * gcc.dg/compat/vector-2_x.c: Add -mno-mmx for x86 targets.
- * gcc.dg/compat/vector-2_y.c: Ditto.
-
-2008-02-11 Uros Bizjak <ubizjak@gmail.com>
- Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/33992
- * gcc.c-torture/execute/pr33992.c: New testcase.
-
-2008-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * gfortran.dg/streamio_14.f90: New test.
-
-2008-02-10 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr17390.c: Remove ilp32 target requirement.
- Add -mfpmath=387 to dg-options.
-
-2008-02-10 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/35047
- * gcc.dg/tree-ssa/gen-vect-2.c: Add -mno-sse for x86 targets.
- * gcc.dg/tree-ssa/gen-vect-11.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-11a.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-11b.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-11c.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-25.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-26.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-28.c: Ditto.
- * gcc.dg/tree-ssa/gen-vect-32.c: Ditto.
-
-2008-02-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- PR objc++/34193
- * obj-c++.dg/gnu-runtime-2.mm: Fix signature of function main().
-
-2008-02-08 Sa Liu <saliu@de.ibm.com>
-
- * gcc.target/spu/intrinsics-3.c: New. Test error messages.
-
-2008-02-06 Alexandre Oliva <aoliva@redhat.com>
-
- PR c++/35056
- * g++.dg/conversion/bitfield8.C: New.
-
-2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
-
- * g++.dg/ext/vector13.C: Fix for compilation under -pedantic.
-
-2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/35049
- PR c++/35096
- * g++.dg/ext/vector13.C: New.
-
-2008-02-06 David Daney <ddaney@avtrex.com>
-
- * g++.dg/tree-ssa/ivopts-1.C: Remove xfail for mips*-*-*.
-
-2008-02-05 Bob Wilson <bob.wilson@acm.org>
-
- * lib/target-supports.exp (check_effective_target_hard_float): Remove
- special case for xtensa-*-*.
-
-2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR fortran/35037
- * gfortran.dg/volatile11.f90: New test.
-
-2008-02-05 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/33553
- * g++.dg/template/array19.C: New test.
-
-2008-02-05 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
-
- PR 33738
- * g++.dg/warn/pr33738.C: Remove.
-
-2008-02-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34945
- * gfortran.dg/bounds_check_13.f: New test.
-
-2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR testsuite/33946
- * gcc.c-torture/execute/multi-ix.c: Call memset instead of bzero.
-
-2008-02-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/35083
- * gcc.target/i386/pr35083.c: New test.
-
-2008-02-05 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/32315
- * gfortran.dg/data_bounds_1.f90: New test.
-
-2008-02-04 Diego Novillo <dnovillo@google.com>
-
- http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
-
- PR 33738
- * g++.dg/warn/pr33738.C: New.
-
-2008-02-04 Daniel Franke <franke.daniel@gmail.com>
-
- * gfortran.dg/where_operator_assign_4.f90: Fix typo in error message
- to match.
-
-2008-02-04 Hans-Peter Nilsson <hp@axis.com>
-
- * lib/target-supports.exp (check_effective_target_hard_float): Only
- use the macro definition tests for mips*-*-* and xtensa-*-*. For all
- other targets, grep for a call insn in the rtl expand dump for an
- add of two doubles.
- (target_compile): Support generating rtl dumps as output.
-
-2008-02-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/33631
- * gcc.c-torture/execute/pr33631.c: New testcase.
-
-2008-02-04 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35043
- * gcc.c-torture/compile/pr35043.c: New testcase.
-
-2008-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * g++.dg/tree-ssa/ivopts-1.C: Remove xfail for hppa*-*-*.
-
-2008-02-03 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/pr31628.c: Require effective target fpic.
- * gcc.target/i386/strinline.c: Ditto.
- * gcc.dg/sibcall-6.c: Skip if !nonpic for 32bit x86 targets.
- * gcc.dg/pr35045.c: Ditto.
- * gcc.dg/20050503-1.c: Ditto.
-
-2008-02-03 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/32760
- * gfortran.dg/host_assoc_variable_1.f90: New test.
- * gfortran.dg/allocate_stat.f90: Change last three error messages.
-
-2008-02-02 Michael Matz <matz@suse.de>
-
- PR target/35045
- * gcc.dg/pr35045.c: New test.
-
-2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/35001
- * gfortran.dg/shape_4.f90: New test.
-
-2008-02-02 Hans-Peter Nilsson <hp@axis.com>
-
- * gcc.target/cris/torture/pr34773.c: Use __asm__, not asm.
-
-2008-02-01 Hans-Peter Nilsson <hp@axis.com>
-
- PR rtl-optimization/34773
- * gcc.target/cris/torture/pr34773.c: New test.
-
-2008-02-01 Nick Clifton <nickc@redhat.com>
-
- * lib/target-supports.exp (check_profiling_available): Do not
- expect profiling to work on the xstormy16 target.
-
-2008-02-01 Uros Bizjak <ubizjak@gmail.com>
-
- PR testsuite/35047
- * gcc.c-torture/execute/20050316-2.x: New file.
- * gcc.target/i386/pr17390.c: Update scan pattern.
- * gcc.dg/builtin-apply4.c: Add -mno-mmx for 32bit x86 targets.
- * g++.dg/tree-ssa/ivopts-1.C: Remove XPASS for x86 targets.
-
-2008-01-31 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34910
- * gfortran.dg/proc_assign_2.f90: New test.
-
-2008-01-31 Douglas Gregor <doug.gregor@gmail.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34935
- PR c++/34936
- * g++.dg/ext/alias-canon.C: New.
- * g++.dg/ext/alias-mangle.C: New.
-
-2008-01-30 Jan Hubicka <jh@suse.cz>
-
- * gcc.c-torture/execute/pr34982.c: Add forgotten return 0.
-
-2008-01-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * g++.dg/other/first-global.C: Add -fpie for all pic targets.
- * g++.dg/parse/attr-externally-visible-1.C: Likewise.
-
-2008-01-30 Jan Hubicka <jh@suse.cz>
-
- PR target/34982
- * gcc.c-torture/execute/pr34982.c: New testcase.
-
-2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/tf_to_di-1.c: New testcase.
-
-2008-01-30 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34975
- * gfortran.dg/use_only_3.f90: New test.
- * gfortran.dg/use_only_3.inc: Modules for new test.
-
- PR fortran/34429
- * gfortran.dg/function_charlen_2.f90: New test.
-
-2008-01-30 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34969
- * gcc.dg/pr34969.c: New test.
-
- PR c/35017
- * gcc.dg/inline-25.c: New test.
- * gcc.dg/inline-26.c: New test.
- * gcc.dg/inline-27.c: New test.
-
-2008-01-29 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/35006
- * gcc.c-torture/compile/pr35006.c: New testcase.
-
-2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34055
- PR c++/34103
- PR c++/34219
- PR c++/34606
- PR c++/34753
- PR c++/34754
- PR c++/34755
- PR c++/34919
- PR c++/34961
- * g++.dg/cpp0x/vt-34219-2.C: New.
- * g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
- * g++.dg/cpp0x/vt-34961.C: New.
- * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
- cases from the re-opened PR.
- * g++.dg/cpp0x/vt-34753.C: New.
- * g++.dg/cpp0x/vt-34919.C: New.
- * g++.dg/cpp0x/vt-34754.C: New.
- * g++.dg/cpp0x/vt-34606.C: New.
- * g++.dg/cpp0x/vt-34219.C: New.
- * g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
- * g++.dg/cpp0x/vt-34755.C: New.
- * g++.dg/cpp0x/pr31438.C: Ditto.
- * g++.dg/cpp0x/variadic81.C: Ditto.
-
-2008-01-29 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * g++.dg/torture/pr34641.C: Put the dg-do first.
-
-2008-01-29 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * gcc.target/mips/lazy-binding-1.c: Skip for mips16.
-
-2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * g++.old-deja/g++.pt/incomplete1.C: Fix typo in comment.
-
-2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
-
- PR 31535
- * gcc.target/powerpc/spe-small-data-1.c: New test.
- * gcc.target/powerpc/spe-small-data-2.c: New test.
-
-2008-01-28 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34980
- * gfortran.dg/shape_3.f90: New test.
-
-2008-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/20020926-1.c: Remove -m31.
-
-2008-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/20020926-1.c: Disable for s390x.
-
-2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34994
- * gfortran.dg/missing_optional_dummy_5.f90: Fix matching regular
- expression.
-
-2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34990
- * gfortran.dg/array_constructor_22.f90: New test.
-
-2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- PR middle-end/34688
- * gcc.c-torture/compile/pr34688: New test.
-
-2008-01-26 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34848
- * gfortran.dg/missing_optional_dummy_5.f90: New.
-
-2008-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/tree-ssa/20070302-1.c (baz): Mark with attribute
- noinline. XFAIL test.
-
-2008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/31610
- * gfortran.dg/array_3.f90: New test.
-
-2008-01-26 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.c-torture/compile/pr34966.c (atan): Only use asm
- on i?86/x86_64.
-
- PR c++/34965
- * gcc.dg/pr34965.c: New test.
- * g++.dg/other/error24.C: New test.
-
-2008-01-26 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfofortran/34887
- * gfortran.dg/x_slash_2.f: New test.
-
-2008-01-26 Richard Guenther <rguenther@suse.de>
-
- PR c++/34235
- * g++.dg/torture/pr34235.C: New testcase.
-
-2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- * g++.dg/tree-ssa/ivopts-1.C: XFAIL for MIPS too.
-
-2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR target/34981
- * gcc.target/mips/lazy-binding-1.c: New test.
- * gcc.target/mips/mips.exp (setup_mips_tests): Set
- mips_forced_no_abicalls and mips_forced_no_shared.
- (dg-mips-options): Avoid using -mabicalls with an implicit -mabi=eabi.
- Avoid using small data with -mabicalls. Don't make -G0 force
- -mn-abicalls. Skip -mabicalls and -mshared tests if the multilib
- forces the opposite option.
-
-2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
-
- PR target/34970
- * gcc.target/i386/fastcall-1.c: Scan for correct label.
- Use -std=gnu89 switch.
-
-2008-01-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34876
- * gfortran.dg/direct_io_9.f: New test.
-
-2008-01-25 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34661
- * gfortran.dg/where_operator_assign_4.f90: New test.
-
-2008-01-25 Joseph Myers <joseph@codesourcery.com>
-
- * gcc.dg/builtin-inf-1.c, gcc.dg/compare6.c, gcc.dg/sibcall-3.c,
- gcc.dg/sibcall-4.c, gcc.dg/torture/builtin-attr-1.c: Don't handle
- c4x-*-* targets.
-
-2008-01-25 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/32244
- * gcc.c-torture/execute/pr32244-1.c: New testcase.
-
-2008-01-25 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34966
- * gcc.c-torture/compile/pr34966.c: New testcase.
-
-2008-01-25 Richard Guenther <rguenther@suse.de>
-
- PR c++/33887
- * g++.dg/torture/pr33887-1.C: New testcase.
- * g++.dg/torture/pr33887-2.C: Likewise.
- * g++.dg/torture/pr33887-3.C: Likewise.
- * gcc.c-torture/execute/20071211-1.c: Likewise.
-
-2008-01-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34856
- * gcc.dg/pr34856.c: Use pointer mode for "pin".
-
-2008-01-25 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/33333
- * g++.dg/gomp/pr33333.C: New test.
-
- PR preprocessor/34692
- * gcc.dg/cpp/pr34692.c: New test.
- * gcc.dg/gomp/pr34692.c: New test.
-
-2008-01-25 Olga Golovanevsky <olga@il.ibm.com>
-
- * gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.
-
-2008-01-24 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34202
- * gfortran.dg/empty_type.f90: New test.
-
-2008-01-24 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/34603
- * g++.dg/template/crash77.C: New.
-
-2008-01-24 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/34856
- * gcc.dg/pr34856.c: New test.
-
-2008-01-24 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/namelist_39.f90: Delete temporary files.
- * gfortran.dg/namelist_44.f90: Ditto.
-
-2008-01-24 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34953
- * g++.dg/torture/pr34953.C: New testcase.
-
-2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34934
- * gcc.c-torture/compile/20080124-1.c: New test.
-
-2008-01-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34872
- * gfortran.dg/function_charlen_3.f: New test.
-
-2008-01-23 Michael Matz <matz@suse.de>
-
- PR debug/34895
- * g++.dg/debug/pr34895.cc: New testcase.
-
-2008-01-23 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/31529
- * gcc.dg/pr31529-1.c: New testcase.
- * gcc.dg/pr31529-2.c: Likewise.
-
-2008-01-23 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34829
- * g++.dg/ext/pr34829.C (operator new): Use size_t instead of
- unsigned int for the first argument.
-
-2008-01-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/33984
- * g++.dg/conversion/bitfield7.C: New test.
- * g++.dg/cpp0x/decltype4.C: Fixed xfail.
-
-2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
-
- From Michael Frysinger <michael.frysinger@analog.com>
- * gcc.target/bfin/mcpu-bf547.c: New test.
- * gcc.target/bfin/mcpu-bf523.c: New test.
- * gcc.target/bfin/mcpu-bf524.c: New test.
- * gcc.target/bfin/mcpu-bf526.c: New test.
-
-2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/execute/20080122-1.c: New test.
-
-2008-01-22 Tom Tromey <tromey@redhat.com>
-
- PR c++/34859
- * gcc.dg/cpp/pr34859.c: New file.
-
-2008-01-22 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34875
- * gfortran.dg/vector_subscript_3.f90: New test.
-
-2008-01-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34848
- * gfortran.dg/missing_optional_dummy_4.f90
-
-2008-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/vect/vect-ifcvt-9.c: Use inline.
-
-2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/unchecked_union1.adb: New test.
-
-2008-01-22 Tom Tromey <tromey@redhat.com>
-
- PR c++/34829
- * g++.dg/ext/pr34829.C: New file.
-
-2008-01-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/34607
- * gcc.dg/gomp/pr34607.c: New test.
- * g++.dg/gomp/pr34607.C: New test.
-
- PR c++/34914
- * g++.dg/ext/vector10.C: New test.
-
- PR c++/34918
- * g++.dg/other/error23.C: New test.
-
- PR c++/34917
- * g++.dg/ext/vector12.C: New test.
-
-2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR 32102
- * gcc.dg/Wstrict-overflow-21.c: New.
- * g++.dg/warn/Wstrict-aliasing-8.C: New.
-
-2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR middle-end/33092
- * gcc.dg/pr33092.c: New.
-
-2008-01-22 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * gcc.target/s390/20020926-1.c: Add -m31 option.
-
-2008-01-22 Daniel Franke <franke.daniel@gmail.com>
-
- PR fortran/34915
- * gfortran.dg/initialization_18.f90: New test.
-
-2008-01-22 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34899
- * gfortran.dg/tab_continuation.f: New.
-
-2008-01-22 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34896
- * gfortran.dg/use_rename_2.f90: New test.
-
-2008-01-21 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34856
- * gcc.c-torture/compile/pr34856.c: New testcase.
-
-2008-01-21 Richard Guenther <rguenther@suse.de>
-
- PR c/34885
- * gcc.c-torture/compile/pr34885.c: New testcase.
-
-2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/specs/alignment1.ads: New test.
-
-2008-01-21 Richard Guenther <rguenther@suse.de>
-
- PR c++/34850
- * g++.dg/torture/pr34850.C: New testcase.
-
-2008-01-21 Alon Dayan <alond@il.ibm.com>
- Olga Golovanevsky <olga@il.ibm.com>
-
- PR tree-optimization/34701
- * gcc.dg/struct/wo_prof_array_field.c: New test.
-
-2008-01-20 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/34891
- * g++.dg/ext/vector9.C: New.
-
-2008-01-20 Paolo Carlini <pcarlini@suse.de>
-
- PR c++/34776
- PR c++/34486
- * g++.dg/template/crash75.C: New.
- * g++.dg/template/crash76.C: Likewise.
-
-2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
-
- PR rtl-optimization/34808
- * gcc.c-torture/compile/pr34808.c: New test.
-
-2008-01-20 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34784
- * gfortran.dg/mapping_2.f90: Correct ubound expression for h4.
-
- PR fortran/34861
- * gfortran.dg/entry_array_specs_3.f90: New test.
-
- PR fortran/34854
- * gfortran.dg/use_rename_1.f90: New test.
-
-2008-01-20 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34784
- * gfortran.dg/array_constructor_20.f90: New test.
- * gfortran.dg/mapping_2.f90: Correct ubound expression for h4.
-
- PR fortran/34785
- * gfortran.dg/array_constructor_21.f90: New test.
-
-2008-01-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34795
- * gfortran.dg/inquire_13.f90: New test.
-
- PR libfortran/34659
- * gfortran.dg/continuation_9.f90: New test.
-
-2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
-
- PR target/34831
- * gcc.target/mips/pr34831.c: New test.
-
-2008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/34817
- PR fortran/34838
- * gfortran.dg/any_all_1.f90: New test.
- * gfortran.dg/any_all_2.f90: New test.
-
-2008-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * g++.dg/eh/ia64-2.C: Place "dg-do run" statement before
- "dg-require-weak" statement.
- * g++.dg/eh/weak1.C: Likewise.
-
-2008-01-19 Jakub Jelinek <jakub@redhat.com>
-
- PR gcov-profile/34610
- * gcc.dg/gomp/pr34610.c: New test.
-
-2008-01-19 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34760
- * gfortran.dg/implicit_11.f90: New.
- * gfortran.dg/allocate_stat.f90: Update dg-error pattern.
- * gfortran.dg/entry_15.f90: Ditto.
- * gfortran.dg/func_assign.f90: Ditto.
- * gfortran.dg/gomp/reduction3.f90: Ditto.
- * gfortran.dg/proc_assign_1.f90: Ditto.
-
- * gfortran.dg/interface_proc_end.f90: Use dg-error instead
- of dg-excess-errors.
-
-2008-01-18 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/32616
- * gfortran.dg/argument_checking_15.f90: New.
- * gfortran.dg/argument_checking_5.f90: Change TODO into
- dg-warning.
-
-2008-01-18 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/enum_4.f90: Replace dg-excess-errors by dg-error.
- * gfortran.dg/enum_5.f90: Ditto.
- * gfortran.dg/enum_6.f90: Ditto.
- * gfortran.dg/bom_error.f90: Ditto.
- * gfortran.dg/func_decl_4.f90: Ditto.
-
-2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34782
- * gfortran.dg/fmt_t_6.f: New test.
-
-2008-01-18 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/large_real_kind_form_io_1.f90: Enlarge string for
- internal I/O.
-
-2008-01-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * g++.dg/lookup/two-stage2.C: fix comment.
-
-2008-01-18 Ian Lance Taylor <iant@google.com>
-
- * gcc.dg/debug/dwarf2/var1.c: Add -fno-merge-debug-strings.
-
-2008-01-18 Ian Lance Taylor <iant@google.com>
-
- PR c++/33407
- * g++.dg/init/new26.C: New test.
-
-2008-01-18 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34801
- * gcc.dg/Warray-bounds.c: XFAIL two tests, remove one
- redundant one.
-
-2008-01-18 Hans-Peter Nilsson <hp@axis.com>
-
- * g++.dg/tree-ssa/pr34355.C: Correct order of dg-do and
- dg-require-effective-target.
-
-2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR target/34556
- * gfortran.dg/reshape_2.f90: New test.
-
-2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
-
- * gcc.dg/20040223-1.c: Fix comment typo.
-
-2008-01-17 Janis Johnson <janis187@us.ibm.com>
-
- PR target/34814
- * gcc.target/powerpc/ppc32-abi-dfp-1.c: Enable checks that will fail
- until 34814 is fixed.
-
-2008-01-17 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/34648
- * gcc.c-torture/compile/pr34648.c: New testcase.
-
-2008-01-17 Sebastian Pop <sebastian.pop@amd.com>
-
- PR testsuite/34821
- * gcc.dg/autopar/autopar.exp: New.
- * g++.dg/tree-ssa/pr34355.C: Require pthread.
- * lib/target-supports.exp (check_effective_target_pthread): New.
-
- * gcc.dg/tree-ssa/parallelization-1.c: Moved to gcc.dg/autopar.
- * gcc.dg/tree-ssa/reduc-1short.c: Same.
- * gcc.dg/tree-ssa/reduc-1.c: Same.
- * gcc.dg/tree-ssa/reduc-2short.c: Same.
- * gcc.dg/tree-ssa/reduc-2.c: Same
- * gcc.dg/tree-ssa/reduc-3.c: Same.
- * gcc.dg/tree-ssa/reduc-1char.c: Same.
- * gcc.dg/tree-ssa/reduc-6.c: Same.
- * gcc.dg/tree-ssa/reduc-7.c: Same.
- * gcc.dg/tree-ssa/reduc-2char.c: Same.
- * gcc.dg/tree-ssa/reduc-8.c: Same.
- * gcc.dg/tree-ssa/reduc-9.c: Same.
-
-2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/discr5.adb: New test.
-
-2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
-
-2008-01-17 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34825
- * gcc.dg/pr34825.c: New testcase.
-
-2008-01-17 Richard Guenther <rguenther@suse.de>
-
- * gcc.c-torture/execute/20080117-1.c: New testcase.
-
-2008-01-17 Revital Eres <eres@il.ibm.com>
-
- PR30957
- * gcc.dg/pr30957-1.c: Always xfail and add noinline attribute.
-
-2008-01-17 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34429
- * gfortran.dg/function_charlen_1.f90: New test.
-
- PR fortran/34431
- * gfortran.dg/function_types_1.f90: New test.
- * gfortran.dg/function_types_2.f90: New test.
-
- PR fortran/34471
- * gfortran.dg/function_kinds_4.f90: New test.
- * gfortran.dg/function_kinds_5.f90: New test.
-
- * gfortran.dg/defined_operators_1.f90: Errors now at function
- declarations.
- * gfortran.dg/private_type_4.f90: The same.
- * gfortran.dg/interface_15.f90: The same.
- * gfortran.dg/elemental_args_check_2.f90: The same.
- * gfortran.dg/auto_internal_assumed.f90: The same.
-
-2008-01-16 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/sizetype.adb: New test.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/32628
- * gcc.dg/overflow-warn-7.c: New testcase.
-
-2008-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/tree-ssa/loop-19.c: Require nonpic.
-
-2008-01-16 Jakub Jelinek <jakub@redhat.com>
- Richard Guenther <rguenther@suse.de>
-
- PR c/34668
- * gcc.dg/pr34668-1.c: New test.
- * gcc.dg/pr34668-2.c: Likewise.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR c++/33819
- * g++.dg/torture/pr33819.C: New testcase.
-
-2008-01-16 Richard Guenther <rguenther@suse.de>
-
- PR c/34768
- * gcc.c-torture/execute/pr34768-1.c: New testcase.
- * gcc.c-torture/execute/pr34768-2.c: Likewise.
-
-2008-01-16 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34796
- * gfortran.dg/argument_checking_13.f90: New.
- * gfortran.dg/argument_checking_14.f90: New.
-
-2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34671
- * gfortran.dg/anyallcount_1.f90: New test.
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34399
- * g++.dg/cpp0x/vt-34399.C: New.
- * g++.dg/template/friend50.C: New.
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34751
- * g++.dg/cpp0x/vt-34751.C: New.
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34051
- PR c++/34055
- PR c++/34102
- PR c++/34103
- * g++.dg/cpp0x/vt-34051-2.C: New.
- * g++.dg/cpp0x/vt-34102.C: New.
- * g++.dg/cpp0x/vt-34051.C: New.
- * g++.dg/cpp0x/vt-34055.C: New.
- * g++.dg/cpp0x/vt-34103.C: New.
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34314
- * g++.dg/cpp0x/vt-34314.C: New.
- * g++.dg/cpp0x/variadic79.C: Fix the error message to reflect
- reality (the error message was wrong previously).
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/33964
- * g++.dg/cpp0x/vt-33964.C: New.
- * g++.dg/template/partial5.C: New.
-
-2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
-
- PR c++/34052
- * g++.dg/cpp0x/vt-34052.C: New.
- * g++.dg/template/ttp26.C: New.
-
-2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/rep_clause2.ad[sb]: New test.
- * gnat.dg/rep_problem2.adb: Rename to rep_clause1.adb.
-
-2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
- PR c++/24924
- * g++.dg/cpp/pedantic-errors.C: Delete.
- * g++.dg/cpp/permissive.C: Delete.
-
-2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.c-torture/compile/20080114-1.c: New test.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34665
- * gfortran.dg/argument_checking_11.f90: New.
- * gfortran.dg/argument_checking_12.f90: New.
- * gfortran.dg/used_dummy_types_4.f90: Update dg-error.
- * gfortran.dg/c_assoc_2.f03: Update dg-error.
- * gfortran.dg/argument_checking_3.f90: Ditto.
- * gfortran.dg/pointer_intent_2.f90: Ditto.
- * gfortran.dg/import2.f90: Ditto.
- * gfortran.dg/assumed_shape_ranks_1.f90: Ditto.
- * gfortran.dg/implicit_actual.f90: Ditto.
- * gfortran.dg/used_dummy_types_3.f90: Ditto.
- * gfortran.dg/derived_comp_array_ref_6.f90: Ditto.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34763
- * gfortran.dg/interface_proc_end.f90: New.
-
-2008-01-13 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34759
- * gfortran.dg/assumed_size_refs_4.f90: New.
-
-2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/unchecked_convert1.adb.
-
-2008-01-13 Richard Guenther <rguenther@suse.de>
-
- * gcc.dg/struct-ret-3.c: Adjust testcase to make stack
- readable and writable again before exiting.
-
-2008-01-13 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34601
- * gcc.dg/noncompile/incomplete-4.c: New testcase.
-
-2008-01-13 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/32135
- * gcc.dg/pr32135.c: new.
-
-2008-01-12 Doug Kwan <dougkwan@google.com>
-
- * gcc.dg/qual-return-1.c: Add -Wignored-qualifiers.
- * g++.dg/warn/Wreturn-type-4.C: Replace -Wreturn-type by
- -Wignored-qualifiers.
-
-2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/slice3.adb: New test.
- * gnat.dg/slice4.adb: Likewise.
-
-2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * gnat.dg/bit_packed_array.ad[sb]: New test.
-
-2008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34432
- * gfortran.dg/parens_7.f90: New test.
-
-2008-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * gcc.dg/tree-ssa/loadpre5.c: Use static.
- * gcc.dg/tree-ssa/loadpre8.c: Likewise.
-
- * gcc.dg/pr33826.c: Require nonpic.
-
-2008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/34722
- * gfortran.dg/inquire_12.f90: New test.
-
-2008-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR libfortran/34670
- * all_bounds_1.f90: New test case.
- * maxloc_bounds_1.f90: New test case.
- * maxloc_bounds_2.f90: New test case.
- * maxloc_bounds_3.f90: New test case.
- * maxloc_bounds_4.f90: New test case.
- * maxloc_bounds_5.f90: New test case.
- * maxloc_bounds_6.f90: New test case.
- * maxloc_bounds_7.f90: New test case.
- * maxloc_bounds_8.f90: New test case.
-
-2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc.dg/struct-ret-3.c: New test.
-
-2008-01-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34537
- * gfortran.dg/transfer_simplify_8.f90: New test.
-
-2008-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * g++.dg/torture/pr34641.C: Add dg-require-visibility. Define
- size_t using predefined macro.
-
-2008-01-10 Raksit Ashok <raksit@google.com>
-
- PR rtl-optimization/27971
- * gcc.target/i386/pr27971.c: New testcase.
-
-2008-01-10 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34396
- * gfortran.dg/bounds_check_12.f90: New test.
-
-2008-01-10 Uros Bizjak <ubizjak@gmail.com>
-
- * gcc.target/i386/cmov7.c: Add -mbranch-cost=5 to dg-options.
- * gcc.target/i386/addr-sel-1.c: Require nonpic effective target.
-
-2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
-
- PR middle-end/34641
- * g++.dg/torture/pr34641.C: New testcase.
-
-2008-01-10 Richard Guenther <rguenther@suse.de>
-
- PR tree-optimization/34651
- * g++.dg/torture/pr34651.C: New testcase.
-
-2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
-
- PR tree-optimization/34017
- * gcc.dg/tree-ssa/pr34017.c: New.
-
-2008-01-09 Richard Guenther <rguenther@suse.de>
- Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- PR middle-end/30132
- * gcc.c-torture/compile/pr30132.c: New testcase.
-
-2008-01-09 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/34458
- * gcc.c-torture/compile/pr34458.c: New testcase.
-
-2008-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR testsuite/30459
- g++.dg/eh/ia64-2.C: Require weak support.
-
-2008-01-08 Richard Guenther <rguenther@suse.de>
-
- PR middle-end/31863
- * g++.dg/torture/pr31863.C: New testcase.
-
-2008-01-08 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/34694
- * gcc.dg/gomp/pr34694.c: New test.
- * g++.dg/gomp/pr34694.C: New test.
-
- PR c++/33890
- * g++.dg/gomp/pr33890.C: New test.
-
-2008-01-08 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34476
- * gfortran.dg/parameter_array_init_3.f90: New test.
-
-2008-01-08 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34681
- PR fortran/34704
- * gfortran.dg/alloc_comp_default_init_1.f90: New test.
-
-2008-01-07 Janis Johnson <janis187@us.ibm.com>
-
- * lib/target-supports.exp (check_effective_target_powerpc_spu): New.
- * g++.dg/other/spu2vmx-1.C: Use it.
-
-2008-01-07 Jack Howarth <howarth@bromo.med.uc.edu>
-
- * gcc.dg/out-of-bounds-1.c: Don't use -mstrict-align for Darwin.
-
- PR testsuite/34575
- * gcc.target/powerpc/popcount-1.c: Skip on darwin.
- * gcc.target/powerpc/parity-1.c: Likewise.
-
-2008-01-07 Fred Fish <fnf@specifix.com>
-
- PR preprocessor/30363:
- * gcc.dg/cpp/trad/macroargs.c: Add code to test quoting in
- macro expansions.
-
-2008-01-07 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34672
- * gfortran.dg/use_only_2.f90: New test.
-
-2008-01-06 Paolo Carlini <pcarlini@suse.de>
-
- PR libstdc++/34680
- * g++.dg/rtti/predefined-rtti-macro-1.C: New.
- * g++.dg/rtti/predefined-rtti-macro-2.C: Likewise.
-
-2008-01-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/34545
- * gfortran.dg/use_12.f90: New test.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34689
- * interface.c (compare_actual_formal): Fix intent(out) check for
- function result variables.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34690
- * gfortran.dg/elemental_args_check_2.f90: Fix test case.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34689
- * gfortran.dg/intent_out_4.f90: Fix test case.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34689
- * gfortran.dg/intent_out_4.f90: New.
-
-2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR libfortran/34540
- * gfortran.dg/optional_dim_3.f90: New test.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34658
- * gfortran.dg/common_11.f90: New.
- * gfortran.dg/blockdata_1.f90: Update test case.
- * gfortran.dg/blockdata_2.f90: Update test case.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- * gfortran.dg/equiv_constraint_9.f90: Fix typo.
-
-2008-01-06 Tobias Burnus <burnus@net-b.de>
-
- PR fortran/34655
- * gfortran.dg/equiv_constraint_9.f90: New.
-
-2008-01-06 Revital Eres <eres@il.ibm.com>
+ * gcc.target/i386/avx-vpermil2pd-1.c: Removed.
+ * gcc.target/i386/avx-vpermil2ps-1.c: Likewise.
+ * gcc.target/i386/avx-vpermil2pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpermil2ps-256-1.c: Likewise.
- PR tree-optimization/34263
- * gcc.dg/pr34263.c: New testcase.
+2009-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+ PR libfortran/38735
+ * gfortran.dg/fmt_bz_bn.f: Update test.
- PR fortran/34654
- * gfortran.dg/internal_io_unf.f90: New.
+2009-01-05 Dodji Seketeli <dodji@redhat.com>
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+ PR c++/38472
+ * g++.dg/conversion/usual-arith-conv.C: New test.
- PR fortran/34660
- * gfortran.dg/elemental_args_check_2.f90: New.
+2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
-2008-01-06 Tobias Burnus <burnus@net-b.de>
+ PR c/34911
+ * gcc.dg/vector-3.c: New testcase.
+ * g++.dg/ext/vector15.C: New test.
- PR fortran/34662
- * gfortran.dg/intent_out_3.f90: New.
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
-2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
+ PR tree-optimization/38510
+ * gcc.dg/graphite/pr38510.c: New.
- * objc.dg/stabs-1.m: Allow labels to be begin with $L as well as .L.
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
-2008-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR tree-optimization/38500
+ * gcc.dg/graphite/pr38500.c: New.
- PR libfortran/34676
- * gfortran.dg/list_read_8.f90: New test.
+2009-01-05 Laurent GUERBY <laurent@guerby.net>
-2008-01-04 Richard Guenther <rguenther@suse.de>
+ * gcc.c-torture/compile/20001226-1.c: Generalize
+ dg-timeout-factor.
+ * gcc.c-torture/compile/limits-fnargs.c: Add
+ dg-timeout-factor.
+ * gcc.dg/20020425-1.c: Likewise.
+ * gcc.dg/pch/pch.exp: Likewise.
+
+2009-01-05 Paul Thomas <pault@gcc.gnu.org>
- PR middle-end/34029
- * gcc.c-torture/compile/pr34029-1.c: New testcase.
- * gcc.c-torture/compile/pr34029-2.c: Likewise.
+ PR fortran/38657
+ * gfortran.dg/module_commons_3.f90: New test.
-2008-01-04 Jakub Jelinek <jakub@redhat.com>
+2009-01-05 Daniel Franke <franke.daniel@gmail.com>
- PR gcov-profile/34609
- * g++.dg/gcov/gcov-6.C: New test.
+ PR fortran/37159
+ * gfortran.dg/random_seed_1.f90: Updated.
-2008-01-04 Richard Guenther <rguenther@suse.de>
+2009-01-05 Mikael Morin <mikael.morin@tele2.fr>
- PR tree-optimization/31081
- * g++.dg/torture/pr31081-1.C: New testcase.
- * g++.dg/torture/pr31081-2.C: Likewise.
+ PR fortran/38669
+ PR fortran/38726
+ * gfortran.dg/elemental_subroutine_7.f90:
+ Fix p values so that it can be used as vector subscript.
-2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
+2009-01-05 Jason Merrill <jason@redhat.com>
- * gcc.target/mips/rsqrt-1.c: Require -mgp64.
- * gcc.target/mips/rsqrt-2.c: Likewise.
- * gcc.target/mips/rsqrt-4.c: New test.
+ * g++.dg/cpp0x/initlist12.C: Add another test.
-2008-01-04 Tobias Burnus <burnus@net-b.de>
+ * g++.dg/cpp0x/defaulted7.C: New test.
- PR fortran/34557
- * gfortran.dg/equiv_substr.f90: New.
+2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
-2008-01-03 Tom Tromey <tromey@redhat.com>
+ PR fortran/38672
+ * gfortran.dg/host_assoc_blockdata_1.f90: New test.
+ * gfortran.dg/host_assoc_blockdata_2.f90: New test.
- PR c/34457:
- * gcc.dg/pr34457-2.c: New file.
- * gcc.dg/pr34457-1.c: New file.
+2009-01-05 Uros Bizjak <ubizjak@gmail.com>
-2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+ * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mieee
+ for alpha*-*-* targets.
+ * g++.dg/compat/struct-layout-1_generate.c (dg-options): Ditto.
- Revert fix for PR tree-optimization/34458.
+2009-01-05 Paul Thomas <pault@gcc.gnu.org>
-2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+ PR fortran/38665
+ * gfortran.dg/host_assoc_function_5.f90: New test.
- PR tree-optimization/34458
- * gcc.dg/tree-ssa/pr34458.c: New.
+2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
-2008-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
+ PR fortran/38669
+ * gfortran.dg/elemental_dependency_3.f90: New test.
+ * gfortran.dg/elemental_subroutine_7.f90: New test.
- PR libfortran/34565
- * gfortran.dg/internal_readwrite_1.f90: New test.
- * gfortran.dg/internal_readwrite_2.f90: New test.
+2009-01-04 Uros Bizjak <ubizjak@gmail.com>
-2008-01-03 Tom Tromey <tromey@redhat.com>
+ * gcc.dg/struct-ret-3.c: Include unistd.h.
+ (main): Exit early if system memory page size is
+ larger than 4096 bytes.
- PR preprocessor/34602:
- * gcc.dg/cpp/pr34602.c: New file.
+2009-01-04 Daniel Franke <franke.daniel@gmail.com>
-2008-01-03 Jakub Jelinek <jakub@redhat.com>
+ PR fortran/38718
+ * gfortran.dg/merge_init_expr.f90: New.
- PR tree-optimization/29484
- * gcc.c-torture/execute/20071220-1.c: New test.
- * gcc.c-torture/execute/20071220-2.c: New test.
+2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
-2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+ PR fortran/38536
+ * gfortran.dg/c_loc_tests_13.f90: New test.
+ * gfortran.dg/c_loc_tests_14.f90: New test.
- PR tree-optimization/34635
- * gcc.dg/tree-ssa/pr34635.c: New.
- * gcc.dg/tree-ssa/pr34635-1.c: New.
+2009-01-03 Daniel Franke <franke.daniel@gmail.com>
-2008-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+ * gfortran.dg/func_result_4.f90: New.
- PR middle-end/34562
- * g++.dg/other/first-global.C: Also accept _GLOBAL__I_65535_0_foobar
- in scan-assembler check.
+2009-01-03 Paul Thomas <pault@gcc.gnu.org>
-2008-01-03 Jakub Jelinek <jakub@redhat.com>
+ PR fortran/38594
+ * gfortran.dg/host_assoc_call_3.f90: Make sure that the generic
+ interface still works, in addition to original tests.
+ * gfortran.dg/host_assoc_call_6.f90: New test.
- PR middle-end/34608
- * g++.dg/gomp/pr34608.C: New test.
+2009-01-03 Jakub Jelinek <jakub@redhat.com>
-2008-01-02 Richard Guenther <rguenther@suse.de>
+ PR c++/38705
+ * g++.dg/torture/pr38705.C: New test.
- PR middle-end/34093
- PR middle-end/31976
- * gcc.c-torture/compile/pr34093.c: New testcase.
+ PR c/38700
+ * gcc.dg/pr38700.c: New test.
-2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
+2009-01-02 Jason Merrill <jason@redhat.com>
- * g++.dg/cpp0x/long_long.C: New.
+ * g++.dg/cpp0x/initlist11.C: New test.
+ * g++.dg/cpp0x/initlist12.C: New test.
-2008-01-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
- * gcc.target/spu/tag_manager.c : Include stdlib.h.
- * gcc.target/spu/Wmain.c: Fix the line numbers for the
- warning on the function main.
+ * gcc.dg/fixed-point/composite-type.c: Update wording of messages.
+ Allow extra informative notes.
-2008-01-01 Jakub Jelinek <jakub@redhat.com>
+2009-01-01 Jakub Jelinek <jakub@redhat.com>
- * gcc.target/i386/i386.exp (check_effective_target_sse5): Use __v8hi
- rather than __v2di type.
+ PR c/36489
+ * gcc.dg/pr36489.c: New test.
diff --git a/gcc/testsuite/ChangeLog-2008 b/gcc/testsuite/ChangeLog-2008
new file mode 100644
index 00000000000..281c8a66527
--- /dev/null
+++ b/gcc/testsuite/ChangeLog-2008
@@ -0,0 +1,12920 @@
+2008-12-31 Daniel Franke <franke.daniel@gmail.com>
+
+ * gfortran.dg/mapping_2.f90: Fixed testcase.
+
+2008-12-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38647
+ * g++.dg/template/function1.C: New test.
+
+ PR c++/38640
+ * g++.dg/cpp0x/decltype15.C: New test.
+
+ PR middle-end/38676
+ * gcc.dg/gomp/pr38676.c: New test.
+
+2008-12-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38645
+ * gcc.dg/pr38645.c: New testcase.
+
+2008-12-30 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/38661
+ * gcc.c-torture/compile/pr38661.c: New testcase.
+ * gcc.c-torture/compile/pr38661-1.c: New testcase.
+
+2008-12-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/38564
+ * gcc.c-torture/compile/pr38564.c: New testcase.
+
+2008-12-29 Dorit Nuzman <dorit@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/38529
+ * gcc.dg/vect/pr38529.c: New test.
+
+2008-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38635
+ * g++.dg/parse/cond4.C: New test.
+
+ PR c++/36191
+ * g++.dg/torture/pr36191.C: New test.
+
+2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * gcc.c-torture/execute/builtins/fprintf.x: Disable test for
+ freestanding targets.
+ * gcc.c-torture/execute/pr37573.x: Disable test for 16-bit targets.
+ * gcc.c-torture/execute/20081117-1.x: Disable test for 16-bit targets.
+ * gcc.c-torture/compile/limits-stringlit.c: Disable test for picochip.
+ * gcc.dg/array-quals-1.c: Disable test for picochip.
+ * lib/target-supports.exp: Add support for freestanding ports and
+ disable picochip for profiling tests.
+
+2008-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38637
+ * g++.dg/cpp0x/enum2.C: New test.
+
+2008-12-28 Andrew Pinski <pinskia@gmail.com>
+
+ PR libobjc/36610
+ * objc/execute/forward-1.m: New test.
+
+2008-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38633
+ * gcc.dg/gomp/pr38633.c: New test.
+ * g++.dg/gomp/pr38633.C: New test.
+
+ PR c++/38639
+ * g++.dg/gomp/pr38639.C: New test.
+
+2008-12-23 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/38590
+ * gcc.c-torture/compile/pr38590-1.c: New testcase.
+ * gcc.c-torture/compile/pr38590-2.c: New testcase.
+
+2008-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/31150
+ * gcc.c-torture/execute/20081218-1.c: New test.
+
+2008-12-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38602
+ * gfortran.dg/alloc_comp_optional_1.f90: New test.
+
+2008-12-22 Ben Elliston <bje@au.ibm.com>
+
+ PR c++/38362
+ * g++.dg/ext/altivec-types-1.C (dg-options): Pass -std=c++98.
+
+2008-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38398
+ * gfortran.dg/fmt_g0_1.f08: Revise.
+
+2008-12-21 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/mips.exp: Rewrite.
+
+ * gcc.target/mips/20020620-1.c: Use dg-options instead of
+ dg-mips-options. Remove target restrictions from dg-do.
+ * gcc.target/mips/mips-ps-1.c: Likewise.
+ * gcc.target/mips/mips-ps-2.c: Likewise.
+ * gcc.target/mips/mips-ps-3.c: Likewise.
+ * gcc.target/mips/mips-ps-4.c: Likewise.
+ * gcc.target/mips/mips-ps-6.c: Likewise.
+
+ * gcc.target/mips/asm-1.c: Use dg-options instead of dg-mips-options.
+ * gcc.target/mips/branch-1.c: Likewise.
+ * gcc.target/mips/clear-cache-2.c: Likewise.
+ * gcc.target/mips/dse-1.c: Likewise.
+ * gcc.target/mips/fix-r4000-1.c: Likewise.
+ * gcc.target/mips/fix-r4000-2.c: Likewise.
+ * gcc.target/mips/fix-r4000-3.c: Likewise.
+ * gcc.target/mips/fix-r4000-4.c: Likewise.
+ * gcc.target/mips/fix-r4000-5.c: Likewise.
+ * gcc.target/mips/fix-r4000-6.c: Likewise.
+ * gcc.target/mips/fix-r4000-7.c: Likewise.
+ * gcc.target/mips/fix-r4000-8.c: Likewise.
+ * gcc.target/mips/fix-r4000-9.c: Likewise.
+ * gcc.target/mips/fix-r4000-10.c: Likewise.
+ * gcc.target/mips/fix-r4000-11.c: Likewise.
+ * gcc.target/mips/fix-r4000-12.c: Likewise.
+ * gcc.target/mips/fix-vr4130-1.c: Likewise.
+ * gcc.target/mips/fix-vr4130-2.c: Likewise.
+ * gcc.target/mips/fix-vr4130-3.c: Likewise.
+ * gcc.target/mips/fix-vr4130-4.c: Likewise.
+ * gcc.target/mips/fpcmp-1.c: Likewise.
+ * gcc.target/mips/fpcmp-2.c: Likewise.
+ * gcc.target/mips/fpr-moves-1.c: Likewise.
+ * gcc.target/mips/fpr-moves-2.c: Likewise.
+ * gcc.target/mips/fpr-moves-3.c: Likewise.
+ * gcc.target/mips/fpr-moves-4.c: Likewise.
+ * gcc.target/mips/fpr-moves-5.c: Likewise.
+ * gcc.target/mips/fpr-moves-6.c: Likewise.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
+ * gcc.target/mips/madd-1.c: Likewise.
+ * gcc.target/mips/madd-2.c: Likewise.
+ * gcc.target/mips/madd-5.c: Likewise.
+ * gcc.target/mips/madd-6.c: Likewise.
+ * gcc.target/mips/madd-7.c: Likewise.
+ * gcc.target/mips/madd-8.c: Likewise.
+ * gcc.target/mips/maddu-1.c: Likewise.
+ * gcc.target/mips/maddu-2.c: Likewise.
+ * gcc.target/mips/memcpy-1.c: Likewise.
+ * gcc.target/mips/mips-sched-madd.c: Likewise.
+ * gcc.target/mips/msub-1.c: Likewise.
+ * gcc.target/mips/msub-2.c: Likewise.
+ * gcc.target/mips/msub-5.c: Likewise.
+ * gcc.target/mips/msub-6.c: Likewise.
+ * gcc.target/mips/msub-7.c: Likewise.
+ * gcc.target/mips/msub-8.c: Likewise.
+ * gcc.target/mips/msubu-1.c: Likewise.
+ * gcc.target/mips/msubu-2.c: Likewise.
+ * gcc.target/mips/neg-abs-1.c: Likewise.
+ * gcc.target/mips/neg-abs-2.c: Likewise.
+ * gcc.target/mips/no-smartmips-lwxs.c: Likewise.
+ * gcc.target/mips/no-smartmips-ror-1.c: Likewise.
+ * gcc.target/mips/octeon-baddu-1.c: Likewise.
+ * gcc.target/mips/octeon-bbit-2.c: Likewise.
+ * gcc.target/mips/octeon-bbit-3.c: Likewise.
+ * gcc.target/mips/octeon-cins-1.c: Likewise.
+ * gcc.target/mips/octeon-cins-2.c: Likewise.
+ * gcc.target/mips/octeon-dmul-1.c: Likewise.
+ * gcc.target/mips/octeon-dmul-2.c: Likewise.
+ * gcc.target/mips/octeon-exts-1.c: Likewise.
+ * gcc.target/mips/octeon-exts-2.c: Likewise.
+ * gcc.target/mips/octeon-exts-3.c: Likewise.
+ * gcc.target/mips/octeon-exts-4.c: Likewise.
+ * gcc.target/mips/octeon-exts-5.c: Likewise.
+ * gcc.target/mips/octeon-pop-1.c: Likewise.
+ * gcc.target/mips/octeon-seq-1.c: Likewise.
+ * gcc.target/mips/octeon-seq-2.c: Likewise.
+ * gcc.target/mips/octeon-seq-3.c: Likewise.
+ * gcc.target/mips/octeon-seq-4.c: Likewise.
+ * gcc.target/mips/pr26765.c: Likewise.
+ * gcc.target/mips/pr33256.c: Likewise.
+ * gcc.target/mips/pr33635-1.c: Likewise.
+ * gcc.target/mips/pr33755.c: Likewise.
+ * gcc.target/mips/pr34831.c: Likewise.
+ * gcc.target/mips/pr35802.c: Likewise.
+ * gcc.target/mips/pr37362.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-10.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-15.c: Likewise.
+ * gcc.target/mips/r3900-mult.c: Likewise.
+ * gcc.target/mips/rsqrt-4.c: Likewise.
+ * gcc.target/mips/sb1-1.c: Likewise.
+ * gcc.target/mips/scc-2.c: Likewise.
+ * gcc.target/mips/scc-4.c: Likewise.
+ * gcc.target/mips/sdata-1.c: Likewise.
+ * gcc.target/mips/sdata-2.c: Likewise.
+ * gcc.target/mips/sdata-3.c: Likewise.
+ * gcc.target/mips/sdata-4.c: Likewise.
+ * gcc.target/mips/smartmips-lwxs.c: Likewise.
+ * gcc.target/mips/smartmips-ror-1.c: Likewise.
+ * gcc.target/mips/smartmips-ror-2.c: Likewise.
+ * gcc.target/mips/smartmips-ror-3.c: Likewise.
+ * gcc.target/mips/smartmips-ror-4.c: Likewise.
+ * gcc.target/mips/timode-1.c: Likewise.
+ * gcc.target/mips/truncate-1.c: Likewise.
+ * gcc.target/mips/truncate-2.c: Likewise.
+ * gcc.target/mips/vr-mult-1.c: Likewise.
+ * gcc.target/mips/vr-mult-2.c: Likewise.
+
+ * gcc.target/mips/atomic-memory-2.c: Use dg-options instead of
+ dg-mips-options. Use isa>=2 instead of -mips32.
+
+ * gcc.target/mips/branch-cost-1.c: Use dg-options instead of
+ dg-mips-options. Use isa>=4 instead of -mips64.
+ * gcc.target/mips/branch-cost-2.c: Likewise.
+
+ * gcc.target/mips/cache-1.c: Use dg-options instead of
+ dg-mips-options. Add isa>=3 and NOMIPS16 attributes.
+
+ * gcc.target/mips/call-saved-1.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Use isa_rev=0 instead of -mips2.
+ * gcc.target/mips/call-saved-2.c: Likewise.
+ * gcc.target/mips/call-saved-3.c: Likewise.
+
+ * gcc.target/mips/clear-cache-1.c: Use dg-options instead of
+ dg-mips-options. Use isa_rev>=2 instead of -mips32r2.
+ * gcc.target/mips/ext_ins.c: Likewise.
+
+ * gcc.target/mips/code-readable-1.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Use addressing=absolute too.
+ * gcc.target/mips/code-readable-2.c: Likewise.
+ * gcc.target/mips/code-readable-3.c: Likewise.
+
+ * gcc.target/mips/dmult-1.c: Use dg-options instead of
+ dg-mips-options. Remove the mips16_attribute directives.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-4.c: Likewise.
+
+ * gcc.target/mips/dpaq_sa_l_w.c: Use dg-options instead of
+ dg-mips-options. Remove target restrictions from dg-do.
+ Use -mgp32 instead of -mips32r2.
+ * gcc.target/mips/dpsq_sa_l_w.c: Likewise.
+
+ * gcc.target/mips/dsp-ctrl.c: Use dg-options instead of
+ dg-mips-options. Remove target restrictions from dg-do.
+ Remove the !__mips_dsp code and add -mdsp -mgp32 to dg-options
+ instead. Add NOMIPS16 attributes.
+
+ * gcc.target/mips/dspr2-MULT.c: Use dg-options instead of
+ dg-mips-options. Replace -march=mips32r2 with -mgp32.
+ * gcc.target/mips/dspr2-MULTU.c: Likewise.
+
+ * gcc.target/mips/ext-1.c: Use dg-options instead of
+ dg-mips-options. Use isa_rev>=2 instead of -mips64r2.
+
+ * gcc.target/mips/fix-r10000-1.c: Use dg-options instead of
+ dg-mips-options. Remove -march=mips4.
+ * gcc.target/mips/fix-r10000-2.c: Likewise.
+ * gcc.target/mips/fix-r10000-3.c: Likewise.
+ * gcc.target/mips/fix-r10000-4.c: Likewise.
+ * gcc.target/mips/fix-r10000-5.c: Likewise.
+ * gcc.target/mips/fix-r10000-6.c: Likewise.
+ * gcc.target/mips/fix-r10000-7.c: Likewise.
+ * gcc.target/mips/fix-r10000-8.c: Likewise.
+ * gcc.target/mips/fix-r10000-9.c: Likewise.
+ * gcc.target/mips/fix-r10000-10.c: Likewise.
+ * gcc.target/mips/fix-r10000-11.c: Likewise.
+ * gcc.target/mips/fix-r10000-12.c: Likewise.
+ * gcc.target/mips/fix-r10000-13.c: Likewise.
+ * gcc.target/mips/fix-r10000-14.c: Likewise.
+ * gcc.target/mips/fix-r10000-15.c: Likewise.
+
+ * gcc.target/mips/fixed-scalar-type.c: Use dg-options instead
+ of dg-mips-options. Remove target restrictions from dg-do.
+ Remove -march=mips32r2.
+ * gcc.target/mips/fixed-vector-type.c: Likewise.
+ * gcc.target/mips/mips32-dsp-run.c: Likewise.
+ * gcc.target/mips/mips32-dspr2.c: Likewise. Add NOMIPS16 attributes.
+
+ * gcc.target/mips/fpr-moves-7.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Remove -msoft-float.
+ * gcc.target/mips/fpr-moves-8.c: Likewise.
+ * gcc.target/mips/int-moves-1.c: Likewise.
+ * gcc.target/mips/int-moves-2.c: Likewise.
+
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Use dg-options
+ instead of dg-mips-options. Use isa>=2 instead of -mips2.
+ Add -mgp32.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-3.c: Likewise.
+
+ * gcc.target/mips/ins-1.c: Use dg-options instead of
+ dg-mips-options. Use "isa_rev>=2 -mgp32" instead of -march=mips32r2.
+
+ * gcc.target/mips/loongson-muldiv-1.c: Use dg-options instead of
+ dg-mips-options. Use isa=loongson instead of -march=loongson2e.
+ * gcc.target/mips/loongson-muldiv-2.c: Likewise.
+
+ * gcc.target/mips/loongson-simd.c: Remove mips_loongson
+ target requirement and use isa=loongson instead. Add -mhard-float,
+ -mno-mips16 and -flax-vector-conversions.
+
+ * gcc.target/mips/lazy-binding-1.c: Use dg-options instead of
+ dg-mips-options. Remove target restrictions from dg-do.
+ Add NOMIPS16 attributes.
+
+ * gcc.target/mips/long-calls-pg.c: Use dg-options instead of
+ dg-mips-options. Remove -march=mips32 and -fno-pic.
+ Add NOMIPS16 attributes.
+
+ * gcc.target/mips/madd-3.c: Use dg-options instead of
+ dg-mips-options. Use isa_rev>=1 instead of -mips32.
+ * gcc.target/mips/maddu-3.c: Likewise.
+ * gcc.target/mips/msub-3.c: Likewise.
+ * gcc.target/mips/msubu-3.c: Likewise.
+
+ * gcc.target/mips/madd-4.c: Use dg-options instead of
+ dg-mips-options. Remove -mips32r2.
+ * gcc.target/mips/maddu-4.c: Likewise.
+ * gcc.target/mips/msub-4.c: Likewise.
+ * gcc.target/mips/msubu-4.c: Likewise.
+
+ * gcc.target/mips/mips-3d-1.c: Use dg-options instead of
+ dg-mips-options. Remove target restrictions from dg-do.
+ Remove -mips64, -mhard-float and -mgp64.
+ * gcc.target/mips/mips-3d-2.c: Likewise.
+ * gcc.target/mips/mips-3d-3.c: Likewise.
+ * gcc.target/mips/mips-3d-4.c: Likewise.
+ * gcc.target/mips/mips-3d-5.c: Likewise.
+ * gcc.target/mips/mips-3d-6.c: Likewise.
+ * gcc.target/mips/mips-3d-7.c: Likewise.
+ * gcc.target/mips/mips-3d-8.c: Likewise.
+ * gcc.target/mips/mips-3d-9.c: Likewise.
+
+ * gcc.target/mips/mips-ps-5.c: Use dg-options instead of
+ dg-mips-options. Remove -mips64.
+ * gcc.target/mips/mips-ps-type.c: Likewise.
+
+ * gcc.target/mips/mips-ps-7.c: Use dg-options instead of
+ dg-mips-options. Replace -mips32r2 with -mgp32.
+
+ * gcc.target/mips/mips-ps-type-2.c: Use dg-options instead of
+ dg-mips-options. Use "isa_rev>=2 -mgp32" instead of -mips32r2.
+
+ * gcc.target/mips/mips16-attributes.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option.
+ * gcc.target/mips/mips16-attributes-2.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
+ * gcc.target/mips/scc-3.c: Likewise.
+
+ * gcc.target/mips/mips16-attributes-3.c: Add { dg-options "(-mips16)" }.
+
+ * gcc.target/mips/mips16e-extends.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Use isa_rev>=1 instead of -march=mips32.
+ Add -mlong32.
+
+ * gcc.target/mips/mips32-dsp.c: Use dg-options instead of
+ dg-mips-options. Replace -march=mips32 with -mgp32.
+
+ * gcc.target/mips/mips32-dsp-type.c: Use dg-options instead of
+ dg-mips-options. Remove -march=mips32.
+
+ * gcc.target/mips/mips32-dspr2-type.c: Use dg-options instead of
+ dg-mips-options. Remove -march=mips32r2.
+
+ * gcc.target/mips/mips32r2-mxhc1.c: Use dg-options instead of
+ dg-mips-options. Add NOMIPS16 attributes.
+
+ * gcc.target/mips/movcc-1.c: Use dg-options instead of
+ dg-mips-options. Use isa>=4 instead of -mips4.
+ * gcc.target/mips/movcc-2.c: Likewise.
+ * gcc.target/mips/movcc-3.c: Likewise.
+
+ * gcc.target/mips/octeon-bbit-1.c: Use dg-options instead of
+ dg-mips-options. Declare foo as a NOMIPS16 function.
+ Use foo instead of g.
+
+ * gcc.target/mips/near-far-1.c: Use dg-options instead of
+ dg-mips-options. Replace the nonpic directives with an
+ addressing=absolute option.
+ * gcc.target/mips/near-far-2.c: Likewise.
+ * gcc.target/mips/near-far-3.c: Likewise.
+ * gcc.target/mips/near-far-4.c: Likewise.
+
+ * gcc.target/mips/nmadd-1.c: Use dg-options instead of
+ dg-mips-options. Use isa=4 instead of -mips4.
+ * gcc.target/mips/nmadd-2.c: Likewise.
+ * gcc.target/mips/nmadd-3.c: Likewise.
+ * gcc.target/mips/rsqrt-1.c: Likewise.
+ * gcc.target/mips/rsqrt-2.c: Likewise.
+ * gcc.target/mips/rsqrt-3.c: Likewise.
+
+ * gcc.target/mips/save-restore-1.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Use isa_rev>=1 instead of -mips32r2.
+ * gcc.target/mips/save-restore-2.c: Likewise.
+ * gcc.target/mips/save-restore-3.c: Likewise.
+ * gcc.target/mips/save-restore-4.c: Likewise.
+ * gcc.target/mips/save-restore-5.c: Likewise.
+
+ * gcc.target/mips/scc-1.c: Use dg-options instead of
+ dg-mips-options. Replace the mips16_attribute directives with
+ a (-mips16) dg-option. Use isa_rev>=1 instead of -mips32.
+
+ * gcc.target/mips/timode-2.c: Remove target restrictions from dg-do.
+ Use -mgp64.
+
+2008-12-21 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/35899
+ * gcc.target/mips/smartmips-lwxs.c: Add -mlong32.
+
+2008-12-21 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/38598
+ * gcc.target/mips/madd-7.c: Add -mlong32.
+ * gcc.target/mips/msub-7.c: Likewise.
+
+2008-12-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/38597
+ * g++.dg/cpp0x/auto13.C: New test.
+
+2008-12-20 Jakub Jelinek <jakub@redhat.com>
+ Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/36921
+ * g++.dg/warn/pr36921.C: New.
+
+2008-12-19 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * lib/target-supports.exp: Add *-*-rtems* to list
+ of targets without profiling support.
+
+2008-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38577
+ * g++.dg/template/call6.C: New test.
+
+2008-12-19 Janis Johnson <janis187@us.ibm.com>
+
+ Revert:
+ 2008-12-12 Janis Johnson <janis187@us.ibm.com>
+ PR libgfortran/24685
+ * gfortran.dg/default_format_denormal_2.f90: Change XFAIL to check
+ for size of long double.
+
+2008-12-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/38565
+ * testsuite/g++.dg/torture/pr38565.C: New test.
+
+2008-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38427
+ * g++.dg/init/ctor9.C: New test.
+
+2008-12-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/38485
+ * g++.dg/parse/defarg13.C: New test.
+
+2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/37922
+ * g++.dg/torture/pr37922.C: New test.
+
+2008-12-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/31822
+ * gfortran.dg/char_pointer_assign_2.f90: Updated expected error
+ message to be more detailed.
+ * gfortran.dg/char_pointer_assign_4.f90: New test.
+ * gfortran.dg/char_pointer_assign_5.f90: New test.
+
+2008-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38533
+ * gcc.dg/tree-ssa/pr38533.c: New test.
+ * gcc.c-torture/execute/pr38533.c: New test.
+
+ PR middle-end/38505
+ * gcc.c-torture/compile/pr38505.c: New test.
+
+2008-12-17 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/cpp0x/auto6.C: Test more stuff.
+ * g++.dg/cpp0x/auto12.C: New test.
+
+2008-12-17 Daniel Kraft <d@domob.eu>
+
+ PR fortran/38137
+ * gfortran.dg/merge_char_3.f90: New test.
+
+2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38487
+ * gfortran.dg/elemental_dependency_2.f90: New test.
+
+2008-12-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35937
+ * gfortran.dg/char_length_14.f90: New test.
+
+2008-12-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38504
+ * gfortran.dg/fmt_int_sign.f90: New test.
+
+2008-12-13 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/graphite/pr38409.c: Fixed commit problem.
+
+2008-12-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/sse-12.c: Include x86intrin.h.
+ (dg-options): Use -mavx instead of -msse4. Add -maes -mpclmul.
+ * gcc.target/i386/sse-13.c: Include x86intrin.h. Define immintrin.h
+ intrinsics that require immediate arguments.
+ (dg-options): Use -mavx instead of -msse4.
+ * gcc.target/i386/sse-14.c: Include x86intrin.h. Define immintrin.h
+ intrinsics that require immediate arguments.
+ (test_3): New macro.
+ (dg-options): Use -mavx instead of -msse4.
+ * g++.dg/other/i386-2.C: Include x86intrin.h.
+ (dg-options): Use -mavx instead of -msse4.
+ * g++.dg/other/i386-3.C: Include x86intrin.h.
+ (dg-options): Use -mavx instead of -msse4.
+ * g++.dg/other/i386-5.C: Include x86intrin.h.
+ * g++.dg/other/i386-6.C: Ditto.
+
+2008-12-12 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/38163
+ * gcc.dg/tree-ssa/loop-3.c: Compile only on nonpic x86 targets.
+ Remove dg-skip-if directive.
+
+2008-12-12 Janis Johnson <janis187@us.ibm.com>
+
+ PR libgfortran/24685
+ * gfortran.dg/default_format_denormal_2.f90: Change XFAIL to check
+ for size of long double.
+
+ PR objc++/31032
+ * obj-c++.dg/bitfield-1.mm: Remove XFAIL for ICE.
+
+ * gcc.dg/pr35442.c: Ignore a possible warning.
+
+2008-12-12 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/32044
+ * gcc.dg/pr34027-1.c: Change outcome.
+ * gcc.dg/tree-ssa/pr32044.c: New test.
+
+2008-12-12 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/11594
+ * gcc.dg/20020103-1.c: Remove XFAIL for powerpc.
+
+2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/38409
+ * gcc.dg/graphite/pr38409.c: New.
+
+2008-12-12 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36355
+ * gfortran.dg/matmul_argument_types.f90: New.
+
+2008-12-11 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/29071
+ * gcc.dg/20020919-1.c: Fix a preprocessor check.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/38413
+ * gcc.dg/graphite/pr38413.c: New.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/37857
+ * gfortran.dg/graphite/pr37857.f90: New.
+
+2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/38446
+ * gcc.dg/graphite/pr38446.c: New.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/graphite/scop-16.c: Test only scop specific info.
+ * gcc.dg/graphite/scop-17.c: Same.
+ * gcc.dg/graphite/block-5.c: New.
+ * gcc.dg/graphite/block-6.c: New.
+ * gcc.dg/graphite/pr37485.c: Clean dump file after.
+ * gcc.dg/graphite/pr37684.c: Same.
+ * gcc.dg/graphite/block-2.c: Same.
+
+2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/38459
+ * gfortran.dg/graphite/pr38459.f90: New.
+
+2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/37852
+ PR middle-end/37883
+ PR middle-end/37928
+ PR middle-end/37980
+ PR middle-end/38038
+ PR middle-end/38039
+ PR middle-end/38073
+ PR middle-end/38083
+ PR middle-end/38125
+ * gcc.dg/graphite/pr37928.c: New.
+ * gcc.dg/graphite/pr37883.c: New.
+ * gcc.dg/graphite/pr38073.c: New.
+ * gcc.dg/graphite/pr38125.c: New.
+ * gfortran.dg/graphite/pr38083.f90: New.
+ * gfortran.dg/graphite/pr37852.f90: New.
+ * gfortran.dg/graphite/pr37980.f90: New.
+ * gfortran.dg/graphite/id-2.f90: New.
+ * gfortran.dg/graphite/id-4.f90: New.
+
+ * gcc.dg/graphite/scop-18.c: Remove reduction, test for
+ the number of detected scops. Copy exact same test for loop blocking...
+ * gcc.dg/graphite/block-1.c: Fix the number of expected loops
+ to be blocked as reductions are not handled.
+ * gcc.dg/graphite/block-4.c: ...here. New.
+
+2008-12-11 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/38464
+ * gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Check that three
+ loops are vectorized.
+
+2008-12-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/35319
+ * g++.dg/ext/fixed2.C: New test.
+
+2008-12-10 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/36792
+ * gcc.dg/tree-ssa/ssa-fre-10.c: Update expected results.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/38271
+ * gcc.dg/torture/pr38271.c: New.
+
+2008-12-10 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37416
+ * gcc.dg/vect/pr36630.c: Expect 1 vectorized loop.
+
+2008-12-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/20020919-1.c: Correct target selector to alpha*-*-*.
+ * gcc.dg/pr31866.c: Ditto.
+ * gcc.dg/torture/type-generic-1.c: Add -mieee for alpha*-*-* targets.
+ * g++.dg/torture/type-generic-1.C: Ditto.
+ * gfortran.dg/boz_9.f90: Ditto.
+ * gfortran.dg/boz_14.f90: Ditto.
+ * gfortran.dg/init_flag_3.f90: Ditto.
+ * gfortran.dg/init_flag_4.f90: Ditto.
+ * gfortran.dg/init_flag_5.f90: Ditto.
+ * gfortran.dg/integer_exponentiation_1.f90: Ditto.
+ * gfortran.dg/integer_exponentiation_5.F90: Ditto.
+ * gfortran.dg/isnan_1.f90: Ditto.
+ * gfortran.dg/isnan_2.f90: Ditto.
+ * gfortran.dg/module_nan.f90: Ditto.
+ * gfortran.dg/nan_1.f90: Ditto.
+ * gfortran.dg/nan_2.f90: Ditto.
+ * gfortran.dg/nan_3.f90: Ditto.
+ * gfortran.dg/nan_4.f90: Ditto.
+ * gfortran.dg/namelist_42.f90: Ditto.
+ * gfortran.dg/namelist_43.f90: Ditto.
+ * gfortran.dg/nearest_1.f90: Ditto.
+ * gfortran.dg/nearest_2.f90: Ditto.
+ * gfortran.dg/nearest_3.f90: Ditto.
+ * gfortran.dg/pr37243.f: Ditto.
+ * gfortran.dg/real_const_3.f90: Ditto.
+ * gfortran.dg/transfer_simplify_2.f90: Ditto.
+ * gfortran.fortran-torture/execute/intrinsic_spacing.x: New file.
+
+ * gfortran.dg/default_format_denormal_1.f90: XFAIL on alpha.
+
+2008-12-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/37971
+ * g++.dg/overload/defarg2.C: New test.
+ * g++.dg/overload/defarg3.C: Likewise.
+
+2008-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38454
+ * gcc.dg/memset-1.c: New test.
+ * gcc.dg/memcpy-2.c: New test.
+
+2008-12-09 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35983
+ * gfortran.dg/pr35983.f90: New test.
+
+2008-12-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/38420
+ * gcc.target/i386/pr37248-2.c: Support hex dump on 32bit host.
+ * gcc.target/i386/pr37248-3.c: Likewise.
+
+2008-12-09 Steve Ellcey <sje@cup.hp.com>
+
+ PR testsuite/37326
+ * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Skip on hppa*64-*-*.
+
+2008-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/35468
+ * gcc.dg/pr35468.c: New test.
+ * gcc.c-torture/compile/pr35468.c: New test.
+
+2008-12-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/38410
+ * gcc.dg/ctor1.c: New test.
+
+2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ PR middle-end/38084
+ * gfortran.dg/graphite/id-3.f90: New.
+ * gcc.dg/graphite/pr38084.c: New.
+
+2008-12-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/mips/fix-r10000-6.c: Add dg-message to look for
+ the note about changed semantics of NAND builtin.
+ * gcc.target/mips/fix-r10000-12.c: Ditto.
+ * gcc.target/mips/atomic-memory-1.c: Ditto.
+ (main): Correct __sync_nand_and_fetch results.
+
+2008-12-08 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/38390
+ * g++.dg/debug/dwarf2/imported-module-2.C: New test.
+
+2008-12-08 Steve Ellcey <sje@cup.hp.com>
+
+ * g++.dg/other/packed1.C: Remove ia64-hp-hpux* XFAIL.
+
+2008-12-08 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.target/ia64/versionid-1.c (dg-final): Fix syntax.
+ * gcc.target/ia64/versionid-2.c (dg-final): Ditto.
+
+2008-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35443
+ * gcc.dg/pr35443.c: New test.
+
+ PR c/35442
+ * gcc.dg/pr35442.c: New test.
+
+2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/string_comparison.adb: New test.
+
+2008-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR tree-optimization/38405
+ * gcc.dg/torture/pr38405.c: New.
+
+2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/aggr10.adb: New test.
+ * gnat.dg/aggr10_pkg.ads: New helper.
+
+2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38425
+ * gfortran.dg/io_constraints_5.f90: New test.
+
+2008-12-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38428
+ * gcc.c-torture/compile/pr38428.c: New test.
+
+ PR middle-end/38422
+ * gcc.c-torture/execute/pr38422.c: New test.
+
+2008-12-06 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/38415
+ * gfortran.dg/proc_ptr_2.f90: Extended.
+ * gfortran.dg/proc_ptr_11.f90: Modified.
+
+2008-12-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38291
+ * gfortran.dg/streamio_16.f90: New test.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35336
+ * g++.dg/other/error30.C: New test.
+
+2008-12-05 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_hard_dfp): New.
+ * gcc.dg/dfp/convert-dfp-round.c: Skip for hard_dfp.
+ * gcc.dg/dfp/fe-binop.c: Ditto.
+ * gcc.dg/dfp/fe-convert-1.c: Ditto.
+
+2008-12-05 Catherine Moore <clm@codesourcery.com>
+
+ * gcc-target/mips/mips-nonpic: New testsuite.
+
+2008-12-05 Steve Ellcey <sje@cup.hp.com>
+
+ PR other/28614
+ * gcc.c-torture/compile/20001226-1.c: Add dg-timeout-factor.
+ * g++.dg/torture/pr31863.C: Ditto.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37248
+ * gcc.target/i386/pr37248-1.c: New test.
+ * gcc.target/i386/pr37248-2.c: New test.
+ * gcc.target/i386/pr37248-3.c: New test.
+
+2008-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38338
+ * gcc.dg/pr38338.c: New test.
+
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/powerpc/20081204-1.c: New test.
+
+2008-12-05 Richard Guenther <rguenther@suse.de>
+
+ PR testsuite/38406
+ * gcc.dg/Wstrict-aliasing-converted-assigned.c: Restrict PTA
+ alias warning to lp64 targets.
+
+2008-12-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/union-5.c: Run only on x86 and x86-64.
+
+2008-12-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38285
+ gfortran.dg/fmt_f_an_p.f: New test.
+
+2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/union-5.c: New test.
+
+2008-12-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/37906
+ * g++.dg/cpp0x/defaulted6.C: New test.
+
+2008-12-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36509
+ * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: Adjust, remove XFAIL.
+ * gcc.dg/Wstrict-aliasing-converted-assigned.c: Adjust.
+ * g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Likewise.
+
+2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/union-4.c: New test.
+
+2008-12-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * g++.old-deja/g++.eh/badalloc1.C: Add the missing "}".
+
+2008-12-03 Janis Johnson <janis187@us.ibm.com>
+
+ * g++.old-deja/g++.eh/badalloc1.C: Reinstate XFAIL for Darwin 3-7.
+
+2008-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * g++.old-deja/g++.eh/badalloc1.C: Omit XFAIL on obsolete Darwin.
+
+2008-12-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/38232
+ * g++.dg/init/value5.C: New test.
+
+ PR c++/38256
+ * g++.dg/cpp0x/auto11.C: New test.
+
+ PR c++/38380
+ * g++.dg/cpp0x/initlist10.C: New test.
+ * g++.old-deja/g++.eh/ctor1.C: Default ctor is a candidate too.
+ * g++.dg/tc1/dr152.C: Likewise.
+
+2008-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38360
+ * gcc.c-torture/compile/pr38360.c: New test.
+
+2008-12-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36326
+ * gcc.dg/tree-ssa/pr36326.c: New testcase.
+
+2008-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37716
+ * g++.dg/torture/pr37716.C: New test.
+
+2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/torture/pr37868.c: Skip on the SPARC.
+
+2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20081203-1.c: New test.
+
+2008-12-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/35782, c++/37860
+ * g++.dg/cpp0x/initlist9.C: New test.
+
+ PR c++/37234
+ * g++.dg/cpp0x/defaulted5.C: New test.
+
+2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * gcc.misc-tests/linkage.exp: Correct file type check for Darwin.
+
+2008-12-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38343
+ * gcc.c-torture/compile/pr38343-2.c: New test.
+
+2008-12-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38359
+ * gcc.c-torture/compile/pr38359.c: New testcase.
+ * gcc.c-torture/execute/shiftopt-1.c: Adjust.
+
+2008-12-02 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36704
+ PR fortran/38290
+ * gfortran.dg/entry_7.f90: Modified.
+ * gfortran.dg/proc_ptr_2.f90: Extended.
+ * gfortran.dg/proc_ptr_3.f90: Modified.
+ * gfortran.dg/proc_ptr_11.f90: New.
+ * gfortran.dg/proc_ptr_12.f90: New.
+ * gfortran.dg/result_1.f90: New.
+
+2008-12-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38343
+ * gcc.c-torture/compile/pr38343.c: New test.
+
+2008-12-01 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.target/powerpc/pr18096-1.c: Adjust location of expected error.
+
+2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38252
+ * gfortran.dg/empty_function_1.f90: Fix latest commit.
+
+2008-12-01 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38252
+ * gfortran.dg/empty_function_1.f90: New test.
+
+2008-12-01 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: Extend XFAIL to alpha*-*-*.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-12-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38348
+ * g++.dg/gomp/for-19.C: New test.
+
+ PR rtl-optimization/38245
+ * gcc.dg/pr38245-1.c: New test.
+ * gcc.dg/pr38245-2.c: New test.
+
+2008-11-30 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37779
+ * gfortran.dg/recursive_check_1.f: Changed expected error message to
+ the more general new one.
+ * gfortran.dg/recursive_check_2.f90: Ditto.
+ * gfortran.dg/entry_18.f90: Ditto.
+ * gfortran.dg/recursive_check_4.f03: Do "the same" check also for
+ FUNCTIONS, as this is different in details from SUBROUTINES.
+ * gfortran.dg/recursive_check_6.f03: New test.
+
+2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * g++.dg/opt/reload3.C: New test.
+
+2008-11-30 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35824
+ * gfortran.dg/alloc_comp_assign_8.f90 : New test.
+
+2008-11-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37843
+ * gcc.target/i386/pr37843-3.c: Make it nonpic targets only.
+
+2008-11-29 Janus Weil <janus@gcc.gnu.org>
+ Tobias Burnus <burnus@gcc.gnu.org>
+
+ PR fortran/38289
+ PR fortran/38290
+ * gfortran.dg/proc_decl_1.f90: Extended test case.
+
+2008-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * g++.dg/cpp/stringop-1.C: New test.
+
+2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/test_version.adb: Adjust to new string length.
+
+2008-11-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR testsuite/38311
+ * ssp-2.c: Link with -Wl,-multiply_defined,suppress on darwin.
+
+2008-11-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/38233
+ * g++.dg/init/array25.C: New test.
+ * g++.dg/init/value4.C: New test.
+
+ PR c++/38278
+ * g++.dg/lookup/name-clash8.C: New test.
+
+2008-11-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37843
+ * gcc.target/i386/pr37843-1.c: Make it nonpic targets only.
+ * gcc.target/i386/pr37843-2.c: Likewise.
+
+2008-11-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37955
+ PR tree-optimization/37742
+ * gcc.c-torture/compile/pr37955.c: New testcase.
+ * gcc.c-torture/compile/pr37742-3.c: Likewise.
+
+2008-11-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/38261
+ * gcc.dg/tree-ssa/alias-2.c: Only compile on nonpic targets.
+ * gcc.dg/torture/ipa-pta-1.c: Likewise.
+
+2008-11-26 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/objc.exp (objc_target_compile): Fix typo from previous change.
+ * lib/gnat.exp (gnat_target_compile): Fix typo from previous change.
+
+ PR testsuite/28870
+ * lib/timeout.exp: New.
+ * lib/timeout-dg.exp: New.
+ * lib/gcc-dg.exp: Include new timeout library files.
+ (dg-test): Unset timeout variables.
+ * lib/gcc.exp (gcc_target_compile): Set timeout value from new proc.
+ * lib/g++.exp (g++_target_compile): Ditto.
+ * lib/gfortran.exp (gfortran_target_compile): Ditto.
+ * lib/objc.exp (objc_target_compile): Ditto.
+ * lib/obj-c++.exp (obj-c++_target_compile): Ditto.
+ * lib/obj-c++.exp (obj-c++_target_compile): Ditto.
+ * lib/gnat.exp (gnat_target_compile): Ditto.
+
+2008-11-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37843
+ * gcc.target/i386/pr37843-1.c: Make it Linux only.
+ * gcc.target/i386/pr37843-2.c: Likewise.
+
+2008-11-26 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/callabi/func-indirect.c: New.
+
+2008-11-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/28743
+ * g++.dg/template/nontype18.C: New test.
+
+2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * gcc.c-torture/compile/20080929-1.c: New.
+
+2008-11-25 Janis Johnson <janis187@us.ibm.com>
+
+ * gfortran.dg/default_format_denormal_1.f90: Fix xfail for darwin.
+
+2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37843
+ * gcc.target/i386/align-main-3.c: New.
+ * gcc.target/i386/pr37843-1.c: Likewise.
+ * gcc.target/i386/pr37843-2.c: Likewise.
+ * gcc.target/i386/pr37843-3.c: Likewise.
+
+2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/36463
+ * gfortran.dg/proc_decl_20.f90: New test.
+
+2008-11-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/38151
+ PR middle-end/38236
+ * gcc.c-torture/execute/pr38151.c: New testcase.
+ * gcc.c-torture/execute/pr38236.c: Likewise.
+
+2008-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/eh/weak1.C: Don't xfail hppa*64*-*-*.
+
+2008-11-24 DJ Delorie <dj@redhat.com>
+
+ * gcc.c-torture/execute/pr36321.c: Don't rely on argv[0] being set.
+
+2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/38184
+ * gfortran.dg/reshape_empty_1.f03: New test.
+
+2008-11-24 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR testsuite/38241
+ * g++.old-deja/g++.pt/const2.C: Prune output for Darwin.
+
+ PR testsuite/38076
+ * g++.dg/other/anon5.C: Skip on Darwin.
+
+ * gfortran.dg/default_format_denormal_1.f90: XFAIL on darwin8
+ and darwin9 subversions.
+
+2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ PR target/35018
+ * gcc.target/m68k/pr35018.c: New.
+
+2008-11-24 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37779
+ * gfortran.dg/c_funloc_tests.f03: Added missing `RECURSIVE'.
+ * gfortran.dg/c_funloc_tests_2.f03: Ditto.
+ * gfortran.dg/recursive_check_4.f03: New test.
+ * gfortran.dg/recursive_check_5.f03: New test.
+
+2008-11-24 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35681
+ * gfortran.dg/elemental_dependency_1.f90: Really commit it.
+
+2008-11-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34820
+ * gfortran.dg/alloc_comp_constructor_6.f90 : New test.
+ * gfortran.dg/alloc_comp_basics_1.f90 : Reduce expected refs to
+ 'builtin_free' from 24 to 18.
+
+ PR fortran/34143
+ * gfortran.dg/alloc_comp_constructor_5.f90 : New test.
+
+ PR fortran/32795
+ * gfortran.dg/alloc_comp_constructor_4.f90 : New test.
+
+2008-11-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37735
+ * gfortran.dg/alloc_comp_assign_7.f90: New test.
+
+2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/ext/tmplattr9.C: Require weak.
+ * g++.old-deja/g++.pt/static6.C: Remove xfail for *-*-hpux*.
+
+2008-11-23 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/38234
+ * gfortran.dg/reshape_4.f90: New test.
+
+2008-11-22 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/38225
+ * gfortran.dg/reshape_3.f90: New test.
+
+2008-11-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38160
+ * gfortran.dg/bind_c_usage_18.f90: New test.
+ * gfortran.dg/c_kind_tests_2.f03: Update dg-messages.
+ * gfortran.dg/interop_params.f03: Ditto.
+
+2008-11-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38222
+ * gcc.target/i386/funcspec-3.c: Scan for popcnt on Darwin targets.
+
+2008-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR libfortran/37839
+ * gfortran.dg/f2003_inquire_1.f03: New test.
+ * gfortran.dg/f2003_io_1.f03: Remove xfail.
+ * gfortran.dg/f2003_io_4.f03: Likewise.
+ * gfortran.dg/f2003_io_5.f03: Likewise.
+ * gfortran.dg/f2003_io_6.f03: Likewise.
+ * gfortran.dg/f2003_io_7.f03: Likewise.
+
+2008-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38200
+ * gcc.dg/pr38200.c: New test.
+
+2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/avx-1.c: Include <immintrin.h> instead of
+ <gmmintrin.h>.
+ * gcc.target/i386/avx-2.c: Likewise.
+ * gcc.target/i386/m256-check.h: Likewise.
+ * g++.dg/other/i386-5.C: Likewise.
+ * g++.dg/other/i386-6.C: Likewise.
+
+2008-11-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/37472
+ * gfortran.dg/namelist_print_1.f: Update test.
+
+2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.dg/sync-2.c: Add type cast to avoid folding.
+ * gcc.dg/sync-3.c: Likewise.
+
+2008-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/29215
+ * gfortran.dg/array_memcpy_3.f90: Adjust pattern to match even
+ memcpy optimized into ref-all store.
+ * gcc.dg/pr29215.c: New test.
+
+2008-11-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38151
+ * gcc.target/i386/pr38151-1.c: New test.
+
+2008-11-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/28513
+ * g++.dg/lookup/name-clash7.C: New test.
+
+ PR c++/37540
+ * g++.dg/cpp0x/decltype14.C: New test.
+
+2008-11-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37868
+ * gcc.dg/torture/pr37868.c: New testcase.
+ * gcc.c-torture/execute/pr38048-1.c: Likewise.
+ * gcc.c-torture/execute/pr38048-2.c: Likewise.
+
+2008-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/38181
+ * gfortran.dg/array_section_2.f90: Adjust pattern to match
+ the inlined size0 instead of a size0 call.
+
+ PR c++/36631
+ * g++.dg/template/call5.C: New test.
+
+2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.c-torture/compile/20081119-1.c: New test.
+
+2008-11-19 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/37142
+ * g++.dg/template/crash85.C: New test.
+
+2008-11-19 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/35405
+ * g++.dg/template/crash84.C: New test.
+
+2008-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c-torture/compile/pr11832.c: XFAIL even on s390*-*-*.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-11-19 DJ Delorie <dj@redhat.com>
+
+ * gcc.target/xstormy16/below100.S (.chip_info): Use
+ position-independent expressions for the fillers.
+
+2008-11-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/36410
+ * g++.dg/ext/attrib32.C: Add member typedef case.
+
+ PR c++/37563
+ * g++.dg/template/pseudodtor5.C: New test.
+
+ PR c++/37256
+ * g++.dg/cpp0x/extern_template-3.C: New test.
+
+2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * gcc.target/m68k/xgot-1.c (dg-options): Add -O2.
+
+2008-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36038
+ * gcc.c-torture/compile/pr36038.c: Moved to...
+ * gcc.c-torture/execute/pr36038.c: ... here.
+
+2008-11-19 Andrew Stubbs <ams@codesourcery.com>
+
+ PR target/36133
+ * gcc.target/m68k/pr36133.c: New test.
+
+2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * gcc.gd/struct/wo_prof_global_var.c: Use uninitialized integer
+ values instead of uninitialized FP values to avoid NaNs.
+ * gcc.dg/struct/wo_prof_local_var.c: Same.
+
+2008-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gfortran.dg/f2003_io_1.f03: XFAIL for all SPARC targets.
+ * gfortran.dg/f2003_io_4.f03: Ditto.
+ * gfortran.dg/f2003_io_5.f03: Ditto.
+ * gfortran.dg/f2003_io_6.f03: Ditto.
+ * gfortran.dg/f2003_io_7.f03: Ditto.
+
+2008-11-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38171
+ * gfortran.dg/module_equivalence_6.f90: New test.
+
+2008-11-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38051
+ * gcc.c-torture/execute/pr38051.c (buf): Remove aligned attribute.
+ (buf2): Removed.
+ (main): Only run on little endian targets with
+ sizeof (long) == sizeof (void *). Use just one buffer, align the
+ pointers at runtime.
+
+2008-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/38135
+ * gfortran.dg/reshape_pad_1.f90: New test case.
+
+2008-11-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37362
+ * gcc.target/mips/pr37362.c: New test.
+
+2008-11-18 Jason Merrill <jason@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37962
+ * g++.dg/cpp0x/auto[38].C: Adjust expected errors.
+ * g++.dg/cpp0x/auto9.C: New test.
+ * g++.dg/cpp0x/auto10.C: New test.
+
+2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.c-torture/execute/20081117-1.c: New test.
+
+2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/dspr2-MULT.c: Just check for $ac1 and $ac2.
+ * gcc.target/mips/dspr2-MULTU.c: Likewise.
+
+2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/madd-5.c: New test.
+ * gcc.target/mips/madd-6.c: Likewise.
+ * gcc.target/mips/madd-7.c: Likewise.
+ * gcc.target/mips/madd-8.c: Likewise.
+ * gcc.target/mips/msub-5.c: Likewise.
+ * gcc.target/mips/msub-6.c: Likewise.
+ * gcc.target/mips/msub-7.c: Likewise.
+ * gcc.target/mips/msub-8.c: Likewise.
+
+2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/no-smartmips-ror-1.c: Use -march=mips32 instead
+ of -march=mips32r2.
+
+2008-11-17 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * gfortran.dg/default_format_denormal_1.f90: Don't XFAIL darwin10
+ or later.
+
+2008-11-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/38140
+ * gcc.dg/pr38140.c: New test.
+
+2008-11-17 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR testsuite/38099
+ * gcc.dg/compat/struct-layout-1_generate.c: Also use -no-mmx on
+ i?86/x86_64 darwin.
+ * g++.dg/compat/struct-layout-1_generate.c: Same.
+
+2008-11-17 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37908
+ * gcc.dg/pr37908.c: New test.
+ * gcc.dg/ia64-sync-1.c: Correct __sync_fetch_and_nand and
+ __sync_nand_and_fetch results. Add dg-message to look for the warning
+ about changed semantics of NAND builtin.
+ (init_si, init_di): Change init value for __sync_fetch_and_nand to -1.
+ (test_si, test_di): Change expected result of
+ __sync_nand_and_fetch to ~7.
+ * gcc.dg/ia64-sync-2.c: Correct __sync_fetch_and_nand and
+ __sync_nand_and_fetch results. Add dg-message to look for the warning
+ about changed semantics of NAND builtin.
+ (init_noret_si, init_noret_di): Change init value for
+ __sync_fetch_and_nand to -1.
+ (init_noret_si, init_noret_di): Change expected result of
+ __sync_nand_and_fetch to ~7.
+ * gcc.dg/sync-2.c: Correct __sync_fetch_and_nand and
+ __sync_nand_and_fetch results. Add dg-message to look for the warning
+ about changed semantics of NAND builtin.
+ (init_qi, init_qi): Change init value for __sync_fetch_and_nand to -1.
+ (init_hi, init_hi): Change expected result of
+ __sync_nand_and_fetch to ~7.
+ * gcc.dg/sync-3.c: Copy from sync-2.c instead of including
+ the c source file.
+ * gcc.c-torture/compile/sync-1.c: Add dg-message to look for the
+ warning about changed semantics of NAND builtin.
+ * gcc.c-torture/compile/sync-2.c: Ditto.
+ * gcc.c-torture/compile/sync-3.c: Ditto.
+
+2008-11-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36089
+ * g++.dg/template/init8.C: New test.
+
+2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35681
+ * gfortran.dg/elemental_dependency_1.f90: New test.
+
+2008-11-16 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37992
+ * gfotran.dg/charlen_free_1.f90: New test.
+
+2008-11-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38097
+ * gfortran.dg/fmt_bz_bn.f: New test.
+
+2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/boolean_bitfield.adb: New test.
+
+2008-11-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38095
+ * gfortran.dg/char_length_13.f90: New test.
+
+2008-11-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr36246.c: Add -fomit-frame-pointer to dg-options.
+ * gcc.target/i386/pr32661-1.c: Ditto.
+ * gcc.target/i386/pr34256.c: Ditto.
+ * gcc.target/i386/pr22076.c: Ditto. Check for "movl" instruction on
+ nonpic targets only.
+
+2008-11-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38119
+ * gfortran.dg/array_temporaries_3.f90: New test.
+
+2008-11-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/37294
+ * gfortran.dg/namelist_57.f90: New test.
+ * gfortran.dg/namelist_print_1.f: Adjust test conditions.
+
+2008-11-15 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37926
+ * gfortran.dg/dummy_procedure_3.f90: New test.
+
+2008-11-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/38123
+ * gcc.c-torture/compile/pr38123.c: New test.
+
+2008-11-15 Richard Guenther <rguenther@suse.de>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38051
+ * gcc.c-torture/execute/pr38051.c: New testcase.
+
+2008-11-15 Joshua Kinard <kumba@gentoo.org>
+ Richard Sandiford <rdsandiford@goolemail.com>
+
+ * gcc.target/mips/fix-r10000-1.c: New test.
+ * gcc.target/mips/fix-r10000-2.c: Likewise.
+ * gcc.target/mips/fix-r10000-3.c: Likewise.
+ * gcc.target/mips/fix-r10000-4.c: Likewise.
+ * gcc.target/mips/fix-r10000-5.c: Likewise.
+ * gcc.target/mips/fix-r10000-6.c: Likewise.
+ * gcc.target/mips/fix-r10000-7.c: Likewise.
+ * gcc.target/mips/fix-r10000-8.c: Likewise.
+ * gcc.target/mips/fix-r10000-9.c: Likewise.
+ * gcc.target/mips/fix-r10000-10.c: Likewise.
+ * gcc.target/mips/fix-r10000-11.c: Likewise.
+ * gcc.target/mips/fix-r10000-12.c: Likewise.
+ * gcc.target/mips/fix-r10000-13.c: Likewise.
+ * gcc.target/mips/fix-r10000-14.c: Likewise.
+ * gcc.target/mips/fix-r10000-15.c: Likewise.
+
+2008-11-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37561
+ * gcc.dg/pr37561.c: New test.
+ * g++.dg/other/increment1.C: New test.
+
+2008-11-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37988
+ * gfortran.dg/fmt_error_6.f90: New test.
+
+2008-11-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/38030
+ * g++.dg/template/lookup8.C: New test.
+
+ PR c++/37740
+ * g++.dg/cpp0x/initlist8.C: New test.
+
+2008-11-13 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/38004
+ * g++.dg/vect/pr36648.cc: Check alignment requirement.
+
+2008-11-14 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR testsuite/38098
+ * gcc.dg/cpp/subframework1.c: Use -Wno-deprecated.
+
+2008-10-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/38033
+ * gfortran.dg/array_section_2.f90: New test.
+
+2008-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38104
+ * g++.dg/tree-ssa/pr38104.C: New test.
+
+2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * gcc.target/sh/pr37514.c: Remove.
+
+2008-11-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/37517
+ * gcc.target/i386/quad-sse.c: Tighten scan-assembler-not pattern.
+
+2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
+ Andrew Stubbs <ams@codesourcery.com>
+ Gunnar Von Boehn <gunnar@genesi-usa.com>
+
+ PR target/36134
+ * gcc.target/m68k/pr36134.c: New test.
+
+2008-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36125
+ * gcc.c-torture/compile/pr36125.c: New test.
+
+2008-11-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/37932
+ * g++.dg/conversion/bitfield11.C: New test.
+ * g++.dg/cpp0x/initlist7.C: New test.
+
+2008-11-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/loongson-muldiv-1.c: New test.
+ * gcc.target/mips/loongson-muldiv-2.c: Likewise.
+
+2008-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/27017
+ * g++.dg/debug/dwarf2/localclass1.C: New test.
+ * g++.dg/debug/dwarf2/localclass2.C: New test.
+
+2008-11-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mno-mmx
+ for i?86-*-* and x86_64-*-* targets.
+ * g++.dg/compat/struct-layout-1_generate.c (dg-options): Add
+ -fno-common for *-*-darwin* *-*-mingw32* *-*-cygwin* targets.
+
+ * gcc.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
+ <xmmintrin.h>, define __m64 and __m128 directly.
+
+2008-11-13 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/test_raise_from_pure.adb: Adjust to match revised intent.
+ * gnat.dg/wrap_raise_from_pure.adb: Remove.
+ * gnat.dg/handle_raise_from_pure.adb: New test.
+
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38094
+ * gfortran.dg/private_type_4.f90: Fix dg-error pattern.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36478
+ * g++.old-deja/g++.mike/empty.C: Remove.
+
+2008-11-12 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/27574
+ * g++.dg/debug/dwarf2/local-var-in-contructor.C: New test.
+
+2008-11-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/execute/20081112-1.c: New test.
+ * gnat.dg/concat1.adb: Likewise.
+ * gnat.dg/concat1_pkg.ad[sb]: New helper.
+
+2008-11-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/38007
+ * g++.dg/conversion/bitfield10.C: New test.
+ * g++.dg/warn/pr35635.C (func1): Accept additional warning.
+ * g++.old-deja/g++.mike/enum1.C: Expect warn about assignment.
+ * g++.dg/expr/bitfield9.C: Pass -Wno-overflow.
+
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38065
+ PR fortran/38094
+ * gfortran.dg/private_type_4.f90: Add -std=f95 option.
+
+2008-11-12 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/frame-addr1.c: New testcase.
+ * gcc.target/s390/frame-addr2.c: New testcase.
+ * gcc.target/s390/return-addr1.c: New testcase.
+ * gcc.target/s390/return-addr2.c: New testcase.
+
+2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR testsuite/38008
+ * gcc.c-torture/execute/builtins/lib/sprintf.c: Make
+ sprintf call more portable for darwin10.
+
+ PR testsuite/37202
+ * gcc.dg/visibility-14.c: Skip on *-*-darwin*.
+ * gcc.dg/visibility-15.c: Same.
+ * gcc.dg/visibility-16.c: Same.
+ * gcc.dg/visibility-17.c: Same.
+ * gcc.dg/visibility-18.c: Same.
+ * gcc.dg/visibility-19.c: Same.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34269
+ * g++.dg/cpp0x/decltype13.C: New test.
+ * g++.dg/cpp0x/decltype-33837.C: Adjust dg-error pattern.
+ * g++.dg/cpp0x/pr33839.C: Likewise.
+
+ PR target/35366
+ PR fortran/33759
+ * gfortran.dg/hollerith.f90: Don't assume a 32-bit value
+ stored into logical variable will be preserved.
+ * gfortran.dg/transfer_simplify_4.f90: Remove undefined cases.
+ Run at all optimization levels. Add a couple of new tests.
+ * gfortran.dg/hollerith5.f90: New test.
+ * gfortran.dg/hollerith_legacy.f90: Add dg-warning.
+
+ PR c++/35334
+ * gcc.dg/pr35334.c: New test.
+ * g++.dg/other/error29.C: New test.
+
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38065
+ * gfortran.dg/private_type_11.f90: New test.
+ * gfortran.dg/private_type_12.f90: New test.
+
+2008-11-10 Catherine Moore <clm@codesourcery.com>
+
+ * gcc.target/mips/no-smartmips-lwxs.c: New test.
+ * gcc.target/mips/no-smartmips-ror-1.c: New test.
+
+2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * gcc.target/sh/pr37514.c: New test.
+
+2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * g++.dg/other/anon5.C: Skip on Solaris.
+
+2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack11.adb: New test.
+
+2008-11-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38021
+ * g++.dg/cpp0x/enum1.C: New test.
+
+2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
+
+ PR middle-end/37807
+ PR middle-end/37809
+ * gcc.target/i386/mmx-8.c: New test.
+
+2008-11-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37836
+ * gfortran.dg/minmaxval_1.f90: New test.
+
+2008-11-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_boolean.adb: New test.
+
+2008-11-07 Thomas Quinot <quinot@adacore.com>
+
+ * gnat.dg/hyper_flat.adb: New test.
+
+2008-11-07 Geert Bosch <bosch@adacore.com>
+
+ * gnat.dg/test_8bitlong_overflow.adb: New test.
+
+2008-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * g++.dg/ipa/iinline-1.C: Remove -c flag, add -fpie for PIC targets.
+
+ * gcc.dg/tree-ssa/inline-2.c (foo): Add 'inline' keyword.
+
+2008-11-06 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/graphite/pr37943.c: Fix missing end of file.
+
+2008-11-06 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/utf-array-short-wchar.c, gcc.dg/utf-cvt.c,
+ gcc.dg/utf-inc-init.c, gcc.dg/utf16-1.c, gcc.dg/utf16-2.c,
+ gcc.dg/utf16-3.c, gcc.dg/utf16-4.c, gcc.dg/utf32-1.c,
+ gcc.dg/utf32-2.c, gcc.dg/utf32-3.c, gcc.dg/utf32-4.c: Use
+ __CHAR16_TYPE__ and __CHAR32_TYPE__ typedefs.
+
+2008-11-06 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/torture/pr37969.c: New testcase.
+
+2008-11-05 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/c-torture.exp: Use ADDITIONAL_TORTURE_OPTIONS if defined.
+ * lib/gcc-dg.exp: Ditto.
+ * lib/fortran-torture.exp: Ditto.
+ * lib/objc-torture.exp: Ditto.
+
+2008-11-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/38025
+ * gcc.target/spu/intrinsics-1.c (f): Tune expected error messages
+ to match current compiler.
+
+2008-11-05 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/38016
+ * gcc.c-torture/execute/ieee/pr38016.c: New test.
+ * gcc.c-torture/execute/ieee/pr38016.x: New file.
+
+2008-11-05 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/37861
+ * gcc.dg/Warray-bounds-5.c: New test.
+ * gcc.dg/Warray-bounds-6.c: New test.
+
+2008-11-05 Fabien Chene <fabien.chene@gmail.com>
+
+ PR c++/32519
+ * g++.dg/template/pr32519.C: New test.
+
+2008-11-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37742
+ * gcc.c-torture/compile/pr37742.c: New testcase.
+ * g++.dg/pr37742.C: Likewise.
+ * gcc.dg/tree-ssa/forwprop-7.c: Check for two volatile loads.
+
+2008-11-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/37286
+ * gfortran.dg/pr37286.f90: New test.
+
+2008-11-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37597
+ * gfortran.dg/host_assoc_call_5.f90: New test.
+
+2008-11-04 Jakub Jelinek <jakub@redhat.com>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/35430
+ * gcc.dg/pr35430.c: New test.
+ * g++.dg/warn/Wsign-compare-2.C: New test.
+
+2008-11-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37106
+ * gcc.dg/pr37106-1.c: New test.
+ * gcc.dg/pr37106-2.c: New test.
+
+2008-11-03 Chao-ying Fu <fu@mips.com>
+
+ * gcc.target/mips/dsp-ctrl.c: New test.
+
+2008-11-03 Steve Ellcey <sje@cup.hp.com>
+
+ * gfortran.dg/f2003_io_1.f03: XFAIL until PR37839 is fixed.
+ * gfortran.dg/f2003_io_4.f03: Ditto.
+ * gfortran.dg/f2003_io_5.f03: Ditto.
+ * gfortran.dg/f2003_io_6.f03: Ditto.
+ * gfortran.dg/f2003_io_7.f03: Ditto.
+
+2008-11-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/37241
+ * g++.dg/abi/key2.C: Adjust regexps to allow __ZTV1f and __ZTI1f
+ sharing one .section directive.
+
+ PR target/37812
+ * gcc.target/powerpc/altivec_check.h (altivec_cell_check): Abort
+ if __PPU__ isn't defined.
+ * lib/target-supports.exp (check_effective_target_powerpc_ppu_ok): New.
+ * gcc.target/powerpc/altivec-cell-8.c: Use powerpc_ppu_ok.
+
+2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/execute/20081103-1.c: New test.
+
+2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/array5.adb New test.
+
+2008-11-03 Richard Guenther <rguenther@suse.de>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37573
+ * gcc.c-torture/execute/pr37573.c: New testcase.
+
+2008-11-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37858
+ * gcc.dg/pr37858.c: New test.
+
+2008-11-03 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37821
+ * gfortran.dg/include_4.f90: New.
+ * gfortran.dg/include_5.f90: New.
+ * gfortran.dg/include_4.inc: New.
+
+2008-11-03 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37445
+ * gfortran.dg/host_assoc_call_3.f90: New test.
+ * gfortran.dg/host_assoc_call_4.f90: New test.
+ * gfortran.dg/host_assoc_function_4.f90: New test.
+
+2008-11-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37542
+ * gcc.dg/tree-ssa/ssa-pre-22.c: New testcase.
+ * gcc.c-torture/compile/20081101-1.c: Likewise.
+
+2008-11-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37991
+ * gcc.c-torture/compile/pr37991.c: New testcase.
+
+2008-11-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/37939
+ * gcc.target/cris/biap.c: New test.
+
+2008-11-01 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36426
+ * gfortran.dg/proc_decl_19.f90: New.
+
+2008-11-01 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/19925
+ * gfortran.dg/initialization_20.f90: New test.
+ * gfortran.dg/initialization_21.f90: Ditto.
+
+2008-11-01 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35681
+ * gfortran.dg/mvbits_4.f90: New test.
+
+2008-11-01 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36463
+ * gfortran.dg/proc_decl_17.f90: New.
+ * gfortran.dg/proc_decl_18.f90: New.
+
+2008-11-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37976
+ * gcc.c-torture/compile/pr37976.c: New testcase.
+
+2008-11-01 Dennis Wassel <dennis.wassel@gmail.com>
+
+ PR fortran/37159
+ * gfortran.dg/random_seed_1.f90: New testcase.
+
+2008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * gcc.dg/cpp/Wsignprom.c: Add column numbers.
+ * gcc.dg/cpp/if-mpar.c: Likewise.
+
+2008-10-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37967
+ * g++.dg/cpp0x/auto8.C: New test.
+
+ PR c++/37965
+ * g++.dg/cpp0x/auto7.C: New test.
+
+2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35840
+ * gfortran.dg/write_check4.f90: New test.
+
+2008-10-31 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/35820
+ * gfortran.dg/nested_forall_1.f: New test.
+
+2008-10-30 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/37930
+ * gfortran.dg/int_conv_2.f90: New test.
+
+2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37903
+ * gfortran.dg/vector_subscript_4.f90: New test.
+
+2008-10-30 Mikael Morin <mikael.morin@tele2.fr>
+
+ PR fortran/37749
+ * gfortran.dg/vector_subscript__5.f90: New test.
+
+2008-10-30 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.target/s390/pr36822.c: Avoid cast to pointer from integer
+ of different size warning with -m31.
+
+ PR middle-end/37730
+ * gcc.dg/vect/pr37730.c: New test.
+
+ PR debug/36668
+ * g++.dg/other/PR23205.C: Allow foobar to be defined as variable.
+ * g++.dg/other/pr23205-2.C: New test.
+
+2008-10-29 David Edelsohn <edelsohn@gnu.org>
+
+ * gcc.c-torture/compile/pr37878.c: New test.
+
+2008-10-29 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/37339
+ * gcc.dg/pr33645-3.c: Remove.
+
+2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 11492
+ * gcc.dg/pr11492.c: New.
+ * g++.dg/warn/pr11492.C: New.
+
+2008-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ PR middle-end/36578
+ * gcc.dg/dfp/convert-bfp-13.c, gcc.dg/dfp/convert-bfp-14.c,
+ gcc.dg/dfp/convert-dfp-fold-2.c, gcc.target/i386/pr36578-1.c,
+ gcc.target/i386/pr36578-2.c: New tests.
+
+2008-10-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37870
+ * gcc.target/i386/pr37870.c: New test.
+
+2008-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/26997
+ * g++.dg/parse/pr26997.C: New.
+
+2008-10-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37913
+ * gcc.c-torture/compile/pr37913.c: New test.
+
+2008-10-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37663
+ * gcc.dg/pr37663.c: Require int32plus.
+
+ PR c/37924
+ * gcc.c-torture/execute/pr37924.c: New test.
+
+2008-10-28 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/dfp/convert-bfp-12.c: New test.
+
+2008-10-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37931
+ * gcc.c-torture/execute/pr37931.c: New test.
+
+2008-10-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37879
+ * gcc.dg/pr37879.c: New test.
+
+2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/37841
+ * gcc.target/spu/abi.c: New file.
+
+2008-10-24 DJ Delorie <dj@redhat.com>
+
+ * lib/scanasm.exp (scan-assembler, scan-assembler-not,
+ scan-hidden, scan-not-hidden, scan-file, scan-file-not,
+ scan-assembler-times, scan-assembler-dem, scan-assembler-dem-not):
+ Extract first word of $testcase for all upvar uses, in case
+ $testvar has compiler switches appended.
+
+2008-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36038
+ * gcc.c-torture/compile/pr36038.c: New test.
+
+2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/7543
+ * gcc.dg/Wparentheses-11.c: New.
+ * g++.dg/warn/Wparentheses-25.C: New. XFAILED.
+
+2008-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37882
+ * gcc.c-torture/execute/pr37882.c: Remove a field.
+
+2008-10-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/37707
+ * gfortran.dg/namelist_18.f90: Update test.
+ * gfortran.dg/namelist_55.f90: New test.
+ * gfortran.dg/namelist_56.f90: New test.
+
+2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * gcc.target/bfin/hisilh.c: New file.
+ * gcc.target/bfin/hisilh-O0.c: New file.
+
+ From Mike Frysinger <michael.frysinger@analog.com>
+ * gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0002.
+ Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0002+.
+ * gcc.target/bfin/mcpu-bf523.c: Likewise.
+ * gcc.target/bfin/mcpu-bf524.c: Likewise.
+ * gcc.target/bfin/mcpu-bf525.c: Likewise.
+ * gcc.target/bfin/mcpu-bf526.c: Likewise.
+ * gcc.target/bfin/mcpu-bf527.c: Likewise.
+ * gcc.target/bfin/mcpu-bf531.c: Check SILICON_REVISION is 0x0006.
+ Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0006+.
+ * gcc.target/bfin/mcpu-bf532.c: Likewise.
+ * gcc.target/bfin/mcpu-bf533.c: Likewise.
+ * gcc.target/bfin/mcpu-bf538.c: Check SILICON_REVISION is 0x0005.
+ Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0005+.
+ * gcc.target/bfin/mcpu-bf539.c: Likewise.
+ * gcc.target/bfin/mcpu-bf542.c: Check SILICON_REVISION is 0x0002.
+ Invert check for __WORKAROUND_RETS when SILICON_REVISION is 0x0002+.
+ * gcc.target/bfin/mcpu-bf544.c: Likewise.
+ * gcc.target/bfin/mcpu-bf547.c: Likewise.
+ * gcc.target/bfin/mcpu-bf548.c: Likewise.
+ * gcc.target/bfin/mcpu-bf549.c: Likewise.
+ * gcc.target/bfin/mcpu-bf512.c: New file.
+ * gcc.target/bfin/mcpu-bf514.c: Likewise.
+ * gcc.target/bfin/mcpu-bf516.c: Likewise.
+ * gcc.target/bfin/mcpu-bf518.c: Likewise.
+
+2008-10-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37882
+ * gcc.c-torture/execute/pr37882.c: New test.
+
+2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/30949
+ * gcc.target/i386/sse-vect-types.c: Update.
+ * gcc.dg/simd-5.c: Update.
+ * gcc.dg/assign-warn-2.c: Update.
+ * gcc.dg/simd-2.c: Update.
+ * gcc.dg/simd-6.c: Update.
+ * gcc.dg/assign-warn-1.c: Update.
+ * gcc.dg/dfp/composite-type.c: Update.
+ * gcc.dg/simd-1.c: Update.
+ * gcc.dg/pr36997.c: Update.
+
+2008-10-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR libfortran/36795
+ * gfortran.dg/char_expr_3.f90: Add the original test case.
+
+2008-10-21 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34670
+ * gfortran.dg/transpose_2.f90: New test.
+
+2008-10-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37669
+ * gcc.c-torture/compile/pr37669-2.c: New test.
+
+2008-10-21 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/alias-19.c: New testcase.
+
+2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR 12603
+ * gcc.dg/pr12603.c: New testcase.
+
+2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/37004
+ * g++.dg/warn/Wconversion-pr34389.C: Remove XFAIL.
+
+2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/30260
+ * gcc.dg/pr30260.c: New.
+
+2008-10-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37723
+ * gfortran.dg/dependency_22.f90: New test.
+
+2008-10-18 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * gcc.dg/dll-2.c: Revert 2008-08-09 change (R138893): Change
+ "dg-message" back to "dg-warning".
+ * gcc.dg/dll-3.c: Likewise.
+
+2008-10-16 Alexander Monakov <amonakov@ispras.ru>
+
+ PR target/37381
+ * gcc.c-torture/compile/pr37381.c: New test.
+
+2008-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/33192
+ * gcc.dg/imag-1.c: New test.
+
+2008-10-16 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/elemental_intrinsic_1.f03: New test.
+
+2008-10-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37664
+ * gcc.c-torture/compile/pr37664.c: New test.
+
+2008-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ PR middle-end/37418
+ * gcc.c-torture/compile/pr37418-1.c,
+ gcc.c-torture/compile/pr37418-2.c,
+ gcc.c-torture/compile/pr37418-3.c,
+ gcc.c-torture/compile/pr37418-4.c: New tests.
+
+2008-10-15 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34670
+ * gfortran.dg/reshape_3.f90: New test.
+ * gfortran.dg/reshape_4.f90: New test.
+ * gfortran.dg/reshape_order_1.f90: Use correct shape.
+ * gfortran.dg/reshape_order_2.f90: Likewise.
+ * gfortran.dg/reshape_order_3.f90: Likewise.
+ * gfortran.dg/reshape_order_4.f90: Likewise.
+
+2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/37485
+ * gcc.dg/graphite/pr37485.c: New.
+
+2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/37828
+ * testsuite/gcc.dg/graphite/pr37828.c: New.
+
+2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37686
+ * testsuite/gcc.dg/tree-ssa/pr37686.c: New.
+
+2008-10-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36881
+ * gcc.dg/tree-ssa/pr36881.c: New test.
+
+2008-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37819
+ * g++.dg/expr/bitfield11.C: New test.
+
+2008-10-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/37650
+ * g++.dg/template/crash83.C: New.
+
+2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/37553
+ * g++.dg/ext/alias-canon2.C: New.
+
+2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org
+
+ PR libfortran/37083
+ * gfortran.dg/list_read_9.f90: New test.
+ * gfortran.dg/arrayio_8.f90: Fix some typos.
+
+2008-10-13 Kai Tietz <kai.tietz@onevision.com>
+
+ * testsuite/gcc.dg/format/ms-format1.c: New.
+
+2008-10-12 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37688
+ * gfortran.dg/used_before_typed_6.f90: New test.
+
+2008-10-12 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37787
+ * gfortran.dg/module_equivalence_5.f90: New test.
+
+2008-10-12 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/37792
+ * gfortran.dg/arithmetic_overflow_1.f90: New test.
+
+2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization5.adb: New test.
+ * gnat.dg/loop_optimization5_pkg.adb: New helper.
+
+2008-10-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37794
+ * gfortran.dg/used_types_24.f90: New test.
+
+2008-10-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35760
+ * gcc.c-torture/compile/pr35760.c: New test.
+
+2008-10-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37146
+ * g++.dg/torture/pr37146-1.C: New test.
+ * g++.dg/torture/pr37146-2.C: New test.
+ * g++.dg/expr/bitfield10.C: New test.
+
+2008-10-08 Jerry DeLisle <jvdelisle@gcc.gnu.org
+
+ PR libfortran/37707
+ * gfortran.dg/namelist_54.f90: Revise test, check a(3).
+
+2008-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/37753
+ * gfortran.dg/convert_2.f90: New test case.
+
+2008-10-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35723
+ * gfortran.dg/restricted_expression_1.f90: New test.
+ * gfortran.dg/restricted_expression_2.f90: New test.
+ * gfortran.dg/restricted_expression_3.f90: New test.
+
+2008-10-08 Jerry DeLisle <jvdelisle@gcc.gnu.org
+
+ PR libfortran/37707
+ * gfortran.dg/namelist_54.f90: New test.
+
+2008-10-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/vect/ggc-pr37574.c: Cleanup "vect" tree dump.
+ * gfortran.dg/intrinsic_optional_char_arg_1.f90: Cleanup
+ "original" tree dump.
+
+ * lib/gfortran-dg.exp (gfortran-dg-debug-runtest): Remove build
+ file trivial.S.
+
+2008-10-08 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-exts-2.c: Compile it with -meb.
+ * gcc.target/mips/octeon-exts-5.c: New test.
+ * gcc.target/mips/octeon-bbit-3.c: Compile with -meb. Add
+ comment why this is necessary.
+
+2008-10-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36635
+ PR target/37290
+ PR rtl-optimization/37341
+ * gcc.c-torture/compile/pr37341.c: New test.
+
+2008-10-07 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c/35437
+ * gcc.dg/struct-parse-2.c: New test.
+ * g++.dg/parse/struct-4.C: New test.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/29609
+ PR debug/36690
+ PR debug/37616
+ * gcc.dg/debug/pr29609-1.c: New test.
+ * gcc.dg/debug/pr29609-2.c: New test.
+ * gcc.dg/debug/pr36690-1.c: New test.
+ * gcc.dg/debug/pr36690-2.c: New test.
+ * gcc.dg/debug/pr36690-3.c: New test.
+ * gcc.dg/debug/pr37616.c: New test.
+ * gcc.dg/debug/dwarf2/pr29609-1.c: New test.
+ * gcc.dg/debug/dwarf2/pr29609-2.c: New test.
+ * gcc.dg/debug/dwarf2/pr36690-1.c: New test.
+ * gcc.dg/debug/dwarf2/pr36690-2.c: New test.
+ * gcc.dg/debug/dwarf2/pr36690-3.c: New test.
+ * gcc.dg/debug/dwarf2/pr37616.c: New test.
+
+2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37731
+ * gcc.dg/torture/pr37731-1.c: New.
+ * gcc.dg/torture/pr37731-2.c: Likewise.
+
+2008-10-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37738
+ * gfortran.dg/debug/pr37738.f: New test.
+
+2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization4.adb: New test.
+ * gnat.dg/loop_optimization4_pkg.ad[sb]: New helper.
+
+2008-10-07 Bob Wilson <bob.wilson@acm.org>
+
+ * gcc.dg/compat/struct-layout-1_generate.c (dg_options): New. Moved
+ dg-options lines to this array, and added options for xtensa*-*-*.
+ (NDG_OPTIONS): Define.
+ (switchfiles): Print dg-options lines from new dg_options array.
+ * g++.dg/compat/struct-layout-1_generate.c (dg_options): Add options
+ for xtensa*-*-* targets.
+
+2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/addr4.adb: New test.
+ * gnat.dg/addr5.adb: Likewise.
+
+2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/mips.exp (dg-mips-options): Set mips_new_gp to
+ 32 when -march=r3900 is passed.
+ * testsuite/gcc.target/mips/r3900-mult.c: New test.
+
+2008-10-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/gomp/for-1.c: Test column.
+ * gcc.dg/misc-column.c: Add column tests for unary arguments.
+
+2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/unchecked_convert2.adb: New test.
+
+2008-10-05 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/37410
+ * g++.dg/debug/dwarf2/imported-module.C: New test.
+
+2008-10-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35680
+ * gfortran.dg/transfer_array_intrinsic_5.f90: New test.
+
+2008-10-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37638
+ * gfortran.dg/typebound_call_9.f03: New test.
+
+2008-10-04 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37706
+ * gfortran.dg/module_equivalence_4.f90: New test.
+
+2008-10-04 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-pre-21.c: New testcase.
+
+2008-10-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37726
+ * gcc.dg/debug/dwarf2/pr37726.c: New test.
+
+2008-10-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/37719
+ * g++.dg/template/error36.C: New.
+
+2008-10-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR fortran/37635
+ * gfortran.fortran-torture/execute/intrinsic_leadz.f90: New test.
+ * gfortran.fortran-torture/execute/intrinsic_trailz.f90: New test.
+
+2008-10-02 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.dg/torture/pr36891.c: Ignore an irrelevant warning.
+
+ * gcc.target/powerpc/ppc64-abi-3.c: Initialize variables to suppress
+ warning.
+
+2008-10-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37713
+ * gcc.c-torture/compile/pr37713.c: New testcase.
+
+2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * gcc.target/powerpc/altivec-cell-1.c: New test.
+ * gcc.target/powerpc/altivec-cell-2.c: New test.
+ * gcc.target/powerpc/altivec-cell-3.c: New test.
+ * gcc.target/powerpc/altivec-cell-4.c: New test.
+ * gcc.target/powerpc/altivec-cell-5.c: New test.
+ * g++.dg/ext/altivec-cell-1.C: New test.
+ * g++.dg/ext/altivec-cell-2.C: New test.
+ * g++.dg/ext/altivec-cell-3.C: New test.
+ * g++.dg/ext/altivec-cell-4.C: New test.
+ * g++.dg/ext/altivec-cell-5.C: New test.
+
+2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * gcc.target/powerpc/altivec_check.h (altivec_cell_check):
+ New function.
+ * gcc.target/powerpc/altivec-cell-6.c: New test.
+ * gcc.target/powerpc/altivec-cell-7.c: New test.
+ * gcc.target/powerpc/altivec-cell-8.c: New test.
+
+2008-10-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37617
+ * gcc.c-torture/compile/pr37617.c: New testcase.
+
+2008-10-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37285
+ * gcc.c-torture/compile/pr37285.c: New testcase.
+
+2008-10-01 Kai Tietz <kai.tietz@onevision.com>
+
+ * g++.dg/abi/offsetof.C (main): Use __SIZE_TYPE__ instead of
+ unsigned long for pointer cast.
+ * g++.dg/init/struct1.C: Likewise.
+ * g++.dg/init/struct2.C: Likewise.
+ * g++.dg/init/struct3.C: Likewise.
+ * g++.dg/ext/utf-cvt.C: Correct for w64.
+ * gcc.dg/utf-cvt.c: Likewise.
+ * lib/target-supports.exp (check_effective_target_llp64): New.
+
+2008-09-30 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/37555
+ * g++.dg/parse/error32.C: New test.
+
+ PR c++/37556
+ * g++.dg/parse/error33.C: New test.
+
+2008-09-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37662
+ PR tree-optimization/37663
+ * gcc.c-torture/compile/pr37662.c: New test.
+ * gcc.dg/pr37663.c: New test.
+
+2008-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36592
+ * gfortran.dg/proc_ptr_common_1.f90: New.
+ * gfortran.dg/proc_ptr_common_2.f90: New.
+
+2008-09-30 Paolo Bonzini <bonzini@gnu.org>
+
+ * g++.dg/warn/if-empty-1.C: Copy from gcc.dg/if-empty-1.c.
+
+2008-09-30 Paolo Bonzini <bonzini@gnu.org>
+
+ PR testsuite/36891
+ PR testsuite/37675
+ * gcc.dg/torture/pr36891.c: Add -msse on 32-bit i386.
+
+2008-09-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37669
+ * gcc.c-torture/compile/pr37669.c: New test.
+
+2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/37640
+ * gcc.c-torture/compile/sync-3.c: New testcase to check that
+ addresses of non zero offset works.
+
+2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
+
+ PR tree-opt/36891
+ * gcc.dg/torture/pr36891.c: New testcase.
+
+2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/conv_decimal.adb: New test.
+
+2008-09-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37275
+ * gcc.target/i386/pr37275.c: New test.
+
+2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/static_initializer4.ads: New test.
+ * gnat.dg/specs/static_initializer3.ads: Add missing marker.
+
+2008-09-26 Kai Tietz <kai.tietz@onevision.com>
+
+ * g++.dg/compat/struct-layout-1_x1.h: Add __SIZE_TYPE__ cast
+ to avoid pointer truncation warning.
+
+2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/37574
+ * gcc.dg/vect/ggc-pr37574.c: New test.
+ * gcc.dg/vect/vect.exp: Compile some tests with ggc flags.
+
+2008-09-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37645
+ * gcc.dg/pr37645.c: New test.
+
+2008-09-25 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/vect/slp-7.c: Add alignment attribute, change target tests.
+
+2008-09-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/37649
+ * g++.dg/template/crash82.C: New.
+
+2008-09-25 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37504
+ * gfortran.dg/protected_7.f90: New test.
+
+2008-09-24 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/vect/O3-vect-pr34223.c: Check vect_int_mult.
+
+2008-09-24 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/gomp/for-1.c: Test for columns.
+ * gcc.dg/func-outside-1.c: Same.
+ * gcc.dg/bitfld-7.c: Same.
+
+2008-09-24 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/utf-array.c: Fix syntax of dg-error stmts.
+
+2008-09-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37626
+ * gfortran.dg/allocatable_function_4.f90: New test.
+
+2008-09-23 Steve Ellcey <sje@cup.hp.com>
+
+ * lib/target-supports.exp (check_effective_target_pow10): New.
+ * g++.dg/cdce3.C: Set GNU_EXTENSION if pow10.
+
+2008-09-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37533
+ * g++.dg/gomp/pr37533.C: New test.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/vect/slp-widen-mult-s16.c: Fix typo.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/cpp/cmdlne-dU-23.c: New test.
+
+2008-09-23 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/Walways-true-1.c: Test column numbers.
+ * gcc.dg/c90-const-expr-5.c: Same.
+ * gcc.dg/compare4.c: Same.
+ * gcc.dg/Werror-1.c: Same.
+
+2008-09-23 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37588
+ * gfortran.dg/typebound_generic_4.f03: New test.
+ * gfortran.dg/typebound_generic_5.f03: New test.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/pragma-init-fini.c: Use dg-warning in lieu of dg-error.
+ * gcc.dg/pragma-align-2.c: Likewise.
+ * gcc.dg/format/cmn-err-1.c: Likewise.
+
+2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/cpp/cmdlne-dU-16.c: Specify -std=c89 on Solaris.
+ * gcc.dg/cpp/cmdlne-dU-17.c: Likewise.
+
+2008-09-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37580
+ * gfortran.dg/pointer_assign_5.f90: New test.
+ * gfortran.dg/pointer_assign_6.f90: New test.
+
+2008-09-22 David Daney <ddaney@avtrex.com>
+
+ PR target/37593
+ * gcc.target/mips/long-calls-pg.c: New test.
+
+2008-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37145
+ * gcc.c-torture/compile/20080922-1.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-fre-7.c: Remove XFAIL.
+ * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise.
+
+2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-baddu-1.c: New test.
+
+2008-09-22 David Edelsohn <edelsohn@gnu.org>
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: Extend XFAIL to powerpc*-*-*.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37145
+ * gcc.dg/tree-ssa/ssa-pre-15.c: Remove XFAIL.
+
+2008-09-22 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/37486
+ * gfortran.dg/common_align_1.f90: New.
+ * gfortran.dg/warn_align_commons.f90: New.
+
+2008-09-22 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/volatile3.adb: New test.
+
+2008-09-22 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37482
+ * gcc.dg/vect/pr37482.c: New test.
+
+2008-09-22 Hans-Peter Nilsson <hp@axis.com>
+
+ PR middle-end/37170
+ PR middle-end/37280
+ * gcc.dg/weak/weak-15.c, gcc.dg/weak/weak-16.c,
+ g++.dg/ext/inline1.C: New tests.
+
+2008-09-21 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: XFAIL on sh*-*-*.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-09-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37583
+ * gfortran.dg/entry_18.f90: New test.
+
+2008-09-21 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35846
+ * gfortran.dg/nested_array_constructor_1.f90: New test.
+ * gfortran.dg/nested_array_constructor_2.f90: New test.
+ * gfortran.dg/nested_array_constructor_3.f90: New test.
+ * gfortran.dg/nested_array_constructor_4.f90: New test.
+ * gfortran.dg/nested_array_constructor_5.f90: New test.
+ * gfortran.dg/nested_array_constructor_6.f90: New test.
+
+2008-09-21 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/typebound_proc_4.f03: Changed expected error for not
+ yet implemented PROCEDURE(interface).
+
+2008-09-21 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37539
+ * gcc.dg/vect/pr37539.c: New test.
+
+2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: XFAIL on SPARC.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/30930
+ * gcc.dg/tree-ssa/vector-2.c: New test.
+ * gcc.dg/tree-ssa/vector-3.c: New test.
+
+2008-09-18 Bob Wilson <bob.wilson@acm.org>
+
+ * gcc.c-torture/compile/pr11832.c: xfail on xtensa*-*-*.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-09-18 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/25241
+ * lib/g++.exp (g++_init): Enable overrides of dg-error, dg-warning
+ for C++ tests.
+ * g++.dg/conversion/ambig1.C: Clean up dg-error/dg-warning; use
+ dg-message for notes.
+ * g++.dg/conversion/simd1.C: Ditto.
+ * g++.dg/conversion/simd3.C: Ditto.
+ * g++.dg/cpp0x/rv2n.C: Ditto.
+ * g++.dg/cpp0x/rv3n.C: Ditto.
+ * g++.dg/cpp0x/rv4n.C: Ditto.
+ * g++.dg/cpp0x/rv5n.C: Ditto.
+ * g++.dg/cpp0x/rv6n.C: Ditto.
+ * g++.dg/cpp0x/rv7n.C: Ditto.
+ * g++.dg/cpp0x/variadic36.C: Ditto.
+ * g++.dg/cpp0x/variadic59.C: Ditto.
+ * g++.dg/cpp0x/variadic71.C: Ditto.
+ * g++.dg/cpp0x/variadic-ex13.C: Ditto.
+ * g++.dg/expr/cond9.C: Ditto.
+ * g++.dg/expr/pmf-1.C: Ditto.
+ * g++.dg/ext/case-range2.C: Ditto.
+ * g++.dg/ext/case-range3.C: Ditto.
+ * g++.dg/ext/is_class_error2.C: Ditto.
+ * g++.dg/ext/label5.C: Ditto.
+ * g++.dg/ext/pr27019.C: Ditto.
+ * g++.dg/gomp/pr26690-1.C: Ditto.
+ * g++.dg/gomp/pr26690-2.C: Ditto.
+ * g++.dg/gomp/pr34694.C: Ditto.
+ * g++.dg/gomp/tpl-parallel-2.C: Ditto.
+ * g++.dg/inherit/base3.C: Ditto.
+ * g++.dg/inherit/using6.C: Ditto.
+ * g++.dg/init/brace6.C: Ditto.
+ * g++.dg/init/ctor4.C: Ditto.
+ * g++.dg/lookup/conv-1.C: Ditto.
+ * g++.dg/lookup/new1.C: Ditto.
+ * g++.dg/lookup/scoped6.C: Ditto.
+ * g++.dg/lookup/using7.C: Ditto.
+ * g++.dg/lookup/using9.C: Ditto.
+ * g++.dg/other/abstract1.C: Ditto.
+ * g++.dg/other/abstract2.C: Ditto.
+ * g++.dg/other/anon5.C: Ditto.
+ * g++.dg/other/crash-4.C: Ditto.
+ * g++.dg/other/error10.C: Ditto.
+ * g++.dg/other/error13.C: Ditto.
+ * g++.dg/other/error20.C: Ditto.
+ * g++.dg/other/error5.C: Ditto.
+ * g++.dg/other/field1.C: Ditto.
+ * g++.dg/other/offsetof5.C: Ditto.
+ * g++.dg/other/semicolon.C: Ditto.
+ * g++.dg/overload/ambig1.C: Ditto.
+ * g++.dg/overload/arg3.C: Ditto.
+ * g++.dg/overload/builtin1.C: Ditto.
+ * g++.dg/overload/copy1.C: Ditto.
+ * g++.dg/overload/new1.C: Ditto.
+ * g++.dg/overload/template4.C: Ditto.
+ * g++.dg/overload/using2.C: Ditto.
+ * g++.dg/parse/bitfield2.C: Ditto.
+ * g++.dg/parse/constant4.C: Ditto.
+ * g++.dg/parse/crash20.C: Ditto.
+ * g++.dg/parse/crash36.C: Ditto.
+ * g++.dg/parse/crash5.C: Ditto.
+ * g++.dg/parse/error11.C: Ditto.
+ * g++.dg/parse/error12.C: Ditto.
+ * g++.dg/parse/error19.C: Ditto.
+ * g++.dg/parse/error28.C: Ditto.
+ * g++.dg/parse/friend5.C: Ditto.
+ * g++.dg/parse/invalid-op1.C: Ditto.
+ * g++.dg/parse/missing-template1.C: Ditto.
+ * g++.dg/parse/non-dependent2.C: Ditto.
+ * g++.dg/parse/ret-type2.C: Ditto.
+ * g++.dg/parse/specialization1.C: Ditto.
+ * g++.dg/parse/template18.C: Ditto.
+ * g++.dg/parse/template3.C: Ditto.
+ * g++.dg/parse/template9.C: Ditto.
+ * g++.dg/tc1/dr108.C: Ditto.
+ * g++.dg/tc1/dr152.C: Ditto.
+ * g++.dg/tc1/dr166.C: Ditto.
+ * g++.dg/template/access11.C: Ditto.
+ * g++.dg/template/access2.C: Ditto.
+ * g++.dg/template/access3.C: Ditto.
+ * g++.dg/template/access7.C: Ditto.
+ * g++.dg/template/copy1.C: Ditto.
+ * g++.dg/template/crash13.C: Ditto.
+ * g++.dg/template/crash37.C: Ditto.
+ * g++.dg/template/crash40.C: Ditto.
+ * g++.dg/template/crash58.C: Ditto.
+ * g++.dg/template/ctor5.C: Ditto.
+ * g++.dg/template/dependent-expr5.C: Ditto.
+ * g++.dg/template/eh2.C: Ditto.
+ * g++.dg/template/error2.C: Ditto.
+ * g++.dg/template/error33.C: Ditto.
+ * g++.dg/template/error4.C: Ditto.
+ * g++.dg/template/friend31.C: Ditto.
+ * g++.dg/template/friend32.C: Ditto.
+ * g++.dg/template/instantiate1.C: Ditto.
+ * g++.dg/template/instantiate3.C: Ditto.
+ * g++.dg/template/instantiate5.C: Ditto.
+ * g++.dg/template/instantiate7.C: Ditto.
+ * g++.dg/template/local6.C: Ditto.
+ * g++.dg/template/lookup2.C: Ditto.
+ * g++.dg/template/member5.C: Ditto.
+ * g++.dg/template/memfriend15.C: Ditto.
+ * g++.dg/template/memfriend16.C: Ditto.
+ * g++.dg/template/memfriend17.C: Ditto.
+ * g++.dg/template/memfriend7.C: Ditto.
+ * g++.dg/template/meminit1.C: Ditto.
+ * g++.dg/template/nested3.C: Ditto.
+ * g++.dg/template/new3.C: Ditto.
+ * g++.dg/template/nontype12.C: Ditto.
+ * g++.dg/template/nontype13.C: Ditto.
+ * g++.dg/template/nontype6.C: Ditto.
+ * g++.dg/template/non-type-template-argument-1.C: Ditto.
+ * g++.dg/template/overload9.C: Ditto.
+ * g++.dg/template/ptrmem15.C: Ditto.
+ * g++.dg/template/ptrmem17.C: Ditto.
+ * g++.dg/template/ptrmem4.C: Ditto.
+ * g++.dg/template/ptrmem6.C: Ditto.
+ * g++.dg/template/ptrmem8.C: Ditto.
+ * g++.dg/template/qualified-id1.C: Ditto.
+ * g++.dg/template/qualttp20.C: Ditto.
+ * g++.dg/template/qualttp3.C: Ditto.
+ * g++.dg/template/qualttp4.C: Ditto.
+ * g++.dg/template/qualttp5.C: Ditto.
+ * g++.dg/template/qualttp6.C: Ditto.
+ * g++.dg/template/qualttp7.C: Ditto.
+ * g++.dg/template/qualttp8.C: Ditto.
+ * g++.dg/template/recurse.C: Ditto.
+ * g++.dg/template/sfinae10.C: Ditto.
+ * g++.dg/template/sfinae3.C: Ditto.
+ * g++.dg/template/spec22.C: Ditto.
+ * g++.dg/template/spec23.C: Ditto.
+ * g++.dg/template/static9.C: Ditto.
+ * g++.dg/template/template-id-2.C: Ditto.
+ * g++.dg/template/typename2.C: Ditto.
+ * g++.dg/template/typename4.C: Ditto.
+ * g++.dg/template/using14.C: Ditto.
+ * g++.dg/template/using2.C: Ditto.
+ * g++.dg/template/warn1.C: Ditto.
+ * g++.dg/warn/incomplete1.C: Ditto.
+ * g++.dg/warn/noeffect2.C: Ditto.
+ * g++.dg/warn/noeffect4.C: Ditto.
+ * g++.dg/warn/pr8570.C: Ditto.
+ * g++.dg/warn/Wparentheses-13.C: Ditto.
+ * g++.dg/warn/Wparentheses-15.C: Ditto.
+ * g++.dg/warn/Wparentheses-16.C: Ditto.
+ * g++.dg/warn/Wparentheses-17.C: Ditto.
+ * g++.dg/warn/Wparentheses-18.C: Ditto.
+ * g++.dg/warn/Wparentheses-19.C: Ditto.
+ * g++.dg/warn/Wparentheses-20.C: Ditto.
+ * g++.dg/warn/Wparentheses-23.C: Ditto.
+ * g++.dg/warn/Wstrict-aliasing-3.C: Ditto.
+ * g++.old-deja/g++.benjamin/15799.C: Ditto.
+ * g++.old-deja/g++.benjamin/15800-1.C: Ditto.
+ * g++.old-deja/g++.benjamin/16077.C: Ditto.
+ * g++.old-deja/g++.bob/inherit2.C: Ditto.
+ * g++.old-deja/g++.brendan/ambiguity1.C: Ditto.
+ * g++.old-deja/g++.brendan/crash29.C: Ditto.
+ * g++.old-deja/g++.brendan/crash48.C: Ditto.
+ * g++.old-deja/g++.brendan/crash56.C: Ditto.
+ * g++.old-deja/g++.brendan/cvt3.C: Ditto.
+ * g++.old-deja/g++.brendan/overload1.C: Ditto.
+ * g++.old-deja/g++.brendan/overload4.C: Ditto.
+ * g++.old-deja/g++.brendan/overload9.C: Ditto.
+ * g++.old-deja/g++.bugs/900127_01.C: Ditto.
+ * g++.old-deja/g++.bugs/900205_04.C: Ditto.
+ * g++.old-deja/g++.bugs/900330_02.C: Ditto.
+ * g++.old-deja/g++.bugs/900404_03.C: Ditto.
+ * g++.old-deja/g++.bugs/900514_03.C: Ditto.
+ * g++.old-deja/g++.eh/ctor1.C: Ditto.
+ * g++.old-deja/g++.eh/spec6.C: Ditto.
+ * g++.old-deja/g++.ext/overload1.C: Ditto.
+ * g++.old-deja/g++.jason/conversion11.C: Ditto.
+ * g++.old-deja/g++.jason/crash3.C: Ditto.
+ * g++.old-deja/g++.jason/lineno3.C: Ditto.
+ * g++.old-deja/g++.jason/lineno4.C: Ditto.
+ * g++.old-deja/g++.jason/opeq3.C: Ditto.
+ * g++.old-deja/g++.jason/overload16.C: Ditto.
+ * g++.old-deja/g++.jason/overload28.C: Ditto.
+ * g++.old-deja/g++.jason/pmf5.C: Ditto.
+ * g++.old-deja/g++.jason/scoping10.C: Ditto.
+ * g++.old-deja/g++.jason/template30.C: Ditto.
+ * g++.old-deja/g++.jason/temporary2.C: Ditto.
+ * g++.old-deja/g++.jason/tredecl4.C: Ditto.
+ * g++.old-deja/g++.law/arg11.C: Ditto.
+ * g++.old-deja/g++.law/arg1.C: Ditto.
+ * g++.old-deja/g++.law/arm9.C: Ditto.
+ * g++.old-deja/g++.law/ctors11.C: Ditto.
+ * g++.old-deja/g++.law/ctors17.C: Ditto.
+ * g++.old-deja/g++.law/ctors5.C: Ditto.
+ * g++.old-deja/g++.law/ctors9.C: Ditto.
+ * g++.old-deja/g++.law/enum4.C: Ditto.
+ * g++.old-deja/g++.law/missed-error2.C: Ditto.
+ * g++.old-deja/g++.law/operators9.C: Ditto.
+ * g++.old-deja/g++.mike/net22.C: Ditto.
+ * g++.old-deja/g++.mike/net2.C: Ditto.
+ * g++.old-deja/g++.mike/p11110.C: Ditto.
+ * g++.old-deja/g++.mike/p1989.C: Ditto.
+ * g++.old-deja/g++.mike/p2431.C: Ditto.
+ * g++.old-deja/g++.mike/p438.C: Ditto.
+ * g++.old-deja/g++.mike/p807a.C: Ditto.
+ * g++.old-deja/g++.mike/p9068.C: Ditto.
+ * g++.old-deja/g++.niklas/t120.C: Ditto.
+ * g++.old-deja/g++.niklas/t121.C: Ditto.
+ * g++.old-deja/g++.niklas/t128.C: Ditto.
+ * g++.old-deja/g++.ns/overload2.C: Ditto.
+ * g++.old-deja/g++.ns/template13.C: Ditto.
+ * g++.old-deja/g++.ns/using12.C: Ditto.
+ * g++.old-deja/g++.oliva/delete1.C: Ditto.
+ * g++.old-deja/g++.oliva/overload1.C: Ditto.
+ * g++.old-deja/g++.other/crash24.C: Ditto.
+ * g++.old-deja/g++.other/crash25.C: Ditto.
+ * g++.old-deja/g++.other/decl3.C: Ditto.
+ * g++.old-deja/g++.other/expr1.C: Ditto.
+ * g++.old-deja/g++.other/overcnv2.C: Ditto.
+ * g++.old-deja/g++.other/overload11.C: Ditto.
+ * g++.old-deja/g++.other/pmf3.C: Ditto.
+ * g++.old-deja/g++.other/ptrmem7.C: Ditto.
+ * g++.old-deja/g++.other/vaarg3.C: Ditto.
+ * g++.old-deja/g++.other/volatile1.C: Ditto.
+ * g++.old-deja/g++.pt/assign1.C: Ditto.
+ * g++.old-deja/g++.pt/auto_ptr.C: Ditto.
+ * g++.old-deja/g++.pt/const2.C: Ditto.
+ * g++.old-deja/g++.pt/crash10.C: Ditto.
+ * g++.old-deja/g++.pt/crash20.C: Ditto.
+ * g++.old-deja/g++.pt/crash36.C: Ditto.
+ * g++.old-deja/g++.pt/crash38.C: Ditto.
+ * g++.old-deja/g++.pt/derived3.C: Ditto.
+ * g++.old-deja/g++.pt/error2.C: Ditto.
+ * g++.old-deja/g++.pt/explicit34.C: Ditto.
+ * g++.old-deja/g++.pt/explicit70.C: Ditto.
+ * g++.old-deja/g++.pt/friend23.C: Ditto.
+ * g++.old-deja/g++.pt/ptrmem10.C: Ditto.
+ * g++.old-deja/g++.pt/redecl1.C: Ditto.
+ * g++.old-deja/g++.pt/spec35.C: Ditto.
+ * g++.old-deja/g++.pt/t05.C: Ditto.
+ * g++.old-deja/g++.pt/typename3.C: Ditto.
+ * g++.old-deja/g++.pt/typename6.C: Ditto.
+ * g++.old-deja/g++.pt/unify8.C: Ditto.
+ * g++.old-deja/g++.pt/vaarg3.C: Ditto.
+ * g++.old-deja/g++.robertl/eb109.C: Ditto.
+ * g++.old-deja/g++.robertl/eb131.C: Ditto.
+ * g++.old-deja/g++.robertl/eb22.C: Ditto.
+ * g++.old-deja/g++.robertl/eb44.C: Ditto.
+ * g++.old-deja/g++.robertl/eb4.C: Ditto.
+ * g++.old-deja/g++.robertl/eb69.C: Ditto.
+ * g++.dg/parse/constructor1.C: Remove "error" from dg-error,
+ preserving column number.
+ * g++.dg/parse/error10.C: Ditto.
+ * g++.dg/parse/error13.C: Ditto.
+ * g++.dg/parse/error14.C: Ditto.
+ * g++.dg/parse/error15.C: Ditto.
+ * g++.dg/parse/error16.C: Ditto.
+ * g++.dg/parse/error17.C: Ditto.
+ * g++.dg/parse/error18.C: Ditto.
+ * g++.dg/parse/error1.C: Ditto.
+ * g++.dg/parse/error20.C: Ditto.
+ * g++.dg/parse/error21.C: Ditto.
+ * g++.dg/parse/error22.C: Ditto.
+ * g++.dg/parse/error23.C: Ditto.
+ * g++.dg/parse/error24.C: Ditto.
+ * g++.dg/parse/error25.C: Ditto.
+ * g++.dg/parse/error26.C: Ditto.
+ * g++.dg/parse/error27.C: Ditto.
+ * g++.dg/parse/error29.C: Ditto.
+ * g++.dg/parse/error2.C: Ditto.
+ * g++.dg/parse/error30.C: Ditto.
+ * g++.dg/parse/error31.C: Ditto.
+ * g++.dg/parse/error3.C: Ditto.
+ * g++.dg/parse/error4.C: Ditto.
+ * g++.dg/parse/error5.C: Ditto.
+ * g++.dg/parse/error6.C: Ditto.
+ * g++.dg/parse/error7.C: Ditto.
+ * g++.dg/parse/error8.C: Ditto.
+ * g++.dg/parse/error9.C: Ditto.
+ * g++.dg/parse/error-column.C: Ditto.
+ * g++.dg/template/crash80.C: Ditto.
+ * g++.dg/template/friend44.C: Ditto.
+ * g++.dg/warn/pr26785.C: Ditto.
+ * g++.old-deja/g++.brendan/crash16.C: Ditto.
+
+2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37394
+ * g++.dg/other/pr37394.C: New.
+
+2008-09-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35945
+ * gfortran.dg/host_assoc_types_2.f90: New test.
+
+ PR fortran/36700
+ * gfortran.dg/host_assoc_call_2.f90: New test.
+
+2008-09-18 DJ Delorie <dj@redhat.com>
+
+ * gcc.c-torture/execute/20060420-1.c: Fix alignment logic.
+
+2008-09-18 Simon Baldwin <simonb@google.com>
+
+ * gcc.dg/builtin-redefine.c: New.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37258
+ * gcc.c-torture/compile/pr37258.c: New testcase.
+
+2008-09-18 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/37102
+ * gcc.c-torture/execute/pr37102.c: New Test.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37284
+ * g++.dg/tree-ssa/pr37284.C: New testcase.
+
+2008-09-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37507
+ * gfortran.dg/allocate_error_1.f90: New test.
+ * gfortran.dg/deallocate_error_1.f90: New test.
+ * gfortran.dg/deallocate_error_2.f90: New test.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37456
+ * testsuite/g++.dg/torture/pr37456.C: New testcase.
+
+2008-09-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/37544
+ * gcc.dg/pr37544.c: New test.
+
+2008-09-17 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/25241
+ * g++.old-deja/g++.brendan/crash7.C: Remove "error" or "warning" from
+ message for dg-error/dg-warning.
+ * g++.old-deja/g++.jason/crash11.C: Ditto.
+ * g++.old-deja/g++.oliva/template1.C: Ditto.
+ * g++.old-deja/g++.benjamin/tem03.C: Ditto.
+ * g++.dg/rtti/no-rtti.C: Ditto.
+ * g++.dg/cpp/pedantic-errors.C: Ditto.
+ * g++.dg/cpp/string-2.C: Ditto.
+ * g++.dg/ext/fpreg1.C: Ditto.
+ * g++.dg/ext/altivec-types-1.C: Ditto.
+ * g++.dg/warn/write-strings-default.C: Ditto.
+ * g++.dg/warn/Wvla-2.C: Ditto.
+ * g++.dg/warn/register-var-1.C: Ditto.
+ * g++.dg/warn/deprecated-3.C: Ditto.
+ * g++.dg/warn/pr30551-2.C: Ditto.
+ * g++.dg/warn/overflow-warn-1.C: Ditto.
+ * g++.dg/warn/pr30551.C: Ditto.
+ * g++.dg/warn/pointer-integer-comparison.C: Ditto.
+ * g++.dg/warn/pr12242.C: Ditto.
+ * g++.dg/warn/write-strings.C: Ditto.
+ * g++.dg/warn/overflow-warn-3.C: Ditto.
+ * g++.dg/warn/overflow-warn-4.C: Ditto.
+ * g++.dg/warn/overflow-warn-6.C: Ditto.
+ * g++.dg/parse/crash43.C: Ditto.
+ * g++.dg/parse/crash44.C: Ditto.
+ * g++.dg/parse/offsetof8.C: Ditto.
+ * g++.dg/gomp/pr35158.C: Ditto.
+ * g++.dg/template/crash81.C: Ditto.
+
+2008-09-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/37274
+ * gfortran.dg/used_types_22.f90: New test.
+ * gfortran.dg/used_types_23.f90: New test.
+
+ PR fortran/36374
+ * gfortran.dg/generic_17.f90: New test.
+ * gfortran.dg/ambiguous_specific_2.f90: New test.
+ * gfortran.dg/generic_actual_arg.f90: Add test for case that is
+ not ambiguous.
+
+ PR fortran/36454
+ * gfortran.dg/access_spec_3.f90: New test.
+
+2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/static_initializer3.ads: New test.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37552
+ * g++.dg/parse/crash49.C: New test.
+
+ PR preprocessor/37324
+ * lib/target-supports.exp
+ (check_effective_target_wchar_t_char16_t_compatible,
+ check_effective_target_wchar_t_char32_t_compatible): New.
+ * gcc.dg/utf-array.c: Use __CHAR{16,32}_TYPE__ macros in typedefs.
+ Only require from incompatible errors for char{16,32}_t vs. wchar_t
+ initializations if those types are indeed incompatible.
+
+2008-09-16 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/25241
+ * testsuite/g++.dg/charset/attribute2.c: Replace dg-error with
+ dg-warning or vice versa.
+ * testsuite/g++.dg/conversion/dr195.C: Ditto.
+ * testsuite/g++.dg/cpp0x/variadic60.C: Ditto.
+ * testsuite/g++.dg/expr/cast2.C: Ditto.
+ * testsuite/g++.dg/ext/anon-struct4.C: Ditto.
+ * testsuite/g++.dg/ext/member-attr.C: Ditto.
+ * testsuite/g++.dg/ext/utf-array.C: Ditto.
+ * testsuite/g++.dg/ext/utf-array-short-wchar.C: Ditto.
+ * testsuite/g++.dg/ext/utf-typedef-cxx0x.C: Ditto.
+ * testsuite/g++.dg/ext/visibility/redecl1.C: Ditto.
+ * testsuite/g++.dg/ext/visibility/warn4.C: Ditto.
+ * testsuite/g++.dg/parse/defarg11.C: Ditto.
+ * testsuite/g++.dg/template/error17.C: Ditto.
+ * testsuite/g++.dg/warn/pedantic2.C: Ditto.
+ * testsuite/g++.dg/warn/pr21983.C: Ditto.
+ * testsuite/g++.dg/warn/return-reference2.C: Ditto.
+ * testsuite/g++.old-deja/g++.bob/inherit1.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/crash13.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/crash17.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/crash52.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/crash55.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/enum7.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/operators4.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/template17.C: Ditto.
+ * testsuite/g++.old-deja/g++.brendan/warnings1.C: Ditto.
+ * testsuite/g++.old-deja/g++.bugs/900205_03.C: Ditto.
+ * testsuite/g++.old-deja/g++.bugs/900227_01.C: Ditto.
+ * testsuite/g++.old-deja/g++.ext/arrnew.C: Ditto.
+ * testsuite/g++.old-deja/g++.ext/attrib4.C: Ditto.
+ * testsuite/g++.old-deja/g++.jason/cond.C: Ditto.
+ * testsuite/g++.old-deja/g++.jason/operator.C: Ditto.
+ * testsuite/g++.old-deja/g++.jason/report.C: Ditto.
+ * testsuite/g++.old-deja/g++.law/friend5.C: Ditto.
+ * testsuite/g++.old-deja/g++.law/temps1.C: Ditto.
+ * testsuite/g++.old-deja/g++.law/union4.C: Ditto.
+ * testsuite/g++.old-deja/g++.martin/pure1.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/empty.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/for2.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/misc9.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/p10769b.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/p2855.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/p3060c.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/p700.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/p9732c.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/pmf6.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/warn1.C: Ditto.
+ * testsuite/g++.old-deja/g++.mike/warn5.C: Ditto.
+ * testsuite/g++.old-deja/g++.niklas/t141.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/cast6.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/cond5.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/conv8.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/decl5.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/delete2.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/delete4.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/linkage1.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/ptrmem8.C: Ditto.
+ * testsuite/g++.old-deja/g++.other/typename1.C: Ditto.
+ * testsuite/g++.old-deja/g++.pt/typename14.C: Ditto.
+ * testsuite/g++.old-deja/g++.pt/typename4.C: Ditto.
+ * testsuite/g++.old-deja/g++.pt/typename5.C: Ditto.
+ * testsuite/g++.old-deja/g++.pt/typename7.C: Ditto.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ PR rtl-optimization/37483
+ * gcc.c-torture/compile/pr37483.c: New test.
+ * gcc.c-torture/compile/pr37395.c: New test.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37529
+ * gcc.dg/pr37529.c: New test.
+
+ PR c++/37530
+ * g++.dg/parse/crash48.C: New test.
+
+ PR c++/37531
+ * g++.dg/parse/crash47.C: New test.
+
+ PR c++/37532
+ * g++.dg/parse/crash46.C: New test.
+
+ PR testsuite/36889
+ * lib/fortran-torture.exp (get-fortran-torture-options): Only
+ set test_tree_vectorize on i?86/x86_64 resp. sparc* if sse2 resp.
+ ultrasparc hw is available.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37380
+ * gcc.c-torture/compile/pr37380.c: New testcase.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37508
+ * gcc.dg/tree-ssa/pr37508.c: New testcase.
+
+2008-09-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * g++.old-deja/g++.brendan/crash16.C: Function name is the correct
+ location for an error regarding a function.
+ * g++.old-deja/g++.other/pmf3.C: Same.
+ * g++.old-deja/g++.law/ctors5.C: Same.
+ * g++.old-deja/g++.pt/explicit34.C: Same.
+ * g++.dg/parse/error28.C: Same.
+ * g++.dg/parse/error17.C: Same.
+ * g++.dg/template/friend44.C: Same.
+
+2008-09-13 Raksit Ashok <raksit@google.com>
+
+ PR rtl-optimization/37489
+ * g++.dg/opt/cse3.C: New.
+
+2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/37495
+ * gcc.c-torture/compile/vector-4.c: Add "dg-do compile".
+
+2008-09-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.c-torture/pr36141.c: Move to ...
+ * gcc.c-torture/compile/pr36141.c: ... here.
+ * gcc.dg/arm-g2.c: Move to ...
+ * gcc.target/arm/g2.c: ... here.
+ * gcc.dg/arm-vfp1.c: Move to ...
+ * gcc.target/arm/vfp1.c: ... here.
+ * gcc.dg/20031108-1: Move to ...
+ * gcc.target/arm/20031108-1.c: ... here.
+ * gcc.dg/20030909-1: Move to ...
+ * gcc.target/arm/20030909-1.c: ... here.
+ * gcc.dg/arm-mmx-1.c: Move to ...
+ * gcc.target/arm/mmx-1.c: ... here.
+ * gcc.dg/arm-scd[123].c: Move to ...
+ * gcc.target/arm/scd[123].c: ... here.
+ * gcc.dg/arm-asm.c: Move to ...
+ * gcc.target/arm/asm.c: ... here.
+ * gcc.dg/20080410-1: Move to ...
+ * gcc.target/sh/20080410-1.c: ... here.
+ * gcc.dg/globalreg-1.c: Move to ...
+ * gcc.target/sparc/globalreg-1.c: ... here.
+
+2008-09-13 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35770
+ * gfortran.dg/implicit_13.f90: New test.
+
+2008-09-11 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.c-torture/compile/pr11832.c: xfail on ia64-*-*.
+ * gcc.c-torture/compile/pr33009.c: Ditto.
+
+2008-09-11 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.dg/dfp/dec-eval-method-2.c: New test.
+
+2008-09-11 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/compat.exp, gcc.dg/compat/struct-layout-1.exp,
+ g++.dg/compat/struct-layout-1.exp: Use .exe extension for compat
+ test executables.
+ * gcc.dg/compat/struct-layout-1_generate.c,
+ g++.dg/compat/struct-layout-1_generate.c: Convert backslash to
+ slash in srcdir for dg-options string.
+
+2008-09-11 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/i386/sse5-haddX.c, gcc.target/i386/sse5-hsubX.c:
+ Avoid intN_t types.
+
+2008-09-11 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/builtins-8.c: Condition cbrt test on HAVE_C99_RUNTIME.
+
+2008-09-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * gcc.dg/tree-ssa/vrp47.c: New.
+ * gcc.target/i386/andor-2.c: New.
+
+2008-09-11 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37474
+ * gcc.dg/vect/pr37474.c: New test.
+
+2008-09-11 Andreas Schwab <schwab@suse.de>
+
+ * gcc.target/m68k/xgot-1.c: Add -mcpu=5206 to select a ColdFire
+ target.
+
+2008-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37382
+ * gcc.c-torture/compile/pr37382.c: New test.
+
+2008-09-11 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36214
+ * gfortran.dg/boz_9.f90: Corrected test.
+ * gfortran.dg/boz_13.f90: New test.
+ * gfortran.dg/boz_14.f90: New test.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36904
+ * gcc.target/powerpc/altivec-27.c: New test.
+
+2008-09-10 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37333
+ * gcc.c-torture/compile/20080910-1.c: New testcase.
+
+2008-09-10 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37432
+ * gcc.c-torture/compile/pr37432.c: New testcase.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37434:
+ * gcc.target/i386/pr37434-1.c: New.
+ * gcc.target/i386/pr37434-2.c: Likewise.
+ * gcc.target/i386/pr37434-3.c: Likewise.
+ * gcc.target/i386/pr37434-4.c: Likewise.
+ * gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
+ * gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-1a.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-2a.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-3a.c: Likewise.
+
+2008-09-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37420
+ * gfortran.dg/warn_unused_var.f90: New test.
+ * gfortran.dg/warn_unused_var.f90: Add cleanup-modules.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37353
+ * gcc.dg/pr37353.c: New test.
+
+2008-09-10 Martin Michlmayr <tbm@cyrius.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37385
+ * gcc.dg/vect/pr37385.c: New test.
+
+2008-09-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/37435
+ * gcc.dg/dfp/pr37435.c: New.
+
+2008-09-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37417
+ * g++.dg/ext/vla5.C: New test.
+
+ PR middle-end/37356
+ * g++.dg/tree-ssa/pr37356.C: New test.
+
+ PR target/37438
+ * gcc.dg/pr37438.c: New test.
+
+ PR c++/37389
+ * g++.dg/parse/enum4.C: New test.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37429
+ * gfortran.dg/typebound_call_7.f03: New test.
+ * gfortran.dg/typebound_call_8.f03: New test.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37354
+ PR middle-end/30165
+ * g++.dg/torture/pr37354.C: New testcase.
+
+2008-09-09 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/37442
+ * gcc.target/i386/pr12329.c: Place error message on function name
+ line.
+ * gcc.target/i386/sse-5.c: Same.
+
+2008-09-09 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/always_inline.c: Place error message on function
+ name line.
+ * gcc.dg/winline-6.c: Same.
+ * gcc.dg/noreturn-1.c: Same.
+ * gcc.dg/noreturn-7.c: Same.
+ * gcc.dg/inline-14.c: Same.
+ * gcc.dg/always_inline3.c: Same.
+ * gcc.dg/winline-3.c: Same.
+ * gcc.dg/wtr-func-def-1.c: Same.
+ * gcc.dg/winline-5.c: Same.
+ * gcc.dg/winline-7.c: Same.
+ * gcc.dg/winline-9.c: Same.
+ * gcc.dg/noreturn-4.c: Same.
+ * gcc.dg/20041213-1.c: Use column numbers.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37433
+ * gcc.c-torture/compile/pr37433.c: New testcase.
+
+2008-09-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37387
+ * gcc.c-torture/compile/pr37387.c: New testcase.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37411
+ * gfortran.dg/array_function_4.f90: New test.
+
+2008-09-08 Daniel Jacobowitz <dan@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/compat/eh/filter2_x.C: Declare abort.
+ * g++.dg/compat/eh/new1_x.C, g++.dg/compat/eh/new1_y.C: Include
+ cstddef and use std::size_t.
+
+ * gcc.dg/compat/compat-common.h: Define SKIP_COMPLEX_INT if
+ SKIP_COMPLEX. Honor SKIP_COMPLEX.
+ * gcc.dg/compat/scalar-by-value-3_x.c,
+ gcc.dg/compat/scalar-by-value-3_y.c,
+ gcc.dg/compat/scalar-by-value-4_x.c,
+ gcc.dg/compat/scalar-by-value-4_y.c,
+ gcc.dg/compat/scalar-by-value-5.c,
+ gcc.dg/compat/scalar-by-value-5_main.c,
+ gcc.dg/compat/scalar-by-value-6.c,
+ gcc.dg/compat/scalar-by-value-6_main.c,
+ gcc.dg/compat/scalar-by-value-6_x.c,
+ gcc.dg/compat/scalar-by-value-6_y.c,
+ gcc.dg/compat/struct-by-value-16_x.c,
+ gcc.dg/compat/struct-by-value-16_y.c,
+ gcc.dg/compat/struct-by-value-16a_x.c,
+ gcc.dg/compat/struct-by-value-16a_y.c,
+ gcc.dg/compat/struct-by-value-17_x.c,
+ gcc.dg/compat/struct-by-value-17_y.c,
+ gcc.dg/compat/struct-by-value-17a_x.c,
+ gcc.dg/compat/struct-by-value-17a_y.c,
+ gcc.dg/compat/struct-by-value-18_x.c,
+ gcc.dg/compat/struct-by-value-18_y.c,
+ gcc.dg/compat/struct-by-value-18a_x.c,
+ gcc.dg/compat/struct-by-value-18a_y.c,
+ gcc.dg/compat/struct-layout-1.h,
+ gcc.dg/compat/scalar-return-3_x.c,
+ gcc.dg/compat/scalar-return-3_y.c,
+ gcc.dg/compat/scalar-return-4_x.c,
+ gcc.dg/compat/scalar-return-4_y.c: Honor SKIP_COMPLEX.
+
+ * gcc.dg/compat/scalar-by-value-y.h: Use stdarg.h for non-GCC
+ compilers.
+
+ * gcc.dg/compat/struct-by-value-22_y.c,
+ gcc.dg/compat/struct-by-value-22_main.c,
+ gcc.dg/compat/struct-by-value-22_x.c: Honor SKIP_VLA_IN_STRUCT.
+
+ * lib/c-compat.exp (compat_setup_dfp): Check the compiler under test
+ first.
+ * lib/compat.exp: Document COMPLEX and VLA_IN_STRUCT skips.
+
+2008-09-08 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/struct/wo_prof_escape_substr_value.c: Limit allocation
+ based on STACK_SIZE.
+ * gcc.dg/struct/wo_prof_array_through_pointer.c: Ditto.
+ * gcc.dg/struct/wo_prof_escape_substr_pointer.c: Ditto.
+ * gcc.dg/struct/wo_prof_escape_arg_to_local.c: Limit allocation
+ based on STACK_SIZE. Check malloc return for NULL.
+ * gcc.dg/struct/w_prof_local_var.c: Ditto.
+ * gcc.dg/struct/wo_prof_mult_field_peeling.c: Ditto.
+ * gcc.dg/struct/w_prof_local_array.c: Limit allocation based on
+ STACK_SIZE. XFAIL AVR target.
+ * gcc.dg/struct/wo_prof_local_array.c: Ditto.
+ * gcc.dg/struct/w_prof_two_strs.c: Limit allocation based on
+ STACK_SIZE. Limit random size to N.
+ * gcc.dg/struct/wo_prof_two_strs.c: Limit allocation based on
+ STACK_SIZE. XFAIL AVR target. Limit random size to N.
+ * gcc.dg/struct/w_prof_single_str_global.c: XFAIL AVR target.
+ * gcc.dg/struct/wo_prof_array_field.c: Ditto.
+ * gcc.dg/struct/wo_prof_double_malloc.c: Ditto.
+ * gcc.dg/struct/wo_prof_global_array.c: Ditto.
+ * gcc.dg/struct/wo_prof_single_str_global.c: Ditto.
+ * gcc.dg/struct/wo_prof_single_str_local.c: Ditto.
+ * gcc.dg/struct/w_prof_global_var.c: Limit allocation based on
+ STACK_SIZE. Check malloc return for NULL. XFAIL AVR target.
+ * gcc.dg/struct/wo_prof_global_var.c: Ditto.
+ * gcc.dg/struct/wo_prof_local_var.c: Ditto.
+ * gcc.dg/struct/wo_prof_malloc_size_var.c: Access only allocated
+ space. Limit allocation based on STACK_SIZE. XFAIL AVR target.
+
+2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/cdce3.C: Require c99 runtime.
+
+2008-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37393
+ * g++.dg/tree-ssa/pr37393.C: New test.
+
+ PR middle-end/37414
+ * g++.dg/opt/init2.C: New test.
+
+ PR middle-end/37337
+ * g++.dg/tree-ssa/pr37337.C: New test.
+
+2008-09-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37421
+ * g++.dg/torture/pr37421.C: New testcase.
+
+2008-09-08 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36167
+ * gfortran.dg/array_function_3.f90: New test.
+ * gfortran.dg/save_3.f90: Added cleanup-modules directive.
+ * gfortran.dg/string_compare_1.f90: Ditto.
+
+2008-09-08 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37199
+ * gfortran.dg/array_function_2.f90: New test.
+
+2008-09-08 Tobias Burnus <burnus@net.b.de>
+
+ PR fortran/37400
+ * gfortran.dg/implicit_12.f90: New test.
+
+2008-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/37203
+ * gfortran.d/reshape_order_1.f90: New test case.
+ * gfortran.d/reshape_order_2.f90: New test case.
+ * gfortran.d/reshape_order_3.f90: New test case.
+ * gfortran.d/reshape_order_4.f90: New test case.
+
+2008-09-07 Richard Guenther <rguenther@suse.de>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36630
+ * gcc.dg/vect/pr36630.c: New test.
+
+2008-09-07 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/stfunc_6.f90: Extended testcase to include more tests
+ related to PURE and statement functions.
+
+2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35642
+ * lib/target-supports.exp (check_effective_target_vect_short_mult):
+ Add powerpc.
+
+2008-09-07 Victor Kaplansky <victork@il.ibm.com>
+
+ PR testsuite/37334
+ * gcc.dg/fastmath-2.c: Add volatile to
+ definition of b, change -ffast-math to -ffinite-math-only
+ and rename test to ...
+ * gcc.dg/div-double-1.c: ... this.
+
+2008-09-06 Jeff Law <law@redhat.com>
+
+ * gcc.c-torture/execute/memcpy-bi.c: Include <string.h>
+
+2008-09-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37399
+ * gfortran.dg/size_kind.f90: Remove allocate statement
+ as it overflows at compile time on 32bit systems.
+
+2008-09-06 Jan Hubicka <jh@suse.cz>
+
+ * g++.dg/tree-ssa-pr14703.C: New testcase.
+
+2008-09-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36153
+ * gfortran.dg/size_kind.f90: New test.
+
+2008-09-06 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/33229
+ * gfortran.dg/intrinsic_subroutine.f90: New test.
+
+2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/mips.exp (dg-mips-options): Make
+ -mr10k-cache-barrier=* imply -mips3 or above.
+ * gcc.target/mips/cache-1.c: New test.
+ * gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-10.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-15.c: Likewise.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35837
+ * gfortran.dg/save_3.f90: New test.
+
+2008-09-05 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/37342
+ * g++.dg/other/canon-37342.C: New.
+
+2008-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.c-torture/compile/20080903-1.c: New test.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36746
+ * gfortran.dg/implicit_derived_type_1.f90: New test.
+ * gfortran.dg/used_before_typed_5.f90: New test.
+
+2008-09-04 Jan Hubicka <jh@suse.cz>
+
+ * gcc.target/i386/cold-attribute-1.c: Update testcase.
+
+2008-09-04 Ian Lance Taylor <iant@google.com>
+
+ * g++.dg/init/const7.C: New test.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/seq-1.c: New test.
+ * gcc.target/mips/octeon-seq-1.c: New test.
+ * gcc.target/mips/octeon-seq-2.c: New test.
+ * gcc.target/mips/octeon-seq-3.c: New test.
+ * gcc.target/mips/octeon-seq-4.c: New test.
+ * gcc.target/mips/scc-2.c: Also pass on sltiu.
+ * gcc.target/mips/scc-3.c: Likewise.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/truncate-2.c: New test.
+ * gcc.target/mips/octeon-exts-1.c: New test.
+ * gcc.target/mips/octeon-exts-2.c: New test.
+ * gcc.target/mips/octeon-exts-3.c: New test.
+ * gcc.target/mips/octeon-exts-4.c: New test.
+
+2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-cins-1.c: New test.
+ * gcc.target/mips/octeon-cins-2.c: New test.
+
+2008-09-04 Richard Guenther <rguenther@suse.de>
+
+ * gfortran.dg/internal_pack_4.f90: Adjust pattern.
+
+2008-09-04 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37099
+ * gfortran.dg/string_compare_1.f90: New text.
+ * gfortran.dg/string_compare_2.f90: New text.
+ * gfortran.dg/string_compare_3.f90: New text.
+
+2008-09-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/37243
+ * gfortran.dg/pr37243.f: New.
+
+2008-09-03 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37343
+ * g++.dg/torture/pr37343.C New file.
+
+2008-09-03 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/slp-perm-1.c: Add call to check_vect.
+ * gcc.dg/vect/slp-perm-2.c, gcc.dg/vect/slp-perm-3.c,
+ gcc.dg/vect/slp-perm-4.c, gcc.dg/vect/slp-perm-5.c,
+ gcc.dg/vect/slp-perm-6.c, gcc.dg/vect/slp-perm-7.c,
+ gcc.dg/vect/slp-perm-8.c, gcc.dg/vect/slp-perm-9.c: Likewise.
+
+2008-09-03 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/37345
+ PR tree-optimization/37358
+ PR tree-optimization/37357
+ * g++.dg/torture/pr37345.C: New file.
+
+2008-09-03 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * lib/target-supports.exp (check_effective_target_fgraphite): Fix test.
+ Graphite is only available with -O1.
+
+2008-09-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.c-torture/compile/vector-4.c: Add -mavx for x86.
+
+ * gcc.target/i386/avx-3.c: Require DFP support.
+
+2008-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37348
+ * g++.dg/parse/crash45.C: New test.
+
+ PR c++/37189
+ * g++.dg/gomp/pr37189.C: New test.
+
+ PR debug/37322
+ * gfortran.dg/debug/pr35154-dwarf2.f: Fix up scan-assembler regexps.
+
+2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36445
+ * g++.dg/torture/pr36445.C: New test.
+
+2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37293
+ * g++.dg/torture/ipa-cp-1.C: New test.
+
+2008-09-03 David Edelsohn <edelsohn@gnu.org>
+
+ * g++.dg/ext/java-2.C: Disable on AIX.
+
+2008-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37346
+ * g++.dg/gomp/pr37346.C: New test.
+
+2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ From Mike Frysinger <michael.frysinger@analog.com>
+ * gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0001.
+ * gcc.target/bfin/mcpu-bf523.c: Likewise.
+ * gcc.target/bfin/mcpu-bf524.c: Likewise.
+ * gcc.target/bfin/mcpu-bf525.c: Likewise.
+ * gcc.target/bfin/mcpu-bf526.c: Likewise.
+ * gcc.target/bfin/mcpu-bf527.c: Likewise.
+ * gcc.target/bfin/mcpu-bf542.c: Likewise.
+ * gcc.target/bfin/mcpu-bf544.c: Likewise.
+ * gcc.target/bfin/mcpu-bf547.c: Likewise.
+ * gcc.target/bfin/mcpu-bf548.c: Likewise.
+ * gcc.target/bfin/mcpu-bf549.c: Likewise.
+
+2008-09-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * gcc.c-torture/compile/pr33009.c: xfail on hppa*-*-*.
+ * gcc.c-torture/compile/pr11832.c: Likewise.
+
+2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/amd64-abi-3.c: New test.
+ * gcc.target/i386/amd64-abi-4.c: Likewise.
+ * gcc.target/i386/amd64-abi-5.c: Likewise.
+ * gcc.target/i386/amd64-abi-6.c: Likewise.
+
+2008-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36766
+ * g++.dg/tree-ssa/pr36766.C: New test.
+
+ PR target/36332
+ * gcc.c-torture/execute/ieee/pr36332.c: New test.
+
+ PR c/37171
+ * g++.dg/ext/attrib34.C: New test.
+
+2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
+ Tobias Grosser <grosser@fim.uni-passau.de>
+ Jan Sjodin <jan.sjodin@amd.com>
+ Harsha Jagasia <harsha.jagasia@amd.com>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+ Konrad Trifunovic <konrad.trifunovic@inria.fr>
+ Adrien Eliche <aeliche@isty.uvsq.fr>
+
+ Merge from graphite branch.
+ * gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18}.c: New.
+ * gcc.dg/graphite/graphite.exp: New.
+ * gcc.dg/graphite/scop-matmult.c: New.
+ * gcc.dg/graphite/block-0.c: New.
+ * lib/target-supports.exp (check_effective_target_fgraphite): New.
+ * gfortran.dg/graphite/block-1.f90: New.
+ * gfortran.dg/graphite/scop-{1,2}.f: New.
+ * gfortran.dg/graphite/block-{1,3,4}.f90: New.
+ * gfortran.dg/graphite/graphite.exp: New.
+
+2008-09-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37327
+ * gcc.c-torture/compile/pr37327.c: New testcase.
+
+2008-09-02 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc.dg/fastmath-2.c: New.
+
+2008-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37095
+ * g++.dg/inherit/thunk9.C: New test.
+
+2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37228
+ * gfortran.dg/fmt_g0_4.f08: Revised test.
+
+2008-09-02 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/abstract_type_1.f90: New test.
+ * gfortran.dg/abstract_type_2.f03: New test.
+ * gfortran.dg/abstract_type_3.f03: New test.
+ * gfortran.dg/abstract_type_4.f03: New test.
+
+2008-09-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/20010516-1.c: Test for columns.
+
+2008-09-01 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37193
+ * gfortran.dg/use_rename_4.f90: New test.
+ * gfortran.dg/use_rename_5.f90: New test.
+
+2008-09-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37305
+ * gcc.c-torture/compile/pr37305.c: New testcase.
+
+2008-09-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36449
+ * g++.dg/opt/pr36449.C: New test.
+
+2008-08-31 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c/37271
+ * gcc.dg/pr37186.c: Add dg-message command for line 5.
+
+2008-08-31 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37289
+ * gcc.dg/pr37289.c: New testcase.
+
+2008-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37168
+ * gcc.target/powerpc/pr37168.c: New test.
+
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * gcc.target/i386/cold-attribute-1.c: New testcase.
+ * gcc.target/i386/cold-attribute-2.c: New testcase.
+ * gcc.target/i386/cold-attribute-3.c: New testcase.
+ * gcc.target/i386/cold-attribute-4.c: New testcase.
+
+2008-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37287
+ * gfortran.dg/pr37287-1.f90: New test.
+ * gfortran.dg/pr37287-2.F90: New test.
+
+2008-08-31 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/typebound_generic_1.f03: New test.
+ * gfortran.dg/typebound_generic_2.f03: New test.
+ * gfortran.dg/typebound_generic_3.f03: New test.
+
+2008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36444
+ * g++.dg/torture/pr36444.C: New testcase.
+ * gcc.c-torture/compile/vector-4.c: New testcase.
+
+2008-08-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/36895
+ * gfortran.dg/namelist_53.f90: New test.
+
+2008-08-29 Michael Meissner <gnu@the-meissners.org>
+
+ * gcc.target/i386/sse-22.c: Change #pragma GCC option to #pragma
+ GCC target. Change attribute((option(...))) to
+ attribute((target(...))).
+ * gcc.target/i386/sse-23.c: Ditto.
+ * gcc.target/i386/funcspec-1.c: Ditto.
+ * gcc.target/i386/funcspec-2.c: Ditto.
+ * gcc.target/i386/funcspec-3.c: Ditto.
+ * gcc.target/i386/funcspec-4.c: Ditto.
+ * gcc.target/i386/funcspec-5.c: Ditto.
+ * gcc.target/i386/funcspec-6.c: Ditto.
+ * gcc.target/i386/funcspec-7.c: Ditto.
+ * gcc.target/i386/funcspec-8.c: Ditto.
+ * gcc.target/i386/funcspec-9.c: Ditto.
+ * gcc.target/i386/funcspec-10.c: Ditto.
+ * gcc.target/i386/funcspec-11.c: Ditto.
+
+ * gcc.target/i386/cold-1.c: Delete.
+ * gcc.target/i386/hot-1.c: Ditto.
+
+ * gcc.dg/pr36997.c: Add -msse2 to the target flags.
+
+ * gcc.target/i386/funcspec-8.c: #pragma GCC option push is now
+ #pragma GCC push_options, and #pragma GCC option pop is now
+ #pragma GCC pop_options.
+ * gcc.target/i386/opt-2.c: Ditto.
+
+2008-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/abi/mangle-neon.C: Add substitution test.
+
+2008-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37261
+ * gcc.dg/pr37261.c: New test.
+
+ PR fortran/23057
+ * gfortran.dg/debug/pr35154-dwarf2.f: Adjust for replacement
+ of DW_TAG_member with DW_TAG_variable.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/ipa/modif-1.c: Update template.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/ipa/ipa-1.c: Fix template for better debug output.
+ * gcc.dg/ipa/ipa-2.c: Fix template for better debug output.
+ * gcc.dg/ipa/ipa-3.c: Fix template for better debug output.
+ * gcc.dg/ipa/ipa-4.c: Fix template for better debug output.
+ * gcc.dg/ipa/ipa-5.c: Fix template for better debug output.
+ * gcc.dg/ipa/ipa-7.c: Fix template for better debug output.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ * gfortran.fortran-torture/compile/20080805-1.f90: New testcase.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37236
+ * gfortran.fortran-torture/compile/pr37236.f: New testcase.
+
+2008-08-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37207
+ * gcc.dg/tree-ssa/vrp46.c: New testcase.
+
+2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-bbit-1.c: New test.
+ * gcc.target/mips/octeon-bbit-2.c: New test.
+ * gcc.target/mips/octeon-bbit-3.c: New test.
+
+2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+ Andrew Pinski <pinskia@gcc.gnu.org>
+
+ PR 18050
+ * gcc.dg/Wsequence-point-pr18050.c: New.
+ * g++.dg/warn/Wsequence-point-pr18050.C: New.
+
+2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/37260
+ * g++.dg/parse/crash44.C: New.
+
+2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-dmul-1.c: New test.
+ * gcc.target/mips/octeon-dmul-2.c: New test.
+ * gcc.target/mips/dmult-1.c: New test.
+
+2008-08-28 Xuepeng Guo <xuepeng.guo@intel.com>
+ Joey Ye <joey.ye@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.dg/compat/vector-1b_main.c: New.
+ * gcc.dg/compat/vector-1b_x.c: Likewise.
+ * gcc.dg/compat/vector-1b_y.c: Likewise.
+ * gcc.dg/compat/vector-2b_main.c: Likewise.
+ * gcc.dg/compat/vector-2b_x.c: Likewise.
+ * gcc.dg/compat/vector-2b_y.c: Likewise.
+ * gcc.target/i386/aes-avx-check.h: Likewise.
+ * gcc.target/i386/avx-1.c: Likewise.
+ * gcc.target/i386/avx-2.c: Likewise.
+ * gcc.target/i386/avx-3.c: Likewise.
+ * gcc.target/i386/avx-check.h: Likewise.
+ * gcc.target/i386/avx-set1-epi32-1.c: Likewise.
+ * gcc.target/i386/avx-set1-pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-set1-ps-256-1.c: Likewise.
+ * gcc.target/i386/avx-set-v16hi-1.c: Likewise.
+ * gcc.target/i386/avx-set-v16hi-2.c: Likewise.
+ * gcc.target/i386/avx-set-v16hi-3.c: Likewise.
+ * gcc.target/i386/avx-set-v16hi-4.c: Likewise.
+ * gcc.target/i386/avx-set-v16hi-5.c: Likewise.
+ * gcc.target/i386/avx-set-v32qi-1.c: Likewise.
+ * gcc.target/i386/avx-set-v32qi-2.c: Likewise.
+ * gcc.target/i386/avx-set-v32qi-3.c: Likewise.
+ * gcc.target/i386/avx-set-v32qi-4.c: Likewise.
+ * gcc.target/i386/avx-set-v32qi-5.c: Likewise.
+ * gcc.target/i386/avx-set-v4df-1.c: Likewise.
+ * gcc.target/i386/avx-set-v4df-2.c: Likewise.
+ * gcc.target/i386/avx-set-v4df-3.c: Likewise.
+ * gcc.target/i386/avx-set-v4df-4.c: Likewise.
+ * gcc.target/i386/avx-set-v4df-5.c: Likewise.
+ * gcc.target/i386/avx-set-v4di-1.c: Likewise.
+ * gcc.target/i386/avx-set-v4di-2.c: Likewise.
+ * gcc.target/i386/avx-set-v4di-3.c: Likewise.
+ * gcc.target/i386/avx-set-v4di-4.c: Likewise.
+ * gcc.target/i386/avx-set-v4di-5.c: Likewise.
+ * gcc.target/i386/avx-set-v8sf-1.c: Likewise.
+ * gcc.target/i386/avx-set-v8sf-2.c: Likewise.
+ * gcc.target/i386/avx-set-v8sf-3.c: Likewise.
+ * gcc.target/i386/avx-set-v8sf-4.c: Likewise.
+ * gcc.target/i386/avx-set-v8sf-5.c: Likewise.
+ * gcc.target/i386/avx-set-v8si-1.c: Likewise.
+ * gcc.target/i386/avx-set-v8si-2.c: Likewise.
+ * gcc.target/i386/avx-set-v8si-3.c: Likewise.
+ * gcc.target/i386/avx-set-v8si-4.c: Likewise.
+ * gcc.target/i386/avx-set-v8si-5.c: Likewise.
+ * gcc.target/i386/avx-setzero-pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-setzero-ps-256-1.c: Likewise.
+ * gcc.target/i386/avx-setzero-si256-1.c: Likewise.
+ * gcc.target/i386/avx-vaddpd-1.c: Likewise.
+ * gcc.target/i386/avx-vaddpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vaddps-1.c: Likewise.
+ * gcc.target/i386/avx-vaddps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vaddsd-1.c: Likewise.
+ * gcc.target/i386/avx-vaddss-1.c: Likewise.
+ * gcc.target/i386/avx-vaddsubpd-1.c: Likewise.
+ * gcc.target/i386/avx-vaddsubpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vaddsubps-1.c: Likewise.
+ * gcc.target/i386/avx-vaddsubps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vaesdec-1.c: Likewise.
+ * gcc.target/i386/avx-vaesdeclast-1.c: Likewise.
+ * gcc.target/i386/avx-vaesenc-1.c: Likewise.
+ * gcc.target/i386/avx-vaesenclast-1.c: Likewise.
+ * gcc.target/i386/avx-vaesimc-1.c: Likewise.
+ * gcc.target/i386/avx-vaeskeygenassist-1.c: Likewise.
+ * gcc.target/i386/avx-vandnpd-1.c: Likewise.
+ * gcc.target/i386/avx-vandnpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vandnps-1.c: Likewise.
+ * gcc.target/i386/avx-vandnps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vandpd-1.c: Likewise.
+ * gcc.target/i386/avx-vandpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vandps-1.c: Likewise.
+ * gcc.target/i386/avx-vandps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vblendpd-1.c: Likewise.
+ * gcc.target/i386/avx-vblendpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vblendps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vblendvpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vblendvps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vbroadcastf128-256-1.c: Likewise.
+ * gcc.target/i386/avx-vbroadcastf128-256-2.c: Likewise.
+ * gcc.target/i386/avx-vbroadcastsd-1.c: Likewise.
+ * gcc.target/i386/avx-vbroadcastss-1.c: Likewise.
+ * gcc.target/i386/avx-vbroadcastss-2.c: Likewise.
+ * gcc.target/i386/avx-vcmppd-1.c: Likewise.
+ * gcc.target/i386/avx-vcmppd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcmpps-1.c: Likewise.
+ * gcc.target/i386/avx-vcmpps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcmpsd-1.c: Likewise.
+ * gcc.target/i386/avx-vcmpss-1.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-1.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-2.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-3.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-4.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-5.c: Likewise.
+ * gcc.target/i386/avx-vcomisd-6.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-1.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-2.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-3.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-4.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-5.c: Likewise.
+ * gcc.target/i386/avx-vcomiss-6.c: Likewise.
+ * gcc.target/i386/avx-vcvtdq2pd-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtdq2pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtdq2ps-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtpd2dq-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtpd2dq-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtpd2ps-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtpd2ps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtps2dq-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtps2dq-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtps2pd-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtps2pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtsd2si-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtsd2si-2.c: Likewise.
+ * gcc.target/i386/avx-vcvtsd2ss-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtsi2sd-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise.
+ * gcc.target/i386/avx-vcvtsi2ss-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise.
+ * gcc.target/i386/avx-vcvtss2sd-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtss2si-1.c: Likewise.
+ * gcc.target/i386/avx-vcvtss2si-2.c: Likewise.
+ * gcc.target/i386/avx-vcvttpd2dq-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttpd2dq-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttps2dq-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttps2dq-256-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttsd2si-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttsd2si-2.c: Likewise.
+ * gcc.target/i386/avx-vcvttss2si-1.c: Likewise.
+ * gcc.target/i386/avx-vcvttss2si-2.c: Likewise.
+ * gcc.target/i386/avx-vdivpd-1.c: Likewise.
+ * gcc.target/i386/avx-vdivpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vdivps-1.c: Likewise.
+ * gcc.target/i386/avx-vdivps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vdivsd-1.c: Likewise.
+ * gcc.target/i386/avx-vdivss-1.c: Likewise.
+ * gcc.target/i386/avx-vdppd-1.c: Likewise.
+ * gcc.target/i386/avx-vdppd-2.c: Likewise.
+ * gcc.target/i386/avx-vdpps-1.c: Likewise.
+ * gcc.target/i386/avx-vdpps-2.c: Likewise.
+ * gcc.target/i386/avx-vextractf128-256-1.c: Likewise.
+ * gcc.target/i386/avx-vextractf128-256-2.c: Likewise.
+ * gcc.target/i386/avx-vextractps-1.c: Likewise.
+ * gcc.target/i386/avx-vhaddpd-1.c: Likewise.
+ * gcc.target/i386/avx-vhaddpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vhaddps-1.c: Likewise.
+ * gcc.target/i386/avx-vhaddps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vhsubpd-1.c: Likewise.
+ * gcc.target/i386/avx-vhsubpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vhsubps-1.c: Likewise.
+ * gcc.target/i386/avx-vhsubps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vinsertf128-256-1.c: Likewise.
+ * gcc.target/i386/avx-vinsertf128-256-2.c: Likewise.
+ * gcc.target/i386/avx-vinsertf128-256-3.c: Likewise.
+ * gcc.target/i386/avx-vinsertps-1.c: Likewise.
+ * gcc.target/i386/avx-vinsertps-2.c: Likewise.
+ * gcc.target/i386/avx-vlddqu-1.c: Likewise.
+ * gcc.target/i386/avx-vlddqu-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmaskmovpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmaskmovpd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmaskmovps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmaskmovps-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmaxpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmaxpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmaxps-1.c: Likewise.
+ * gcc.target/i386/avx-vmaxps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmaxsd-1.c: Likewise.
+ * gcc.target/i386/avx-vmaxss-1.c: Likewise.
+ * gcc.target/i386/avx-vminpd-1.c: Likewise.
+ * gcc.target/i386/avx-vminpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vminps-1.c: Likewise.
+ * gcc.target/i386/avx-vminps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vminsd-1.c: Likewise.
+ * gcc.target/i386/avx-vminss-1.c: Likewise.
+ * gcc.target/i386/avx-vmovapd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovapd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovapd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovapd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovaps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovaps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovaps-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovaps-2.c: Likewise.
+ * gcc.target/i386/avx-vmovd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovddup-1.c: Likewise.
+ * gcc.target/i386/avx-vmovddup-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovdqa-1.c: Likewise.
+ * gcc.target/i386/avx-vmovdqa-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovdqa-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovdqa-2.c: Likewise.
+ * gcc.target/i386/avx-vmovdqu-1.c: Likewise.
+ * gcc.target/i386/avx-vmovdqu-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovdqu-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovdqu-2.c: Likewise.
+ * gcc.target/i386/avx-vmovhlps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovhpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovhpd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovhps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovhps-2.c: Likewise.
+ * gcc.target/i386/avx-vmovlhps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovlpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovlpd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovmskpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovmskpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovmskps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovmskps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovntdq-1.c: Likewise.
+ * gcc.target/i386/avx-vmovntdqa-1.c: Likewise.
+ * gcc.target/i386/avx-vmovntpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovntps-1.c: Likewise.
+ * gcc.target/i386/avx-vmovq-1.c: Likewise.
+ * gcc.target/i386/avx-vmovq-2.c: Likewise.
+ * gcc.target/i386/avx-vmovq-3.c: Likewise.
+ * gcc.target/i386/avx-vmovsd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovsd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovshdup-1.c: Likewise.
+ * gcc.target/i386/avx-vmovshdup-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovsldup-1.c: Likewise.
+ * gcc.target/i386/avx-vmovsldup-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovss-1.c: Likewise.
+ * gcc.target/i386/avx-vmovss-2.c: Likewise.
+ * gcc.target/i386/avx-vmovss-3.c: Likewise.
+ * gcc.target/i386/avx-vmovupd-1.c: Likewise.
+ * gcc.target/i386/avx-vmovupd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovupd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovupd-2.c: Likewise.
+ * gcc.target/i386/avx-vmovups-1.c: Likewise.
+ * gcc.target/i386/avx-vmovups-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmovups-256-2.c: Likewise.
+ * gcc.target/i386/avx-vmovups-2.c: Likewise.
+ * gcc.target/i386/avx-vmpsadbw-1.c: Likewise.
+ * gcc.target/i386/avx-vmulpd-1.c: Likewise.
+ * gcc.target/i386/avx-vmulpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmulps-1.c: Likewise.
+ * gcc.target/i386/avx-vmulps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vmulsd-1.c: Likewise.
+ * gcc.target/i386/avx-vmulss-1.c: Likewise.
+ * gcc.target/i386/avx-vorpd-1.c: Likewise.
+ * gcc.target/i386/avx-vorpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vorps-1.c: Likewise.
+ * gcc.target/i386/avx-vorps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpabsb-1.c: Likewise.
+ * gcc.target/i386/avx-vpabsd-1.c: Likewise.
+ * gcc.target/i386/avx-vpabsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpackssdw-1.c: Likewise.
+ * gcc.target/i386/avx-vpacksswb-1.c: Likewise.
+ * gcc.target/i386/avx-vpackusdw-1.c: Likewise.
+ * gcc.target/i386/avx-vpackuswb-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddb-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddd-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddq-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddsb-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddusb-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddusw-1.c: Likewise.
+ * gcc.target/i386/avx-vpaddw-1.c: Likewise.
+ * gcc.target/i386/avx-vpalignr-1.c: Likewise.
+ * gcc.target/i386/avx-vpand-1.c: Likewise.
+ * gcc.target/i386/avx-vpandn-1.c: Likewise.
+ * gcc.target/i386/avx-vpavgb-1.c: Likewise.
+ * gcc.target/i386/avx-vpavgw-1.c: Likewise.
+ * gcc.target/i386/avx-vpblendvb-1.c: Likewise.
+ * gcc.target/i386/avx-vpblendw-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpeqb-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpeqd-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpeqq-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpeqw-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpestri-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpestri-2.c: Likewise.
+ * gcc.target/i386/avx-vpcmpestrm-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpestrm-2.c: Likewise.
+ * gcc.target/i386/avx-vpcmpgtb-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpgtd-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpgtq-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpgtw-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpistri-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpistri-2.c: Likewise.
+ * gcc.target/i386/avx-vpcmpistrm-1.c: Likewise.
+ * gcc.target/i386/avx-vpcmpistrm-2.c: Likewise.
+ * gcc.target/i386/avx-vperm2f128-256-1.c: Likewise.
+ * gcc.target/i386/avx-vperm2f128-256-2.c: Likewise.
+ * gcc.target/i386/avx-vperm2f128-256-3.c: Likewise.
+ * gcc.target/i386/avx-vpermil2pd-1.c: Likewise.
+ * gcc.target/i386/avx-vpermil2pd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpermil2ps-1.c: Likewise.
+ * gcc.target/i386/avx-vpermil2ps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpermilpd-1.c: Likewise.
+ * gcc.target/i386/avx-vpermilpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpermilpd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vpermilpd-2.c: Likewise.
+ * gcc.target/i386/avx-vpermilps-1.c: Likewise.
+ * gcc.target/i386/avx-vpermilps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vpermilps-256-2.c: Likewise.
+ * gcc.target/i386/avx-vpermilps-2.c: Likewise.
+ * gcc.target/i386/avx-vpextrb-1.c: Likewise.
+ * gcc.target/i386/avx-vpextrd-1.c: Likewise.
+ * gcc.target/i386/avx-vpextrq-1.c: Likewise.
+ * gcc.target/i386/avx-vpextrw-1.c: Likewise.
+ * gcc.target/i386/avx-vphaddd-1.c: Likewise.
+ * gcc.target/i386/avx-vphaddsw-1.c: Likewise.
+ * gcc.target/i386/avx-vphaddw-1.c: Likewise.
+ * gcc.target/i386/avx-vphminposuw-1.c: Likewise.
+ * gcc.target/i386/avx-vphsubd-1.c: Likewise.
+ * gcc.target/i386/avx-vphsubsw-1.c: Likewise.
+ * gcc.target/i386/avx-vphsubw-1.c: Likewise.
+ * gcc.target/i386/avx-vpinsrb-1.c: Likewise.
+ * gcc.target/i386/avx-vpinsrd-1.c: Likewise.
+ * gcc.target/i386/avx-vpinsrq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaddubsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxsb-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxsd-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxub-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxud-1.c: Likewise.
+ * gcc.target/i386/avx-vpmaxuw-1.c: Likewise.
+ * gcc.target/i386/avx-vpminsb-1.c: Likewise.
+ * gcc.target/i386/avx-vpminsd-1.c: Likewise.
+ * gcc.target/i386/avx-vpminsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpminub-1.c: Likewise.
+ * gcc.target/i386/avx-vpminud-1.c: Likewise.
+ * gcc.target/i386/avx-vpminuw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovmskb-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxbd-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxbq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxbw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxdq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxwd-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovsxwq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxbd-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxbq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxbw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxdq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxwd-1.c: Likewise.
+ * gcc.target/i386/avx-vpmovzxwq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmuldq-1.c: Likewise.
+ * gcc.target/i386/avx-vpmulhrsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmulhuw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmulhw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmulld-1.c: Likewise.
+ * gcc.target/i386/avx-vpmullw-1.c: Likewise.
+ * gcc.target/i386/avx-vpmuludq-1.c: Likewise.
+ * gcc.target/i386/avx-vpor-1.c: Likewise.
+ * gcc.target/i386/avx-vpsadbw-1.c: Likewise.
+ * gcc.target/i386/avx-vpshufb-1.c: Likewise.
+ * gcc.target/i386/avx-vpshufd-1.c: Likewise.
+ * gcc.target/i386/avx-vpshufhw-1.c: Likewise.
+ * gcc.target/i386/avx-vpshuflw-1.c: Likewise.
+ * gcc.target/i386/avx-vpsignb-1.c: Likewise.
+ * gcc.target/i386/avx-vpsignd-1.c: Likewise.
+ * gcc.target/i386/avx-vpsignw-1.c: Likewise.
+ * gcc.target/i386/avx-vpslld-1.c: Likewise.
+ * gcc.target/i386/avx-vpslld-2.c: Likewise.
+ * gcc.target/i386/avx-vpslldq-1.c: Likewise.
+ * gcc.target/i386/avx-vpsllq-1.c: Likewise.
+ * gcc.target/i386/avx-vpsllq-2.c: Likewise.
+ * gcc.target/i386/avx-vpsllw-1.c: Likewise.
+ * gcc.target/i386/avx-vpsllw-2.c: Likewise.
+ * gcc.target/i386/avx-vpsrad-1.c: Likewise.
+ * gcc.target/i386/avx-vpsrad-2.c: Likewise.
+ * gcc.target/i386/avx-vpsraw-1.c: Likewise.
+ * gcc.target/i386/avx-vpsraw-2.c: Likewise.
+ * gcc.target/i386/avx-vpsrld-1.c: Likewise.
+ * gcc.target/i386/avx-vpsrld-2.c: Likewise.
+ * gcc.target/i386/avx-vpsrldq-1.c: Likewise.
+ * gcc.target/i386/avx-vpsrlq-1.c: Likewise.
+ * gcc.target/i386/avx-vpsrlq-2.c: Likewise.
+ * gcc.target/i386/avx-vpsrlw-1.c: Likewise.
+ * gcc.target/i386/avx-vpsrlw-2.c: Likewise.
+ * gcc.target/i386/avx-vpsubb-1.c: Likewise.
+ * gcc.target/i386/avx-vpsubd-1.c: Likewise.
+ * gcc.target/i386/avx-vpsubq-1.c: Likewise.
+ * gcc.target/i386/avx-vpsubsb-1.c: Likewise.
+ * gcc.target/i386/avx-vpsubsw-1.c: Likewise.
+ * gcc.target/i386/avx-vpsubw-1.c: Likewise.
+ * gcc.target/i386/avx-vptest-1.c: Likewise.
+ * gcc.target/i386/avx-vptest-256-1.c: Likewise.
+ * gcc.target/i386/avx-vptest-256-2.c: Likewise.
+ * gcc.target/i386/avx-vptest-256-3.c: Likewise.
+ * gcc.target/i386/avx-vptest-2.c: Likewise.
+ * gcc.target/i386/avx-vptest-3.c: Likewise.
+ * gcc.target/i386/avx-vpunpckhbw-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpckhdq-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpckhqdq-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpckhwd-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpcklbw-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpckldq-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpcklqdq-1.c: Likewise.
+ * gcc.target/i386/avx-vpunpcklwd-1.c: Likewise.
+ * gcc.target/i386/avx-vpxor-1.c: Likewise.
+ * gcc.target/i386/avx-vrcpps-1.c: Likewise.
+ * gcc.target/i386/avx-vrcpps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-1.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-256-3.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-2.c: Likewise.
+ * gcc.target/i386/avx-vroundpd-3.c: Likewise.
+ * gcc.target/i386/avx-vroundps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vrsqrtps-1.c: Likewise.
+ * gcc.target/i386/avx-vrsqrtps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vshufpd-1.c: Likewise.
+ * gcc.target/i386/avx-vshufpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vshufps-1.c: Likewise.
+ * gcc.target/i386/avx-vshufps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vsqrtpd-1.c: Likewise.
+ * gcc.target/i386/avx-vsqrtpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vsqrtps-1.c: Likewise.
+ * gcc.target/i386/avx-vsqrtps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vsubpd-1.c: Likewise.
+ * gcc.target/i386/avx-vsubpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vsubps-1.c: Likewise.
+ * gcc.target/i386/avx-vsubps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vsubsd-1.c: Likewise.
+ * gcc.target/i386/avx-vsubss-1.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-1.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-256-2.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-256-3.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-2.c: Likewise.
+ * gcc.target/i386/avx-vtestpd-3.c: Likewise.
+ * gcc.target/i386/avx-vtestps-1.c: Likewise.
+ * gcc.target/i386/avx-vtestps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vtestps-256-2.c: Likewise.
+ * gcc.target/i386/avx-vtestps-256-3.c: Likewise.
+ * gcc.target/i386/avx-vtestps-2.c: Likewise.
+ * gcc.target/i386/avx-vtestps-3.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-1.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-2.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-3.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-4.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-5.c: Likewise.
+ * gcc.target/i386/avx-vucomisd-6.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-1.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-2.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-3.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-4.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-5.c: Likewise.
+ * gcc.target/i386/avx-vucomiss-6.c: Likewise.
+ * gcc.target/i386/avx-vunpckhpd-1.c: Likewise.
+ * gcc.target/i386/avx-vunpckhpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vunpckhps-1.c: Likewise.
+ * gcc.target/i386/avx-vunpckhps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vunpcklpd-1.c: Likewise.
+ * gcc.target/i386/avx-vunpcklpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vunpcklps-1.c: Likewise.
+ * gcc.target/i386/avx-vunpcklps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vxorpd-1.c: Likewise.
+ * gcc.target/i386/avx-vxorpd-256-1.c: Likewise.
+ * gcc.target/i386/avx-vxorps-1.c: Likewise.
+ * gcc.target/i386/avx-vxorps-256-1.c: Likewise.
+ * gcc.target/i386/avx-vzeroall-1.c: Likewise.
+ * gcc.target/i386/avx-vzeroall-2.c: Likewise.
+ * gcc.target/i386/avx-vzeroupper-1.c: Likewise.
+ * gcc.target/i386/avx-vzeroupper-2.c: Likewise.
+ * gcc.target/i386/m256-1.c: Likewise.
+ * gcc.target/i386/m256-2.c: Likewise.
+ * gcc.target/i386/m256-check.h: Likewise.
+ * gcc.target/i386/sse2-addpd-1.c: Likewise.
+ * gcc.target/i386/sse2-addsd-1.c: Likewise.
+ * gcc.target/i386/sse2-andnpd-1.c: Likewise.
+ * gcc.target/i386/sse2-andpd-1.c: Likewise.
+ * gcc.target/i386/sse2-comisd-1.c: Likewise.
+ * gcc.target/i386/sse2-comisd-2.c: Likewise.
+ * gcc.target/i386/sse2-comisd-3.c: Likewise.
+ * gcc.target/i386/sse2-comisd-4.c: Likewise.
+ * gcc.target/i386/sse2-comisd-5.c: Likewise.
+ * gcc.target/i386/sse2-comisd-6.c: Likewise.
+ * gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
+ * gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
+ * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
+ * gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
+ * gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
+ * gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
+ * gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
+ * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
+ * gcc.target/i386/sse2-divpd-1.c: Likewise.
+ * gcc.target/i386/sse2-divsd-1.c: Likewise.
+ * gcc.target/i386/sse2-maxpd-1.c: Likewise.
+ * gcc.target/i386/sse2-maxsd-1.c: Likewise.
+ * gcc.target/i386/sse2-minpd-1.c: Likewise.
+ * gcc.target/i386/sse2-minsd-1.c: Likewise.
+ * gcc.target/i386/sse2-movapd-1.c: Likewise.
+ * gcc.target/i386/sse2-movapd-2.c: Likewise.
+ * gcc.target/i386/sse2-movd-1.c: Likewise.
+ * gcc.target/i386/sse2-movd-2.c: Likewise.
+ * gcc.target/i386/sse2-movdqa-1.c: Likewise.
+ * gcc.target/i386/sse2-movdqa-2.c: Likewise.
+ * gcc.target/i386/sse2-movdqu-1.c: Likewise.
+ * gcc.target/i386/sse2-movdqu-2.c: Likewise.
+ * gcc.target/i386/sse2-movhpd-1.c: Likewise.
+ * gcc.target/i386/sse2-movhpd-2.c: Likewise.
+ * gcc.target/i386/sse2-movlpd-1.c: Likewise.
+ * gcc.target/i386/sse2-movlpd-2.c: Likewise.
+ * gcc.target/i386/sse2-movmskpd-1.c: Likewise.
+ * gcc.target/i386/sse2-movntdq-1.c: Likewise.
+ * gcc.target/i386/sse2-movntpd-1.c: Likewise.
+ * gcc.target/i386/sse2-movq-1.c: Likewise.
+ * gcc.target/i386/sse2-movq-2.c: Likewise.
+ * gcc.target/i386/sse2-movq-3.c: Likewise.
+ * gcc.target/i386/sse2-movsd-1.c: Likewise.
+ * gcc.target/i386/sse2-movsd-2.c: Likewise.
+ * gcc.target/i386/sse2-movupd-1.c: Likewise.
+ * gcc.target/i386/sse2-movupd-2.c: Likewise.
+ * gcc.target/i386/sse2-mulpd-1.c: Likewise.
+ * gcc.target/i386/sse2-mulsd-1.c: Likewise.
+ * gcc.target/i386/sse2-orpd-1.c: Likewise.
+ * gcc.target/i386/sse2-packssdw-1.c: Likewise.
+ * gcc.target/i386/sse2-packsswb-1.c: Likewise.
+ * gcc.target/i386/sse2-packuswb-1.c: Likewise.
+ * gcc.target/i386/sse2-paddb-1.c: Likewise.
+ * gcc.target/i386/sse2-paddd-1.c: Likewise.
+ * gcc.target/i386/sse2-paddq-1.c: Likewise.
+ * gcc.target/i386/sse2-paddsb-1.c: Likewise.
+ * gcc.target/i386/sse2-paddsw-1.c: Likewise.
+ * gcc.target/i386/sse2-paddusb-1.c: Likewise.
+ * gcc.target/i386/sse2-paddusw-1.c: Likewise.
+ * gcc.target/i386/sse2-paddw-1.c: Likewise.
+ * gcc.target/i386/sse2-pand-1.c: Likewise.
+ * gcc.target/i386/sse2-pandn-1.c: Likewise.
+ * gcc.target/i386/sse2-pavgb-1.c: Likewise.
+ * gcc.target/i386/sse2-pavgw-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
+ * gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
+ * gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
+ * gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
+ * gcc.target/i386/sse2-pmaxub-1.c: Likewise.
+ * gcc.target/i386/sse2-pminsw-1.c: Likewise.
+ * gcc.target/i386/sse2-pminub-1.c: Likewise.
+ * gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
+ * gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
+ * gcc.target/i386/sse2-pmulhw-1.c: Likewise.
+ * gcc.target/i386/sse2-pmullw-1.c: Likewise.
+ * gcc.target/i386/sse2-pmuludq-1.c: Likewise.
+ * gcc.target/i386/sse2-por-1.c: Likewise.
+ * gcc.target/i386/sse2-psadbw-1.c: Likewise.
+ * gcc.target/i386/sse2-pshufd-1.c: Likewise.
+ * gcc.target/i386/sse2-pshufhw-1.c: Likewise.
+ * gcc.target/i386/sse2-pshuflw-1.c: Likewise.
+ * gcc.target/i386/sse2-pslld-1.c: Likewise.
+ * gcc.target/i386/sse2-pslld-2.c: Likewise.
+ * gcc.target/i386/sse2-pslldq-1.c: Likewise.
+ * gcc.target/i386/sse2-psllq-1.c: Likewise.
+ * gcc.target/i386/sse2-psllq-2.c: Likewise.
+ * gcc.target/i386/sse2-psllw-1.c: Likewise.
+ * gcc.target/i386/sse2-psllw-2.c: Likewise.
+ * gcc.target/i386/sse2-psrad-1.c: Likewise.
+ * gcc.target/i386/sse2-psrad-2.c: Likewise.
+ * gcc.target/i386/sse2-psraw-1.c: Likewise.
+ * gcc.target/i386/sse2-psraw-2.c: Likewise.
+ * gcc.target/i386/sse2-psrld-1.c: Likewise.
+ * gcc.target/i386/sse2-psrld-2.c: Likewise.
+ * gcc.target/i386/sse2-psrldq-1.c: Likewise.
+ * gcc.target/i386/sse2-psrlq-1.c: Likewise.
+ * gcc.target/i386/sse2-psrlq-2.c: Likewise.
+ * gcc.target/i386/sse2-psrlw-1.c: Likewise.
+ * gcc.target/i386/sse2-psrlw-2.c: Likewise.
+ * gcc.target/i386/sse2-psubb-1.c: Likewise.
+ * gcc.target/i386/sse2-psubd-1.c: Likewise.
+ * gcc.target/i386/sse2-psubq-1.c: Likewise.
+ * gcc.target/i386/sse2-psubsb-1.c: Likewise.
+ * gcc.target/i386/sse2-psubsw-1.c: Likewise.
+ * gcc.target/i386/sse2-psubw-1.c: Likewise.
+ * gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
+ * gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
+ * gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
+ * gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
+ * gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
+ * gcc.target/i386/sse2-punpckldq-1.c: Likewise.
+ * gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
+ * gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
+ * gcc.target/i386/sse2-pxor-1.c: Likewise.
+ * gcc.target/i386/sse2-shufpd-1.c: Likewise.
+ * gcc.target/i386/sse2-shufps-1.c: Likewise.
+ * gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
+ * gcc.target/i386/sse2-subpd-1.c: Likewise.
+ * gcc.target/i386/sse2-subsd-1.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-1.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-2.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-3.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-4.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-5.c: Likewise.
+ * gcc.target/i386/sse2-ucomisd-6.c: Likewise.
+ * gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
+ * gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
+ * gcc.target/i386/sse2-xorpd-1.c: Likewise.
+ * gcc.target/i386/sse-addps-1.c: Likewise.
+ * gcc.target/i386/sse-addss-1.c: Likewise.
+ * gcc.target/i386/sse-andnps-1.c: Likewise.
+ * gcc.target/i386/sse-andps-1.c: Likewise.
+ * gcc.target/i386/sse-comiss-1.c: Likewise.
+ * gcc.target/i386/sse-comiss-2.c: Likewise.
+ * gcc.target/i386/sse-comiss-3.c: Likewise.
+ * gcc.target/i386/sse-comiss-4.c: Likewise.
+ * gcc.target/i386/sse-comiss-5.c: Likewise.
+ * gcc.target/i386/sse-comiss-6.c: Likewise.
+ * gcc.target/i386/sse-cvtsi2ss-1.c: Likewise.
+ * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise.
+ * gcc.target/i386/sse-cvtss2si-1.c: Likewise.
+ * gcc.target/i386/sse-cvtss2si-2.c: Likewise.
+ * gcc.target/i386/sse-cvttss2si-1.c: Likewise.
+ * gcc.target/i386/sse-cvttss2si-2.c: Likewise.
+ * gcc.target/i386/sse-divps-1.c: Likewise.
+ * gcc.target/i386/sse-divss-1.c: Likewise.
+ * gcc.target/i386/sse-maxps-1.c: Likewise.
+ * gcc.target/i386/sse-maxss-1.c: Likewise.
+ * gcc.target/i386/sse-minps-1.c: Likewise.
+ * gcc.target/i386/sse-minss-1.c: Likewise.
+ * gcc.target/i386/sse-movaps-1.c: Likewise.
+ * gcc.target/i386/sse-movaps-2.c: Likewise.
+ * gcc.target/i386/sse-movhlps-1.c: Likewise.
+ * gcc.target/i386/sse-movhps-1.c: Likewise.
+ * gcc.target/i386/sse-movhps-2.c: Likewise.
+ * gcc.target/i386/sse-movlhps-1.c: Likewise.
+ * gcc.target/i386/sse-movmskps-1.c: Likewise.
+ * gcc.target/i386/sse-movntps-1.c: Likewise.
+ * gcc.target/i386/sse-movss-1.c: Likewise.
+ * gcc.target/i386/sse-movss-2.c: Likewise.
+ * gcc.target/i386/sse-movss-3.c: Likewise.
+ * gcc.target/i386/sse-movups-1.c: Likewise.
+ * gcc.target/i386/sse-movups-2.c: Likewise.
+ * gcc.target/i386/sse-mulps-1.c: Likewise.
+ * gcc.target/i386/sse-mulss-1.c: Likewise.
+ * gcc.target/i386/sse-orps-1.c: Likewise.
+ * gcc.target/i386/sse-rcpps-1.c: Likewise.
+ * gcc.target/i386/sse-rsqrtps-1.c: Likewise.
+ * gcc.target/i386/sse-sqrtps-1.c: Likewise.
+ * gcc.target/i386/sse-subps-1.c: Likewise.
+ * gcc.target/i386/sse-subss-1.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-1.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-2.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-3.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-4.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-5.c: Likewise.
+ * gcc.target/i386/sse-ucomiss-6.c: Likewise.
+ * gcc.target/i386/sse-unpckhps-1.c: Likewise.
+ * gcc.target/i386/sse-unpcklps-1.c: Likewise.
+ * gcc.target/i386/sse-xorps-1.c: Likewise.
+ * gcc.target/i386/vararg-10.c: Likewise.
+ * gcc.target/i386/vararg-3.c: Likewise.
+ * gcc.target/i386/vararg-4.c: Likewise.
+ * gcc.target/i386/vararg-5.c: Likewise.
+ * gcc.target/i386/vararg-6.c: Likewise.
+ * gcc.target/i386/vararg-7.c: Likewise.
+ * gcc.target/i386/vararg-8.c: Likewise.
+ * gcc.target/i386/vararg-9.c: Likewise.
+ * g++.dg/other/i386-5.C: Likewise.
+ * g++.dg/other/i386-6.C: Likewise.
+
+ * gcc.target/i386/aesdec.c (CHECK_H): New.
+ (TEST): New.
+ Include CHECK_H instead of "XXX-check.h" and run TEST
+ instead of XXX_test.
+ * gcc.target/i386/aesdeclast.c: Likewise.
+ * gcc.target/i386/aesenc.c: Likewise.
+ * gcc.target/i386/aesenclast.c: Likewise.
+ * gcc.target/i386/aesimc.c: Likewise.
+ * gcc.target/i386/aeskeygenassist.c: Likewise.
+ * gcc.target/i386/sse3-addsubpd.c: Likewise.
+ * gcc.target/i386/sse3-addsubps.c: Likewise.
+ * gcc.target/i386/sse3-haddpd.c: Likewise.
+ * gcc.target/i386/sse3-haddps.c: Likewise.
+ * gcc.target/i386/sse3-hsubpd.c: Likewise.
+ * gcc.target/i386/sse3-hsubps.c: Likewise.
+ * gcc.target/i386/sse3-lddqu.c: Likewise.
+ * gcc.target/i386/sse3-movddup.c: Likewise.
+ * gcc.target/i386/sse3-movshdup.c: Likewise.
+ * gcc.target/i386/sse3-movsldup.c: Likewise.
+ * gcc.target/i386/sse4_1-blendpd.c: Likewise.
+ * gcc.target/i386/sse4_1-blendps.c: Likewise.
+ * gcc.target/i386/sse4_1-dppd-1.c: Likewise.
+ * gcc.target/i386/sse4_1-dppd-2.c: Likewise.
+ * gcc.target/i386/sse4_1-dpps-1.c: Likewise.
+ * gcc.target/i386/sse4_1-dpps-2.c: Likewise.
+ * gcc.target/i386/sse4_1-extractps.c: Likewise.
+ * gcc.target/i386/sse4_1-insertps-1.c: Likewise.
+ * gcc.target/i386/sse4_1-insertps-2.c: Likewise.
+ * gcc.target/i386/sse4_1-movntdqa.c: Likewise.
+ * gcc.target/i386/sse4_1-mpsadbw.c: Likewise.
+ * gcc.target/i386/sse4_1-packusdw.c: Likewise.
+ * gcc.target/i386/sse4_1-pblendvb.c: Likewise.
+ * gcc.target/i386/sse4_1-pblendw.c: Likewise.
+ * gcc.target/i386/sse4_1-pcmpeqq.c: Likewise.
+ * gcc.target/i386/sse4_1-pextrb.c: Likewise.
+ * gcc.target/i386/sse4_1-pextrd.c: Likewise.
+ * gcc.target/i386/sse4_1-pextrq.c: Likewise.
+ * gcc.target/i386/sse4_1-pextrw.c: Likewise.
+ * gcc.target/i386/sse4_1-phminposuw.c: Likewise.
+ * gcc.target/i386/sse4_1-pinsrb.c: Likewise.
+ * gcc.target/i386/sse4_1-pinsrd.c: Likewise.
+ * gcc.target/i386/sse4_1-pinsrq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmaxsb.c: Likewise.
+ * gcc.target/i386/sse4_1-pmaxsd.c: Likewise.
+ * gcc.target/i386/sse4_1-pmaxud.c: Likewise.
+ * gcc.target/i386/sse4_1-pmaxuw.c: Likewise.
+ * gcc.target/i386/sse4_1-pminsb.c: Likewise.
+ * gcc.target/i386/sse4_1-pminsd.c: Likewise.
+ * gcc.target/i386/sse4_1-pminud.c: Likewise.
+ * gcc.target/i386/sse4_1-pminuw.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxbd.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxbq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxbw.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxdq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxwd.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovsxwq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxbd.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxbq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxbw.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxdq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxwd.c: Likewise.
+ * gcc.target/i386/sse4_1-pmovzxwq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmuldq.c: Likewise.
+ * gcc.target/i386/sse4_1-pmulld.c: Likewise.
+ * gcc.target/i386/sse4_1-ptest-1.c: Likewise.
+ * gcc.target/i386/sse4_1-ptest-2.c: Likewise.
+ * gcc.target/i386/sse4_1-ptest-3.c: Likewise.
+ * gcc.target/i386/sse4_1-roundpd-1.c: Likewise.
+ * gcc.target/i386/sse4_1-roundpd-2.c: Likewise.
+ * gcc.target/i386/sse4_1-roundpd-3.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestri-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpgtq.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
+ * gcc.target/i386/ssse3-pabsb.c: Likewise. Don't run MMX
+ tests for AVX.
+ * gcc.target/i386/ssse3-pabsd.c: Likewise.
+ * gcc.target/i386/ssse3-pabsw.c: Likewise.
+ * gcc.target/i386/ssse3-palignr.c: Likewise.
+ * gcc.target/i386/ssse3-phaddd.c: Likewise.
+ * gcc.target/i386/ssse3-phaddsw.c: Likewise.
+ * gcc.target/i386/ssse3-phaddw.c: Likewise.
+ * gcc.target/i386/ssse3-phsubd.c: Likewise.
+ * gcc.target/i386/ssse3-phsubsw.c: Likewise.
+ * gcc.target/i386/ssse3-phsubw.c: Likewise.
+ * gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
+ * gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
+ * gcc.target/i386/ssse3-pshufb.c: Likewise.
+ * gcc.target/i386/ssse3-psignb.c: Likewise.
+ * gcc.target/i386/ssse3-psignd.c: Likewise.
+ * gcc.target/i386/ssse3-psignw.c: Likewise.
+
+ * gcc.target/i386/i386.exp (check_effective_target_vaes): New.
+
+ * gcc.target/i386/m128-check.h: Include <xmmintrin.h>. Include
+ <emmintrin.h> for SSE2.
+ (union128i_b): Defined only for SSE2.
+ (union128i_w): Likewise.
+ (union128i_d): Likewise.
+ (union128i_q): Likewise.
+ (union128d): Likewise.
+ (check_union128i_b): Likewise.
+ (check_union128i_w): Likewise.
+ (check_union128i_d): Likewise.
+ (check_union128i_q): Likewise.
+ (check_union128d): Likewise.
+ (union128i_ub): New.
+ (union128i_uw): Likewise.
+ (check_union128i_ub): Likewise.
+ (check_union128i_uw): Likewise.
+ (ESP_FLOAT): Likewise.
+ (ESP_DOUBLE): Likewise.
+ (CHECK_ARRAY): Likewise.
+ (checkVd): Likewise.
+ (checkVf): Likewise.
+ (ieee754_float): Likewise.
+ (ieee754_double): Likewise.
+
+ * gcc.target/i386/sse-check.h: Include "m128-check.h".
+
+ * gcc.target/x86_64/abi/abi-x86_64.exp: Replace asm-support.s
+ with asm-support.S.
+
+ * gcc.target/x86_64/abi/asm-support.s: Renamed to ...
+ * gcc.target/x86_64/abi/asm-support.S: This. Add
+ ".sse_check none" if __AVX__ is defined.
+
+ * lib/target-supports.exp (check_effective_target_avx): New.
+
+2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/30949
+ * gcc.dg/pr30949.c: New.
+ * gcc.dg/transparent-union-1.c: Update.
+ * gcc.dg/cleanup-1.c: Update.
+ * gcc.dg/assign-warn-2.c: Update.
+ * gcc.dg/conv-2.c: Update.
+ * gcc.dg/Wpointer-sign-pedantic.c: Update.
+ * gcc.dg/Wpointer-sign-Wall.c: Update.
+ * gcc.dg/assign-warn-1.c: Update.
+ * gcc.dg/dfp/composite-type.c: Update.
+ * gcc.dg/noncompile/20020213-1.c: Update.
+
+2008-08-28 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/typebound_call_1.f03: New test.
+ * gfortran.dg/typebound_call_2.f03: New test.
+ * gfortran.dg/typebound_call_3.f03: New test.
+ * gfortran.dg/typebound_call_4.f03: New test.
+ * gfortran.dg/typebound_call_5.f03: New test.
+ * gfortran.dg/typebound_call_6.f03: New test.
+ * gfortran.dg/typebound_proc_1.f08: Don't expect not-implemented error.
+ * gfortran.dg/typebound_proc_2.f90: Ditto.
+ * gfortran.dg/typebound_proc_5.f03: Ditto.
+ * gfortran.dg/typebound_proc_6.f03: Ditto.
+ * gfortran.dg/typebound_proc_7.f03: Ditto.
+ * gfortran.dg/typebound_proc_8.f03: Ditto.
+
+2008-08-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37207
+ * gcc.c-torture/compile/pr37207.c: New testcase.
+
+2008-08-28 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/37253
+ * gfortran.dg/proc_ptr_10.f90: New.
+
+2008-08-28 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/36741
+ * g++.dg/other/new-size-type.C: New test.
+
+2008-08-28 Ira Rosen <irar@il.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_vect_perm): New.
+ * gcc.dg/vect/slp-perm-1.c: New testcase.
+ * gcc.dg/vect/slp-perm-2.c: New testcase.
+ * gcc.dg/vect/slp-perm-3.c: New testcase.
+ * gcc.dg/vect/slp-perm-4.c: New testcase.
+ * gcc.dg/vect/slp-perm-5.c: New testcase.
+ * gcc.dg/vect/slp-perm-6.c: New testcase.
+ * gcc.dg/vect/slp-perm-7.c: New testcase.
+ * gcc.dg/vect/slp-perm-8.c: New testcase.
+ * gcc.dg/vect/slp-perm-9.c: New testcase.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 37217
+ * gcc.dg/pr37217.c: New.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/31673
+ * gcc.dg/c90-fordecl-1.c: Update.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/37186
+ * gcc.dg/pr37186.c: New.
+
+2008-08-27 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.dg/torture/type-generic-1.c: Revert previous change.
+ * g++.dg/torture/type-generic-1.C: Ditto.
+
+2008-08-27 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/ipa/ipacost-1.c: Remove template matching only x86-64
+ * gcc.dg/ipa/ipacost-2.c: Add -fipa-cp-clone; remove template matching
+ only x86-64
+ * gcc.dg/ipa/ipa-1.c: Add -fipa-cp-clone
+ * gcc.dg/ipa/ipa-2.c: Add -fipa-cp-clone
+ * gcc.dg/ipa/ipa-3.c: Add -fipa-cp-clone
+ * gcc.dg/ipa/ipa-4.c: Add -fipa-cp-clone
+ * gcc.dg/ipa/ipa-5.c: Add -fipa-cp-clone
+ * gcc.dg/ipa/ipa-7.c: Add -fipa-cp-clone
+
+2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35321
+ * g++.dg/parse/offsetof8.C: New.
+
+2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/17880
+ * g++.dg/warn/sequence-pt-1.C: New.
+ * g++.dg/warn/sequence-pt-pr17880.C: New.
+
+2008-08-26 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/scoped_enum_examples.C: New.
+ * g++.dg/cpp0x/scoped_enum.C: New.
+ * g++.dg/cpp0x/scoped_enum_98.C: New.
+ * g++.dg/cpp0x/enum_base_warn.C: New.
+ * g++.dg/cpp0x/enum_base.C: New.
+
+2008-08-26 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.target/powerpc/altivec-macros.c: Fix dg-message directives.
+ * gcc.target/powerpc/ppu-intrinsics.c: Ignore some warnings.
+ * gcc.target/powerpc/darwin-save-world-1.c: Require AltiVec hardware.
+ * gcc.target/powerpc/altivec-types-1.c: Expect some notes.
+ * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Ignore a warning.
+ * g++.dg/ext/altivec-2.C: Initialize a local variable.
+ * g++.dg/ext/altivec-3.C: Move AltiVec code out of main.
+
+ * gcc.dg/torture/type-generic-1.c: Don't use IBM 128-bit long double.
+ * g++.dg/torture/type-generic-1.C: Ditto.
+
+2008-08-26 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc.dg/vect/slp-18.c: Require vect_intfloat_cvt.
+ * gcc.dg/vect/slp-11.c: Likewise.
+ * gcc.dg/vect/fast-math-pr35982.c: Likewise.
+ * lib/target-supports.exp:
+ (check_effective_target_vect_pack_trunc): Add SPU to the list.
+ (check_effective_target_vect_extract_even_odd): Likewise.
+ (check_effective_target_vect_extract_even_odd_wide): Likewise.
+ (check_effective_target_vect_interleave): Likewise.
+
+2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * gcc.target/powerpc/altivec-volatile.c: New test.
+
+2008-08-25 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/extends_7.f03: New test.
+ * gfortran.dg/typebound_proc_7.f03: New test.
+ * gfortran.dg/typebound_proc_8.f03: New test.
+
+2008-08-24 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/octeon-pop-1.c: New test.
+
+2008-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37201
+ * gfortran.dg/bind_c_18.f90: New.
+
+2008-08-24 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/ipa/ipacost-1.c: New testcase.
+ * gcc.dg/ipa/ipacost-2.c: New testcase.
+ * gcc.dg/ipa/ipa-7.c: Update template.
+
+2008-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37201
+ * gfortran.dg/bind_c_usage_17.f90: New.
+ * gfortran.dg/bind_c_usage_17_c.c: New.
+
+2008-08-24 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/finalize_5.f03: Adapted expected error message to
+ changes to handling of CONTAINS in derived-type declarations.
+ * gfortran.dg/typebound_proc_1.f08: New test.
+ * gfortran.dg/typebound_proc_2.f90: New test.
+ * gfortran.dg/typebound_proc_3.f03: New test.
+ * gfortran.dg/typebound_proc_4.f03: New test.
+ * gfortran.dg/typebound_proc_5.f03: New test.
+ * gfortran.dg/typebound_proc_6.f03: New test.
+
+2008-08-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37076
+ * gfortran.dg/widechar_9.f90: New.
+
+2008-08-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37025
+ * gfortran.dg/widechar_8.f90: New.
+
+2008-08-23 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37174
+ * g++.dg/vect/pr37174.cc: New test.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37078
+ * gcc.c-torture/compile/pr37078.c: New testcase.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37143
+ * g++.dg/vect/pr37143.C: New testcase.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/30239
+ * gfortran.dg/duplicate_type_1.f90: New test.
+ * gfortran.dg/duplicate_type_2.f90: New test.
+
+2008-08-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/tree-ssa/pr21658.c (dg-options): Use -fdump-tree-ccp1-details.
+ (dg-final): Use cleanup-tree-dump "ccp1".
+ * gcc.dg/tree-prof/ic-misattribution-1a.c: Cleanup tree_profile.
+ * gcc.dg/ipa/iinline-1.c: Cleanup ipa dump, not tree dump.
+ * g++.dg/ipa/iinline-1.C: Ditto.
+ * gfortran.dg/intrinsic_std_1.f90: Cleanup "original" tree dump.
+ * gfortran.dg/char_eoshift_5.f90: Ditto.
+ * gfortran.dg/index_2.f90: Ditto.
+
+2008-08-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37184
+ * gcc.target/i386/pr37184.c: New test.
+
+ PR target/37191
+ * gcc.target/i386/pr37191.c: New test.
+
+ PR target/37197
+ * gcc.target/i386/pr37197.c: New test.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36548
+ PR middle-end/37125
+ * gcc.c-torture/execute/pr37125.c: New testcase.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/used_before_typed_4.f90: New test.
+
+2008-08-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/32095
+ PR fortran/34228
+ * gfortran.dg/used_before_typed_1.f90: New test.
+ * gfortran.dg/used_before_typed_2.f90: New test.
+ * gfortran.dg/used_before_typed_3.f90: New test.
+ * gfortran.dg/array_constructor_26.f03: Add -std=gnu to not enable
+ legacy-behaviour for the new check.
+ * gfortran.dg/array_constructor_27.f03: Ditto.
+ * gfortran.dg/blockdata_4.f90: Ditto.
+ * gfortran.dg/bound_2.f90: Reordered declarations to satisfy the check.
+ * gfortran.dg/result_in_spec_1.f90: Ditto.
+ * gfortran.dg/argument_checking_7.f90: Adapted expected error messages.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 30457
+ * gcc.dg/pr30457.c: New.
+
+2008-08-21 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/20011008-1.c: Test column.
+ * gcc.dg/20080820.c: New.
+ * gcc.dg/fltconst-1.c: Test column.
+ * gcc.dg/cpp/cpp.exp: Add -fno-show-column.
+ * gcc.dg/cpp/trad/trad.exp: Same.
+ * lib/gcc.exp (gcc_target_compile): Remove -fno-show-column.
+ * lib/gcc-dg.exp (process-message): Handle columns.
+
+2008-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ * g++.dg/opt/anchor1.C (foo): Return the return value of
+ ycf->ascent.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/vect/vect-fold-1.c: Scan ccp1 dump instead of dom1.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36817
+ * gcc.c-torture/compile/pr36817.c: New testcase.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-fre-13.c: Remove XFAIL.
+ * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-17.c: Likewise.
+ * gcc.dg/tree-ssa/data-dep-1.c: Likewise.
+ * gcc.dg/tree-ssa/ltrans-3.c: Likewise.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR testsuite/37182
+ * gcc.dg/pr17506.c: Remove duplicate testcase.
+ * gcc.dg/uninit-15.c: Adjust to allow for both correct
+ behaviors, one xfailed.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/179
+ * gcc.dg/uninit-6.c (make_something): Remove XFAIL.
+ * gcc.dg/uninit-6-O0.c (make_something): Remove XFAIL.
+ * gcc.dg/uninit-B.c (baz): Remove XFAIL.
+ * gcc.dg/uninit-B-2.c: New.
+ * gcc.dg/uninit-B-O0-2.c: New.
+ * gcc.dg/uninit-pr19430-O0.c: New.
+ * gcc.dg/uninit-pr19430.c: New.
+ * gcc.dg/uninit-pr19430-2.c: New.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/35158
+ * g++.dg/gomp/pr35158.C: New.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35701
+ * gcc.dg/pr35701.c: New.
+ * gcc.dg/Wconversion-real-integer.c: Add more tests.
+ * gcc.dg/Wconversion-pr34389.c: Update.
+ * g++.dg/warn/Wconversion-pr34389.C: Update.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/35602
+ * g++.dg/warn/pr35602.C: New.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/pr21829.c: Scan optimized and cddce2 dumps
+ instead of phicprop2. Make sure all is fine after cddce2,
+ add an XFAILed scan for merging the two remaining ifs.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/compile/20080820-1.c: New testcase.
+
+2008-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37171
+ * gcc.dg/pr37171.c: New test.
+
+2008-08-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/div_no_warning.adb: New test.
+
+2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37169
+ * i386/sse2-init-v2di-2.c: New.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/forwprop-9.c: Scan FRE dump as well.
+ * gcc.dg/tree-ssa/forwprop-10.c: New testcase.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/20030530-2.c: Scan dom2 dump.
+ * gcc.dg/tree-ssa/20030611-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030703-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030703-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030708-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030709-3.c: Likewise.
+ * gcc.dg/tree-ssa/20030710-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030711-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030711-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030711-3.c: Likewise.
+ * gcc.dg/tree-ssa/20030714-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030714-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030729-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030730-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030730-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030731-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-11.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-3.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-5.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-8.c: Likewise.
+ * gcc.dg/tree-ssa/20030807-9.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-1.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-2.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-3.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-4.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-5.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-6.c: Likewise.
+ * gcc.dg/tree-ssa/20030814-7.c: Likewise.
+ * gcc.dg/tree-ssa/20030922-1.c: Likewise.
+ * gcc.dg/tree-ssa/20040729-1.c: Likewise.
+ * gcc.dg/tree-ssa/20041122-1.c: Likewise.
+ * gcc.dg/tree-ssa/pr21417.c: Likewise.
+ * gcc.dg/tree-ssa/pr21829.c: Scan phicprop2 dump.
+ * gcc.dg/tree-ssa/ssa-dce-1.c: Scan dce2 dump.
+ * gcc.dg/tree-ssa/ssa-dce-2.c: Likewise.
+ * g++.dg/tree-ssa/pr31146.C: Remove XFAIL, adjust pattern.
+ * gfortran.dg/ldist-1.f90: Adjust.
+
+2008-08-20 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc.dg/vect/vect-multitypes-15.c: Fix typo.
+ * lib/target-supports.exp
+ (check_effective_target_vect_long_long): Remove spu-*-*.
+ * gcc.dg/vect/vect-multitypes-16.c: Make init loop unvectorizable.
+ * gcc.dg/vect/slp-widen-mult-u8.c: Likewise.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/pr20701.c: Scan vrp1 dump.
+ * gcc.dg/tree-ssa/ssa-dom-thread-1.c: Pass -fno-tree-vrp.
+ * gcc.dg/tree-ssa/ssa-pre-20.c: New testcase.
+
+2008-08-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.dg/torture/fp-int-convert-float.c: Reenable test on SPU.
+ * gcc.dg/torture/fp-int-convert-timode.c: Reenable "float" test on SPU.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-ccp-14.c: XFAIL.
+
+2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37157
+ * gcc.target/i386/sse2-unpack-1.c: New.
+
+2008-08-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37156
+ * gcc.dg/pr37156.c: New test.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35972
+ PR tree-optimization/23094
+ * gcc.dg/tree-ssa/ssa-pre-19.c: New testcase.
+ * gcc.dg/autopar/reduc-1.c: Move constant initialized arrays to
+ global memory.
+ * gcc.dg/autopar/reduc-1char.c: Likewise.
+ * gcc.dg/autopar/reduc-1short.c: Likewise.
+ * gcc.dg/autopar/reduc-2.c: Likewise.
+ * gcc.dg/autopar/reduc-2char.c: Likewise.
+ * gcc.dg/autopar/reduc-2short.c: Likewise.
+ * gcc.dg/autopar/reduc-3.c: Likewise.
+ * gcc.dg/tree-ssa/ifc-20040816-1.c: Likewise.
+ * gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Likewise.
+ * gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Likewise.
+ * gcc.dg/vect/fast-math-vect-reduc-5.c: Likewise.
+ * gcc.dg/vect/fast-math-vect-reduc-7.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-2.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-111.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c: Likewise.
+ * gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c: Likewise.
+ * gcc.dg/vect/no-vfa-vect-37.c: Likewise.
+ * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
+ * gcc.dg/vect/pr18400.c: Likewise.
+ * gcc.dg/vect/slp-12b.c: Likewise.
+ * gcc.dg/vect/slp-14.c: Likewise.
+ * gcc.dg/vect/slp-7.c: Likewise.
+ * gcc.dg/vect/slp-15.c: Likewise.
+ * gcc.dg/vect/slp-16.c: Likewise.
+ * gcc.dg/vect/slp-17.c: Likewise.
+ * gcc.dg/vect/slp-24.c: Likewise.
+ * gcc.dg/vect/slp-28.c: Likewise.
+ * gcc.dg/vect/slp-3.c: Likewise.
+ * gcc.dg/vect/slp-34.c: Likewise.
+ * gcc.dg/vect/slp-6.c: Likewise.
+ * gcc.dg/vect/slp-8.c: Likewise.
+ * gcc.dg/vect/vect-107.c: Likewise.
+ * gcc.dg/vect/vect-108.c: Likewise.
+ * gcc.dg/vect/vect-11.c: Likewise.
+ * gcc.dg/vect/vect-112.c: Likewise.
+ * gcc.dg/vect/vect-115.c: Likewise.
+ * gcc.dg/vect/vect-11a.c: Likewise.
+ * gcc.dg/vect/vect-34.c: Likewise.
+ * gcc.dg/vect/vect-9.c: Likewise.
+ * gcc.dg/vect/vect-97.c: Likewise.
+ * gcc.dg/vect/vect-align-1.c: Likewise.
+ * gcc.dg/vect/vect-float-extend-1.c: Likewise.
+ * gcc.dg/vect/vect-floatint-conversion-1.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-17.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-2.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-3.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-4.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-5.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-6.c: Likewise.
+ * gcc.dg/vect/vect-ifcvt-7.c: Likewise.
+ * gcc.dg/vect/vect-intfloat-conversion-1.c: Likewise.
+ * gcc.dg/vect/vect-intfloat-conversion-2.c: Likewise.
+ * gcc.dg/vect/vect-intfloat-conversion-3.c: Likewise.
+ * gcc.dg/vect/vect-intfloat-conversion-4a.c: Likewise.
+ * gcc.dg/vect/vect-intfloat-conversion-4b.c: Likewise.
+ * gcc.dg/vect/vect-multitypes-2.c: Likewise.
+ * gcc.dg/vect/vect-multitypes-5.c: Likewise.
+ * gcc.dg/vect/vect-reduc-1.c: Likewise.
+ * gcc.dg/vect/vect-reduc-1char.c: Likewise.
+ * gcc.dg/vect/vect-reduc-1short.c: Likewise.
+ * gcc.dg/vect/vect-reduc-2.c: Likewise.
+ * gcc.dg/vect/vect-reduc-3.c: Likewise.
+ * gcc.dg/vect/vect-shift-1.c: Likewise.
+ * gcc.dg/vect/vect-strided-float.c: Likewise.
+ * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.
+ * gcc.dg/vect/wrapv-vect-reduc-2char.c: Likewise.
+ * gcc.dg/vect/wrapv-vect-reduc-2short.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-11.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-11a.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
+ * gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: Likewise.
+
+2008-08-19 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/slp-multitypes-1.c: New testcase.
+ * gcc.dg/vect/slp-multitypes-2.c, gcc.dg/vect/slp-multitypes-3.c,
+ gcc.dg/vect/slp-multitypes-4.c, gcc.dg/vect/slp-multitypes-5.c,
+ gcc.dg/vect/slp-multitypes-6.c, gcc.dg/vect/slp-multitypes-7.c,
+ gcc.dg/vect/slp-multitypes-8.c, gcc.dg/vect/slp-multitypes-9.c,
+ gcc.dg/vect/slp-multitypes-10.c, gcc.dg/vect/slp-multitypes-11.c,
+ gcc.dg/vect/slp-multitypes-12.c, gcc.dg/vect/slp-widen-mult-u8.c,
+ gcc.dg/vect/slp-widen-mult-s16.c, gcc.dg/vect/vect-multitypes-16.c,
+ gcc.dg/vect/vect-multitypes-17.c: Likewise.
+ * gcc.dg/vect/slp-9.c: Now vectorizable using SLP.
+ * gcc.dg/vect/slp-14.c, gcc.dg/vect/slp-5.c: Likewise.
+ * lib/target-supports.exp (check_effective_target_vect_long_long): New.
+
+2008-08-18 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/ext-1.c: Add -mgp64 to dg-mips-options.
+
+2008-08-18 Steve Ellcey <sje@cup.hp.com>
+
+ * g++.dg/other/anon5.C: Skip on *-*-hpux*.
+
+2008-08-18 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/vect/no-vfa-pr29145.c: XFAIL if no_vect_align.
+
+2008-08-18 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.target/ia64/types-1.c: Change error to message.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR cpp/7263
+ * gcc.dg/cpp/pr7263-2.c: New.
+ * gcc.dg/cpp/pr7263-2.h: New.
+ * gcc.dg/cpp/pr7263-3.c: New.
+ * gcc.dg/cpp/pr7263-3.h: New.
+
+2008-08-18 Robert Dewar <dewar@adacore.com>
+
+ PR ada/30827
+ * gnat.dg/test_version.adb: New.
+
+2008-08-18 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/15808
+ * gnat.dg/specs/abstract_private.ads: New.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-alloca-1.c: Scan cfg dump instead of cleanup_cfg1.
+ * gcc.dg/fold-compare-3.c: Likewise.
+ * gcc.dg/tree-ssa/20030709-2.c: Scan cddce2 dump.
+ * gcc.dg/tree-ssa/20030808-1.c: Likewise.
+ * gcc.dg/tree-ssa/20040211-1.c: Likewise.
+ * gcc.dg/tree-ssa/20040305-1.c: Likewise.
+ * gcc.dg/tree-ssa/forwprop-1.c: Adjust pattern.
+ * gcc.dg/tree-ssa/forwprop-2.c: Likewise..
+ * gcc.dg/tree-ssa/ssa-dce-3.c: Scan cddce1 dump.
+
+2008-08-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36825
+ * gfortran.dg/rank_1.f90: Modify error message.
+
+2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35863
+ * gfortran.dg/utf8_1.f03: New test.
+ * gfortran.dg/utf8_2.f03: New test.
+
+2008-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * gcc.dg/pr30551-6.c: Skip for SPU.
+ * gcc.dg/pr30551-3.c: Likewise.
+ * gcc.dg/pr30551.c: Likewise.
+ * g++.dg/warn/pr30551-2.C: Likewise.
+ * g++.dg/warn/pr30551.C: Likewise.
+
+2008-08-14 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36705
+ * gfortran.dg/argument_checking_7.f90: Modified.
+ * gfortran.dg/conflicts.f90: Modified.
+ * gfortran.dg/proc_decl_1.f90: Modified.
+ * gfortran.dg/proc_ptr_9.f90: New.
+
+2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/34485
+ * g++.dg/template/crash81.C: New.
+ * g++.old-deja/g++.benjamin/tem03.C: Adjust.
+ * g++.old-deja/g++.benjamin/tem04.C: Likewise.
+ * g++.old-deja/g++.brendan/crash7.C: Likewise.
+
+2008-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/36886
+ * gfortran.dg/cshift_char_3.f90: New test case.
+ * gfortran.dg/cshift_nan_1.f90: New test case.
+
+2008-08-14 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * gcc.dg/visibility-14.c: New test.
+ * gcc.dg/visibility-15.c: New test.
+ * gcc.dg/visibility-16.c: New test.
+ * gcc.dg/visibility-17.c: New test.
+ * gcc.dg/visibility-18.c: New test.
+ * gcc.dg/visibility-19.c: New test.
+
+2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/34600
+ * g++.dg/parse/crash43.C: New.
+
+2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/28152
+ * gcc.dg/parser-pr28152.c: New.
+ * gcc.dg/parser-pr28152-2.c: New.
+
+2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
+
+ * gcc.dg/vect/vect-outer-4g.c: Change loop bound.
+ * gcc.dg/vect/vect-outer-4k.c: Likewise.
+ * gcc.dg/vect/vect-outer-4l.c: Likewise.
+ * gcc.dg/vect/vect-outer-4f.c: Likewise.
+ * gcc.dg/vect/vect-outer-4a.c: Vectorizable. Remove obsolete comment.
+ * gcc.dg/vect/vect-outer-4i.c: Likewise.
+ * gcc.dg/vect/vect-outer-4b.c: Likewise.
+ * gcc.dg/vect/vect-outer-4j.c: Likewise.
+
+2008-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37101
+ * gcc.target/i386/pr37101.c: New test.
+
+2008-08-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37103
+ * gcc.c-torture/execute/20080813-1.c: New test.
+
+2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/incoming-1.c: Skip *-*-darwin*.
+ * gcc.target/i386/incoming-2.c: Likewise.
+ * gcc.target/i386/incoming-3.c: Likewise.
+ * gcc.target/i386/incoming-4.c: Likewise.
+ * gcc.target/i386/incoming-5.c: Likewise.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 30551
+ * gcc.dg/pr30551.c: New.
+ * gcc.dg/pr30551-2.c: New.
+ * gcc.dg/pr30551-3.c: New.
+ * gcc.dg/pr30551-4.c: New.
+ * gcc.dg/pr30551-5.c: New.
+ * gcc.dg/pr30551-6.c: New.
+ * gcc.dg/tree-ssa/reassoc-3.c: Don't compile with -pedantic-errors.
+ * g++.dg/warn/pr30551.C: New.
+ * g++.dg/warn/pr30551-2.C: New.
+
+2008-08-13 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-ccp-21.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-ccp-22.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
+
+2008-08-13 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/36777
+ * gnat.dg/protected_self_ref1.adb, gnat.dg/protected_self_ref2.adb:
+ New.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/15236
+ * gcc.dg/pr15236.c: New.
+ * gcc.dg/torture/pr25183.c: Update.
+
+2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35635
+ * gcc.dg/pr35635.c: New.
+ * gcc.dg/Wconversion-integer.c: Update.
+ * gcc.dg/Wconversion-integer-no-sign.c: Update.
+ * gcc.dg/Wsign-conversion.c: Update.
+ * g++.dg/warn/pr35635.C: New.
+ * g++.dg/warn/Wconversion-integer.C: Update.
+ * g++.dg/warn/Wsign-conversion.C: Update.
+
+2008-08-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/15255
+ * gcc.dg/tree-ssa/reassoc-14.c: New testcase.
+ * gcc.dg/tree-ssa/reassoc-15.c: Likewise.
+ * gcc.dg/tree-ssa/reassoc-16.c: Likewise.
+ * gcc.dg/torture/reassoc-1.c: Likewise.
+ * gcc.dg/tree-ssa/recip-2.c: Adjust.
+ * gcc.dg/tree-ssa/recip-6.c: Likewise.
+ * gcc.dg/tree-ssa/recip-7.c: Likewise.
+ * gfortran.dg/reassoc_4.f: Likewise.
+
+2008-08-12 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.target/i386/pr32000-2.c: Use dg-skip-if for target expression.
+ * gcc.target/i386/stackalign/return-3.c: Ditto.
+ * gcc.target/sparc/ultrasp3.c: Ditto.
+ * lib/target-supports-dg.exp (dg-require-effective-target): Error
+ if argument is not a single effective-target keyword.
+
+ PR testsuite/36087
+ * gcc.dg/var-expand3.c: Fix name of dump file.
+
+2008-08-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * g++.old-deja/g++.other/decl5.C: Expand new expected errors.
+
+2008-08-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/37087
+ * g++.dg/template/crash80.C: New.
+ * g++.old-deja/g++.other/decl5.C: Adjust.
+
+2008-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37014
+ * gcc.c-torture/compile/20080812-1.c: New test.
+
+ PR tree-optimization/37084
+ * g++.dg/tree-ssa/pr37084.C: New test.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.c-torture/execute/20031003-1.c (main): Update test to
+ accommodate SPU single-precision rounding mode.
+ * gcc.c-torture/execute/conversion.c (test_float_to_integer,
+ test_float_to_longlong_integer): Likewise.
+ * gcc.c-torture/execute/ieee/rbug.c (main): Likewise.
+ * gcc.dg/hex-round-1.c: Skip test on SPU.
+ * gcc.dg/hex-round-2.c: Likewise.
+
+2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.c-torture/execute/ieee/inf-2.c (testf): Skip on the SPU.
+
+2008-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36688
+ * g++.dg/init/const6.C: New test.
+
+2008-08-12 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/vect-multitypes-12.c: New.
+ * gcc.dg/vect/vect-multitypes-13.c, gcc.dg/vect/vect-multitypes-14.c,
+ gcc.dg/vect/vect-multitypes-15.c : Likewise.
+ * gcc.dg/vect/vect-reduc-dot-u8a.c: Avoid vectorization of the
+ init loop.
+ * gcc.dg/vect/vect-72.c, gcc.dg/vect/vect-strided-store-a-u8-i2.c:
+ Likewise.
+ * gcc.dg/vect/vect-reduc-dot-u8b.c: Avoid vectorization of the init
+ loop.
+ Should be vectorizable on targets that support vector unpack.
+ * gcc.dg/vect/vect-widen-mult-u8.c,
+ gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c,
+ gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
+ * gcc.dg/vect/vect-35.c: Should be vectorizable on targets that
+ support vector pack. Avoid vectorization of the init loop.
+ * gcc.dg/vect/vect-reduc-pattern-1b.c: Should be vectorizable on
+ targets that support vector unpack.
+ * gcc.dg/vect/vect-reduc-pattern-2b.c,
+ gcc.dg/vect/vect-reduc-dot-s8c.c, gcc.dg/vect/vect-112.c: Likewise.
+
+2008-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36998
+ * gcc.dg/pr36998.c: New test.
+
+2008-08-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/20080806-1.c: Move testcase ...
+ * gcc.c-torture/compile/20080806-1.c: ... to here and make it
+ stack size sensitive.
+
+2008-08-10 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/exp0_eval.adb: New.
+
+2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/20644
+ * gcc.dg/uninit-pr20644-O0.c: New.
+ * gcc.dg/uninit-pr20644.c: New.
+
+2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 36901
+ * gcc.dg/pr36901.h: Do not depend on limits.h.
+ * gcc.dg/pr36901-3.c: Update.
+ * gcc.dg/pr36901-4.c: Update.
+
+2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36238
+ * gcc.c-torture/compile/pr36238.c: New testcase.
+
+2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * lib/target-supports.exp (check_profiling_available): Return false
+ for -p and -pg on MIPS16 targets.
+
+2008-08-09 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/inline-2.c: New testcase.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/17880
+ * gcc.dg/sequence-pt-pr17880.c: New.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/12242
+ * g++.dg/warn/pr12242.C: New.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 36901
+ * gcc.dg/pr36901-1.c: New.
+ * gcc.dg/pr36901-3.c: New.
+ * gcc.dg/pr36901-2.c: New.
+ * gcc.dg/pr36901-4.c: New.
+ * gcc.dg/pr36901-system.h: New.
+ * gcc.dg/pr36901.h: New.
+ * gcc.target/powerpc/altivec-macros.c: Update.
+ * gcc.target/i386/regparm.c: Update.
+ * gcc.dg/funcdef-var-1.c: Update.
+ * gcc.dg/parm-mismatch-1.c: Update.
+ * gcc.dg/attr-noinline.c: Update.
+ * gcc.dg/wtr-static-1.c: Update.
+ * gcc.dg/redecl-11.c: Update.
+ * gcc.dg/pr27953.c: Update.
+ * gcc.dg/proto-1.c: Update.
+ * gcc.dg/decl-3.c: Update.
+ * gcc.dg/redecl-13.c: Update.
+ * gcc.dg/pr15360-1.c: Update.
+ * gcc.dg/redecl-15.c: Update.
+ * gcc.dg/enum-compat-1.c: Update.
+ * gcc.dg/dll-3.c: Update.
+ * gcc.dg/array-5.c: Update.
+ * gcc.dg/Wredundant-decls-2.c: Update.
+ * gcc.dg/inline4.c: Update.
+ * gcc.dg/redecl-2.c: Update.
+ * gcc.dg/inline-14.c: Update.
+ * gcc.dg/tls/diag-3.c: Update.
+ * gcc.dg/funcdef-var-2.c: Update.
+ * gcc.dg/20041213-1.c: Update.
+ * gcc.dg/old-style-then-proto-1.c: Update.
+ * gcc.dg/decl-2.c: Update.
+ * gcc.dg/redecl-12.c: Update.
+ * gcc.dg/decl-4.c: Update.
+ * gcc.dg/Wshadow-1.c: Update.
+ * gcc.dg/transparent-union-2.c: Update.
+ * gcc.dg/visibility-7.c: Update.
+ * gcc.dg/dll-2.c: Update.
+ * gcc.dg/redecl-16.c: Update.
+ * gcc.dg/inline1.c: Update.
+ * gcc.dg/decl-8.c: Update.
+ * gcc.dg/nested-redef-1.c: Update.
+ * gcc.dg/inline3.c: Update.
+ * gcc.dg/redecl-1.c: Update.
+ * gcc.dg/inline5.c: Update.
+ * gcc.dg/pr35899.c: Update.
+ * gcc.dg/noncompile/label-lineno-1.c: Update.
+ * gcc.dg/noncompile/label-1.c: Update.
+ * gcc.dg/noncompile/20020220-1.c: Update.
+ * gcc.dg/noncompile/redecl-1.c: Update.
+ * gcc.dg/redecl-5.c: Update.
+ * gcc.dg/qual-return-3.c: Update.
+ * gcc.dg/label-decl-4.c: Update.
+
+2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 7651
+ * g++.dg/warn/Wuninitializable-member.C: New.
+ * g++.dg/warn/Wuninitializable-member-no.C: New.
+
+2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28875
+ * gcc.dg/unused-6-no.c: New.
+ * gcc.dg/unused-6-WallWextra.c: New.
+
+2008-08-08 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c++/35985
+ * g++.dg/inherit/base3.C: New.
+
+2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_vect_floatint_cvt):
+ Add powerpc.
+
+2008-08-08 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/finalize_9.f03: New test.
+ * gfortran.dg/module_md5_1.f90: Adapted MD5-sum for changed module
+ file format.
+
+2008-08-08 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-ccp-20.c: New testcase.
+
+2008-08-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37056
+ * gcc.c-torture/compile/pr37056.c: New testcase.
+
+2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/Wcxx-compat-2.c: Check for bool/_Bool.
+
+2008-08-07 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/decltype12.C: New.
+
+2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36992
+ * gcc.target/i386/pr36992-1.c: Scan movq.
+ * gcc.target/i386/pr36992-2.c: Use "-O2 -msse4" instead of
+ "-O0 -msse2". Scan movq.
+
+2008-08-07 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37042
+ * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: New testcase.
+
+2008-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.c-torture/compile/20080806-1.c: Move testcase ...
+ * gcc.target/s390/20080806-1.c: ... to here.
+
+2008-08-06 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/36460
+ * g++.dg/cpp0x/bracket3.C: Add another test case for the >>
+ warning under -Wc++0x-compat.
+ * g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460.
+
+2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/Wcxx-compat-2.c: Adjust test for more warnings.
+
+2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 26785
+ * g++.dg/warn/pr26785.C: New.
+
+2008-08-06 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c: New test.
+
+2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 8715
+ * gcc.dg/pr8715.c: New.
+ * g++.dg/warn/pr8715.C: New.
+
+2008-08-06 Marc Gauthier <marc@tensilica.com>
+
+ * lib/target-supports.exp (check_profiling_available): Match more
+ processor names for Xtensa.
+ * g++.old-deja/g++.jason/thunk3.C: Likewise.
+ * gcc.dg/intmax_t-1.c: Likewise.
+ * gcc.dg/sibcall-3.c: Likewise.
+ * gcc.dg/sibcall-4.c: Likewise.
+ * gcc.c-torture/compile/20001226-1.c: Likewise.
+
+2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37010
+ * gcc.dg/torture/stackalign/push-1.c: New.
+
+2008-08-06 Michael Matz <matz@suse.de>
+
+ PR target/36613
+ * gcc.target/i386/pr36613.c: New testcase.
+
+2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/37009
+ * gcc.dg/torture/stackalign/alloca-2.c: New.
+ * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
+ * gcc.dg/torture/stackalign/alloca-4.c: Likewise.
+ * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
+ * gcc.target/i386/incoming-1.c: Likewise.
+ * gcc.target/i386/incoming-2.c: Likewise.
+ * gcc.target/i386/incoming-3.c: Likewise.
+ * gcc.target/i386/incoming-4.c: Likewise.
+ * gcc.target/i386/incoming-5.c: Likewise.
+
+2008-08-06 Aldy Hernandez <aldyh@redhat.com>
+
+ PR middle-end/35432
+ * gcc.c-torture/compile/pr35432.c: New file.
+
+2008-08-06 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/iface_test.ad[s,b]: New test.
+ * gnat.dg/test_call.adb: New test.
+
+2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.c-torture/compile/20080806-1.c: New testcase.
+
+2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * gcc.target/ia64/20080802-1.c: New test.
+
+2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/37024
+ * gcc.dg/tree-ssa/tailcall-4.c: New testcase.
+
+2008-08-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37026
+ * gcc.c-torture/compile/pr37026.c: New testcase.
+
+2008-08-04 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/access_discr2.adb: New test.
+ * gnat.dg/not_null.adb: New test.
+
+2008-08-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36691
+ * gcc.c-torture/execute/pr36691.c: New testcase.
+
+2008-08-04 Victor Kaplansky <victork@il.ibm.com>
+
+ * gcc.dg/vect/vect-complex-5.c: New test.
+
+2008-08-04 Simon Baldwin <simonb@google.com>
+
+ PR c++/36999
+ * g++.dg/warn/pr36999.C: New.
+
+2008-08-04 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/bip_aggregate_bug.adb: New test.
+ * gnat.dg/test_ai254.adb: New test.
+
+2008-08-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * gfortran.dg/fmt_t_7.f: Replace CR-LF with LF.
+
+2008-08-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36992
+ * gcc.target/i386/pr36992-1.c: New test.
+ * gcc.target/i386/pr36992-2.c: Ditto.
+
+2008-08-02 Richard Guenther <rguenther@suse.de>
+
+ PR target/35252
+ * lib/target-supports.exp (vect_extract_even_odd_wide) Add.
+ (vect_strided_wide): Likewise.
+ * gcc.dg/vect/fast-math-pr35982.c: Enable for
+ vect_extract_even_odd_wide.
+ * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
+ * gcc.dg/vect/vect-1.c: Likewise.
+ * gcc.dg/vect/vect-107.c: Likewise.
+ * gcc.dg/vect/vect-98.c: Likewise.
+ * gcc.dg/vect/vect-strided-float.c: Likewise.
+ * gcc.dg/vect/slp-11.c: Enable for vect_strided_wide.
+ * gcc.dg/vect/slp-12a.c: Likewise.
+ * gcc.dg/vect/slp-12b.c: Likewise.
+ * gcc.dg/vect/slp-19.c: Likewise.
+ * gcc.dg/vect/slp-23.c: Likewise.
+ * gcc.dg/vect/slp-5.c: Likewise.
+
+2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/boolean_expr2.adb: New test.
+
+2008-08-01 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/conv4.adb: New test.
+ * gnat.dg/overloading.adb: New test.
+
+2008-08-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36991
+ * gcc.dg/pr36991.c: New test.
+
+2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/boolean_expr.ad[sb]: Rename to boolean_expr1.ad[sb].
+
+2008-08-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36997
+ * gcc.dg/pr36997.c: New testcase.
+
+2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/deferred_const1.adb: New test.
+ * gnat.dg/deferred_const2.adb: Likewise.
+ * gnat.dg/deferred_const2_pkg.ad[sb]: New helper.
+ * gnat.dg/deferred_const3.adb: New test.
+ * gnat.dg/deferred_const3_pkg.ad[sb]: New helper.
+
+2008-08-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36988
+ * gcc.c-torture/compile/pr36988.c: New testcase.
+
+2008-08-01 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/raise_from_pure.ad[bs],
+ * gnat.dg/wrap_raise_from_pure.ad[bs]: Support for ...
+ * gnat.dg/test_raise_from_pure.adb: New test.
+
+2008-07-31 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/ext-1.c: New test.
+
+2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr10.ad[sb]: New test.
+
+2008-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35100
+ * gcc.target/powerpc/longcall-1.c: New test.
+
+ PR preprocessor/36649
+ * gcc.dg/pch/cpp-3.hs: Add include guards.
+ * gcc.dg/pch/cpp-3a.h: Likewise.
+ * gcc.dg/pch/cpp-3b.h: Likewise.
+ * gcc.dg/cpp/mi8.c: New test.
+ * gcc.dg/cpp/mi8a.h: New file.
+ * gcc.dg/cpp/mi8b.h: New file.
+ * gcc.dg/cpp/mi8c.h: New file.
+ * gcc.dg/cpp/mi8d.h: New file.
+
+ PR rtl-optimization/36419
+ * g++.dg/eh/async-unwind2.C: New test.
+
+ PR c++/36405
+ * g++.dg/rtti/typeid8.C: New test.
+
+2008-07-31 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36978
+ * gcc.dg/torture/pr36978.c: New testcase.
+
+2008-07-31 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/sync_iface_test.ad[s,b]: New test.
+
+ * gnat.dg/specs/sync_iface_test.ads: New test.
+ * gnat.dg/specs/null_aggr_bug.ads: New test.
+
+2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.dg/torture/stackalign/pr16660-1.c: Include "check.h".
+ (f): Align to 64 byte. Use check instead of asm statement.
+
+2008-07-31 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/missing_acc_check.adb: New test.
+
+2008-07-31 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/uninit-1-O0.c: New testcase.
+ * gcc.dg/uninit-2-O0.c: Likewise.
+ * gcc.dg/uninit-3-O0.c: Likewise.
+ * gcc.dg/uninit-4-O0.c: Likewise.
+ * gcc.dg/uninit-5-O0.c: Likewise.
+ * gcc.dg/uninit-6-O0.c: Likewise.
+ * gcc.dg/uninit-8-O0.c: Likewise.
+ * gcc.dg/uninit-9-O0.c: Likewise.
+ * gcc.dg/uninit-A-O0.c: Likewise.
+ * gcc.dg/uninit-B-O0.c: Likewise.
+ * gcc.dg/uninit-C-O0.c: Likewise.
+ * gcc.dg/uninit-D-O0.c: Likewise.
+ * gcc.dg/uninit-E-O0.c: Likewise.
+ * gcc.dg/uninit-F-O0.c: Likewise.
+ * gcc.dg/uninit-G-O0.c: Likewise.
+ * gcc.dg/uninit-H-O0.c: Likewise.
+ * gcc.dg/uninit-I-O0.c: Likewise.
+ * gcc.dg/uninit-10-O0.c: Likewise.
+ * gcc.dg/uninit-11-O0.c: Likewise.
+ * gcc.dg/uninit-12-O0.c: Likewise.
+ * gcc.dg/uninit-13-O0.c: Likewise.
+ * gcc.dg/uninit-14-O0.c: Likewise.
+ * gcc.dg/uninit-15-O0.c: Likewise.
+ * gcc.dg/Wall.c: Avoid uninitialized warning.
+ * gcc.dg/Wno-all.c: Likewise.
+ * gcc.dg/pr3074-1.c: Likewise.
+
+2008-07-31 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/specs/genericppc.ads: New test.
+
+2008-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/36970
+ * gcc.dg/free-1.c: New test.
+ * gcc.dg/free-2.c: New test.
+
+ PR debug/36278
+ * g++.dg/debug/namespace2.C: New test.
+
+ PR preprocessor/36649
+ * gcc.dg/pch/cpp-3.c: New test.
+ * gcc.dg/pch/cpp-3.hs: New file.
+ * gcc.dg/pch/cpp-3a.h: New file.
+ * gcc.dg/pch/cpp-3b.h: New file.
+
+2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/boolean_expr.ad[sb]: New test.
+
+2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
+ Joey Ye <joey.ye@intel.com>
+
+ * gcc.dg/dfp/func-vararg-alternate-d128-2.c: New.
+ * gcc.dg/dfp/func-vararg-mixed-2.c: Likewise.
+ * gcc.dg/torture/stackalign/alloca-1.c: Likewise.
+ * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise.
+ * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
+ * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise.
+ * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise.
+ * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise.
+ * gcc.dg/torture/stackalign/check.h: Likewise.
+ * gcc.dg/torture/stackalign/comp-goto-1.c: Likewise.
+ * gcc.dg/torture/stackalign/fastcall-1.c: Likewise.
+ * gcc.dg/torture/stackalign/global-1.c: Likewise.
+ * gcc.dg/torture/stackalign/inline-1.c: Likewise.
+ * gcc.dg/torture/stackalign/inline-2.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-1.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-2.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-3.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-4.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-5.c: Likewise.
+ * gcc.dg/torture/stackalign/nested-6.c: Likewise.
+ * gcc.dg/torture/stackalign/non-local-goto-1.c: Likewise.
+ * gcc.dg/torture/stackalign/non-local-goto-2.c: Likewise.
+ * gcc.dg/torture/stackalign/non-local-goto-3.c: Likewise.
+ * gcc.dg/torture/stackalign/non-local-goto-4.c: Likewise.
+ * gcc.dg/torture/stackalign/non-local-goto-5.c: Likewise.
+ * gcc.dg/torture/stackalign/pr16660-1.c: Likewise.
+ * gcc.dg/torture/stackalign/pr16660-2.c: Likewise.
+ * gcc.dg/torture/stackalign/pr16660-3.c: Likewise.
+ * gcc.dg/torture/stackalign/regparm-1.c: Likewise.
+ * gcc.dg/torture/stackalign/ret-struct-1.c: Likewise.
+ * gcc.dg/torture/stackalign/setjmp-1.c: Likewise.
+ * gcc.dg/torture/stackalign/setjmp-2.c: Likewise.
+ * gcc.dg/torture/stackalign/setjmp-3.c: Likewise.
+ * gcc.dg/torture/stackalign/setjmp-4.c: Likewise.
+ * gcc.dg/torture/stackalign/sibcall-1.c: Likewise.
+ * gcc.dg/torture/stackalign/stackalign.exp: Likewise.
+ * gcc.dg/torture/stackalign/struct-1.c: Likewise.
+ * gcc.dg/torture/stackalign/vararg-1.c: Likewise.
+ * gcc.dg/torture/stackalign/vararg-2.c: Likewise.
+ * gcc.target/i386/align-main-1.c: Likewise.
+ * gcc.target/i386/align-main-2.c: Likewise.
+ * gcc.target/i386/pr32000-2.c: Likewise.
+ * gcc.target/i386/stackalign/asm-1.c: Likewise.
+ * gcc.target/i386/stackalign/return-1.c: Likewise.
+ * gcc.target/i386/stackalign/return-2.c: Likewise.
+ * gcc.target/i386/stackalign/return-3.c: Likewise.
+ * gcc.target/i386/stackalign/return-4.c: Likewise.
+ * gcc.target/i386/stackalign/return-5.c: Likewise.
+ * gcc.target/i386/stackalign/return-6.c: Likewise.
+ * gcc.target/i386/stackalign/stackalign.exp: Likewise.
+ * g++.dg/torture/stackalign/check.h: Likewise.
+ * g++.dg/torture/stackalign/eh-alloca-1.C: Likewise.
+ * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
+ * g++.dg/torture/stackalign/eh-global-1.C: Likewise.
+ * g++.dg/torture/stackalign/eh-inline-1.C: Likewise.
+ * g++.dg/torture/stackalign/eh-inline-2.C: Likewise.
+ * g++.dg/torture/stackalign/eh-vararg-1.C: Likewise.
+ * g++.dg/torture/stackalign/eh-vararg-2.C: Likewise.
+ * g++.dg/torture/stackalign/stackalign.exp: Likewise.
+ * g++.dg/torture/stackalign/stdcall-1.C: Likewise.
+ * g++.dg/torture/stackalign/test-unwind.h: Likewise.
+ * g++.dg/torture/stackalign/throw-1.C: Likewise.
+ * g++.dg/torture/stackalign/throw-2.C: Likewise.
+ * g++.dg/torture/stackalign/throw-3.C: Likewise.
+ * g++.dg/torture/stackalign/throw-4.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-0.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-1.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-2.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-3.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-4.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-5.C: Likewise.
+ * g++.dg/torture/stackalign/unwind-6.C: Likewise.
+
+ * gcc.target/i386/20060512-1.c: Add -mpreferred-stack-boundary=4.
+ (main): Move "popl" after check.
+ * gcc.target/i386/20060512-3.c: Likewise.
+
+ * gcc.target/i386/20060512-2.c: Add -mpreferred-stack-boundary=4.
+ Remove dg-error.
+
+ * gcc.target/i386/20060512-4.c: Add -mpreferred-stack-boundary=4.
+ Remove dg-warning.
+
+ * lib/target-supports.exp (check_effective_target_unaligned_stack):
+ Always return 0.
+ (check_effective_target_automatic_stack_alignment): New.
+
+2008-07-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36967
+ * gfortran.dg/pr36967.f: New testcase.
+
+2008-07-30 Rafael Ãvila de Espíndola <espindola@google.com>
+
+ * gcc.dg/visibility-14.c: New test.
+ * gcc.dg/visibility-15.c: New test.
+ * gcc.dg/visibility-16.c: New test.
+ * gcc.dg/visibility-17.c: New test.
+ * gcc.dg/visibility-18.c: New test.
+ * gcc.dg/visibility-19.c: New test.
+
+2008-07-30 Dodji Seketeli <dseketel@redhat.com>
+
+ PR c++/36767
+ * g++.dg/parse/crash42.C: New test.
+
+2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34389
+ * gcc.dg/Wconversion-pr34389.c: New.
+ * g++.dg/warn/Wconversion-pr34389.C: New.
+
+2008-07-29 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/pr32370.c: Force 64 bits on IA64.
+
+2008-07-29 Paul Thomas <pault@gcc.gnu.org>
+
+ * gfortran.dg/extends_1.f03: New test.
+ * gfortran.dg/extends_2.f03: New test.
+ * gfortran.dg/extends_3.f03: New test.
+ * gfortran.dg/extends_4.f03: New test.
+ * gfortran.dg/extends_5.f03: New test.
+ * gfortran.dg/extends_6.f03: New test.
+ * gfortran.dg/private_type_6.f90: Modify error message.
+ * gfortran.dg/structure_constructor_7.f03: Modify error message.
+ * gfortran.dg/structure_constructor_8.f03: Modify error message.
+
+2008-07-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36945
+ * gcc.dg/tree-ssa/ssa-pre-18.c: New testcase.
+
+2008-07-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36852
+ * g++.dg/pch/array-1.C: New test.
+ * g++.dg/pch/array-1.Hs: New file.
+
+2008-07-29 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/20040206-1.c: Expect frontend warning now.
+
+2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34985
+ * gcc.dg/pr34985.c: New.
+ * g++.dg/warn/pr34985.C: New.
+
+2008-07-29 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36403
+ * gfortran.dg/char_eoshift_5.f90: New test.
+ * gfortran.dg/intrinsic_optional_char_arg_1.f90: New test.
+
+2008-07-28 Richard Guenther <rguenther@suse.de>
+
+ Merge from gimple-tuples-branch.
+
+ * gcc.c-torture/compile/20080721-1.c: New testcase.
+ * gcc.dg/torture/20080716-1.c: Likewise.
+ * gcc.dg/tree-ssa/tailcall-3.c: Likewise.
+ * gcc.dg/tree-ssa/20080530.c: Likewise.
+ * gcc.dg/20080615-1.c: Likewise.
+ * g++.dg/torture/pr36826.C: Likewise.
+ * gcc.dg/fold-alloca-1.c: Look into cleanup_cfg1 dump instead of
+ useless dump.
+ * gcc.dg/tree-ssa/pr21658.c: Update search pattern.
+ * gfortran.dg/gomp/block-1.f90: Adjust dg-error.
+ * gcc.dg/tree-ssa/20030728-1.c: Test final_cleanup instead of
+ optimized dump.
+
+2008-07-28 Simon Baldwin <simonb@google.com>
+
+ * gcc.dg/pragma-message.c: New.
+
+2008-07-27 Victor Kaplansky <victork@il.ibm.com>
+
+ PR tree-optimization/35252
+ * gcc.dg/vect/vect-complex-1.c, gcc.dg/vect/vect-complex-2.c,
+ gcc.dg/vect/fast-math-vect-complex-3.c,
+ gcc.dg/vect/vect-complex-4.c: New tests.
+
+2008-07-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c++/36944
+ * g++.dg/other/pr36944.C: New.
+
+2008-07-27 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/36724
+ * gfortran.dg/pointer_to_substring.f90: New test.
+
+2008-07-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36132
+ PR fortran/29952
+ PR fortran/36909
+ * gfortran.dg/internal_pack_4.f90: New.
+ * gfortran.dg/internal_pack_5.f90: New.
+ * gfortran.dg/array_temporaries_2.f90: New.
+
+2008-07-26 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36934
+ * gfortran.dg/allocatable_module_1.f90: New test case.
+
+2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36936
+ * gcc.target/i386/cmov8.c: New.
+ * gcc.target/i386/funcspec-10.c: Likewise.
+ * gcc.target/i386/funcspec-11.c: Likewise.
+
+2008-07-25 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_arm_thumb1_ok):
+ New.
+ * g++.dg/inherit/thunk8.C: Use it.
+
+2008-07-24 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/winline-4.c: Remove.
+ * gcc.dg/pch/valid-3.hs: Remove.
+ * gcc.dg/pch/valid-3.c: Remove.
+ * g++.old-deja/g++.brendan/crash52.C: Accept returning void warning
+ * g++.old-deja/g++.jason/report.C: Likewise.
+ * testsuite/g++.dg/warn/pr23075.C: We get returning void warning
+ instead of control flow warning.
+
+2008-07-24 Daniel Kraft <d@domob.eu>
+
+ PR fortran/33141
+ * gfortran.dg/intrinsic_shadow_1.f03: New test for -Wintrinsic-shadow.
+ * gfortran.dg/intrinsic_shadow_2.f03: Ditto.
+ * gfortran.dg/intrinsic_shadow_3.f03: Ditto.
+ * gfortran.dg/intrinsic_std_1.f90: New test for -Wintrinsics-std.
+ * gfortran.dg/intrinsic_std_2.f90: Ditto.
+ * gfortran.dg/intrinsic_std_3.f90: Ditto.
+ * gfortran.dg/intrinsic_std_4.f90: Ditto.
+ * gfortran.dg/warn_std_1.f90: Removed option -Wnonstd-intrinsics.
+ * gfortran.dg/warn_std_2.f90: Replaced -Wnonstd-intrinsics by
+ -Wintrinsics-std and adapted expected errors/warnings.
+ * gfortran.dg/warn_std_3.f90: Ditto.
+ * gfortran.dg/c_sizeof_2.f90: Adapted expected error/warning message.
+ * gfortran.dg/gamma_2.f90: Ditto.
+ * gfortran.dg/selected_char_kind_3.f90: Ditto.
+ * gfortran.dg/fmt_g0_2.f08: Call with -fall-intrinsics to allow abort.
+
+2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/29952
+ * gfortran.dg/array_temporaries_1.f90: New test case.
+
+2008-07-23 Ian Lance Taylor <iant@google.com>
+
+ * gcc.target/i386/20080723-1.c: New test.
+
+2008-07-24 Ben Elliston <bje@au.ibm.com>
+
+ * gcc.target/spu/vector.c: New test.
+ * gcc.target/spu/vector-ansi.c: Likewise.
+
+2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35058
+ * gcc.dg/Wdeclaration-after-statement-3.c: New.
+ * gcc.dg/Wpointer-arith.c: New.
+
+2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/36852
+ * gfortran.dg/namelist_52.f90: New test.
+
+2008-07-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_spu_auto_overlay):
+ New procedure.
+ * lib/compat.exp (compat-execute): Use it to test whether toolchain
+ supports automatic overlay generation for the SPU.
+
+2008-07-22 Daniel Kraft <d@domob.eu>
+
+ PR fortran/29835
+ * gfortran.dg/fmt_error_3.f90: New test.
+ * gfortran.dg/fmt_error_4.f90: New test.
+ * gfortran.dg/fmt_error_5.f90: New test.
+
+2008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28079
+ * gcc.dg/cpp/line6.c: New.
+
+2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * gfortran.dg/fmt_g0_3.f08: Fix typo in expected error message.
+
+2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36871
+ PR c++/36872
+ * g++.dg/ext/has_nothrow_copy.C: Rename to...
+ * g++.dg/ext/has_nothrow_copy-1.C: ... this.
+ * g++.dg/ext/has_nothrow_copy-2.C: New.
+ * g++.dg/ext/has_nothrow_copy-3.C: Likewise.
+ * g++.dg/ext/has_nothrow_copy-4.C: Likewise.
+ * g++.dg/ext/has_nothrow_copy-5.C: Likewise.
+ * g++.dg/ext/has_nothrow_copy-6.C: Likewise.
+ * g++.dg/ext/has_nothrow_copy-7.C: Likewise.
+
+2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/36773
+ * gfortran.dg/zero_sized_5.f90: New test case.
+
+2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36870
+ * g++.dg/ext/has_nothrow_assign_odr.C: New.
+ * g++.dg/ext/has_nothrow_copy_odr.C: Likewise.
+ * g++.dg/ext/has_nothrow_constructor_odr.C: Likewise.
+ * g++.dg/ext/has_nothrow_assign.C: Adjust.
+ * g++.dg/ext/has_nothrow_copy.C: Likewise.
+ * g++.dg/ext/has_nothrow_constructor.C: Likewise.
+
+2008-07-17 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/36822
+ * gcc.target/s390/pr36822.c: New testcase.
+
+2008-07-21 Hans-Peter Nilsson <hp@axis.com>
+
+ PR middle-end/36143
+ * g++.dg/tree-ssa/pr19637.C: XFAIL.
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: Skip for CRIS.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+ PR middle-end/36509
+ * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: XFAIL.
+
+2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/36879
+ * gcc.c-torture/execute/20080719-1.c: New testcase.
+
+2008-07-20 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcc.dg/tree-ssa/data-dep-1.c: XFAIL.
+
+2008-07-20 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc.dg/tree-ssa/ssa-fre-7.c: XFAIL.
+ * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-fre-9.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-fre-13.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-fre-14.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-fre-17.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-pre-15.c: Ditto.
+ * gcc.dg/tree-ssa/loadpre1.c: PASS.
+
+2008-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36877
+ * gcc.dg/gomp/atomic-11.c: New test.
+
+2008-07-19 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36795
+ * char_expr_1.f90: New.
+ * char_expr_2.f90: New.
+
+2008-07-19 Olivier Hainque <hainque@adacore.com>
+
+ * gcc.dg/mallign.c: New test.
+ * gnat.dg/allocator_maxalign1.adb: New test.
+ * gnat.dg/test_allocator_maxalign2.adb: Main caller for ...
+ * gnat.dg/allocator_maxalign2.ad[bs]: New test.
+
+2008-07-19 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/intrinsic_argument_conformance_2.f90: New.
+ * gfortran.dg/zero_sized_1.f90: Fix conformance bugs.
+
+2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ * g++.dg/ext/utf-array.C: Fix broken merge/checkin.
+ * g++.dg/ext/utf-array-short-wchar.C: Idem
+ * gcc.dg/utf-array.c: Idem
+ * gcc.dg/utf-array-short-wchar.c: Idem
+
+2008-07-18 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/fshort-wchar.c: Use -Wl,--no-wchar-size-warning on
+ arm*-*-*eabi.
+
+2008-07-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36786
+ * gcc.target/i386/pr36786.c: New test.
+
+2008-07-18 Dodji Seketeli <dseketel@redhat.com>
+
+ PR c++/36407
+ * g++.dg/conversion/op5.C: New testcase.
+
+2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ * g++.dg/ext/utf-array.C: Fix broken merge/checkin.
+ * g++.dg/ext/utf-array-short-wchar.C: Idem
+ * gcc.dg/utf-array.c: Idem
+ * gcc.dg/utf-array-short-wchar.c: Idem
+
+2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ Tests for char16_t and char32_t support.
+ * g++.dg/ext/utf-array.C: New
+ * g++.dg/ext/utf-array-short-wchar.C: New
+ * g++.dg/ext/utf-rtti.C: New
+ * g++.dg/ext/utf-type.c: New
+ * gcc.dg/utf-array.c: New
+ * gcc.dg/utf-array-short-wchar.c: New
+ * gcc.dg/utf-inc-init.c: New
+ * gcc.dg/utf-type.c: New
+
+2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36859
+ * gcc.target/i386/vararg-2.c: New.
+
+2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/36858
+ * gcc.target/i386/vararg-1.c: New.
+
+2008-07-18 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/parameter_array_init_4.f90: Silence pedantic warning.
+
+2008-07-17 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/tree_static_def.ad[bs]: Support for ...
+ * gnat.dg/tree_static_use.adb: New test.
+ * gnat.dg/decl_ctx_def.ads: Support for ...
+ * gnat.dg/decl_ctx_use.ad[bs]: New test.
+
+2008-07-17 Julian Brown <julian@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/ext/visibility/arm3.C: Add explanatory text. Skip on
+ non-DLL targets.
+ * g++.dg/ext/visibility/arm1.C: Skip on non-DLL targets.
+
+2008-07-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36855
+ * g++.dg/ext/has_trivial_destructor.C: Rename to...
+ * g++.dg/ext/has_trivial_destructor-1.C: ... this.
+ * g++.dg/ext/has_trivial_destructor-2.C: New.
+
+2008-07-17 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/36753
+ * gcc.target/i386/pr36753.c: New.
+
+2008-07-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36825
+ PR fortran/36824
+ * gfortran.dg/rank_2.f90: Add additional array-rank test.
+ * gfortran.dg/array_4.f90: New.
+
+2008-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/36443
+ * objc.dg/gnu-encoding/gnu-encoding.exp: Temporarily unset
+ GCC_EXEC_PREFIX from environment when running $HOSTCC.
+
+2008-07-16 Dodji Seketeli <dseketel@redhat.com>
+
+ PR c++/13699
+ * g++.dg/lookup/extern-c-redecl.C: New test.
+
+2008-07-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36369
+ * gcc.dg/Wstrict-aliasing-bogus-ref-all.c: New testcase.
+
+2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31568
+ * gcc.target/powerpc/asm-y.c: New testcase.
+
+2008-07-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * case_optimization1.ad[sb]: New test.
+ * case_optimization_pkg1.ads: New helper.
+
+2008-07-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36745
+ * g++.dg/torture/pr36745.C: Use __SIZE_TYPE__ in size_t typedef.
+
+2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/36745
+ * g++.dg/torture/pr36745.C: New testcase.
+
+2008-07-14 Ben Elliston <bje@au.ibm.com>
+
+ * gcc.target/powerpc/altivec-macros.c: New test.
+ * gcc.target/powerpc/altviec-26.c: Likewise.
+ * gcc.dg/vmx/1b-06.c: Remove bool variable.
+ * gcc.dg/vmx/1b-07.c: Likewise.
+ * gcc.dg/vmx/1b-06-ansi.c: New test for the pre-define method.
+ * gcc.dg/vmx/1b-07-ansi.c: Likewise.
+
+2008-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36725
+ gfortran.dg/fmt_go_4.f08: New test.
+
+2008-07-14 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/35492
+ * gcc.c-torture/compile/pr35492.c: New test.
+
+2008-07-12 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/used_types_21.f90: New test.
+
+2008-07-11 Ian Lance Taylor <iant@google.com>
+
+ * gcc.dg/Wcxx-compat-2.c: New test.
+
+2008-07-11 Dodji Seketeli <dseketel@redhat.com>
+
+ PR c++/13101
+ * g++.dg/parse/func-ptr-decl.C: New test.
+ * g++.old-deja/g++.jason/crash11.C: Update this to
+ catch a warning that is generated by virtue of fixing this bug.
+
+2008-07-11 Dodji Seketeli <dseketel@redhat.com>
+
+ * g++.dg/other/semicolon.C: Tighten this test, making it column aware.
+ * g++.dg/parse/error15.C: update this because of more accurate column
+ numbers in error reporting.
+ * g++.old-deja/g++.brendan/crash16.C: Tighten the test, making it
+ column aware.
+ * g++.old-deja/g++.law/ctors5.C: Likewise.
+ * g++.old-deja/g++.other/crash25.C: Likewise.
+
+2008-06-30 Dodji Seketeli <dseketel@redhat.com>
+
+ * g++.dg/parse/constructor1.C, g++.dg/parse/error*.C: Update these
+ tests to make them catch column number regressions. Make these tests
+ run with the -fshow-column option.
+ * g++.dg/parse/error-column.C: new column number test.
+
+2008-07-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36765
+ * gcc.c-torture/execute/pr36765.c: New testcase.
+
+2008-07-10 Joseph Myers <joseph@codesourcery.com>
+
+ PR middle-end/29056
+ * gcc.target/powerpc/ppc-negeq0-1.c: Use long instead of int.
+ Adjust shift and scan-assembler-not pattern to allow for 64-bit
+ case.
+
+2008-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36790
+ * gcc.dg/gomp/pr36790.c: New test.
+ * g++.dg/gomp/pr36790.C: New test.
+
+ PR rtl-optimization/36419
+ * g++.dg/eh/async-unwind1.C: New test.
+
+2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+
+ PR other/28322
+ * gcc.dg/pr28322-2.c: Check that emitted diagnostic for -Wno-foobar
+ is a warning and not an error.
+
+2008-07-09 Ian Lance Taylor <iant@google.com>
+
+ * gcc.dg/no-asm-1.c: New test.
+ * gcc.dg/no-asm-2.c: New test.
+ * gcc.dg/no-asm-3.c: New test.
+ * gcc.dg/no-asm-4.c: New test.
+ * g++.dg/ext/no-asm-1.C: New test.
+ * g++.dg/ext/no-asm-2.C: New test.
+ * g++.dg/ext/no-gnu-keywords-1.C: New test.
+
+2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36760
+ * g++.dg/warn/Wreturn-type-4.C: Adjust.
+
+2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/35802
+ * gcc.target/mips/pr35802.c: New test.
+
+2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36760
+ * g++.dg/warn/pragma-system_header5.C: New.
+ * g++.dg/warn/pragma-system_header5.h: Likewise.
+
+2008-07-09 Raksit Ashok <raksit@google.com>
+
+ * gcc.dg/wdisallowed-functions-1.c: New test.
+ * gcc.dg/wdisallowed-functions-2.c: New test.
+ * g++.dg/warn/Wdisallowed-functions-1.C: New test.
+ * g++.dg/warn/Wdisallowed-functions-2.C: New test.
+
+2008-07-08 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/34963
+ * g++.dg/parse/dtor13.C: New test.
+
+2008-07-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.dg/compat/struct-layout-1_generate.c (vector_types): Add
+ v32qi, v16hi, v8si, v4di, v8sf, v4df, u32qi, u16hi, u8si, u4di,
+ u8sf and u4df.
+
+ * gcc.dg/compat/union-m128-1_main.c: Run only on x86. Remove
+ __x86_64__ check. Include "cpuid.h".
+ (main): Check SSE2 at runtime.
+
+ * gcc.dg/compat/union-m128-1_x.c: Compile with -msse2. Remove
+ __x86_64__ check.
+ * gcc.dg/compat/union-m128-1_y.c: Likewise.
+
+ * gcc.dg/compat/vector-1_x.c: Add 32byte vector tests.
+ * gcc.dg/compat/vector-1_y.c: Likewise.
+ * gcc.dg/compat/vector-2_x.c: Likewise.
+ * gcc.dg/compat/vector-2_y.c: Likewise.
+
+ * gcc.dg/compat/vector-1a_main.c: New.
+ * gcc.dg/compat/vector-1a_x.c: Likewise.
+ * gcc.dg/compat/vector-1a_y.c: Likewise.
+ * gcc.dg/compat/vector-2a_main.c: Likewise.
+ * gcc.dg/compat/vector-2a_x.c: Likewise.
+ * gcc.dg/compat/vector-2a_y.c: Likewise.
+
+ * gcc.dg/compat/vector-defs.h (v32qi): New.
+ (v16hi): Likewise.
+ (v8si): Likewise.
+ (v4di): Likewise.
+ (v8sf): Likewise.
+ (v4df): Likewise.
+ (u32qi): Likewise.
+ (u16hi): Likewise.
+ (u8si): Likewise.
+ (u4di): Likewise.
+ (u8sf): Likewise.
+ (u4df): Likewise.
+
+ * lib/compat.exp (compat-get-options-main): Support dg-skip-if.
+
+2008-07-07 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.c-torture/compile/20080625-1.c: Skip for AVR target.
+ * gcc.dg/torture/pr36373-10.c: Correct test where target pointer
+ is not same size as unsigned long.
+
+2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36670
+ * gfortran.dg/product_sum_bounds_1.f90: New test case.
+
+2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36341
+ PR fortran/34670
+ * gfortran.dg/matmul_bounds_2.f90: New test.
+ * gfortran.dg/matmul_bounds_3.f90: New test.
+ * gfortran.dg/matmul_bounds_4.f90: New test.
+ * gfortran.dg/matmul_bounds_5.f90: New test.
+
+2008-07-07 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/torture/pta-ptrarith-1.c: New testcase.
+ * gcc.dg/torture/pta-ptrarith-2.c: Likewise.
+ * gcc.dg/torture/ipa-pta-1.c: Likewise.
+
+2008-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36726
+ * gfortran.dg/gomp/pr36726.f90: New test.
+
+2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Expect the
+ macros to be defined for MIPS16 too.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-3.c: New test.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-4.c: Likewise.
+
+2008-07-06 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/pta-callused.c: Adjust testcase.
+
+2008-07-06 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/callabi/callabi.h: New.
+ * gcc.dg/callabi/vaarg-1.c: New.
+ * gcc.dg/callabi/vaarg-2.c: New.
+ * gcc.dg/callabi/vaarg-3.c: New.
+ * gcc.dg/callabi/func-1.c: New.
+
+2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * g++.dg/tree-ssa/ptrmemfield.C: New testcase.
+
+2008-07-05 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/gcc-dg.exp (remove-build-file): Remove files on remote host
+ as well as on build.
+
+2008-07-04 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/pta-callused.c: New testcase.
+
+2008-07-04 Richard Sandiford <richard@codesourcery.com>
+
+ * gcc.target/m68k/interrupt-2.c: New file.
+ * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL for m68k*-*-*.
+
+2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.dg/compat/struct-by-value-17a_x.c: Remove duplicated code.
+ * gcc.dg/compat/struct-by-value-17a_y.c: Likewise.
+
+2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization3.adb: New test.
+ * gnat.dg/loop_optimization3_pkg.ad[sb]: New helper.
+
+2008-07-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36710
+ * gcc.target/i386/float128-2.c: New test.
+
+2008-07-03 Michael Meissner <gnu@the-meissners.org>
+
+ PR middle-end/35736
+ * gcc.dg/pr35736.c: New file.
+
+2008-07-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.dg/pr28243.c: Skip on SPU.
+ * gcc.dg/torture/pr25947-1.c: Likewise.
+ * gcc.dg/20030702-1.c: Likewise.
+ * g++.old-deja/g++.other/comdat5.C: Likewise.
+ * g++.old-deja/g++.other/local-alloc1.C: Likewise.
+ * g++.dg/opt/vt1.C: Likewise.
+
+2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.dg/compat/struct-by-value-17a_main.c: Remove duplicated code.
+
+2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/float128-1.c: New.
+
+2008-07-03 Andrew Haley <aph@redhat.com>
+
+ PR preprocessor/33305
+ * gcc.dg/cpp/avoidpaste1.c: Use dg-options "-ansi" to avoid
+ "-pedantic".
+ * gcc.dg/cpp/avoidpaste2.c: Likewise
+ * gcc.dg/cpp/20000519-1.c: Likewise.
+ * g++.dg/ext/gnu-inline-global-reject.C: Likewise.
+ * gcc.dg/cpp/c99-empty-macro-args.c: New test.
+ * gcc.dg/cpp/c90-empty-macro-args.c: New test.
+
+2008-07-03 Richard Guenther <rguenther@suse.de>
+
+ PR c++/36128
+ * g++.dg/other/builtin1.C: New testcase.
+
+2008-07-02 Joseph Myers <joseph@codesourcery.com>
+
+ * g++.dg/compat/struct-layout-1.exp: Compile generator on build system.
+ * gcc.dg/compat/struct-layout-1.exp: Likewise.
+ * objc.dg/gnu-encoding/gnu-encoding.exp: Likewise.
+
+2008-07-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR testsuite/36285
+ * gcc.dg/compat/struct-by-value-16_x.c: Move some tests to new file
+ to reduce code size.
+ * gcc.dg/compat/struct-by-value-16_y.c: Ditto.
+ * gcc.dg/compat/struct-by-value-16a_main.c: New file.
+ * gcc.dg/compat/struct-by-value-16a_x.c: Ditto.
+ * gcc.dg/compat/struct-by-value-16a_y.c: Ditto.
+ * gcc.dg/compat/struct-by-value-17_x.c: Move some tests to new file
+ to reduce code size.
+ * gcc.dg/compat/struct-by-value-17_y.c: Ditto.
+ * gcc.dg/compat/struct-by-value-17a_main.c: New file.
+ * gcc.dg/compat/struct-by-value-17a_x.c: Ditto.
+ * gcc.dg/compat/struct-by-value-17a_y.c: Ditto.
+ * gcc.dg/compat/struct-by-value-18_x.c: Move some tests to new file
+ to reduce code size.
+ * gcc.dg/compat/struct-by-value-18_y.c: Ditto.
+ * gcc.dg/compat/struct-by-value-18a_main.c: New file.
+ * gcc.dg/compat/struct-by-value-18a_x.c: Ditto.
+ * gcc.dg/compat/struct-by-value-18a_y.c: Ditto.
+
+
+2008-07-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/pr36227.c: Correct test for targets where long is
+ not the same size as pointer.
+
+2008-07-02 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * g++.dg/cdce3.C: Test long double math functions for
+ large_long_double target only. Skip pow10 and exp10
+ functions for *-*-darwin*.
+
+2008-07-02 Janus Weil <janus@gcc.gnu.org>
+ Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/32580
+ * gfortran.dg/c_f_pointer_tests_3.f90: Updated.
+ * gfortran.dg/proc_decl_1.f90: Updated.
+ * gfortran.dg/proc_ptr_1.f90: New.
+ * gfortran.dg/proc_ptr_2.f90: New.
+ * gfortran.dg/proc_ptr_3.f90: New.
+ * gfortran.dg/proc_ptr_4.f90: New.
+ * gfortran.dg/proc_ptr_5.f90: New.
+ * gfortran.dg/proc_ptr_6.f90: New.
+ * gfortran.dg/proc_ptr_7.f90: New.
+ * gfortran.dg/proc_ptr_8.f90: New.
+
+2008-07-02 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/arm/neon/polytypes.c: Use dg-message separately from
+ dg-error to match separate messages.
+
+2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * g++.dg/abi/mangle24.C: Remove -mmmx.
+ * gcc.dg/const-float80-ped.c: Likewise.
+ * gcc.dg/const-float80.c: Likewise.
+ * gcc.dg/torture/fp-int-convert-float80.c: Likewise.
+
+ * g++.dg/abi/mangle25.C: Enable x86.
+ * gcc.dg/const-float128-ped.c: Likewise.
+ * gcc.dg/const-float128.c: Likewise.
+ * gcc.dg/torture/fp-int-convert-float128.c: Likewise.
+ * gcc.target/i386/pr32191.c: Likewise.
+ * gcc.target/i386/pr32268.c: Likewise.
+
+2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR target/36698
+ * gcc.c-torture/compile/20001226-1.c: XFAIL -O0 case on SPU.
+
+ * gcc.dg/pr27095.c: Provide target-specific regexp for SPU.
+
+2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * lib/compat.exp (compat-execute): Add -ffunction-sections
+ and -Wl,--auto-overlay when building for spu-*-elf*.
+
+2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.dg/nrv3.c (S): Increase size of padding for SPU.
+ * g++.dg/opt/temp1.C (struct T): Likewise.
+
+2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * gcc.c-torture/execute/20030222-1.x: New file.
+ * gcc.dg/tree-ssa/ssa-fre-3.c: Disable test on SPU.
+ * gcc.dg/lower-subreg-1.c: Likewise.
+
+2008-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ SPU single-precision FP does not support subnormals:
+ * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: New file.
+
+ SPU single-precision FP does not support Inf or Nan:
+ * gcc.c-torture/execute/ieee/inf-1.c: Disable "float" Inf test on SPU.
+ * gcc.c-torture/execute/ieee/compare-fp-1.x: New file.
+ * gcc.c-torture/execute/ieee/compare-fp-4.x: Disable test on SPU.
+ * gcc.c-torture/execute/ieee/fp-cmp-2.x: Disable test on SPU.
+ * gcc.c-torture/execute/ieee/fp-cmp-4f.x: New file.
+ * gcc.c-torture/execute/ieee/fp-cmp-8f.x: New file.
+ * gcc.dg/pr15784-3.c: Disable test on SPU.
+ * gcc.dg/pr28796-2.c: Likewise.
+ * gcc.dg/float-range-1.c: Likewise.
+ * gcc.dg/float-range-3.c: Likewise.
+ * gcc.dg/float-range-4.c: Likewise.
+ * gcc.dg/float-range-5.c: Likewise.
+ * gcc.dg/fold-overflow-1.c: Likewise.
+ * gcc.dg/builtins-1.c: SPU does not support __builtin_inff.
+ * gcc.dg/builtin-inf-1.c: SPU does not support __builtin_inff.
+ Check for error instead of warning "does not support infinity".
+ * gcc.dg/builtins-43.c: Disable "float" Inf/Nan tests on SPU.
+ * gcc.dg/builtins-44.c: Likewise.
+ * gcc.dg/builtins-45.c: Likewise.
+ * gcc.dg/torture/builtin-math-2.c: Likewise.
+ * gcc.dg/torture/builtin-logb-1.c: Likewise.
+ * gcc.dg/torture/builtin-modf-1.c: Likewise.
+ * gcc.dg/torture/builtin-ldexp-1.c: Likewise.
+ * gcc.dg/torture/builtin-frexp-1.c: Likewise.
+ * gcc.dg/torture/type-generic-1.c: Disable test on SPU.
+ * g++.dg/torture/type-generic-1.C: Likewise.
+
+ SPU single-precision FP always rounds towards zero:
+ * gcc.c-torture/execute/ieee/920518-1.x: New file.
+ * gcc.c-torture/execute/ieee/20010114-2.x: New file.
+ * gcc.c-torture/execute/ieee/20030331-1.x: New file.
+ * gcc.dg/torture/fp-int-convert-float.c: Disable test on SPU.
+ * gcc.dg/torture/fp-int-convert-timode.c: Disable "float" test on SPU.
+
+2008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36590
+ PR fortran/36681
+ * gfortran.dg/count_mask_1.f90: New test.
+
+2008-07-02 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c: Add noinline
+ attribute to main1().
+ * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Increase the loop
+ bound in order to make it worth to vectorize the loop.
+ * gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c: Likewise.
+
+2008-07-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36676
+ * gfortran.dg/namelist_51.f90: New test.
+
+2008-07-01 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_vect_int,
+ check_effective_target_vect_shift,
+ check_effective_target_vect_long,
+ check_effective_target_vect_float,
+ check_effective_target_vect_no_align,
+ check_effective_target_vect_int_mult): Check for ARM.
+ (check_effective_target_arm_neon): New.
+ (check_effective_target_vect_cmdline_needed): Use it.
+
+2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * g++.dg/other/opaque-1.C, g++.dg/other/opaque-2.C,
+ g++.dg/other/opaque-3.C: Also run on powerpc*-*-linux*spe*.
+
+2008-07-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/quad-sse.c: New test.
+
+2008-07-01 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36666
+ * gcc.c-torture/compile/pr36666.c: New testcase.
+
+2008-07-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack10.adb: New test.
+
+2008-06-30 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/36598
+ * gcc.dg/memcpy-1.c: Mark test XFAIL for avr target.
+
+2008-06-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/movti.c: New test.
+
+2008-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36662
+ * g++.dg/ext/altivec-16.C: New test.
+
+2008-06-30 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36648
+ * g++.dg/vect/pr36648.cc: New testcase.
+
+2008-06-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36655
+ * g++.dg/cpp0x/extern_template-2.C: New.
+ * g++.dg/cpp0x/extern_template.C: Rename to...
+ * g++.dg/cpp0x/extern_template-1.C: ... this.
+
+2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/36341
+ * gfortran.dg/matmul_bounds_1.f90: New test.
+
+2008-06-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/36620
+ * gcc.dg/pr36504.c: Add -w to dg-options.
+
+2008-06-29 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/pr36493.c: Require vect_long.
+
+2008-06-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * gfortran.dg/namelist_50.f90: New test.
+
+2008-06-28 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.c-torture/compile/20080628-1.c: New test.
+
+2008-06-28 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/pta-field-1.c: Add return 0.
+ * gcc.c-torture/execute/pta-field-2.c: Likewise.
+
+2008-06-28 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/pr24287.c: Remove XFAIL.
+
+2008-06-27 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/abi/arm_cxa_vec2.C: New test.
+
+2008-06-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36364
+ * g++.dg/template/repo9.C: New test.
+
+2008-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36655
+ * g++.dg/cpp0x/extern_template.C: New.
+
+2008-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/gomp/pr27388-3.c: Adjust dg-final.
+
+2008-06-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36400
+ PR tree-optimization/36373
+ PR tree-optimization/36344
+ * gcc.dg/torture/pr36373-1.c: New testcase.
+ * gcc.dg/torture/pr36373-2.c: Likewise.
+ * gcc.dg/torture/pr36373-3.c: Likewise.
+ * gcc.dg/torture/pr36373-4.c: Likewise.
+ * gcc.dg/torture/pr36373-5.c: Likewise.
+ * gcc.dg/torture/pr36373-6.c: Likewise.
+ * gcc.dg/torture/pr36373-7.c: Likewise.
+ * gcc.dg/torture/pr36373-8.c: Likewise.
+ * gcc.dg/torture/pr36373-9.c: Likewise.
+ * gcc.dg/torture/pr36373-10.c: Likewise.
+ * gcc.dg/torture/pr36400.c: Likewise.
+ * gcc.c-torture/execute/pta-field-1.c: Likewise.
+ * gcc.c-torture/execute/pta-field-2.c: Likewise.
+ * gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL.
+ * gcc.dg/tree-ssa/pr24287.c: XFAIL.
+
+2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/aggr9.ad[sb]: New test.
+ * gnat.dg/aggr9_pkg.ads: New helper.
+
+2008-06-27 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/aligned_vla.adb: New test.
+
+2008-06-26 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/inline-32.c, gcc.dg/inline-32a.c: New tests.
+
+2008-06-26 Ira Rosen <irar@il.ibm.com>
+
+ * lib/target-supports.exp
+ (check_effective_target_vect_cmdline_needed): Add SPU to the list
+ of targets that do not need command line argument to enable SIMD.
+
+2008-06-26 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/vect.exp: Run tests with -funroll-loops for SPU in case
+ of -O3.
+
+2008-06-26 Ira Rosen <irar@il.ibm.com>
+
+ PR target/36510
+ * gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c: Change the loop
+ bound.
+ * gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c,
+ gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c: Likewise.
+
+2008-06-25 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36526
+ * gfortran.dg/proc_formal_proc_2.f90: New test.
+
+2008-06-25 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/compile/20080625-1.c: New testcase.
+
+2008-06-25 Richard Guenther <rguenther@suse.de>
+
+ * g++.dg/torture/20080625-1.C: New testcase.
+
+2008-06-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36371
+ * gfortran.dg/data_array_5.f90: New test.
+
+2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/warn5.adb: New test.
+
+2008-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36504
+ * gcc.dg/pr36504.c: New test.
+
+2008-06-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/36584
+ * gcc.dg/pr36584.c: New test.
+ * gcc.target/i386/local2.c: Remove invalid test.
+
+2008-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36533
+ * gcc.target/i386/pr36533.c: New test.
+
+ PR tree-optimization/36508
+ * gcc.dg/pr36508.c: New test.
+
+2008-06-20 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/inline-31.c: New test.
+
+2008-06-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * gfortran.dg/fmt_l.f90: Fix end of line test pattern.
+
+2008-06-19 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * lib/target-supports.exp
+ (check_effective_target_keeps_null_pointer_checks): New function.
+ * gcc.dg/tree-ssa/20030730-1.c: Use keeps_null_pointer_checks to
+ determine correct test response.
+ * gcc.dg/tree-ssa/20030730-2.c: Ditto.
+ * gcc.dg/tree-ssa/pr20701.c: Ditto.
+ * gcc.dg/tree-ssa/pr20702.c: Ditto.
+ * gcc.dg/tree-ssa/pr21086.c: Ditto.
+ * gcc.dg/tree-ssa/vrp02.c:: Ditto.
+ * gcc.dg/tree-ssa/vrp07.c:: Ditto.
+ * gcc.dg/tree-ssa/vrp08.c:: Ditto.
+
+2008-06-19 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/pragma-pack-4.c: Skip for AVR target.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/builtin-apply2.c: Mark skip for avr target.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR c/36571
+ * gcc.dg/builtin-return-1.c: Mark as xfail on AVR.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/tree-ssa/loop-35.c: xfail avr target. Add new avr specific
+ tests.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/tree-ssa/forwprop-6.c: Use long or int to match size of
+ float. Otherwise error.
+ * gcc.dg/tree-ssa/ssa-fre-7.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.c-torture/execute/20020619-1.c: Correct for targets
+ without 32 bit int.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.c-torture/execute/ieee/20000320-1.x: Skip for AVR target.
+ * gcc.c-torture/execute/ieee/rbug.x: Ditto.
+ * gcc.c-torture/execute/ieee/pr30704.x: Add new file. Skip for AVR
+ target.
+ * gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.x: Ditto.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR testsuite/36284
+ * gcc.dg/compat/struct-layout-1_generate.c (switchfiles): Require
+ int32plus for generated main files.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR c/36460
+ * gcc.dg/utf32-1.c: Mark xfail for AVR target.
+ * gcc.dg/utf32-2.c: Ditto.
+ * gcc.dg/utf32-3.c: Ditto.
+
+2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.c-torture/compile/limits-fndefn.c: Skip for AVR.
+ * gcc.dg/builtins-config.h: Use standard independent __AVR__ symbol.
+ * gcc.dg/cdce1.c: Skip for AVR.
+ * gcc.dg/cdce2.c: Ditto.
+ * gcc.dg/fold-bitand-1.c: Ignore warnings such as alignment.
+ * gcc.dg/fold-eqandshift-3.c: Use long on AVR.
+ * gcc.dg/fold-overflow-1.c: Skip for AVR.
+ * gcc.dg/multiple-overflow-warn-3.c: Use target independent macro
+ for ms bit position.
+ * gcc.dg/pch/struct-1.c: Allow for target without 32 bit int.
+ * gcc.dg/tree-ssa/pr33920.c: Add warning check for AVR.
+ * gcc.dg/ucnid-5.c: Skip for AVR.
+ * gcc.dg/Wconversion-5.c: Mark warning xfail for AVR target.
+ * gcc.dg/Wconversion-real-integer.c: Skip for AVR.
+ * gcc.dg/Wconversion-real.c: Ditto.
+ * gcc.dg/wtr-conversion-1.c: Add warning test for AVR.
+ * gcc.dg/utf-cvt.c: Skip tests and mark excess xfail for AVR.
+ * gcc.dg/Wtype-limits-Wextra.c: Ditto.
+ * gcc.dg/Wtype-limits.c: Ditto.
+
+2008-06-18 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/dfp/convert-bfp-6.c, gcc.dg/dfp/convert-bfp-9.c: XFAIL
+ for lax_strtofp.
+
+2008-06-18 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp
+ (check_effective_target_powerpc_hard_double): New.
+ * gcc.dg/tree-ssa/loop-19.c: Use powerpc_hard_double instead of
+ powerpc*-*-*.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/weak/weak-2.c: We no longer complain about incompatibilty.
+ * gcc.dg/weak/weak-3.c: We no longer complain about incompatibilty.
+ * gcc.dg/weak/weak-4.c: We no longer complain about incompatibilty.
+ * gcc.dg/weak/weak-5.c: We no longer complain about incompatibilty.
+ * gcc.dg/weak/weak-6.c: Fix thinko in previous change.
+ * gcc.dg/weak/weak-7.c: Likewise.
+
+2008-06-16 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/asm-wide-1.c: Do not require extra errors we output
+ confused by earlier errors.
+ * gcc.target/i386/sseregparm-2.c: Remove markers for errors not
+ output at parsing time.
+ * gcc.target/i386/sseregparm-8.c: Move here compile time errors
+ from gcc.target/i386/sseregparm-2.c.
+ * gcc.dg/weak/weak-6.c: Do not require extra errors we output
+ confused by earlier errors.
+ * gcc.dg/weak/weak-7.c: Likewise.
+
+2008-06-18 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36517, fortran/36492
+ * gfortran.dg/array_constructor_25.f03: New test.
+ * gfortran.dg/array_constructor_26.f03: New test.
+ * gfortran.dg/array_constructor_27.f03: New test.
+ * gfortran.dg/array_constructor_28.f03: New test.
+ * gfortran.dg/array_constructor_29.f03: New test.
+ * gfortran.dg/array_constructor_30.f03: New test.
+ * gfortran.dg/array_constructor_type_19.f03: New test.
+ * gfortran.dg/array_constructor_type_20.f03: New test.
+ * gfortran.dg/array_constructor_type_21.f03: New test.
+
+2008-06-17 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36112
+ * gfortran.dg/bounds_check_array_ctor_1.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_2.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_3.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_4.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_5.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_6.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_7.f90: New test.
+ * gfortran.dg/bounds_check_array_ctor_8.f90: New test.
+ * gfortran.dg/arrayio_0.f90: Fixed invalid array constructor.
+ * gfortran.dg/char_cons_len.f90: Ditto.
+ * gfortran.dg/char_initializer_actual.f90: Ditto.
+ * gfortran.dg/pr15959.f90: Ditto.
+ * gfortran.dg/transfer_simplify_2.f90: Ditto.
+ * gfortran.dg/char_length_1.f90: Changed expected error messages.
+
+2008-06-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36366
+ * gfortran.dg/used_types_20.f90: New test.
+
+2008-06-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36546
+ * gfortran.dg: namelist_49.f90: New test.
+
+2008-06-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36544
+ * gfortran.dg/fseek.f90: Adjust test conditions for variable newline.
+
+2008-06-16 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36493
+ * gcc.dg/vect/pr36493.c: New testcase.
+
+2008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36515
+ * gfortran.dg/no_range_check_2.f90: New test.
+
+2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_mips_loongson): New.
+ * gcc.target/mips/loongson-simd.c: New.
+
+2008-06-14 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/35320
+ * g++.dg/parse/bitfield3.C: New test.
+
+2008-06-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36538
+ * gfortran.dg: namelist_48.f90: New test.
+
+2008-06-14 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/35317
+ * g++.dg/other/dtor2.C: New test.
+
+2008-06-13 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/task_stack_align.adb: New test.
+
+2008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35863
+ * gfortran.dg/widechar_IO_1.f90: New test.
+ * gfortran.dg/widechar_IO_2.f90: New test.
+ * gfortran.dg/widechar_IO_3.f90: New test.
+ * gfortran.dg/widechar_IO_4.f90: New test.
+
+2008-06-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36476
+ * gfortran.dg/parameter_array_init_4.f90: New.
+
+2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20080613-1.c: New test.
+
+2008-06-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/36507
+ * gcc.dg/inline-28.c: New test.
+ * gcc.dg/inline-29.c: New test.
+ * gcc.dg/inline-30.c: New test.
+
+2008-06-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36462
+ * gfortran.dg/index_2.f90: New.
+
+2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr9.ad[sb]: New test.
+
+2008-06-12 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
+ Always initialize.
+ * g++.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
+ Always initialize.
+
+2008-06-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/36443
+ * gcc.dg/compat/struct-layout-1.exp: Temporarily unset
+ GCC_EXEC_PREFIX from environment when running $HOSTCC.
+ * g++.dg/compat/struct-layout-1.exp: Likewise.
+
+2008-06-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36345
+ * gcc.c-torture/execute/20020619-1.c: Remove broken part of
+ the testcase.
+
+2008-06-11 Edmar Wienskoski <edmar@freescale.com>
+
+ PR target/36425
+ * gcc.target/powerpc/e500-1.c: New test case to verify
+ mno-isel option.
+
+2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/varsize_copy.ad[sb]: New test.
+
+2008-06-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/bt-mask-1.c: New test.
+ * gcc.target/i386/bt-mask-2.c: Ditto.
+
+2008-06-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36473
+ * gcc.target/i386/bt-1.c: New test.
+ * gcc.target/i386/bt-2.c: Ditto.
+
+2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.c-torture/execute/builtins/lib/chk.c: Only include sys/types.h
+ for unix to check for uClibc.
+
+2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR testsuite/36285
+ * gcc.dg/compat/struct-return-10_y.c: Remove test_va.
+ * gcc.dg/compat/vector-defs.h: Add check for availability of 8 byte
+ double.
+ * gcc.dg/compat/struct-layout-1_test.h: Change bitfield to match
+ integer size.
+
+2008-06-09 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/pr34856.c: Condition use of -maltivec on
+ powerpc_altivec_ok. Use -w on other powerpc*-*-linux*.
+
+2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.dg/torture/mips-hilo-1.c: Delete.
+ * gcc.target/mips/pr35232.c: Likewise.
+ * gcc.target/mips/fix-vr4130-1.c: Use modulus to create an mfhi.
+ * gcc.target/mips/fix-vr4130-3.c: Likewise.
+ * gcc.target/mips/int-moves-1.c: New test.
+ * gcc.target/mips/int-moves-2.c: Likewise.
+ * gcc.target/mips/fix-r4000-1.c: Likewise.
+ * gcc.target/mips/fix-r4000-2.c: Likewise.
+ * gcc.target/mips/fix-r4000-3.c: Likewise.
+ * gcc.target/mips/fix-r4000-4.c: Likewise.
+ * gcc.target/mips/fix-r4000-5.c: Likewise.
+ * gcc.target/mips/fix-r4000-6.c: Likewise.
+ * gcc.target/mips/fix-r4000-7.c: Likewise.
+ * gcc.target/mips/fix-r4000-8.c: Likewise.
+ * gcc.target/mips/fix-r4000-9.c: Likewise.
+ * gcc.target/mips/fix-r4000-10.c: Likewise.
+ * gcc.target/mips/fix-r4000-11.c: Likewise.
+ * gcc.target/mips/fix-r4000-12.c: Likewise.
+ * gcc.target/mips/timode-1.c: Likewise.
+ * gcc.target/mips/timode-2.c: Likewise.
+
+2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/pack3.ads: New test.
+ * gnat.dg/specs/pack3_pkg.ads: New helper.
+
+2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35242
+ * g++.dg/cpp0x/vt-35242.C: New.
+
+2008-06-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36459
+ * gfortran.dg/proc_decl_16.f90: New.
+
+2008-06-08 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35830
+ * proc_decl_13.f90: New.
+ * proc_decl_14.f90: New.
+ * proc_decl_15.f90: New.
+
+2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/36420
+ PR fortran/36421
+ PR fortran/36422
+ * gfortran.dg/fmt_g0_1.f08: New test.
+ * gfortran.dg/fmt_g0_2.f08: New test.
+ * gfortran.dg/fmt_g0_3.f08: New test.
+
+2008-06-07 Xinliang David Li <davidxl@google.com>
+
+ PR/36440
+ * gcc.dg/cdce1.c: Remove run target clause.
+ * gcc.dg/cdce2.c: Ditto.
+ * g++.dg/cdce3.C: Fix a bug in target specification.
+
+2008-06-07 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36437
+ * gfortran.dg/c_sizeof_1.f90: New.
+ * gfortran.dg/c_sizeof_2.f90: New.
+
+2008-06-07 Joseph Myers <joseph@codesourcery.com>
+
+ * g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
+ * g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
+ * g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
+ 7.
+ * gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
+ strongarm*-*-* and cris-*-aout*.
+ * gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
+ strongarm*-*-*.
+ * gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
+ strongarm*-*-*.
+ * gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
+ strongarm*-*-*.
+ * gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
+ * gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
+ * gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
+ * gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
+ * gcc.dg/cpp/assert4.c: Don't handle BeOS.
+ * gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
+ * gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
+ xscale*-*-elf*.
+ * gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
+ * gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
+ * gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
+ * gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
+ * gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
+ * gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
+ powerpc-*-sysv*.
+ * gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
+ * lib/target-supports.exp: Don't handle strongarm*-*-elf,
+ xscale*-*-elf and *-*-windiss.
+ * obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
+ * objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
+ * objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
+ * gcc.dg/mt-loopi1.c: Remove.
+
+2008-06-07 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/specs/oversize.ads: New.
+
+2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35327
+ * g++.dg/parse/crash41.C: New.
+
+2008-06-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36438
+ * gcc.target/i386/pr36438.c
+
+2008-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36362
+ * gcc.c-torture/execute/20080529-1.c: New test.
+
+2008-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/gomp/collapse-1.c: New test.
+ * gcc.dg/gomp/nesting-1.c: New test.
+ * g++.dg/gomp/task-1.C: New test.
+ * g++.dg/gomp/predetermined-1.C: New test.
+ * g++.dg/gomp/tls-4.C: New test.
+ * gfortran.dg/gomp/collapse1.f90: New test.
+ * gfortran.dg/gomp/sharing-3.f90: New test.
+ * gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
+ * g++.dg/gomp/pr27499.C (foo): Likewise.
+ * g++.dg/gomp/for-16.C (foo): Likewise.
+ * g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
+ * g++.dg/gomp/pr34607.C: Adjust dg-error location.
+ * g++.dg/gomp/for-16.C (foo): Add a new dg-error.
+ * gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
+ * gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
+ * gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
+ * gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
+ * gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
+ * gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
+ about allocatable array.
+ * gfortran.dg/gomp/reduction1.f90: Likewise.
+
+2008-06-06 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/alias-18.c: XFAIL some sub-tests.
+
+2008-06-04 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_powerpc_spu):
+ Call check_effective_target_powerpc_altivec_ok.
+ * gcc.target/powerpc/dfp-dd.c, gcc.target/powerpc/dfp-td.c,
+ gcc.target/powerpc/ppc32-abi-dfp-1.c,
+ gcc.target/powerpc/ppu-intrinsics.c: Require powerpc_fprs.
+
+2008-06-04 Xinliang David Li <davidxl@google.com>
+
+ * gcc.dg/cdce1.c: New test.
+ * gcc.dg/cdce2.c: Ditto.
+ * g++.dg/cdce3.C: Ditto.
+
+2008-06-04 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36275
+ * gfortran.dg/proc_decl_2.f90: Extended.
+
+2008-06-04 Joseph Myers <joseph@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * gcc.target/m68k/xgot-1.c: New test.
+
+2008-06-04 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/20080604-1.c: New testcase.
+
+2008-06-03 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR/34880
+ * gcc.c-torture/execute/float-floor.c: Adjust test for 4 byte
+ doubles.
+
+2008-06-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/aliasing1.ad[sb]: New test.
+ * gnat.dg/aliasing2.ad[sb]: Likewise.
+
+2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.target/avr/avr.exp: Add avr testsuite.
+ * gcc.target/avr/trivial.c: Add simple test.
+ * gcc.target/avr/torture/avr-torture.exp: Add avr-torture testsuite.
+ * gcc.target/avr/torture/trivial.c: Add simple test.
+
+2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/pr19340.c: Disable for AVR as it has no scheduling.
+ * gcc.dg/section1.c: XFAIL AVR as bss section is used differently.
+
+2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/pr18241-1.c: Use long on small int target.
+ * gcc.dg/pr32912-2.c: Ditto.
+ * gcc.dg/pr35065.c: Ditto.
+ * gcc.dg/pr36300-1.c: Ditto.
+ * gcc.dg/pr36300-2.c: Ditto.
+ * gcc.dg/pr27639.c: Reduce array size for small int target.
+ * gcc.dg/pr28755.c: Skip test if pointers are smaller than 32 bits.
+ * gcc.dg/pr36194.c: Reduce constant on small int target.
+ * gcc.dg/torture/builtin-frexp-1.c: Ditto.
+
+2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/torture/pr34330.c: Skip test for targets without pthread.
+ * gcc.dg/torture/pr36244.c: Ditto.
+ * gcc.dg/tree-ssa/pr36181.c: Ditto.
+
+2008-06-02 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36361
+ * gfortran.dg/interface_24.f90: New.
+
+2008-06-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/36404
+ * g++.dg/template/crash79.C: New.
+ * g++.dg/other/pr28114.C: Adjust.
+
+2008-06-02 Daniel Kraft <d@domob.eu>
+
+ * finalize_1.f08: New test.
+ * finalize_2.f03: New test.
+ * finalize_3.f03: New test.
+ * finalize_4.f03: New test.
+ * finalize_5.f03: New test.
+ * finalize_6.f90: New test.
+ * finalize_7.f03: New test.
+ * finalize_8.f03: New test.
+
+2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.c-torture/execute/ieee/ieee.exp: Load c-torture.exp.
+
+2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/fpr-moves-7.c: New test.
+ * gcc.target/mips/fpr-moves-8.c: New test.
+
+2008-05-30 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * gcc.target/bfin/mcpu-default.c: Adjust for recent changes: default
+ CPU has all workarounds, and no longer explicitly sets bf532 as CPU
+ type.
+
+ * gcc.target/bfin/mcpu-bf531.c: Adjust for WORKAROUND_RETS.
+ * gcc.target/bfin/mcpu-bf532.c: Likewise.
+ * gcc.target/bfin/mcpu-bf533.c: Likewise.
+ * gcc.target/bfin/mcpu-bf534.c: Likewise.
+ * gcc.target/bfin/mcpu-bf536.c: Likewise.
+ * gcc.target/bfin/mcpu-bf537.c: Likewise.
+ * gcc.target/bfin/mcpu-bf548.c: Likewise.
+ * gcc.target/bfin/mcpu-bf549.c: Likewise.
+ * gcc.target/bfin/mcpu-bf561.c: Likewise.
+ * gcc.target/bfin/mcpu-bf523.c: Likewise.
+ * gcc.target/bfin/mcpu-bf524.c: Likewise.
+ * gcc.target/bfin/mcpu-bf526.c: Likewise.
+ * gcc.target/bfin/mcpu-bf522.c: Likewise.
+ * gcc.target/bfin/mcpu-bf525.c: Likewise.
+ * gcc.target/bfin/mcpu-bf527.c: Likewise.
+ * gcc.target/bfin/mcpu-bf538.c: Likewise.
+ * gcc.target/bfin/mcpu-bf539.c: Likewise.
+ * gcc.target/bfin/mcpu-bf542.c: Likewise.
+ * gcc.target/bfin/mcpu-bf544.c: Likewise.
+ * gcc.target/bfin/mcpu-default.c: Likewise.
+ * gcc.target/bfin/workarounds-any.c: Likewise.
+ * gcc.target/bfin/workarounds-none.c: Likewise.
+ * gcc.target/bfin/workarounds-1.c: Likewise.
+ * gcc.target/bfin/workarounds-2.c: Likewise.
+ * gcc.target/bfin/workarounds-3.c: Likewise.
+ * gcc.target/bfin/workarounds-4.c: Likewise.
+
+2008-05-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/36320:
+ * gcc.dg/cpp/pr36320.c: New file.
+
+2008-05-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35243
+ * g++.dg/cpp0x/vt-35243.C: New.
+
+2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35771
+ * gcc.dg/torture/pr35771.h: New.
+ * gcc.dg/torture/pr35771-1.c: Likewise.
+ * gcc.dg/torture/pr35771-2.c: Likewise.
+ * gcc.dg/torture/pr35771-3.c: Likewise.
+
+2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/nested-func-6.c: New test.
+
+2008-05-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36343
+ * gcc.c-torture/execute/pr36343.c: New testcase.
+
+2008-05-29 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/abstract1.ad[sb]: New test.
+
+2008-05-28 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36325
+ PR fortran/35830
+ * gfortran.dg/interface_23.f90: New.
+ * gfortran.dg/gomp/reduction3.f90: Fixed invalid code.
+ * gfortran.dg/proc_decl_12.f90: New:
+ * gfortran.dg/external_procedures_1.f90: Fixed error message.
+
+2008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36319
+ * gfortran.dg/widechar_5.f90: New file.
+ * gfortran.dg/widechar_6.f90: New file.
+ * gfortran.dg/widechar_7.f90: New file.
+ * gfortran.dg/widechar_intrinsics_5.f90: Uncomment the lines
+ testing the SPREAD intrinsic.
+ * gfortran.dg/widechar_intrinsics_6.f90: New file.
+ * gfortran.dg/widechar_intrinsics_7.f90: New file.
+ * gfortran.dg/widechar_intrinsics_8.f90: New file.
+ * gfortran.dg/widechar_intrinsics_9.f90: New file.
+ * gfortran.dg/widechar_intrinsics_10.f90: New file.
+
+2008-05-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * gcc.dg/tree-prof/ic-misattribution-1.c: New test.
+ * gcc.dg/tree-prof/ic-misattribution-1a.c: New test.
+ * lib/profopt.exp (profopt-get-options): Support
+ dg-additional-sources.
+ (profopt-execute): Handle additional sources.
+
+2008-05-28 Rafael Espíndola <espindola@google.com>
+
+ * gcc.dg/20080528-1.c: New test.
+
+2008-05-28 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/old_errors.adb, gnat.dg/deep_old.adb: Adjust.
+
+ * gnat.dg/specs/iface_eq_test.ads,
+ gnat.dg/specs/iface_eq_test-child.ads: New test.
+ * gnat.dg/specs/self_class.ads: New test.
+ * gnat.dg/fixce.adb: New test.
+ * gnat.dg/frunaligned*.ad[sb]: New test.
+
+2008-05-27 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/tree-ssa/data-dep-1.c: Skip test for avr-*-* too much code.
+ * gcc.dg/tree-ssa/ldist-3.c: Ditto.
+ * gcc.dg/tree-ssa/ldist-5.c: Ditto.
+ * gcc.dg/tree-ssa/ifc-20040816-2 .c: Adjust for int size < 4 bytes.
+ * gcc.dg/tree-ssa/pr32540-1.c: Ditto.
+ * gcc.dg/tree-ssa/pr32540-2.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-lim-5.c: Ditto.
+ * gcc.dg/tree-ssa/pr23115.c: Adjust test for double size < 8 bytes.
+
+2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35767
+ PR target/35771
+ * gcc.target/i386/pr35767-1.c: New.
+ * gcc.target/i386/pr35767-1d.c: Likewise.
+ * gcc.target/i386/pr35767-1i.c: Likewise.
+ * gcc.target/i386/pr35767-2.c: Likewise.
+ * gcc.target/i386/pr35767-2d.c: Likewise.
+ * gcc.target/i386/pr35767-2i.c: Likewise.
+ * gcc.target/i386/pr35767-3.c: Likewise.
+ * gcc.target/i386/pr35767-4.c: Likewise.
+ * gcc.target/i386/pr35767-5.c: Likewise.
+
+2008-05-27 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/assignment_3.f90: Add missing cleanup-modules.
+
+2008-05-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36316
+ * gfortran.dg/assignment_3.f90: New.
+
+2008-05-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * lib/fortran-torture.exp (get-fortran-torture-options):
+ New function, replacing old FORTRAN_TORTURE_OPTIONS code.
+ * gfortran.fortran-torture/compile/compile.exp: Use
+ [get-fortran-torture-options] instead of $FORTRAN_TORTURE_OPTIONS.
+ * gfortran.fortran-torture/execute/execute.exp: Likewise.
+
+2008-05-27 Michael Matz <matz@suse.de>
+
+ PR c++/27975
+ * g++.dg/warn/Wenum-compare.C: New testcase.
+ * g++.dg/warn/Wenum-compare-no.C: Ditto.
+
+2008-05-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36339
+ * gcc.c-torture/execute/pr36339.c: New testcase.
+ * gcc.dg/tree-ssa/loadpre8.c: XFAIL.
+
+2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack9.ad[sb]: New test.
+
+2008-05-27 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/sync1.ad[sb]: New test.
+ * gnat.dg/interface5.ad[sb]: New test.
+
+2008-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/compile/pr11832.c: XFAIL on (x86 && ilp32 && pic).
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-05-27 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/35909
+ * g++.dg/conversion/bitfield9.C: New.
+
+2008-05-26 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/specs/array_no_def_init.ads: New test.
+
+2008-05-26 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc-c.torture/execute/pr36321.c: New.
+
+2008-05-26 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36300
+ * gcc.dg/pr36300-1.c: New testcase.
+ * gcc.dg/pr36300-2.c: Likewise.
+
+2008-05-26 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/set_in_pproc.adb: New test.
+ * gnat.dg/modular2.adb: New test.
+ * gnat.dg/pak.ad[sb]: New test.
+
+2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/trampoline1.adb: New test.
+ * gnat.dg/trampoline2.adb: Likewise.
+
+2008-05-25 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/32600
+ * gfortran.dg/c_f_pointer_tests_3.f90: New.
+
+2008-05-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/17526
+ * gcc.dg/torture/pr17526.c: New testcase.
+
+2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/tg-tests.h: Fix spelling of FP_INFINITE.
+
+2008-05-23 Sandra Loosemore <sandra@codesourcery.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ * g++.dg/other/profile1.C: Use dg-require-profiling.
+
+2008-05-24 Hans-Peter Nilsson <hp@axis.com>
+
+ PR testsuite/22523
+ * g++.dg/template/inline1.C: For the not-defined symbol, use the
+ pattern from g++.dg/template/qualttp17.C.
+
+2008-05-23 Rafael Espíndola <espindola@google.com>
+
+ * gcc.c-torture/compile/20080522-1.c: Move to gcc.dg.
+ * gcc.dg/20080522-1.c: Moved from gcc.c-torture.
+
+2008-05-23 Paul Brook <paul@codesourcery.com>
+ Carlos O'Donell <carlos@codesourcery.com>
+
+ * gcc.target/arm/naked-1.c: New test.
+ * gcc.target/arm/naked-2.c: New test.
+
+2008-05-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36314
+ * gfortran.dg/eoshift_large_1.f90: Replace tabs by spaces.
+
+2008-05-23 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/addr_slice.adb: New test.
+
+2008-05-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36237
+ * g++.dg/gomp/pr36237.C: New test.
+
+2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/builtins-error.c: Test __builtin_fpclassify. Also
+ add tests for all previous type-generic builtins.
+ * gcc.dg/pr28796-2.c: Add -DUNSAFE flag.
+ * gcc.dg/tg-tests.h: Test __builtin_fpclassify.
+
+2008-05-22 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libgfortran/36302
+ * gfortran.dg/cshift_large_1.f90: New test.
+ * gfortran.dg/eoshift_large_1.f90: New test.
+
+2008-05-22 Rafael Espíndola <espindola@google.com>
+
+ * gcc.c-torture/compile/20080522-1.c: New testcase.
+
+2008-05-22 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/20080522-1.c: New testcase.
+
+2008-05-22 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/alias-18.c: New testcase.
+
+2008-05-22 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/slice5.adb: New test.
+ * gnat.dg/notnot.adb: New test.
+ * gnat.dg/tf_interface_1.ad[sb]: New test.
+ * gnat.dg/const1.adb: New test.
+ * gnat.dg/parameterlessfunc.adb: New test.
+ * gnat.dg/specs/interface5.ads: New test.
+ * gnat.dg/specs/cpp_assignment.ads: New test.
+
+2008-05-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ * lib/dg-pch.exp (dg-pch): Fix if bracing.
+
+2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/m128-check.h (ARRAY_SIZE): New.
+ (CHECK_EXP): Use it.
+
+ * gcc.target/i386/set-v16qi-3.h: New.
+ * gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-3.c: Likewise.
+
+2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36287
+ PR tree-optimization/36286
+ * gcc.dg/tree-ssa/pr36287.c: New.
+ * gfortran.dg/pr36286.f90: New.
+
+2008-05-21 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/27777:
+ * gcc.dg/cpp/pr27777.c: New file.
+
+2008-05-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36023
+ * g++.dg/ext/complit10.C: New test.
+
+2008-05-21 Janis Johnson <janis187@us.ibm.com>
+
+ * gfortran.dg/nint_2.f90: XFAIL only when using -O0.
+
+ * lib/target-supports-dg.exp (dg-xfail-run-if): New.
+ * gcc.test-framework/dg-do-run-xrif-exp-F.c: New test.
+ * gcc.test-framework/dg-do-run-xrif-exp-P.c: New test.
+ * gcc.test-framework/dg-do-run-xrif-exp-XF.c: New test.
+ * gcc.test-framework/dg-do-run-xrif-exp-XP.c: New test.
+ * gcc.test-framework/dg-dot-run-xrif-exp-F.c: New test.
+ * gcc.test-framework/dg-dot-run-xrif-exp-P.c: New test.
+ * gcc.test-framework/dg-dot-run-xrif-exp-XF.c: New test.
+ * gcc.test-framework/dg-dot-run-xrif-exp-XP.c: New test.
+ * gcc.test-framework/test-framework.awk: Handle new tests.
+
+2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36257
+ * gfortran.dg/char_length_12.f90: New test.
+
+2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gcc.c-torture/execute/builtins/memops-asm.c: Set inside_main.
+
+ * lib/gcc-dg.exp (cleanup-saved-temps): Add optional list of
+ suffixes not to delete.
+ * gcc.dg/pch/save-temps-1.c: Don't delete ".s" temp.
+ * g++.dg/pch/pch.C: Likewise.
+
+ * g++.old-deja/g++.pt/static11.C: Replace xfail by target requirement.
+
+ * lib/dg-pch.exp (dg-pch): Don't expect .s files if there are
+ dg-errors expected.
+
+2008-05-20 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/20771
+ * lib/dg-pch.exp: Move a flag in arguments to dg-test to differentiate
+ compile results for pch test lines in gcc.sum.
+ * gcc.dg/pch/counter-2.c: Add comments to dg-error directives to
+ make them unique in gcc.sum.
+ * gcc.dg/pch/valid-1.c: Ditto.
+ * gcc.dg/pch/valid-2.c: Ditto.
+ * gcc.dg/pch/valid-3.c: Ditto.
+ * gcc.dg/pch/warn-1.c: Same for dg-warning.
+
+2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/array-quals-1.c: xfail read only section
+ check for avr target.
+
+2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR testsuite/34889
+ * gcc.c-torture/execute/builtins/pr23484-chk.c : Correct test for
+ 16bit int target.
+
+2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/tree-ssa/ifc-20040816-1.c : signal.h not required.
+ * gcc.c-torture/execute/ieee/fp-cmp-1.c : Do not include signal.h if
+ SIGNAL_SUPPRESS.
+ * gcc.c-torture/execute/ieee/fp-cmp-2.c : Ditto.
+ * gcc.c-torture/execute/ieee/fp-cmp-3.c : Ditto.
+
+2008-05-20 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/builtins-config.h: AVR does not have C99 runtime.
+
+2008-05-20 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/22523
+ * g++.dg/template/inline1.C: Handle syntax for more assemblers.
+
+ * lib/scandump.exp (scan-dump): Handle non-existent dump file.
+ (scan-dump-times): Ditto.
+ (scan-dump-not): Ditto.
+ (scan-dump-dem): Ditto.
+ (scan-dump-dem-not): Ditto.
+
+ * obj-c++.dg/bitfield-1.mm: XFAIL for ICE; move dg-options after other
+ test directives; use dg-prune-output instead of dg-excess-errors for
+ possible message to ignore; adjust line numbers for messages.
+
+ * obj-c++.dg/comp-types-10.mm: XFAIL for ICE.
+ * obj-c++.dg/try-catch-9.mm: XFAILfor ICE, move dg-options after
+ other test directives.
+
+ * obj-c++.dg/try-catch-2.mm: Move dg-options after dg-xfail-if.
+ * obj-c++.dg/encode-8.mm: Move dg-options after dg-do.
+ * obj-c++.dg/bitfield-4.mm: Ditto; use dg-prune-output instead of
+ dg-excess-errors for possible additional message.
+ * obj-c++.dg/layout-1.mm: Use dg-prune-output instead of
+ dg-excess-errors for possible additional message.
+
+ * g++.dg/ext/vector14.C: Ignore a possible warning.
+
+2008-05-20 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/modular.adb: Remove test, gnat.dg/modular1.adb already
+ checks that the bug is fixed and is more concise.
+
+2008-05-20 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/35791
+ * gnat.dg/check_displace_generation.adb: New.
+
+2008-05-20 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/30740
+ * gnat.dg/modular.adb: New test.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36181
+ * gcc.dg/tree-ssa/pr36181.c: New.
+
+2008-05-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/36057
+ * g++.dg/compat/struct-layout-1_generate.c (DG_OPTIONS): Remove.
+ (const char *dg_options): New array.
+ (switchfiles): Loop through dg_options array to generate dg-options
+ directives. Remove numbered arguments usage from fprintf
+ format strings.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36206
+ * gfortran.dg/pr36206.f: New.
+
+2008-05-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/testint.adb: New test.
+ * gnat.dg/modular1.adb: New test.
+ * gnat.dg/test_iface_aggr.adb: New test.
+ * gnat.dg/gen_disp.ad[sb]: New test.
+ * gnat.dg/specs/tag2.ads: Adjust.
+ * gnat.dg/specs/empty_variants.ads: Adjust.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
+ * gcc.dg/tree-ssa/ssa-sink-2.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-sink-3.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-sink-4.c: Likewise.
+
+2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
+
+ * gcc.c-torture/compile/20061214-1.c: New test.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/20080519-1.c: New testcase.
+
+2008-05-19 Xinliang David Li <davidxl@google.com>
+
+ * gcc.dg/cdce1.c: Remove test.
+ * gcc.dg/cdce2.c: Remove test.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36265
+ * gfortran.dg/char_length_11.f90: New test.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/widechar_intrinsics_5.f90: Add dg-do directive and
+ use -fbackslash option.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/char_cast_2.f90: Adjust count in scanning the tree
+ dump file.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/bind_c_module.f90: Adjust expected error messages.
+
+2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/char_cast_1.f90: Adjust count in scanning the tree
+ dump file.
+
+2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/builtins-error.c: Test __builtin_isinf_sign.
+ * gcc.dg/tg-tests.h: Likewise. Mark variables volatile.
+ * gcc.dg/torture/builtin-isinf_sign-1.c: New test.
+
+2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/achar_3.f90: Adjust error messages.
+ * gfortran.dg/achar_5.f90: New test.
+ * gfortran.dg/achar_6.F90: New test.
+ * gfortran.dg/widechar_1.f90: New test.
+ * gfortran.dg/widechar_2.f90: New test.
+ * gfortran.dg/widechar_3.f90: New test.
+ * gfortran.dg/widechar_4.f90: New test.
+ * gfortran.dg/widechar_intrinsics_1.f90: New test.
+ * gfortran.dg/widechar_intrinsics_2.f90: New test.
+ * gfortran.dg/widechar_intrinsics_3.f90: New test.
+ * gfortran.dg/widechar_intrinsics_4.f90: New test.
+ * gfortran.dg/widechar_intrinsics_5.f90: New test.
+ * gfortran.dg/widechar_select_1.f90: New test.
+ * gfortran.dg/widechar_select_2.f90: New test.
+
+2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization2.ad[sb]: New test.
+
+2008-05-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36090
+ * gcc.c-torture/execute/20080502-1.c: New test.
+
+2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/stat_1.f90: Skip on mingw.
+ * gfortran.dg/stat_2.f90: Skip on mingw.
+
+2008-05-18 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/36251
+ gfortran.dg/public_private_module.f90: new test.
+ gfortran.dg/bind_c_module.f90: new test.
+
+2008-05-17 Xinliang David Li <davidxl@google.com>
+
+ * gcc.dg/cdce1.c: New test
+ * gcc.dg/cdce2.c: New test
+
+2008-05-17 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/initialization_19.f90: New test.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/bit_packed_array3.adb: New test.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/warn4.adb: New test.
+
+2008-05-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35756
+ PR fortran/35759
+ * gfortran.dg/where_1.f90: New test.
+
+ PR fortran/35743
+ PR fortran/35745
+ * gfortran.dg/where_2.f90: New test.
+
+2008-05-16 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/rank_1.f90
+ * gfortran.dg/rank_2.f90
+
+2008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * gfortran.dg/missing_parens_1.f90: Update test.
+ * gfortran.dg/fmt_t_7.f: Update test.
+
+2008-05-16 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/int_3.f90: New test.
+ * gfortran.dg/and_or_xor.f90: New test.
+
+2008-05-16 Daniel Kraft <d@domob.eu>
+
+ PR fortran/27997
+ * gfortran.dg/array_constructor_type_1.f03: New test
+ * gfortran.dg/array_constructor_type_2.f03: New test
+ * gfortran.dg/array_constructor_type_3.f03: New test
+ * gfortran.dg/array_constructor_type_4.f03: New test
+ * gfortran.dg/array_constructor_type_5.f03: New test
+ * gfortran.dg/array_constructor_type_6.f03: New test
+ * gfortran.dg/array_constructor_type_7.f03: New test
+ * gfortran.dg/array_constructor_type_8.f03: New test
+ * gfortran.dg/array_constructor_type_9.f: New test
+ * gfortran.dg/array_constructor_type_10.f03: New test
+ * gfortran.dg/array_constructor_type_11.f03: New test
+ * gfortran.dg/array_constructor_type_12.f03: New test
+ * gfortran.dg/array_constructor_type_13.f90: New test
+ * gfortran.dg/array_constructor_type_14.f03: New test
+ * gfortran.dg/array_constructor_type_15.f03: New test
+ * gfortran.dg/array_constructor_type_16.f03: New test
+ * gfortran.dg/array_constructor_type_17.f03: New test
+ * gfortran.dg/array_constructor_type_18.f03: New test
+
+2008-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36246
+ * gcc.target/i386/pr36246.c: New test.
+
+2008-05-16 Sebastian Pop <sebastian.pop@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/36228
+ * gcc.dg/vect/pr36228.c: New.
+
+2008-05-16 Hans-Peter Nilsson <hp@axis.com>
+
+ * gfortran.dg/f2003_io_4.f03, gfortran.dg/f2003_io_5.f03,
+ gfortran.dg/f2003_io_7.f03, gfortran.dg/namelist_45.f90,
+ gfortran.dg/namelist_46.f90, gfortran.dg/namelist_47.f90,
+ gfortran.dg/f2003_io_1.f03: Gate test on effective_target
+ fd_truncate.
+ * gfortran.dg/fmt_t_7.f: Ditto. Apply dos2unix.
+
+2008-05-16 Daniel Kraft <d@domob.eu>
+
+ * gfortran.dg/private_type_6.f90: Adapted expected error messages.
+ * gfortran.dg/structure_constructor_1.f03: New test.
+ * gfortran.dg/structure_constructor_2.f03: New test.
+ * gfortran.dg/structure_constructor_3.f03: New test.
+ * gfortran.dg/structure_constructor_4.f03: New test.
+ * gfortran.dg/structure_constructor_5.f03: New test.
+ * gfortran.dg/structure_constructor_6.f03: New test.
+ * gfortran.dg/structure_constructor_7.f03: New test.
+ * gfortran.dg/structure_constructor_8.f03: New test.
+ * gfortran.dg/structure_constructor_9.f90: New test.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/m128-check.h: New.
+ * gcc.target/i386/set-v16qi-1.h: Likewise.
+ * gcc.target/i386/set-v16qi-2.h: Likewise.
+ * gcc.target/i386/set-v8hi-1.h: Likewise.
+ * gcc.target/i386/set-v8hi-2.h: Likewise.
+ * gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
+ * gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
+ * gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
+ * gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-1.c: Likewise.
+ * gcc.target/i386/sse4_1-set-v16qi-2.c: Likewise.
+
+ * gcc.target/i386/sse2-check.h: Include m128-check.h. Don't
+ include <stdio.h>.
+ * gcc.target/i386/sse4_1-check.h: Likewise.
+
+2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR middle-end/36194
+ * gcc.dg/pr36194.c: New test.
+
+2008-05-15 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR libfortran/34974
+ * gfortran.dg/fmt_t_7.f: Remove XFAIL, patch for PR 25561/Part 1 fixes
+ this.
+
+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/torture-options.exp: New support for torture options.
+ * lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture procs.
+ * lib/c-torture.exp: Define C_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ * lib/gcc-dg.exp: Define DG_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ (gcc-dg-runtest): Use new torture procs if no torture options defined.
+ * lib/fortran-torture.exp: Define FORTRAN_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS.
+ (fortran-torture-execute): Use torture_with_loops instead of
+ TORTURE_OPTIONS.
+ (fortran-torture): Ditto.
+ * lib/objc-torture.exp: Define OBJC_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ * gcc.c-torture/execute/execute.exp: Use new torture procs.
+ * gcc.c-torture/execute/builtins/builtins.exp: Ditto.
+ * gcc.c-torture/execute/ieee/ieee.exp: Ditto.
+ * gcc.c-torture/unsorted/unsorted.exp: Ditto.
+ * gfortran.fortran-torture/execute/execute.exp: Ditto.
+ * gfortran.fortran-torture/compile/compile.exp: Ditto.
+ * gcc.target/x86_64/abi/abi-x86_64.exp: Ditto.
+ * gcc.target/i386/math-torture/math-torture.exp: Define
+ MATH_TORTURE_OPTIONS, use new torture procs.
+ * gcc.dg/pch/pch.exp: Use new torture procs.
+ * gcc.dg/format/format.exp: Ditto.
+ * gcc.misc-tests/i386-prefetch.exp: Ditto.
+ * gcc.misc-tests/dectest.exp: Ditto.
+ * objc.dg/pch/pch.exp: Ditto.
+ * objc/execute/execute.exp: Ditto.
+ * objc/execute/exceptions/exceptions.exp: Ditto.
+ * objc/compile/compile.exp: Ditto.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36245
+ * gcc.c-torture/compile/pr36245.c: New testcase.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/loadpre7.c: Adjust scan for not performed
+ transformation.
+ * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36244
+ * gcc.dg/torture/pr36244.c: New testcase.
+
+2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr8.ad[sb]: New test.
+ * gnat.dg/discr8_pkg[123].ads: New helpers.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/sse-set-ps-1.c: New.
+ * gcc.target/i386/sse4_1-set-ps-1.c: Likewise.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36009
+ PR tree-optimization/36204
+ * gcc.dg/tree-ssa/ssa-lim-5.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-lim-6.c: Likewise.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34330
+ * gcc.dg/torture/pr34330.c: New testcase.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36059
+ * gfortran.dg/repack_arrays_1.f90: New test.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36186
+ * gfortran.dg/boz_11.f90: New test.
+ * gfortran.dg/boz_12.f90: New test.
+
+2008-05-14 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36233
+ * gfortran.dg/actual_procedure_1.f90: New test
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35682
+ * gfortran.dg/bound_4.f90: New test.
+ * gfortran.dg/bounds_check_14.f90: New test.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35685
+ * gfortran.dg/bound_3.f90: New test.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * gcc.target/i386/sse5-imul32widen-vector.c: New file to test x86
+ SSE5 optimizations.
+ * gcc.target/i386/sse5-imul64-vector.c: Ditto.
+ * gcc.target/i386/sse5-rotate1-vector.c: Ditto.
+ * gcc.target/i386/sse5-rotate2-vector.c: Ditto.
+ * gcc.target/i386/sse5-rotate3-vector.c: Ditto.
+ * gcc.target/i386/sse5-shift1-vector.c: Ditto.
+ * gcc.target/i386/sse5-shift2-vector.c: Ditto.
+ * gcc.target/i386/sse5-shift3-vector.c: Ditto.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+
+ PR target/36224
+ * gcc.dg/pr36224.c: New file.
+
+2008-05-14 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/blkextract_from_reg.adb: New test.
+
+2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36215
+ * gfortran.dg/include_3.f95: New test.
+
+2008-05-14 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36098
+ * gcc.dg/vect/vect.exp: Compile with -O3 all the tests named "O3-*".
+ * gcc.dg/vect/O3-pr36098.c: New test.
+
+2008-05-14 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/old_errors.ads, gnat.dg/old_errors.adb: New.
+
+2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * g++.dg/eh/080513-1.C: New testcase.
+
+2008-05-13 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36222
+ * gcc.target/i386/pr36222-1.c: New test.
+
+2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/sse-init-v4hi-1.c: New.
+ * gcc.target/i386/sse-init-v4sf-1.c: Likewise.
+ * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
+ * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
+ * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
+ * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
+ * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise.
+ * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise.
+ * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise.
+ * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise.
+
+2008-05-13 Janis Johnson <janis187@us.ibm.com>
+
+ PR testsuite/35127
+ * gcc.c-torture/compile/20031125-1.c: Remove dg-do, dg-options.
+ * gcc.c-torture/compile/20031125-2.c: Ditto.
+ * gcc.c-torture/compile/20031203-1.c: Ditto.
+ * gcc.c-torture/compile/acc1.c: Remove -O2 from dg-options.
+ * gcc.c-torture/compile/builtin_constant_p.c: Remove dg-options.
+ * gcc.c-torture/compile/pr21562.c: Remove -O3 from dg-options.
+ * gcc.c-torture/compile/pr25483.c: Remove -O from dg-options.
+ * gcc.c-torture/compile/pr32349.c: Remove -O2 from dg-options.
+ * gcc.c-torture/compile/pr32355.c: Remove dg-options.
+ * gcc.c-torture/compile/pr34448.c: Ditto.
+ * gcc.c-torture/compile/pr34648.c: Remove -O2 from dg-options.
+
+2008-05-13 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22168:
+ * gcc.dg/pch/import-2.hs: Add -Wno-deprecated.
+ * gcc.dg/pch/import-1.hs: Add -Wno-deprecated.
+ * gcc.dg/pch/import-2.c: Add -Wno-deprecated.
+ * gcc.dg/pch/import-1.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/import2.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/import1.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/trad/assert3.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/trad/assert2.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/trad/assert1.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/ident.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/ident-1.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/extratokens.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/assert3.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/assert2.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/assert1.c: Add -Wno-deprecated.
+ * gcc.dg/cpp/assert4.c: Compile with -ansi and not -pedantic. Add
+ -Wno-deprecated.
+ * gcc.dg/cpp/pr22168.c: New file.
+ * gcc.dg/cpp/pr22168-2.c: New file.
+
+2008-05-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36227
+ * gcc.dg/pr36227.c: New testcase.
+
+2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr7.adb: New test
+ * gnat.dg/conv_integer.adb: Likewise.
+
+2008-05-12 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.c-torture/compile/pr11832.c: XFAIL for mips and powerpc-linux,
+ then ignore ICE message to avoid a second failure.
+ * gcc.c-torture/compile/pr33009.c: Ditto.
+ * lib/gcc-dg.exp: Explain in comment how to XFAIL an ICE.
+
+2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/pr34457-1.c: Skip for target without trampolines.
+ * gcc.dg/20050607-1.c: Ditto.
+ * gcc.dg/trampoline-1.c: Ditto.
+ * gcc.dg/debug/debug-3.c: Ditto.
+ * gcc.dg/debug/debug-5.c: Ditto.
+
+2008-05-12 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/specs/statically_matching.ads: New.
+
+2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/sse2-set-epi32-1.c: New.
+ * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
+ * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise.
+ * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise.
+
+2008-05-12 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/36111
+ * gcc.dg/pr36111.c: New test.
+
+2008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36176
+ * gfortran.dg/transfer_simplify_9.f90: New test.
+
+2008-05-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/35331
+ * g++.dg/cpp0x/vt-35331.C: New.
+ * g++.dg/cpp0x/pr32125.C: Adjust.
+ * g++.dg/cpp0x/pr32126.C: Likewise.
+ * g++.dg/cpp0x/pr31438.C: Likewise.
+ * g++.dg/cpp0x/variadic81.C: Likewise.
+ * g++.dg/cpp0x/vt-34055.C: Likewise.
+ * g++.dg/cpp0x/vt-34606.C: Likewise.
+
+2008-05-12 Ira Rosen <irar@il.ibm.com>
+
+ * gfortran.dg/vect/pr36119.f: Rename to ...
+ * gfortran.dg/vect/O3-pr36119.f90: ... this. Compile for all targets
+ with -O3.
+
+2008-05-11 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/mips.exp: Move passing -DMIPS16=... from here ...
+ * lib/target-supports.exp (add_options_for_mips16_attribute):
+ ... to here.
+
+2008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/35719
+ * gfortran.dg/associated_5.f90: New test.
+
+2008-05-11 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/scc-1.c: Require mips16_attribute, and add
+ the associated options.
+ * gcc.target/mips/scc-3.c: Likewise.
+
+2008-05-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/default_format_1.f90: Move denormals tests to
+ gfortran.dg/default_format_denormal_1.f90.
+ * gfortran.dg/default_format_denormal_1.f90: Added denormal tests.
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/nint_2.f90: XFAIL on mingw.
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/streamio_15.f90: Take care of Windows CRLF line
+ terminator.
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/fseek.f90: Take care of Windows CRLF line
+ terminator.
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/fmt_t_5.f90: Take care of Windows CRLF line
+ terminator.
+
+2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/36185
+ * g++.dg/opt/pr36185.C
+
+2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * write_to_null.f90: Rename to write_to_null.F90.
+ * write_to_null.F90: On Windows, "nul" is the equivalent of the
+ Unix /dev/null.
+
+2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/33642
+ * gcc.c-torture/compile/pr11832.c: Skip for MIPS.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-05-09 Tom Tromey <tromey@redhat.com>
+
+ * gcc.dg/pr22231.c: Fix dg-error call.
+
+2008-05-09 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22231:
+ * gcc.dg/pr22231.c: New file.
+
+2008-05-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36187
+ * g++.dg/opt/pr36187.C: New testcase.
+
+2008-05-08 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/tree-ssa/data-dep-1.c: New.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/20040911-1.c: Adjust.
+ * gcc.dg/tree-ssa/20040517-1.c: Likewise.
+ * gcc.dg/tree-ssa/pr26421.c: Likewise.
+ * gcc.dg/tree-ssa/pr23382.c: Likewise.
+ * gcc.dg/tree-ssa/alias-15.c: Likewise.
+ * gcc.dg/tree-ssa/inline_asm-1.c: Likewise.
+ * gcc.dg/tree-ssa/inline_asm-2.c: Likewise.
+ * gcc.dg/tree-ssa/pta-fp.c: Likewise.
+ * gcc.dg/tree-ssa/20031015-1.c: Likewise.
+ * gcc.dg/tree-ssa/alias-12.c: Likewise.
+
+2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/36162
+ * gfortran.dg/module_widestring_1.f90: New test.
+
+2008-05-08 Rafael Espíndola <espindola@google.com>
+
+ * gcc.dg/vect/vect-111.c: Rename to no-trapping-math-vect-111.c
+ * gcc.dg/vect/vect-ifcvt-11.c: Rename to
+ no-trapping-math-vect-ifcvt-11.c
+ * gcc.dg/vect/vect-ifcvt-12.c: Rename to
+ no-trapping-math-vect-ifcvt-12.c
+ * gcc.dg/vect/vect-ifcvt-13.c: Rename to
+ no-trapping-math-vect-ifcvt-13.c
+ * gcc.dg/vect/vect-ifcvt-14.c: Rename to
+ no-trapping-math-vect-ifcvt-14.c
+ * gcc.dg/vect/vect-ifcvt-15.c: Rename to
+ no-trapping-math-vect-ifcvt-15.c
+
+2008-05-08 David Daney <ddaney@avtrex.com>
+
+ * lib/target-supports.exp (check_effective_target_sync_int_long): Add
+ mips*-*-*.
+ (check_effective_target_sync_char_short): Same.
+
+2008-05-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.c-torture/compile/pr36172.c: Replace unsigned long by
+ __SIZE_TYPE__.
+
+2008-05-08 Sa Liu <saliu@de.ibm.com>
+
+ * gcc.target/spu/subti3.c: New.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36154
+ * gcc.c-torture/compile/pr36154.c: New testcase.
+
+2008-05-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36172
+ * gcc.c-torture/compile/pr36172.c: New testcase.
+
+2008-05-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35714
+ * gcc.target/i386/pr35714.c: New test.
+
+2008-05-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/36013
+ * gcc.c-torture/execute/20080506-2.c: New test.
+
+ PR middle-end/36137
+ * gcc.c-torture/execute/20080506-1.c: New test.
+
+2008-05-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34974
+ * gfortran.dg/fmt_t_7.f: XFAIL this until we get issue resolved.
+
+2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/36155
+ * g++.dg/ext/utf32-4.C: Fix a typo.
+
+2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/36155
+ * gcc.dg/utf32-4.c: Fix a typo.
+
+ * lib/target-supports.exp (check_effective_target_4byte_wchar_t):
+ Use __WCHAR_TYPE__ instead of wchar_t.
+
+2008-05-06 Mark Shinwell <shinwell@codesourcery.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+ Andrew Jenner <andrew@codesourcery.com>
+
+ * g++.old-deja/g++.jason/enum6.C, g++.old-deja/g++.law/enum9.C,
+ g++.old-deja/g++.other/enum4.C, gfortran/enum_9.f90,
+ gfortran.dg/enum_10.f90: Broaden dg-options pattern.
+
+2008-05-06 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/35313, PR preprocessor/36088:
+ * gcc.dg/cpp/pr35313.c: New file.
+ * gcc.dg/cpp/if-oppr.c: Remove test for ',' in a conditional
+ expression.
+ * gcc.dg/cpp/if-oppr2.c: New file.
+
+2008-05-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36117
+ * gfortran.dg/bessel_2.f90: New.
+
+2008-05-06 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/fatp_sra.adb: New test.
+
+2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/36141
+ * gcc.c-torture/pr36141.c: New testcase.
+
+2008-05-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * lib/target-supports.exp (check_effective_target_4byte_wchar_t):
+ New proc.
+ * gcc.dg/utf16-4.c: Use it.
+ * gcc.dg/utf32-4.c: Use it.
+ * g++.dg/ext/utf16-4.C: Use it.
+ * g++.dg/ext/utf32-4.C: Use it.
+
+2008-05-05 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * gfortran.dg/dev_null.f90. Remove and replace with...
+ * gfortran.dg/dev_null.F90: Use preprocessor define to
+ generalize the DEV_NULL name.
+
+2008-05-05 Andrew Pinski <andrew.pinski@playstation.sony.com>
+
+ * gcc.dg/tree-ssa/forwprop-5.c: New testcase.
+ * gcc.dg/tree-ssa/forwprop-6.c: New testcase.
+ * gcc.dg/tree-ssa/forwprop-7.c: New testcase.
+ * gcc.dg/tree-ssa/forwprop-8.c: New testcase.
+ * gcc.dg/tree-ssa/forwprop-9.c: New testcase.
+
+2008-05-05 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36119
+ * gfortran.dg/vect/pr36119.f: New test.
+
+2008-05-04 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35995
+ * gfortran.dg/intrinsic_ifunction_1.f90: New test case.
+
+2008-05-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ * gcc.dg/nested-func-5.c: Skip for target without trampolines.
+ * gcc.dg/torture/nested-fn-1.c: Ditto.
+
+2008-05-04 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35990
+ * gfortran.dg/intrinsic_pack_4.f90: New test case.
+
+2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr6_pkg.ads: New helper.
+ * gnat.dg/discr6.adb: New test.
+
+2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/alignment4.adb: Adjust.
+ * gnat.dg/alignment5.adb: Likewise.
+ * gnat.dg/alignment6.adb: XFAIL.
+
+2008-05-03 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/loop-36.c: Cleanup the dump file.
+
+2008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/33268
+ * gfortran.dg/io_constraints_4.f90: New test.
+
+2008-05-01 Simon Baldwin <simonb@google.com>
+
+ PR bootstrap/36108
+ * gcc.dg/Warray-bounds.c: Removed frontend warnings update.
+ * g++.dg/warn/Warray-bounds.c: Ditto.
+ * gcc.dg/Warray-bounds-noopt.c: Removed testcase.
+ * g++.dg/warn/Warray-bounds-noopt.c: Ditto.
+
+2008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
+
+ PR fortran/35940
+ * gfortran.dg/index.f90: New test.
+
+2008-05-01 Simon Baldwin <simonb@google.com>
+
+ * gcc.dg/Warray-bounds.c: Updated for frontend warnings,
+ additional tests for arrays of size 0 and size 1.
+ * g++.dg/warn/Warray-bounds.c: Ditto.
+ * gcc.dg/Warray-bounds-noopt.c: New testcase.
+ * g++.dg/warn/Warray-bounds-noopt.c: Ditto.
+
+2008-05-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36093
+ * gcc.c-torture/execute/pr36093.c: New testcase.
+
+2008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gfortran.dg/selected_char_kind_1.f90: New test.
+ * gfortran.dg/selected_char_kind_2.f90: New test.
+ * gfortran.dg/selected_char_kind_3.f90: New test.
+
+2008-04-28 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35997
+ * gfortran.dg/use_rename_3.f90
+
+2008-04-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/21636
+ * gcc.dg/tree-ssa/ssa-ccp-19.c: New testcase.
+
+2008-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35993
+ * gfortran.dg/intrinsic_product_1.f90: New test case.
+
+2008-04-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14847
+ * gcc.dg/tree-ssa/ssa-ifcombine-6.c: New testcase.
+
+2008-04-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35986
+ * g++.dg/overload/template4.C: New test.
+
+2008-04-30 Kai Tietz <kai.tietz@onevision.com>
+
+ * gfortran.dg/chmod_1.f90: Disable for *-*-mingw*.
+ * gfortran.dg/chmod_2.f90: Likewise.
+ * gfortran.dg/chmod_3.f90: Likewise.
+ * gfortran.dg/open_errors.f90: Likewise.
+
+2008-04-30 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gcc.dg/tls/section-2.c: Restrict to vxworks.
+
+2008-04-29 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/35792
+ * gnat.dg/specs/tag2.ads: New.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36078
+ * gfortran.fortran-torture/compile/pr36078.f90: New testcase.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/15255
+ * gcc.dg/fold-plusmult.c: New testcase.
+
+2008-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36077
+ * gcc.c-torture/execute/pr36077.c: New testcase.
+
+2008-04-29 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/sync-2.c: Set dg-options "-ansi".
+
+2008-04-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35650
+ * g++.dg/init/ref17.C: New test.
+
+ PR c++/35987
+ * g++.dg/other/error28.C: New test.
+
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36073
+ * gcc.target/i386/pr36073.c: New test.
+
+2008-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR testsuite/34223
+ * gcc.dg/vect/vect-118.c: Rename to ...
+ * gcc.dg/vect/O3-vect-pr34223.c: ... this.
+
+2008-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36066
+ * gcc.dg/torture/pr36066.c: New testcase.
+
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36064
+ * gcc.target/i386/pr36064.c: New test.
+
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/36056
+ * g++.dg/ext/vector14.C: Add -msse for 32bit x86 targets.
+
+2008-04-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/18754
+ PR tree-optimization/34223
+ * gcc.dg/tree-ssa/loop-36.c: New testcase.
+ * gcc.dg/tree-ssa/loop-37.c: Likewise.
+ * gcc.dg/vect/vect-118.c: Likewise.
+ * gcc.dg/Wunreachable-8.c: XFAIL bogus warning.
+ * gcc.dg/vect/vect-66.c: Increase loop trip count.
+ * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
+ * gcc.dg/vect/no-section-anchors-vect-69.c: Likewise.
+ * gcc.dg/vect/vect-76.c: Likewise.
+ * gcc.dg/vect/vect-outer-6.c: Likewise.
+ * gcc.dg/vect/vect-outer-1.c: Likewise.
+ * gcc.dg/vect/vect-outer-1a.c: Likewise.
+ * gcc.dg/vect/vect-11a.c: Likewise.
+ * gcc.dg/vect/vect-shift-1.c: Likewise.
+ * gcc.target/i386/vectorize1.c: Likewise.
+
+2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gcc.dg/tls/section-2.c: New.
+ * gcc.dg/tls/emutls-1.c: New.
+ * lib/target-supports.exp (check_effective_target_tls_native):
+ Exclude vxworks.
+
+2008-04-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/36053
+ * gcc.dg/large-size-array-2.c: Fix x86_64-*-mingw* check.
+ * gcc.dg/large-size-array-4.c: Likewise.
+
+2008-04-26 George Helffrich <george@gcc.gnu.org>
+
+ PRs fortran/35154, fortran/23057
+ * gfortran.dg/debug/pr35154-stabs.f: New test case for
+ .stabs functionality.
+ * gfortran.dg/debug/pr35154-dwarf2.f: New test case for
+ DWARF functionality.
+
+2008-04-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Expect
+ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 and
+ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 to be defined.
+ * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
+
+2008-04-25 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran/array_constructor_23.f: Change REAL(10) into kind > 8.
+ * gfortran/array_constructor_24.f: New; REAL(8) version of the test.
+
+2008-04-25 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/array-quals-1.c: Add xfail for x86_64-*-mingw*.
+ * gcc.dg/builtins-12.c: Add dg-options "-ansi".
+ * gcc.dg/builtins-13.c: Likewise.
+ * gcc.dg/pr25682.c: Likewise.
+ * gcc.dg/pr33694.c: Likewise.
+ * gcc.dg/c90-const-expr-2.c: Add check for _WIN64 define.
+ * gcc.dg/c99-const-expr-2.c: Likewise.
+ * gcc.dg/ia64-sync-1.c: Add typedef of size_t, for prototype.
+ * gcc.dg/ia64-sync-2.c: Likewise.
+ * gcc.dg/ia64-sync-3.c: Likewise
+ * gcc.dg/large-size-array.c: Add check for _WIN64 define.
+ * gcc.dg/large-size-array-3.c: Likewise.
+ * gcc.dg/large-size-array-2.c: Add x86_64-*-mingw* for ignore error
+ check.
+ * gcc.dg/large-size-array-4.c: Likewise.
+ * gcc.dg/max-1.c: Replace use of long by ssize_t.
+
+2008-04-24 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/lower-subreg-1.c: Skip IA64 platform.
+
+2008-04-24 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/vect/slp-15.c: Fix scan when vect_int_mult is false.
+
+2008-04-24 Steve Ellcey <sje@cup.hp.com>
+
+ PR testsuite/36035
+ * gcc.dg/vect/vect-vfa-slp.c: Remove bad check.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/pr36017.c: Run on all targets, remove -lm from dg-options.
+
+ PR c++/35758
+ * g++.dg/ext/vector14.C: New test.
+
+2008-04-24 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/builtin-constant_p-1.c: New testcase.
+ * gcc.dg/builtin-errors.c: Adjust expected error.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/36008
+ * gcc.c-torture/execute/20080424-1.c: New test.
+
+2008-04-24 Ira Rosen <irar@il.ibm.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36034
+ * gcc.c-torture/execute/pr36034-1.c: New testcase.
+ * gcc.c-torture/execute/pr36034-2.c: Likewise.
+
+2008-04-24 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/concat_length.adb: New test.
+
+2008-04-24 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35982
+ * gcc.dg/vect/fast-math-pr35982.c: New.
+
+2008-04-24 Danny Smith <dannysmith@users.net>
+
+ * gcc.dg/format/ms-warnI64-1.c: New file.
+
+2008-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/36015
+ * gcc.dg/pr36015.c: New test.
+
+2008-04-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR rtl-optimization/36006
+ * gfortran.dg/pr36006-1.f90: New test.
+ * gfortran.dg/pr36006-2.f90: Ditto.
+
+2008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35994
+ * gfortran.dg/minmaxloc_5.f90: New test.
+ * gfortran.dg/minmaxloc_6.f90: New test.
+
+2008-04-23 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/array-init-1.c: Add big-endian number to check.
+
+2008-04-23 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27799
+ PR tree-optimization/32921
+ PR tree-optimization/32624
+ * gcc.dg/tree-ssa/pr27799.c: New testcase.
+ * gcc.dg/tree-ssa/20030807-7.c: Remove xfail, scan vrp dump.
+
+2008-04-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36021
+ * gcc.dg/attr-alloc_size-2.c: New testcase.
+
+2008-04-23 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/20020919-1.c (loc_size_t): New type.
+ (_dl_stat): Use loc_size_t to cast pointers.
+ * gcc.c-torture/compile/20010327-1.c: Skip for x86_64-*-mingw*.
+
+2008-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35988
+ * gfortran.dg/matmul_7.f90: New test.
+
+2008-04-22 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/struct/wo_prof_global_var.c: Initialize array.
+ * gcc.dg/struct/wo_prof_malloc_size_var.c: Ditto.
+ * gcc.dg/struct/w_prof_local_var.c: Ditto.
+ * gcc.dg/struct/w_prof_global_var.c: Ditto.
+ * gcc.dg/struct/wo_prof_local_var.c: Ditto.
+
+2008-04-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/35316
+ * g++.dg/cpp0x/decltype11.C: New.
+
+2008-04-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/36017
+ * gcc.dg/pr36017.c: New test.
+
+2008-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35747
+ * g++.dg/ext/stmtexpr13.C: New test.
+
+2008-04-22 Ian Lance Taylor <iant@google.com>
+
+ * gcc.c-torture/compile/20080419-1.c: New test.
+
+2008-04-22 Kris Van Hees <kris.van.hees@oracle.com>
+
+ PR testsuite/35981
+ * g++.dg/ext/utf-cvt.C: Handle 64-bit platforms correctly.
+ Add tests for 'long long'.
+ * gcc.dg/utf-cvt.c: Handle 64-bit platforms correctly.
+ Add tests for 'long long'.
+
+2008-04-22 Nick Clifton <nickc@redhat.com>
+
+ * gcc.dg/Wconversion-real.c: Add missing end of comment marker.
+
+2008-04-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/31486
+ * gcc.target/i386/pr31486.c: New test.
+
+2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.dg/profile-dir-1.c, gcc.dg/profile-dir-2.c,
+ gcc.dg/profile-dir-3.c: Generate tree_profile dump. Check gcda
+ file name there instead of the assembly. Cleanup tree_profile
+ dump file.
+
+2008-04-21 Steve Ellcey <sje@cup.hp.com>
+
+ * gcc.dg/vect/vect-vfa-slp.c: XFAIL if vect_no_align.
+ * gcc.dg/vect/slp-25.c: Ditto.
+ * gcc.dg/vect/vect-outer-5.c: Ditto.
+ * gcc.dg/vect/pr33804.c: Ditto.
+ * gcc.dg/vect/vect-outer-4c.c: Ditto.
+ * gcc.dg/vect/no-vfa-vect-depend-1.c: Ditto.
+ * gcc.dg/vect/pr33953.c: Ditto.
+ * gcc.dg/vect/slp-3.c: Ditto.
+ * gcc.dg/vect/vect-iv-6.c: Ditto.
+
+2008-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/ext/fixed1.C: Add dg-options.
+
+2008-04-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/26445
+ * g++.dg/other/i386-4.C: New test.
+
+2008-04-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/35325
+ * g++.dg/ext/fixed1.C: New.
+
+ PR c++/35678
+ * g++.dg/template/ttp27.C: New.
+
+2008-04-21 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/33415:
+ * gcc.dg/cpp/pr33415.c: New file.
+
+2008-04-21 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/bltins.adb: New testcase.
+
+2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35991
+ * gfortran.dg/zero-sized_4.f90: New test.
+
+2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35882
+ * gfortran.dg/continuation_5.f: Add some comment lines.
+ * gfortran.dg/continuation_3.f90: Add some comment lines.
+
+2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35960
+ * gfortran.dg/reshape_zerosize_1.f90: New file.
+
+2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/alignment6.adb: New test.
+
+2008-04-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35944
+ PR fortran/35946
+ PR fortran/35947
+ * gfortran.dg/array_constructor_23.f: New test.
+
+ PR fortran/35959
+ * gfortran.dg/alloc_comp_default_init_2.f90: New test.
+ * gfortran.dg/alloc_comp_basics_1.f90: Change occurrences of
+ "builtin_free" to 27.
+ * gfortran.dg/alloc_comp_constructor_1.f90: Change occurrences
+ of "builtin_free" to 21.
+
+2008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35892
+ * gfortran.dg/pr35154-dwarf2.f: Remove.
+ * gfortran.dg/pr35154-stabs.f: Remove.
+
+2008-04-18 Ian Lance Taylor <iant@google.com>
+
+ PR tree-optimization/35977
+ * gcc.dg/tree-ssa/forwprop-3.c: Use -O2 rather than -O.
+
+2008-04-18 Jakub Jelinek <jakub@redhat.com>
+ Peter Bergner <bergner@vnet.ibm.com>
+
+ PR target/35907
+ * gcc.target/powerpc/pr35907.c: New test.
+
+2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/dynamic_elab_pkg.ads: New helper.
+ * gnat.dg/dynamic_elab1.ad[sb]: New test.
+ * gnat.dg/dynamic_elab2.ad[sb]: Likewise.
+
+2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ Tests for char16_t and char32_t support.
+ * g++.dg/ext/utf-cvt.C: New
+ * g++.dg/ext/utf-cxx0x.C: New
+ * g++.dg/ext/utf-cxx98.C: New
+ * g++.dg/ext/utf-dflt.C: New
+ * g++.dg/ext/utf-gnuxx0x.C: New
+ * g++.dg/ext/utf-gnuxx98.C: New
+ * g++.dg/ext/utf-mangle.C: New
+ * g++.dg/ext/utf-typedef-cxx0x.C: New
+ * g++.dg/ext/utf-typedef-cxx98.C: New
+ * g++.dg/ext/utf-typespec.C: New
+ * g++.dg/ext/utf16-1.C: New
+ * g++.dg/ext/utf16-2.C: New
+ * g++.dg/ext/utf16-3.C: New
+ * g++.dg/ext/utf16-4.C: New
+ * g++.dg/ext/utf32-1.C: New
+ * g++.dg/ext/utf32-2.C: New
+ * g++.dg/ext/utf32-3.C: New
+ * g++.dg/ext/utf32-4.C: New
+ * gcc.dg/utf-cvt.c: New
+ * gcc.dg/utf-dflt.c: New
+ * gcc.dg/utf16-1.c: New
+ * gcc.dg/utf16-2.c: New
+ * gcc.dg/utf16-3.c: New
+ * gcc.dg/utf16-4.c: New
+ * gcc.dg/utf32-1.c: New
+ * gcc.dg/utf32-2.c: New
+ * gcc.dg/utf32-3.c: New
+ * gcc.dg/utf32-4.c: New
+
+2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/varsize_return.ads: New test.
+ * gnat.dg/specs/varsize_return_pkg1.ad[sb]: New helper.
+ * gnat.dg/specs/varsize_return_pkg2.ad[sb]: Likewise.
+
+2008-04-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/35773
+ * g++.dg/overload/autoptr1.C: New.
+
+2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/alignment4.adb: New test.
+ * gnat.dg/alignment5.adb: Likewise.
+ * gnat.dg/frame_overflow.adb: Adjust.
+
+2008-04-17 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-fre-17.c: New testcase.
+
+2008-04-17 Christian Bruel <christian.bruel@st.com>
+
+ * gcc.dg/long-long-compare-1.c: New testcase.
+
+2008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35724
+ * gfortran.dg/eoshift_2.f90: New test.
+
+2008-04-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35932
+ * gfortran.dg/intrinsic_char_1.f90: New test.
+
+2008-04-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR target/35944
+ * gfortran.dg/pr35944-1.f90: New test.
+ * gfortran.dg/pr35944-2.f90: Ditto.
+
+2008-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35739
+ * gcc.dg/dfp/pr35739.c: New test.
+
+ PR tree-optimization/35899
+ * gcc.dg/pr35899.c: New test.
+
+ PR target/35662
+ * gfortran.dg/pr35662.f90: New test.
+
+2008-04-16 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/loop-35.c: New testcase.
+
+2008-04-16 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/29015
+ * gnat.dg/incomplete1.ads, gnat.dg/incomplete2.ads,
+ gnat.dg/incomplete2.adb: New.
+
+2008-04-16 Hans-Peter Nilsson <hp@axis.com>
+
+ PR tree-optimization/35629
+ * gcc.dg/tree-ssa/loop-25.c: Xfail all but the first
+ scan-tree-dump-times.
+
+2008-04-15 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/22387
+ * gnat.dg/specs/corr_discr.ads: New.
+
+2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/string_slice2.adb: New test.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-compare-2.c: Adjust testcase.
+ * gcc.dg/tree-ssa/pr21086.c: Likewise.
+
+2008-04-15 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/salias-1.c: Remove.
+ * gcc.dg/tree-ssa/pr26421.c: Adjust pattern.
+ * gcc.dg/tree-ssa/alias-15.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-lim-3.c: Run at -O2.
+
+2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization1.ad[sb]: New test.
+
+2008-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35751
+ * gcc.dg/gomp/pr35751.c: New test.
+ * g++.dg/gomp/pr35751.C: New test.
+
+2008-04-15 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/16086
+ * gnat.dg/prot_def.adb: New.
+
+2008-04-14 Ian Lance Taylor <iant@google.com>
+
+ * gcc.dg/strict-overflow-6.c: New.
+ * gcc.dg/no-strict-overflow-7.c: New.
+ * gcc.dg/Wstrict-overflow-22.c: New.
+
+2008-04-14 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/specs/storage.ads: Fix expected error message.
+
+2008-04-14 Robert Dewar <dewar@adacore.com>
+
+ * gnat.dg/specs/linker_section.ads: Check for more error conditions.
+
+2008-04-14 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/18680
+ * gnat.dg/specs/linker_section.ads: New.
+
+2008-04-14 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/16098
+ * gnat.dg/specs/renamings.ads: New.
+
+2008-04-14 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/15915
+ * gnat.dg/specs/storage.ads: New.
+
+2008-04-14 Samuel Tardieu <sam@rfc1149.net>
+
+ * gnat.dg/deep_old.adb: New.
+
+2008-04-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_address2.adb: New test.
+
+2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35882
+ * gfortran.dg/continuation_3.f90: Update test.
+ * gfortran.dg/continuation_5.f: Update test.
+ * gfortran.dg/continuation_10.f90: New test.
+
+2008-04-13 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32972
+ PR libfortran/32512
+ * gfortran.dg/internal_pack_1.f90: Add test for derived type.
+ * gfortran.dg/intrinsic_spread_1.f90: Likewise.
+ * gfortran.dg/intrinsic_pack_1.f90: Likewise.
+ * gfortran.dg/intrinsic_unpack_1.f90: Likewise.
+
+2008-04-13 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/17985
+ * gnat.dg/ancestor_type.ads, gnat.dg/ancestor_type.adb: New test.
+
+2008-04-12 Andrew Pinski <pinskia@gmail.com>
+
+ * gcc.target/powerpc/darwin-save-world-1.c: New test.
+
+2008-04-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35869
+ * gcc.c-torture/compile/pr35869.c: New testcase.
+
+2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/sse-13.c: Move __builtin_ia32_round* to new
+ /* mmintrin-common.h */ section.
+
+ * gcc.target/i386/sse-14.c: Add tests for mmintrin-common.h.
+
+2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35744
+ * gcc.dg/attr-error-1.c: New test.
+
+2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/scc-2.c: New test.
+ * gcc.target/mips/scc-3.c: New test.
+ * gcc.target/mips/scc-4.c: New test.
+
+2008-04-10 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/35821
+ * gcc.dg/vect/pr35821-altivec.c: New.
+ * gcc.dg/vect/pr35821-spu.c: New.
+
+2008-04-09 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR testsuite/34894
+ PR testsuite/33782
+ * lib/target-supports.dg: Add check_effective_target_trampolines.
+ Disable profiling for avr-*-*.
+ * gcc.c-torture/compile/pr27889.c: dg-requires trampolines.
+ * gcc.c-torture/compile/nested-1.c: Ditto.
+ * gcc.c-torture/compile/20050122-2.c: Ditto.
+ * gcc.c-torture/compile/20010226-1.c: Ditto.
+ * gcc.c-torture/compile/20010327-1.c: Skip for avr-*-*.
+ * gcc.c-torture/compile/980506-1.c: Ditto.
+ * gcc.c-torture/compile/20020604-1.c: Ditto.
+ * gcc.c-torture/compile/limits-stringlit.c: Ditto
+ * gcc.c-torture/compile/20001226-1.c: Ditto
+
+2008-04-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/35708
+ * g++.dg/ext/complit9.C: New.
+
+2008-04-09 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/28305
+ * gnat.dg/specs/fe_inlining.ads, gnat.dg/specs/fe_inlining_helper.ads,
+ gnat.dg/specs/fe_inlining_helper.adb: New test.
+
+2008-04-09 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/torture/fp-int-convert.h: Use TImode type for
+ x86_64-pc-mingw target.
+ * gcc.dg/titype-1.c: Likewise.
+
+2008-04-09 Richard Sandiford <richard@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_vxworks_kernel):
+ Fix comment.
+ (check_effective_target_vxworks_rtp): New procedure.
+ * g++.dg/opt/20050511-1.C: Rename UINT32 for VxWorks kernel mode.
+ * g++.dg/warn/miss-format-1.C: XFAIL for VxWorks.
+ * g++.old-deja/g++.abi/cxa_vec.C: XFAIL for VxWorks kernels.
+ * g++.old-deja/g++.brendan/new3.C: Likewise.
+ * g++.old-deja/g++.eh/badalloc1.C: XFAIL for VxWorks RTPs.
+ * g++.old-deja/g++.law/missed-error2.C: Undefine max for
+ VxWorks kernel mode.
+ * g++.old-deja/g++.mike/init1.C: XFAIL for VxWorks kernel mode.
+ * g++.old-deja/g++.mike/p2736.C: Likewise.
+ * g++.old-deja/g++.mike/p658.C: Undefine OK for VxWorks kernel mode.
+ * g++.old-deja/g++.other/headers1.C: Likewise min and max.
+ * g++.old-deja/g++.robertl/eb79.C: Undefine max for VxWorks
+ kernel mode.
+
+2008-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortran.dg/namelist_47.f90: New test.
+
+2008-04-09 Richard Guenther <rguenther@suse.de>
+
+ * gfortran.dg/bind_c_usage_14.f03: Adjust.
+
+2008-04-08 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/35005
+ * execute/20071221-1.c: Adapt test for 16 bit int targets.
+ * execute/pr35163.c: Ditto.
+
+2008-04-08 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/20080408-1.c: New testcase.
+
+2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack6.adb: New test.
+ * gnat.dg/pack7.adb: Likewise.
+ * gnat.dg/pack8.adb: Likewise.
+
+2008-04-08 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/parent_ltd_with-child_full_view.adb: New test.
+ * gnat.dg/rt1.adb: New test.
+ * gnat.dg/test_time_stamp.adb: New test.
+ * gnat.dg/specs/warn_star.ads: New test.
+ * gnat.dg/specs/aggr1.ads: New test.
+
+2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/25829 28655
+ * gfortran.dg/write_check2.f90: Update dg-error.
+ * gfortran.dg/io_constraints_1.f90: Udate dg-error.
+
+2008-04-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/35734
+ * g++.dg/warn/ctor1.C: New.
+
+2008-04-07 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/35842
+ * gcc.dg/torture/pr35842.c: New.
+
+2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/array4.adb: New test.
+ * gnat.dg/specs/static_initializer2.ads: Likewise.
+
+2008-04-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35400
+ * gcc.dg/torture/pr35400.c: New testcase.
+ * g++.dg/torture/pr35400.C: Likewise.
+
+2008-04-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35780
+ * gfortran.dg/simplify_argN_1.f90: New test.
+
+2008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ PR fortran/35832
+ * gfortran.dg/io_constraints_2.f90: Adapt to new error message.
+
+2008-04-06 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/f2003_io_1.f03: Make standard conform.
+ * gfortran.dg/f2003_io_8.f03: New.
+
+2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack5.adb: New test.
+
+2008-04-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/12329
+ * gcc.target/i386/pr12329.c: New test.
+
+2008-04-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pr35823.adb: Rename to size_attribute.adb.
+
+2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/25829 28655
+ * gfortran.dg/f2003_io_1.f03: New test.
+ * gfortran.dg/f2003_io_2.f03: New test.
+ * gfortran.dg/f2003_io_3.f03: New test.
+ * gfortran.dg/f2003_io_4.f03: New test.
+ * gfortran.dg/f2003_io_5.f03: New test.
+ * gfortran.dg/f2003_io_6.f03: New test.
+ * gfortran.dg/f2003_io_7.f03: New test.
+
+2008-04-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35833
+ * gcc.dg/torture/pr35833.c: New testcase.
+
+2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-band.c: New test.
+ * gcc.target/sh/sh2a-bclrmem.c: New test.
+ * gcc.target/sh/sh2a-bld.c: New test.
+ * gcc.target/sh/sh2a-bor.c: New test.
+ * gcc.target/sh/sh2a-bsetmem.c: New test.
+ * gcc.target/sh/sh2a-bxor.c: New test.
+
+2008-04-04 Janis Johnson <janis187@us.ibm.com>
+
+ * g++.dg/other/anon5.C: Don't depend on line number for error message.
+
+ * gcc.dg/torture/builtin-modf-1.c: Use special options for
+ powerpc*-*-linux*.
+
+ * gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
+
+ * gcc.dg/pr34856.c: Use -maltivec on powerpc linux.
+
+ PR target/35620
+ * gcc.dg/dfp/pr35620.c: New test.
+ * gcc.dg/dfp/func-pointer.c: New test.
+ * gcc.dg/dfp/func-deref.c: New test.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35364
+ * g++.dg/gomp/pr35364.C: New test.
+
+2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * g++.dg/other/i386-2.C: Include <wmmintrin.h>.
+ * g++.dg/other/i386-3.C: Likewise.
+ * gcc.target/i386/sse-13.c: Likewise.
+ * gcc.target/i386/sse-14.c: Likewise.
+
+ * gcc.target/i386/aes-check.h: New.
+ * gcc.target/i386/aesdec.c: Likewise.
+ * gcc.target/i386/aesdeclast.c: Likewise.
+ * gcc.target/i386/aesenc.c: Likewise.
+ * gcc.target/i386/aesenclast.c: Likewise.
+ * gcc.target/i386/aesimc.c: Likewise.
+ * gcc.target/i386/aeskeygenassist.c: Likewise.
+ * gcc.target/i386/pclmulqdq.c: Likewise.
+ * gcc.target/i386/pclmul-check.h: Likewise.
+
+ * gcc.target/i386/i386.exp (check_effective_target_aes): New.
+ (check_effective_target_pclmul): Likewise.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35440
+ * gcc.dg/pr35440.c: New test.
+
+2008-04-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35823
+ * gnat.dg/pr35823.adb: New testcase.
+
+2008-04-03 Janis Johnson <janis187@us.ibm.com>
+
+ PR c/35712
+ * gcc.dg/dfp/constants-zero.c: New test.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35738
+ * gcc.dg/gomp/pr35738.c: New test.
+
+ PR middle-end/35818
+ * gcc.dg/gomp/pr35818.c: New test.
+
+ PR fortran/35786
+ * gfortran.dg/gomp/pr35786-1.f90: New test.
+ * gfortran.dg/gomp/pr35786-2.f90: New test.
+
+2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/scc-1.c: New test.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/vrp43.c: New testcase.
+ * gcc.dg/tree-ssa/vrp44.c: Likewise.
+ * gcc.dg/tree-ssa/vrp45.c: Likewise.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35741
+ * g++.dg/other/offsetof5.C: New test.
+
+2008-04-03 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/35281
+ * gcc.target/i386/pr35281.c: New test.
+
+2008-04-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35800
+ * gcc.c-torture/execute/pr35800.c: New test.
+
+2008-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
+ gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
+ gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
+ gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
+ gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
+ gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
+ gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
+ gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
+ gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
+ gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
+ gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ PR tree-optimization/34793
+ * gcc.dg/tree-ssa/vrp41.c: New testcase.
+ * gcc.dg/tree-ssa/vrp42.c: Likewise.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ * gcc.dg/tree-ssa/vrp40.c: New testcase.
+
+2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/discr_record_constant.ads: New test.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/vrp38.c: New testcase.
+ * gcc.dg/tree-ssa/vrp39.c: Likewise.
+
+2008-04-01 George Helffrich <george@gcc.gnu.org>
+
+ PRs fortran/35154, fortran/23057
+ * gcc.dg/debug/pr35154.c: New test to check that non-Fortran
+ use of common is unchanged.
+
+ * lib/gfortran-dg.exp: New harness to compile Fortran progs
+ with all combinations of debug options available on target.
+ * gfortran.dg/debug/debug.exp: Ditto.
+ * gfortran.dg/debug/trivial.f: Ditto.
+ * gfortran.dg/debug/pr35154-stabs.f: New test case for
+ .stabs functionality.
+ * gfortran.dg/debug/pr35154-dwarf2.f: New test case for
+ DWARF functionality.
+
+2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35436
+ * gcc.dg/format/gcc_gfc-2.c: New test.
+
+2008-03-31 Seongbae Park <seongbae.park@gmail.com>
+
+ * g++.dg/bprob/bprob.exp: Do not check gcno files.
+ Use -fprofile-use for profile use.
+ * gcc.misc-tests/bprob.exp: Ditto.
+ * g++.dg/tree-pro/tree-prof.exp: Do not check gcno files.
+ * gcc.dg/matrix/matrix.exp: Ditto.
+ * gcc.dg/struct/struct-reorg.exp: Ditto.
+ * gcc.dg/tree-prof/tree-prof.exp: Ditto.
+ * gcc.dg/profile-dir-1.c: New test.
+ * gcc.dg/profile-dir-2.c: New test.
+ * gcc.dg/profile-dir-3.c: New test.
+
+2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c/35750
+ * gcc.dg/old-style-param-1.c: New test.
+
+2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/object_overflow.adb: New test.
+
+2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30186
+ * gcc.dg/tree-ssa/vector-1.c: New testcase.
+ * gcc.c-torture/execute/vector-1.c: New testcase.
+ * gcc.c-torture/execute/vector-2.c: New testcase.
+
+2008-03-31 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/assign_from_packed_pixels.ads: Support for ...
+ * gnat.dg/assign_from_packed.adb: New testcase.
+
+2008-03-31 Zdenek Dvorak <ook@ucw.cz>
+
+ PR rtl-optimization/35729
+ * gcc.dg/pr35729.c: New test.
+
+2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/32000
+ * gcc.target/i386/pr32000-1.c: New.
+
+2008-03-31 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat.dg/too_many_tasks.adb: Removed, causes resource issues
+ on some environments.
+
+2008-03-31 Andrew Pinski <pinskia@gmail.com>
+
+ PR tree-opt/35431
+ * gcc.c-torture/compile/pr35431.c: New testcase.
+
+2008-03-30 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * g++.dg/other/error27.C: Use -fno-finite-math-only on sh*
+ targets.
+
+2008-03-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR c++/35245
+ * g++.dg/other/anon5.C: Skip on hppa*-*-hpux*.
+
+2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c++/35578
+ * g++.dg/parse/friend8.C: New test.
+
+ PR c/35748
+ * gcc.dg/union-cast-4.c: New test.
+
+2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35757
+ * gcc.target/i386/sse4_1-blendps-2.c: New.
+ * gcc.target/i386/sse4_1-pblendw-2.c: Likewise.
+
+2008-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * gfortran.dg/internal_pack_1.f90: Added complex to test case.
+ * gfortran.dg/internal_pack_2.f90: Likewise.
+ * gfortran.dg/intrinsic_spread_1.f90: Likewise.
+ * gfortran.dg/intrinsic_spread_2.f90: Likewise.
+ * gfortran.dg/intrinsic_pack_1.f90: Likewise.
+ * gfortran.dg/intrinsic_pack_2.f90: Likewise.
+ * gfortran.dg/intrinsic_unpack_1.f90: Likewise.
+ * gfortran.dg/intrinsic_unpack_2.f90: Likewise.
+
+2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/bit_packed_array2.adb: New test.
+
+2008-03-30 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35740
+ * gfortran.dg/transpose_conjg_1.f90: New test.
+
+2008-03-29 Laurent GUERBY <laurent@guerby.net>
+
+ * gnat.dg/socket2.adb: Remove since identical to socket1.adb.
+
+2008-03-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35698
+ * gfortran.dg/allocate_zerosize_3.f: New test.
+
+ PR fortran/35702
+ * gfortran.dg/character_assign_1.f90: New test.
+
+2008-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32972
+ PR libfortran/32512
+ * gfortran.dg/intrinsic_spread_1.f90: New file.
+ * gfortran.dg/intrinsic_spread_2.f90: New file.
+ * gfortran.dg/intrinsic_spread_3.f90: New file.
+
+2008-03-28 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34714
+ * gfortran.dg/alloc_alloc_expr_3.f90: New test.
+ * gfortran.dg/allocate_stat.f90: Adjusted error-match text.
+ * gfortran.dg/func_assign.f90: Likewise.
+ * gfortran.dg/implicit_11.f90: Likewise.
+ * gfortran.dg/proc_assign_1.f90: Likewise.
+ * gfortran.dg/proc_assign_2.f90: Likewise.
+ * gfortran.dg/procedure_lvalue.f90: Likewise.
+
+2008-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35699
+ * gfortran.dg/direct_io_10.f: New test.
+
+2008-03-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/vectorize6.c: New test.
+
+2008-03-28 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35721
+ * gfortran.dg/associated_target_2.f90: New.
+
+2008-03-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19580
+ * gcc.dg/tree-ssa/loop-34.c: New testcase.
+
+2008-03-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/30317
+ PR tree-optimization/30911
+ PR tree-optimization/34793
+ * gcc.dg/tree-ssa/vrp35.c: New testcase.
+ * gcc.dg/tree-ssa/vrp36.c: Likewise.
+ * gcc.dg/tree-ssa/vrp37.c: Likewise.
+
+2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31334
+ * gcc.target/powerpc/altivec-25.c: New testcase.
+
+2008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35724
+ * gfortran.dg/cshift_shift_real_2.f90: New test.
+
+2008-03-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.c-torture/execute/multi-ix.c: Limit CHUNK size between 1 and 500.
+ (main): Exit early for CHUNK less than 40 to avoid stack corruption.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ PR c/32511
+ * gcc.dg/attr-weak-1.c: New testcase.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32810
+ * gcc.dg/tree-ssa/ssa-ccp-18.c: New testcase.
+
+2008-03-27 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/variadic91.C: New.
+
+2008-03-27 Zdenek Dvorak <ook@ucw.cz>
+
+ * gcc.dg/tree-ssa/loop-32.c: New testcase.
+ * gcc.dg/tree-ssa/loop-33.c: Likewise.
+
+2008-03-27 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-addr-1.c: New testcase.
+
+2008-03-27 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/35429
+ * gcc.c-torture/compile/complex-5.c: New test.
+
+2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/uninit-16.c (decode_reloc): Mark static.
+
+2008-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35546
+ * g++.dg/ext/attrib33.C: New test.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ Revert:
+ 2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-addr-1.c: New testcase.
+
+2008-03-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/sse-13.c: Include <mm_malloc.h>
+ before redefinitions of extern and __inline.
+ * gcc.target/i386/sse-13.c: Ditto.
+
+2008-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35332
+ * g++.dg/other/error27.C: New test.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-addr-1.c: New testcase.
+
+2008-03-26 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/20030731-2.c: Scan dce1 dump.
+ * gcc.dg/tree-ssa/20030917-1.c: Scan optimized dump.
+ * gcc.dg/tree-ssa/20030917-3.c: Scan ccp1 dump.
+ * gcc.dg/tree-ssa/20040721-1.c: Test linking, do not disable DOM.
+ * gcc.dg/tree-ssa/pr21574.c: Scan the fre dump.
+ * gcc.dg/tree-ssa/ssa-ccp-1.c: Scan ccp1 dump.
+ * gcc.dg/tree-ssa/ssa-ccp-3.c: Scan ccp2 dump.
+
+2008-03-26 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/variadic84.C: Update to reflect the change in
+ variadic template template parameter binding semantics.
+ * g++.dg/cpp0x/variadic85.C: Ditto.
+ * g++.dg/cpp0x/variadic88.C: New.
+ * g++.dg/cpp0x/variadic89.C: New.
+ * g++.dg/cpp0x/variadic90.C: New.
+ * g++.dg/cpp0x/variadic-ex14.C: Update to reflect the change in
+ variadic template template parameter binding semantics.
+ * g++.dg/cpp0x/variadic-lambda.C: New.
+
+2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31558
+ * g++.dg/ext/altivec-15.C: New testcase.
+
+2008-03-25 Andrew Pinski <pinskia@gmail.com>
+
+ PR objc/29197
+ * objc.dg/method-20.m: New testcase.
+
+2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/35232
+ * gcc.target/mips/pr35232.c: New test.
+
+2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/template/sfinae4.C: New.
+ * g++.dg/template/sfinae5.C: New.
+ * g++.dg/template/sfinae6.C: New.
+ * g++.dg/template/sfinae6_neg.C: New.
+ * g++.dg/template/sfinae7.C: New.
+ * g++.dg/template/sfinae8.C: New.
+ * g++.dg/template/sfinae9.C: New.
+ * g++.dg/template/sfinae10.C: New.
+ * g++.dg/template/sfinae11.C: New.
+ * g++.dg/template/sfinae12.C: New.
+ * g++.dg/template/sfinae13.C: New.
+ * g++.dg/template/sfinae14C: New.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-bclr.c: New test.
+ * gcc.target/sh/sh2a-bset.c: New test.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-movrt.c: New test.
+
+2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-prefetch.c: New test.
+
+2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
+ Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-movi20s.c: New test.
+
+2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
+ Jayant Sonar <Jayant.sonar@kpitcummins.com>
+ Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * gcc.target/sh/sh2a-resbank.c: New test.
+ * gcc.target/sh/sh2a-tbr-jump.c: New test.
+ * gcc.target/sh/sh2a-jsrn.c: New test.
+ * gcc.target/sh/sh2a-rtsn.c: New test.
+
+2008-03-25 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/sse-17.c: Include sse2-check.h.
+ (main): Change to void and rename to sse2_test.
+ * gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Set
+ dg-do-what-default to "compile" if SSE2 hardware is not available.
+ * gcc.dg/vect/costmodel/i386/x86_64-costmodel-vect.exp: Ditto.
+ * gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Remove
+ xfail vect_no_int_max from "vectorization not profitable" check.
+
+2008-03-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/26222
+ * gcc.dg/torture/pr26222.c: New testcase.
+
+2008-03-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34813
+ * gfortran.dg/null_3.f90 : New test
+
+ PR fortran/33295
+ * gfortran.dg/module_function_type_1.f90 : New test
+
+2008-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
+
+ PR libfortran/32972
+ * gfortran.dg/intrinsic_unpack_1.f90: New test case.
+ * gfortran.dg/intrinsic_unpack_2.f90: New test case.
+ * gfortran.dg/intrinsic_unpack_3.f90: New test case.
+
+2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.target/mips/dse-1.c: Add checks for zeros.
+
+2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/27946
+ * gcc.target/powerpc/ppc64-double-1.c: New testcase.
+
+2008-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32972
+ * internal_pack_1.f90: New test case.
+ * internal_pack_2.f90: New test case.
+ * internal_pack_3.f90: New test case.
+
+2008-03-21 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/empty_vector_length.adb: New testcase.
+
+2008-03-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-ccp-17.c: New testcase.
+
+2008-03-20 Victor Kaplansky <victork@gcc.gnu.org>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/34168
+ * lib/target-supports.exp (check_sse2_hw_available): New procedure.
+ * gcc.dg/vect/vect.exp: Set dg-do-what-default to "compile"
+ if SSE2 hardware is not available.
+ * g++.dg/vect/vect.exp: Update target-dependent overrides to match
+ gcc.dg/vect/vect.exp.
+ * gfortran.dg/vect/vect.exp: Ditto.
+ (check_effective_target_lp64_or_vect_no_align): Remove procedure.
+
+2008-03-20 Andreas Schwab <schwab@suse.de>
+
+ * gcc.dg/cpp/cmdlne-dD-M.c: Fix test for makefile rule and remove
+ xfail.
+
+2008-03-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/gomp/pr34692.c: Cleanup gimple dump file.
+ * gcc.dg/tree-ssa/ssa-lim-3.c: Remove -fdump-tree-optimized
+ from dg-options.
+
+2008-03-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/35621
+ * gcc.target/i386/ssse3-pabsb.c: Add -fno-strict-aliasing.
+ * gcc.target/i386/ssse3-pabsd.c: Likewise.
+ * gcc.target/i386/ssse3-pabsw.c: Likewise.
+ * gcc.target/i386/ssse3-palignr.c: Likewise.
+ * gcc.target/i386/ssse3-phaddd.c: Likewise.
+ * gcc.target/i386/ssse3-phaddsw.c: Likewise.
+ * gcc.target/i386/ssse3-phaddw.c: Likewise.
+ * gcc.target/i386/ssse3-phsubd.c: Likewise.
+ * gcc.target/i386/ssse3-phsubsw.c: Likewise.
+ * gcc.target/i386/ssse3-phsubw.c: Likewise.
+ * gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
+ * gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
+ * gcc.target/i386/ssse3-pshufb.c: Likewise.
+ * gcc.target/i386/ssse3-psignb.c: Likewise.
+ * gcc.target/i386/ssse3-psignd.c: Likewise.
+ * gcc.target/i386/ssse3-psignw.c: Likewise.
+
+2008-03-20 Andreas Schwab <schwab@suse.de>
+
+ PR testsuite/35647
+ * gcc.dg/cpp/cmdlne-dI-M.c: Match optional continuation.
+ * gcc.dg/cpp/cmdlne-dM-M.c: Likewise.
+ * gcc.dg/cpp/cmdlne-dN-M.c: Match correct file name and optional
+ continuation and remove xfail.
+
+2008-03-20 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32972
+ * gfortran.dg/internal_pack_3.f90: Add missing parameter
+ in subroutine.
+
+2008-03-20 Kai Tietz <kai.tietz@onevision.com>
+
+ * gcc.dg/format/ms_array-1.c: New.
+ * gcc.dg/format/ms_c90-scanf-3.c: New.
+ * gcc.dg/format/ms_c99-strftime-1.c: New.
+ * gcc.dg/format/ms_no-y2k-1.c: New.
+ * gcc.dg/format/ms_attr-1.c: New.
+ * gcc.dg/format/ms_c90-scanf-4.c: New.
+ * gcc.dg/format/ms_c99-strftime-2.c: New.
+ * gcc.dg/format/ms_nonlit-1.c: New.
+ * gcc.dg/format/ms_c90-scanf-5.c: New.
+ * gcc.dg/format/ms_cast-1.c: New.
+ * gcc.dg/format/ms_nonlit-2.c: New.
+ * gcc.dg/format/ms_attr-2.c: New.
+ * gcc.dg/format/ms_c90-strftime-1.c: New.
+ * gcc.dg/format/ms_miss-1.c: New.
+ * gcc.dg/format/ms_nonlit-3.c: New.
+ * gcc.dg/format/ms_attr-3.c: New.
+ * gcc.dg/format/ms_c90-strftime-2.c: New.
+ * gcc.dg/format/ms_miss-2.c: New.
+ * gcc.dg/format/ms_nul-1.c: New.
+ * gcc.dg/format/ms_attr-4.c: New.
+ * gcc.dg/format/ms_c94-printf-1.c: New.
+ * gcc.dg/format/ms_miss-3.c: New.
+ * gcc.dg/format/ms_nul-2.c: New.
+ * gcc.dg/format/ms_attr-7.c: New.
+ * gcc.dg/format/ms_c94-scanf-1.c: New.
+ * gcc.dg/format/ms_miss-4.c: New.
+ * gcc.dg/format/ms_null-1.c: New.
+ * gcc.dg/format/ms_bitfld-1.c: New.
+ * gcc.dg/format/ms_c99-printf-1.c: New.
+ * gcc.dg/format/ms_miss-5.c: New.
+ * gcc.dg/format/ms_plus-1.c: New.
+ * gcc.dg/format/ms_branch-1.c: New.
+ * gcc.dg/format/ms_c99-printf-2.c: New.
+ * gcc.dg/format/ms_miss-6.c: New.
+ * gcc.dg/format/ms_sec-1.c: New.
+ * gcc.dg/format/ms_c90-printf-1.c: New.
+ * gcc.dg/format/ms_c99-printf-3.c: New.
+ * gcc.dg/format/ms_multattr-1.c: New.
+ * gcc.dg/format/ms_unnamed-1.c: New.
+ * gcc.dg/format/ms_c90-printf-2.c: New.
+ * gcc.dg/format/ms_c99-scanf-1.c: New.
+ * gcc.dg/format/ms_multattr-2.c: New.
+ * gcc.dg/format/ms_va-1.c: New.
+ * gcc.dg/format/ms_c90-printf-3.c: New.
+ * gcc.dg/format/ms_c99-scanf-2.c: New.
+ * gcc.dg/format/ms_multattr-3.c: New.
+ * gcc.dg/format/ms_c90-scanf-1.c: New.
+ * gcc.dg/format/ms_c99-scanf-3.c: New.
+ * gcc.dg/format/ms_no-exargs-1.c: New.
+ * gcc.dg/format/ms_zero-length-1.c: New.
+ * gcc.dg/format/ms_c90-scanf-2.c: New.
+ * gcc.dg/format/ms_c99-scanf-4.c: New.
+ * gcc.dg/format/ms_no-exargs-2.c: New.
+ * gcc.dg/format/null-1.c: Add gnu style usage for mingw.
+ * gcc.dg/format/miss-1.c: Likewise.
+ * gcc.dg/format/miss-3.c: Likewise.
+ * gcc.dg/format/multattr-2.c: Likewise.
+ * gcc.dg/format/miss-5.c: Likewise.
+ * gcc.dg/format/attr-2.c: Likewise.
+ * gcc.dg/format/attr-4.c: Likewise.
+ * gcc.dg/format/c90-scanf-4.c: Likewise.
+ * gcc.dg/format/c99-printf-3.c: Likewise.
+ * gcc.dg/format/multattr-1.c: Likewise.
+ * gcc.dg/format/miss-4.c: Likewise.
+ * gcc.dg/format/miss-6.c: Likewise.
+ * gcc.dg/format/c90-printf-3.c: Likewise.
+ * gcc.dg/format/attr-1.c: Likewise.
+ * gcc.dg/format/attr-3.c: Likewise.
+ * gcc.dg/format/attr-7.c: Likewise.
+ * gcc.dg/format/format.h: Treat mingw and gnu style.
+ * gcc.dg/format/sys_format.c: New.
+
+2008-03-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/35627
+ * gfortran.dg/namelist_46.f90: New test.
+
+2008-03-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/14552
+ * gcc.target/i386/pr14552.c: New test.
+
+2008-03-19 Michael Matz <matz@suse.de>
+
+ PR middle-end/35616
+ * gcc.dg/pr35616.c: New test.
+
+2008-03-19 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35152
+ * gfortran.dg/argument_checking_16.f90: New test.
+
+2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32972
+ * gfortran.dg/internal_pack_1.f90: New test case.
+ * gfortran.dg/internal_pack_2.f90: New test case.
+ * gfortran.dg/internal_pack_3.f90: New test case.
+
+2008-03-19 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/20050811-2.c: Update dumping flags.
+ * gcc.dg/sms-2.c: Update dumping flags.
+ * gcc.dg/var-expand1.c: Update dumping flags.
+ * gcc.dg/var-expand3.c: Update dumping flags.
+ * gcc.dg/pr30957-1.c: Update dumping flags.
+ * gcc.dg/20050811-1.c: Update dumping flags.
+ * gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
+ * gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
+
+2008-03-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35609
+ * gcc.dg/uninit-15.c: New testcase.
+ * gcc.dg/uninit-16.c: Likewise.
+
+2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
+
+ PR target/35504
+ * g++.dg/other/pr35504.C: New test.
+
+2008-03-18 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/forwprop-4.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise.
+
+2008-03-18 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/loop-19.c: Revert previous change.
+
+2008-03-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/35617
+ * gfortran.dg/namelist_45.f90: New test.
+
+2008-03-17 James E. Wilson <wilson@tuliptree.org>
+
+ PR testsuite/35512
+ * gcc.target/ia64/visibility-1.c (foo): Change return type to void.
+ Write variables instead of reading them.
+
+2008-03-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/35548
+ * g++.dg/init/ref16.C: New testcase.
+
+2008-03-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19637
+ * g++.dg/tree-ssa/pr19637.C: New testcase.
+
+2008-03-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35470
+ * gfortran.dg/subref_array_pointer_3.f90 : New test.
+
+2008-03-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35607
+ * gcc.c-torture/compile/pr35607.c: New testcase.
+ * gcc.dg/tree-ssa/loop-19.c: Use -O2 to avoid vectorization.
+
+2008-03-16 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/35582
+ * gfortran.dg/write_invalid_format.f90: New test.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-ccp-16.c: New testcase.
+
+2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR testsuite/35184
+ * gfortran.dg/elemental_subroutine_6.f90: New test.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/pr23911.c: Adjust testcase.
+ * gcc.dg/tree-ssa/pr14841.c: Likewise.
+ * gcc.dg/tree-ssa/20030922-2.c: Likewise.
+
+2008-03-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35593
+ * g++.dg/warn/Warray-bounds-3.C: New testcase.
+
+2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR testsuite/35478
+ * gfortran.dg/generic_16.f90: New test.
+
+2008-03-15 Hans-Peter Nilsson <hp@axis.com>
+
+ PR middle-end/35595
+ * gcc.c-torture/compile/pr35595.c: New test.
+
+2008-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR testsuite/33296
+ * gfortran.dg/nearest_4.f90: New test.
+
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/13761
+ * gcc.dg/tree-ssa/ssa-lim-3.c: New testcase.
+
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34172
+ * gcc.dg/tree-ssa/ssa-fre-11.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.
+ * gcc.dg/tree-ssa/20031106-4.c: Remove XFAIL.
+
+2008-03-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR libcpp/35322:
+ * gcc.dg/cpp/pr35322.c: Add dg-error line.
+
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34043
+ PR tree-optimization/33989
+ * gcc.dg/tree-ssa/ssa-fre-7.c: New testcase.
+ * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-pre-17.c: Likewise.
+
+2008-03-14 H.J. Lu <hongjiu.lu@intel.com>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/35538
+ * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Support PIC targets.
+ Skip *-*-darwin*.
+ * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Skip *-*-darwin*.
+
+2008-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/35406
+ * gcc.dg/tree-ssa/ldist-4.c: Update expected scan match
+ count from 0 to 1 for lp64 targets.
+ * gfortran.dg/ldist-1.f90: Update test to check
+ for 5 loops distributed instead of 4 for lp64 targets.
+
+2008-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35475
+ * gfortran.dg/derived_sub.f90: New test.
+
+2008-03-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/35558
+ * g++.dg/tls/static-1.C: Move dg-additional-sources after
+ dg-require-effective-target.
+ * g++.dg/tls/static-1a.cc: Likewise.
+
+2008-03-13 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/35322:
+ * gcc.dg/cpp/pr35322.c: New file.
+
+2008-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/vect/vect-align-2.c: Remove dg-do run directive.
+ (main): Call check_vect.
+
+2008-03-13 Alon Dayan <alond@il.ibm.com>
+ Olga Golovanevsky <olga@il.ibm.com>
+
+ PR tree-optimization/35041
+ * gcc.dg/struct/wo_prof_double_malloc.c: New test.
+
+2008-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34000
+ PR target/35553
+ * g++.dg/other/i386-3.C: New test.
+ * gcc.target/i386/sse-13.c: Redefine extern instead of static.
+ * gcc.target/i386/sse-14.c: Ditto.
+ * gcc.target/i386/mmx-1.c: Ditto.
+ * gcc.target/i386/mmx-2.c: Ditto.
+ * gcc.target/i386/3dnow-1.c: Ditto.
+ * gcc.target/i386/3dnow-2.c: Ditto.
+ * gcc.target/i386/3dnowA-1.c: Ditto.
+ * gcc.target/i386/3dnowA-2.c: Ditto.
+
+2008-03-13 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-opt/35422
+ * gcc.target/i386/pr35422.c: Escape brackets.
+
+2008-03-12 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-opt/35422
+ * gcc.dg/vect/slp-7.c: Change target keywords required for vectorizing
+ third loop.
+ * gcc.target/i386/pr35422.c: New.
+
+2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/35403
+ * gcc.dg/tree-ssa/ipa-reference-1.c: New testcase.
+
+2008-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35540
+ * gcc.target/i386/pr35540.c: New test.
+
+2008-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * g++.dg/inherit/override-attribs.C: Require ilp32 x86 target.
+
+2008-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/35526
+ * g++.dg/torture/pr35526.C: New test.
+
+2008-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35328
+ * g++.dg/gomp/pr35328.C: New test.
+
+ PR c++/35337
+ * g++.dg/gomp/pr35337.C: New test.
+
+ PR c/35438
+ PR c/35439
+ * gcc.dg/gomp/pr35438.c: New test.
+ * gcc.dg/gomp/pr35439.c: New test.
+
+ PR middle-end/35099
+ * g++.dg/gomp/pr35099.C: New test.
+
+2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/range_check2.adb: New test.
+
+2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR tree-optimization/35494
+ * g++.dg/tree-ssa/ssa-store-ccp-1.C: New.
+ * gcc.dg/tree-ssa/ssa-store-ccp-2.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Likewise.
+ * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Likewise.
+
+2008-03-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34677
+ * gcc.dg/tree-ssa/loadpre23.c: New testcase.
+ * gcc.dg/tree-ssa/loadpre24.c: Likewise.
+ * gcc.dg/tree-ssa/loadpre25.c: Likewise.
+
+2008-03-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/35474
+ * gfortran.dg/module_commons_2.f90: New test.
+
+2008-03-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/frame_overflow.adb: Improve portability.
+
+2008-03-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35350
+ * gcc.target/i386/isa-1.c: Add -march=x86-64.
+ * gcc.target/i386/isa-2.c: Likewise.
+ * gcc.target/i386/isa-3.c: Likewise.
+ * gcc.target/i386/isa-10.c: Likewise.
+ * gcc.target/i386/isa-11.c: Likewise.
+ * gcc.target/i386/isa-12.c: Likewise.
+ * gcc.target/i386/isa-13.c: Likewise.
+ * gcc.target/i386/isa-14.c: Likewise.
+
+2008-03-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/22152
+ * gcc.target/i386/pr22152.c: New test.
+ * gcc.target/i386/sse2-mmx.c: Ditto.
+
+2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/uninit_func.adb: New test.
+
+2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack4.adb: New test.
+
+2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/small_alignment.adb: New test.
+
+2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/alignment2.ads: New test.
+
+2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack3.adb: New test.
+
+2008-03-07 Peter O'Gorman <pogma@thewrittenword.com>
+
+ PR c++/20366
+ * g++.dg/other/pr20366.C: New test.
+
+2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/35402
+ * gcc.dg/tree-ssa/ssa-store-ccp-1.c: New test.
+
+2008-03-06 Markus Milleder <markus.milleder@generali.at>
+
+ PR preprocessor/35458
+ * gcc.dg/cpp/cmdlne-M-2.c: New file.
+ * gcc.dg/cpp/cmdlne-M-2#.h: New file.
+ * gcc.dg/cpp/#cmdlne-M-2.h: New file.
+
+2008-03-06 Tom Tromey <tromey@redhat.com>
+
+ * lib/treelang-dg.exp, lib/treelang.exp: Delete.
+ * treelang: Delete.
+
+2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/pack33.ads: New test.
+
+2008-03-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35472
+ * gcc.c-torture/execute/pr35472.c: New testcase.
+
+2008-03-05 Gabor Loki <loki@gcc.gnu.org>
+
+ PR 33009
+ * gcc.c-torture/compile/pr11832.c: Check -frtl-abstract-sequences.
+ * gcc.c-torture/compile/pr33009.c: Likewise.
+
+2008-03-05 Victor Kaplansky <victork@gcc.gnu.org>
+
+ PR 31341
+ * gcc.dg/vect/pr31041.c: Fix.
+
+2008-03-05 Hans-Peter Nilsson <hp@axis.com>
+
+ PR libfortran/35293
+ * lib/lib/target-supports.exp (check_effective_target_fd_truncate):
+ New.
+ * gfortran.fortran-torture/execute/list_read_1.x,
+ gfortran.fortran-torture/execute/read_null_string.x,
+ gfortran.fortran-torture/execute/backspace.x,
+ gfortran.fortran-torture/execute/seq_io.x,
+ gfortran.fortran-torture/execute/slash_edit.x,
+ gfortran.fortran-torture/execute/unopened_unit_1.x,
+ gfortran.dg/namelist_21.f90, gfortran.dg/advance_5.f90,
+ gfortran.dg/fmt_t_7.f, gfortran.dg/eor_1.f90,
+ gfortran.dg/read_x_past.f, gfortran.dg/tl_editing.f90,
+ gfortran.dg/ftell_2.f90, gfortran.dg/namelist_13.f90,
+ gfortran.dg/namelist_22.f90, gfortran.dg/advance_6.f90,
+ gfortran.dg/read_bad_advance.f90, gfortran.dg/func_derived_3.f90,
+ gfortran.dg/namelist_40.f90, gfortran.dg/x_slash_2.f,
+ gfortran.dg/namelist_14.f90, gfortran.dg/backspace_1.f,
+ gfortran.dg/namelist_23.f90, gfortran.dg/pr17285.f90,
+ gfortran.dg/read_noadvance.f90, gfortran.dg/namelist_use_only.f90,
+ gfortran.dg/namelist_41.f90, gfortran.dg/namelist_15.f90,
+ gfortran.dg/backspace_3.f, gfortran.dg/backslash_3.f,
+ gfortran.dg/namelist_24.f90, gfortran.dg/pr17286.f90,
+ gfortran.dg/endfile.f90, gfortran.dg/open_access_append_1.f90,
+ gfortran.dg/fmt_huge.f90, gfortran.dg/namelist_42.f90,
+ gfortran.dg/pr18392.f90, gfortran.dg/pr19155.f, gfortran.dg/pr12884.f,
+ gfortran.dg/namelist_16.f90, gfortran.dg/backspace_5.f,
+ gfortran.dg/open_readonly_1.f90, gfortran.dg/fmt_read.f90,
+ gfortran.dg/iostat_1.f90, gfortran.dg/namelist_43.f90,
+ gfortran.dg/read_size_noadvance.f90, gfortran.dg/inquire_5.f90,
+ gfortran.dg/read_many_1.f, gfortran.dg/namelist_17.f90,
+ gfortran.dg/list_read_1.f90, gfortran.dg/backspace_10.f90,
+ gfortran.dg/namelist_26.f90, gfortran.dg/unf_read_corrupted_2.f90,
+ gfortran.dg/record_marker_1.f90, gfortran.dg/convert_implied_open.f90,
+ gfortran.dg/iostat_2.f90, gfortran.dg/write_check3.f90,
+ gfortran.dg/namelist_44.f90, gfortran.dg/namelist_use.f90,
+ gfortran.dg/rewind_1.f90, gfortran.dg/streamio_11.f90,
+ gfortran.dg/namelist_18.f90, gfortran.dg/backspace_9.f,
+ gfortran.dg/dos_eol.f, gfortran.dg/read_eof_1.f90,
+ gfortran.dg/namelist_27.f90, gfortran.dg/pad_no.f90,
+ gfortran.dg/endfile.f, gfortran.dg/namelist_11.f,
+ gfortran.dg/namelist_19.f90, gfortran.dg/eor_handling_1.f90,
+ gfortran.dg/write_rewind_1.f, gfortran.dg/comma.f,
+ gfortran.dg/read_eof_2.f90, gfortran.dg/namelist_28.f90,
+ gfortran.dg/record_marker_3.f90, gfortran.dg/complex_read.f90,
+ gfortran.dg/namelist_37.f90, gfortran.dg/error_recovery_5.f90,
+ gfortran.dg/namelist_char_only.f90, gfortran.dg/pr18122.f90,
+ gfortran.dg/list_read_4.f90, gfortran.dg/eor_handling_2.f90,
+ gfortran.dg/read_eof_3.f90, gfortran.dg/dollar_edit_descriptor_1.f,
+ gfortran.dg/pr19467.f90, gfortran.dg/namelist_38.f90,
+ gfortran.dg/inquire_9.f90, gfortran.dg/list_read_5.f90,
+ gfortran.dg/noadv_size.f90, gfortran.dg/backslash_1.f90,
+ gfortran.dg/eor_handling_3.f90, gfortran.dg/read_eof_4.f90,
+ gfortran.dg/runtime_warning_1.f90, gfortran.dg/x_slash_1.f,
+ gfortran.dg/namelist_39.f90, gfortran.dg/streamio_3.f90,
+ gfortran.dg/read_comma.f, gfortran.dg/pr19657.f,
+ gfortran.dg/streamio_15.f90, gfortran.dg/list_read_6.f90,
+ gfortran.dg/eor_handling_4.f90, gfortran.dg/backslash_2.f90,
+ gfortran.dg/pr19216.f, gfortran.dg/PR19872.f,
+ gfortran.dg/backspace_2.f, gfortran.dg/empty_format_1.f90,
+ gfortran.dg/streamio_4.f90, gfortran.dg/append_1.f90,
+ gfortran.dg/fgetc_1.f90, gfortran.dg/complex_write.f90,
+ gfortran.dg/list_read_7.f90, gfortran.dg/eor_handling_5.f90,
+ gfortran.dg/fmt_t_1.f90, gfortran.dg/pr17090.f90,
+ gfortran.dg/backspace_4.f, gfortran.dg/shape_3.f90,
+ gfortran.dg/unf_io_convert_1.f90, gfortran.dg/fgetc_2.f90,
+ gfortran.dg/vector_subscript_3.f90, gfortran.dg/list_read_8.f90,
+ gfortran.dg/flush_1.f90, gfortran.dg/advance_1.f90,
+ gfortran.dg/fmt_t_2.f90, gfortran.dg/backspace_6.f,
+ gfortran.dg/slash_1.f90, gfortran.dg/stat_1.f90,
+ gfortran.dg/unformatted_recl_1.f90, gfortran.dg/record_marker_2.f,
+ gfortran.dg/overwrite_1.f, gfortran.dg/unf_io_convert_2.f90,
+ gfortran.dg/fmt_t_3.f90, gfortran.dg/backspace_8.f,
+ gfortran.dg/stat_2.f90, gfortran.dg/pr18210.f90,
+ gfortran.dg/unformatted_subrecord_1.f90, gfortran.dg/pr20257.f90,
+ gfortran.dg/eof_1.f90, gfortran.dg/fmt_t_4.f90,
+ gfortran.dg/unf_short_record_1.f90, gfortran.dg/fmt_exhaust.f90,
+ gfortran.dg/namelist_20.f90, gfortran.dg/advance_4.f90,
+ gfortran.dg/fmt_t_5.f90, gfortran.dg/namelist_12.f,
+ gfortran.dg/backspace_7.f90, gfortran.dg/write_rewind_2.f,
+ gfortran.dg/ftell_1.f90, gfortran.dg/fseek.f90,
+ gfortran.dg/write_back.f: Gate test on effective_target fd_truncate.
+
+2008-03-04 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/tree-ssa/loop-1.c: Handle i?86-*-mingw* i?86-*-cygwin* as
+ targets declaring functions in assembly.
+
+2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28322
+ * gcc.dg/pr28322-3.c: New.
+
+2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35453
+ * gcc.target/i386/sse4_2-pcmpestri-1.c: Replace SIDD_XXX with
+ _SIDD_XXX.
+ * gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
+ * gcc.target/i386/sse4_2-pcmpstr.h: Likewise.
+
+2008-03-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/35456
+ * gcc.c-torture/execute/pr35456.c: New test.
+
+2008-03-04 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/i386/sse-10.c: Don't use
+ -mno-accumulate-outgoing-args on *-*-mingw* *-*-cygwin*.
+
+2008-03-04 Uros Bizjak <ubizjak@gmail.com>
+
+ * gfortran.dg/reassoc_1.f90: Cleanup dump files.
+ * gfortran.dg/reassoc_2.f90: Ditto.
+ * gfortran.dg/reassoc_3.f90: Ditto.
+
+2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33197
+ * gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
+ * gfortran.dg/dg.exp: Likewise.
+ * gfortran.dg/vect/vect.exp: Likewise.
+ * gfortran.fortran-torture/execute/execute.exp: Likewise.
+ * gfortran.fortran-torture/compile/compile.exp: Likewise.
+ * gfortran.dg/gamma_1.f90: Also check log_gamma.
+ * gfortran.dg/invalid_contains_1.f90: Remove warning about
+ empty CONTAINS.
+ * gfortran.dg/gamma_2.f90: Add a few error messages.
+ * gfortran.dg/invalid_contains_2.f90: Remove warning about
+ empty CONTAINS.
+ * gfortran.dg/gamma_3.f90: Adjust error message.
+ * gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
+ * gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
+ * gfortran.dg/bessel_1.f90: New test.
+ * gfortran.dg/recursive_check_3.f90: Remove warnings.
+ * gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
+ * gfortran.dg/derived_function_interface_1.f90: Remove warning.
+ * gfortran.dg/contains_empty_1.f03: New test.
+ * gfortran.dg/erfc_scaled_1.f90: New test.
+ * gfortran.dg/hypot_1.f90: New test.
+ * gfortran.dg/contains_empty_2.f03: New test.
+
+2008-03-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/builtin-apply-mmx.c: Do not XFAIL on Darwin.
+
+2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 24924
+ * g++.dg/cpp/string-2.C: This is a warning now.
+ * g++.dg/cpp/pedantic-errors.C: -pedantic-errors is not enabled by
+ default, so add it.
+
+2008-03-01 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/auto1.C: New.
+
+2008-03-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34770
+ * gfortran.dg/pointer_1.f90: New test.
+
+2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/35315
+ * g++.dg/ext/attrib32.C: Add another test case.
+
+2008-02-29 Tom Tromey <tromey@redhat.com>
+
+ * g++.dg/warn/pragma-system_header2.C: Ignore "included from"
+ line.
+
+2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/tree-ssa/ltrans-8.c: Increase the size of strides
+ to make the interchange profitable.
+
+2008-02-28 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/31463
+ PR fortran/33950
+ PR fortran/34296
+ * gfortran.dg/arrayio_11.f90: Fixed test.
+ * gfortran.dg/arrayio_12.f90: Likewise.
+ * gfortran.dg/module_read_1.f90: Added warning-directives.
+ * gfortran.dg/pr32242.f90: Likewise.
+ * gfortran.dg/result_in_spec_3.f90: Likewise.
+ * gfortran.dg/use_12.f90: Likewise.
+ * gfortran.dg/warn_function_without_result.f90 : New test.
+
+2008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34868
+ * gfortran.dg/f2c_9.f90: New test.
+
+2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
+
+ * gcc.dg/tree-ssa/ldist-1.c: New.
+ * gcc.dg/tree-ssa/ldist-1a.c: New.
+ * gcc.dg/tree-ssa/ldist-2.c: New.
+ * gcc.dg/tree-ssa/ldist-3.c: New.
+ * gcc.dg/tree-ssa/ldist-4.c: New.
+ * gcc.dg/tree-ssa/ldist-5.c: New.
+ * gcc.dg/tree-ssa/ldist-6.c: New.
+ * gcc.dg/tree-ssa/ldist-7.c: New.
+ * gcc.dg/tree-ssa/ldist-8.c: New.
+ * gcc.dg/tree-ssa/ldist-9.c: New.
+ * gcc.dg/tree-ssa/ldist-10.c: New.
+ * gcc.dg/tree-ssa/ldist-11.c: New.
+ * gcc.dg/tree-ssa/ldist-12.c: New.
+ * gfortran.dg/ldist-1.f90: New.
+
+2008-02-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/pr34351.c: Compile for x86 targets only. Use %ebx register.
+
+2008-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/large_real_kind_3.F90: Reverse previous commit.
+
+2008-02-27 Jan Beulich <jbeulich@novell.com>
+
+ * gcc.target/i386/mmx-1.c: Add
+ -Werror-implicit-function-declaration to dg-options.
+ * gcc.target/i386/mmx-2.c: Likewise.
+ * gcc.target/i386/sse-13.c: Likewise.
+ * gcc.target/i386/sse-14.c: Likewise.
+
+2008-02-27 Revital Eres <eres@il.ibm.com>
+
+ PR rtl-optimization/34999
+ * gcc.dg/tree-prof/pr34999.c: New.
+
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/25290
+ * gcc.c-torture/execute/pr35390.c: New testcase.
+
+2008-02-27 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/22255
+ * gnat.dg/test_direct_io.adb: New file.
+
+2008-02-27 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/34799
+ * gnat.dg/specs/pr34799.ads: New test.
+
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34971
+ * gcc.c-torture/execute/pr34971.c: New testcase.
+
+2008-02-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/gomp/preprocess-1.c: New test.
+
+ PR c++/35368
+ * g++.dg/ext/visibility/typeinfo2.C: New test.
+ * g++.dg/ext/visibility/typeinfo3.C: New test.
+
+2008-02-26 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/bf-ms-attrib.c (main): Return 0.
+
+2008-02-26 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/i386/mmx-4.c (dump64_64): Use printf %I64 on MinGW.
+ * gcc.target/i386/sse-6.c (dump128_64): Likewise.
+
+2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR c/28800
+ * gcc.dg/empty-source-2.c: Adjust for warning message.
+ * gcc.dg/empty-source-3.c: Likewise.
+ * gcc.dg/pack-test-2.c: Adjust comment.
+ * gcc.dg/pragma-ep-2.c: Likewise.
+ * gcc.dg/pragma-re-2.c: Likewise.
+ * gcc.dg/va-arg-2.c: Likewise.
+
+2008-02-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35033
+ * gfortran.dg/assignment_2.f90: New.
+
+2008-02-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/35315
+ * g++.dg/ext/attrib32.C: New.
+
+2008-02-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.c-torture/execute/nest-align-1.x: Delete.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 26264
+ * 20021023-1.c: Use __builtin_va_start instead of
+ __builtin_stdarg_start.
+ * pr17301-1.c: Likewise.
+ * pr17301-2.c: Likewise.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * gcc.dg/pr34351.c: New.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * gcc.dg/Wlarger-than2.c: New.
+
+2008-02-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35323
+ * g++.dg/lookup/crash7.C: New.
+
+2008-02-26 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * gcc.c-torture/execute/nest-align-1.c: Use the largest alignment.
+
+2008-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/i386/pr25993.c: Skip on *-*-mingw*.
+
+2008-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/debug/dwarf2/aranges-fnsec-1.c: Add -w to dg-options.
+
+2008-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/builtins-config.h: Disable C99 runtime testing for
+ Windows.
+
+2008-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp (check_profiling_available): Report -p
+ unavailable on *-*-mingw*.
+
+2008-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_pthread_h): New.
+ * gcc.dg/pthread-init-1.c, gcc.dg/pthread-init-2.c: Use
+ dg-require-effective-target pthread_h.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * gcc.dg/Wswitch-enum-error.c: New.
+ * gcc.dg/Wswitch-error.c: New.
+ * gcc.dg/20011021-1.c: Use two directives to match two different
+ messages.
+
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28322
+ * gcc.dg/pr28322.c: New.
+ * gcc.dg/pr28322-2.c: New.
+ * lib/prune.exp: Ignore "At top level" even if there is no ':'
+ preceding it.
+
+2008-02-25 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35333
+ * g++.dg/other/error26.C: New.
+
+2008-02-25 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35338
+ * g++.dg/other/error25.C: New.
+
+2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/35258
+ * gcc.dg/pr35258.c: New testcase.
+
+2008-02-25 Jan Beulich <jbeulich@novell.com>
+
+ * gcc.dg/20020426-2.c: Remove bogus workaround.
+ * g++.old-deja/g++.other/store-expr1.C: Likewise.
+ * gcc.target/i386/movq-2.c: Also permit use of movzbl.
+
+2008-02-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/large_real_kind_3.F90: Xfail on ppc-darwin.
+
+2008-02-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/19984
+ * gcc.dg/pr19984.c: New test.
+ * gcc.dg/dfp/compare-special.h: Use _nan instead of nan as the
+ name of the variable.
+
+2008-02-25 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/vect/vect-99.c: Include stdlib.h and tree-vect.h.
+ (main): Call check_vect and foo. Check array values after
+ the call to foo.
+ * gcc.dg/vect/vect-117.c: Call check_vect.
+ * gcc.dg/vect/no-vfa-pr29145.c: Ditto.
+
+2008-02-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/33486
+ * g++.dg/lookup/strong-using-5.C: New.
+
+2008-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * gcc.dg/tree-ssa/ssa-pre-10.c: Use -fno-finite-math-only on
+ sh* targets.
+
+2008-02-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35349
+ * gcc.c-torture/execute/20050604-1.x: New file.
+
+2008-02-24 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr22076.c: Update number of mov insns
+ for PIC targets.
+ * gcc.target/i386/pr34256.c: Ditto.
+
+2008-02-24 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
+
+ PR 33738
+ * g++.dg/warn/pr33738.C: New.
+
+2008-02-24 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.c-torture/execute/nest-align-1.x: New file.
+
+2008-02-24 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR c++/34749
+ * g++.dg.ext/dllimport13.C: New test.
+
+2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/24685
+ * gfortran.dg/large_real_kind_form_io_2.f90: XFAIL on
+ powerpc*-apple-darwin*.
+
+2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/large_real_kind_2.F90: Split testing of ERF and
+ ERFC into gfortran.dg/large_real_kind_3.F90.
+ * gfortran.dg/large_real_kind_3.F90: New test.
+
+2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/33512
+ * gcc.dg/and-1.c: New test.
+
+2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * gcc.c-torture/execute/20080222-1.c: New test.
+
+2008-02-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/22076
+ PR target/34256
+ * gcc.target/i386/pr22076.c: New test.
+ * gcc.target/i386/pr34256.c: New test.
+ * gcc.target/i386/vecinit-5.c: New test.
+ * gcc.target/i386/vecinit-6.c: New test.
+ * gcc.target/i386/vecinit-[1-4].c: Check that no MMX register is used.
+
+ * g++.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
+ <xmmintrin.h>, define __m64 and __m128 directly.
+ * g++.dg/compat/struct-layout-1_generate.c: Add -mno-mmx for x86.
+
+2008-02-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/34715
+ * g++.dg/ext/always_inline-1.C: New test.
+ * g++.dg/ext/always_inline-2.C: New test.
+ * g++.dg/ext/always_inline-3.C: New test.
+ * g++.dg/ext/always_inline-4.C: New test.
+
+2008-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcc.target/cris/asm-b-1.c: New test.
+
+2008-02-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35282
+ * g++.dg/template/nontype17.C: Add.
+
+2008-02-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35282
+ Revert:
+ 2008-02-14 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/28743
+ * g++.dg/template/nontype17.C: New.
+ * g++.dg/template/nontype16.C: Add error.
+
+2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR c/19999
+ * gcc.dg/Wfloat-equal-1.c: New.
+ * g++.dg/warn/Wfloat-equal-1.C: New.
+
+2008-02-21 Michael Matz <matz@suse.de>
+
+ PR target/35264
+ * gcc.dg/pr35264.c: New testcase.
+
+2008-02-21 Richard Guenther <rguenther@suse.de>
+
+ * gfortran.dg/reassoc_1.f90: New testcase.
+ * gfortran.dg/reassoc_2.f90: Likewise.
+ * gfortran.dg/reassoc_3.f90: Likewise.
+
+2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34974
+ * gfortran.dg/fmt_t_7.f: New test.
+
+ PR libfortran/35132
+ * gfortran.dg/streamio_15.f90: New test.
+
+2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/35036
+ * gfortran.dg/fmt_zero_digits.f90: Revise test.
+
+2008-02-20 Seongbae Park <seongbae.park@gmail.com>
+
+ * gcc.dg/Wframe-larger-than.c: New option test.
+
+2008-02-20 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34997
+ * gfortran.dg/dollar_sym_1.f90: New.
+ * gfortran.dg/dollar_sym_2.f90: New.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35265
+ * gcc.dg/builtins-66.c: New testcase.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/fold-reassoc-1.c: New testcase.
+ * gcc.dg/tree-ssa/recip-3.c: Adjust to not compute d/d.
+
+2008-02-20 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/reassoc-13.c: New testcase.
+
+2008-02-20 Ira Rosen <irar@il.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_vect_unpack):
+ Return true for SPU.
+ (check_effective_target_vect_short_mult): Likewise.
+ * gcc.dg/vect/vect-reduc-dot-s16b.c: Expect vectorization of
+ the loop on targets that support vect_unpack.
+
+2008-02-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * g++.dg/compat/struct-layout-1_generate.c (DG_OPTIONS): New define.
+ (switchfiles): Use DG_OPTIONS. Explicitly name arguments in fprintf
+ templates to reduce number of passed arguments.
+
+2008-02-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/34950
+ * g++.dg/template/explicit-args1.C: New.
+
+2008-02-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34989
+ * gcc.dg/pr34989-1.c: New testcase.
+ * gcc.dg/pr34989-2.c: Likewise.
+
+2008-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35028
+ * g++.dg/gomp/pr35028.C: New test.
+
+ PR c++/34964
+ PR c++/35244
+ * gcc.dg/gomp/pr34964.c: New test.
+ * g++.dg/gomp/pr34964.C: New test.
+ * gcc.dg/gomp/pr35244.c: New test.
+ * g++.dg/gomp/pr35244.C: New test.
+
+ PR c++/35078
+ * g++.dg/gomp/pr35078.C: New test.
+
+2008-02-19 Christian Bruel <christian.bruel@st.com>
+
+ * gcc.dg/packed-array.c: New testcase.
+
+2008-02-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/33555
+ * gcc.target/i386/pr33555.c: New test.
+
+2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/35189
+ * gcc.target/i386/isa-1.c: New.
+ * gcc.target/i386/isa-2.c: Likewise.
+ * gcc.target/i386/isa-3.c: Likewise.
+ * gcc.target/i386/isa-4.c: Likewise.
+ * gcc.target/i386/isa-5.c: Likewise.
+ * gcc.target/i386/isa-6.c: Likewise.
+ * gcc.target/i386/isa-7.c: Likewise.
+ * gcc.target/i386/isa-8.c: Likewise.
+ * gcc.target/i386/isa-9.c: Likewise.
+ * gcc.target/i386/isa-10.c: Likewise.
+ * gcc.target/i386/isa-11.c: Likewise.
+ * gcc.target/i386/isa-12.c: Likewise.
+ * gcc.target/i386/isa-13.c: Likewise.
+ * gcc.target/i386/isa-14.c: Likewise.
+
+2008-02-18 Joey Ye <joey.ye@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/34921
+ * gcc.c-torture/execute/nest-align-1.c: New test case.
+
+2008-02-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35227
+ * gcc.dg/torture/pr35227.c: New testcase.
+
+2008-02-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35231
+ * gcc.c-torture/execute/pr35231.c: New testcase.
+
+2008-02-17 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr32268.c (test_lt): Add noinline attribute.
+ (test_gt): Ditto.
+
+2008-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * obj-c++.dg/encode-2.mm: XFAIL.
+ * obj-c++.dg/encode-3.mm: Likewise.
+
+2008-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * g++.dg/ext/has_nothrow_assign.C: Skip some tests when __PIC__.
+ * g++.dg/ext/has_nothrow_constructor.C: Likewise.
+ * g++.dg/ext/has_nothrow_copy.C: Likewise.
+
+2008-02-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/fastcall-sseregparm.c: Include sse-check.h.
+ (main): Change to void and rename to sse_test.
+ * gcc.target/i386/pr24306.c: Ditto.
+ * gcc.target/i386/pr32065-2.c: Ditto.
+ * gcc.target/i386/20060512-1.c: Include sse2-check.h.
+ (main): Change to void and rename to sse2_test.
+ * gcc.target/i386/20060512-3.c: Ditto.
+
+2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35150
+ * gfortran.dg/c_loc_tests_12.f03: New test.
+
+2008-02-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/35023
+ PR c++/35024
+ PR c++/35026
+ * g++.dg/cpp0x/vt-35026.C: New.
+ * g++.dg/cpp0x/vt-35023.C: New.
+ * g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
+ * g++.dg/cpp0x/vt-35024.C: New.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.c-torture/execute/va-arg-25.x: Remove.
+
+2008-02-15 Richard Guenther <rguenther@suse.de>
+ Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/35164
+ * g++.dg/torture/pr35164-1.C: New testcase.
+ * g++.dg/torture/pr35164-2.C: Likewise.
+
+2008-02-15 Dominique d'Humières <dominiq@lps.ens.fr>
+
+ PR testsuite/35119
+ * g++.dg/template/spec35.C: Change the regular expressions
+ in dg-final to match the assembly code generated by Darwin 9.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/cpp/pragma-pop_macro-1.c: Fix dg-do directive.
+
+2008-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr35160.c: Skip if !nonpic for 32bit x86 targets.
+
+2008-02-15 Hans-Peter Nilsson <hp@axis.com>
+
+ * lib/dejapatches.exp: New file.
+
+2008-02-14 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34050
+ * g++.dg/cpp0x/vt-34050.C: New.
+
+2008-02-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/5645
+ PR c++/11159
+ * g++.dg/warn/pr11159.C: New.
+ * g++.dg/warn/pr5645.C: Likewise.
+
+2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR preprocessor/35061
+ * gcc.dg/cpp/pragma_pop_macro-1.c: New test.
+
+2008-02-14 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/28743
+ * g++.dg/template/nontype17.C: New.
+ * g++.dg/template/nontype16.C: Add error.
+
+2008-02-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35138
+ * g++.dg/template/member8.C: New test.
+
+2008-02-13 Michael Matz <matz@suse.de>
+
+ * gcc.dg/pr35065.c: Fix testcase warnings.
+
+2008-02-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/34962, c++/34937, c++/34939
+ * g++.dg/ext/tmplattr9.C: New.
+
+2008-02-13 Michael Matz <matz@suse.de>
+
+ PR debug/35065
+ * gcc.dg/pr35065.c: New testcase.
+
+2008-02-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35171
+ * gcc.c-torture/compile/pr35171.c: New testcase.
+
+2008-02-12 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35163
+ * gcc.c-torture/execute/pr35163.c: New testcase.
+
+2008-02-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/asm-3.c: Fix dg-skip-if for all 32bit PIC targets.
+
+2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_address.adb: New test.
+
+2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * obj-c++.dg/bitfield-1.mm: Expect failures.
+ * obj-c++.dg/bitfield-4.mm: Likewise.
+ * obj-c++.dg/cxx-ivars-2.mm: Likewise.
+ * obj-c++.dg/encode-8.mm: Likewise.
+ * obj-c++.dg/isa-field-1.mm: Likewise.
+ * obj-c++.dg/layout-1.mm: Likewise.
+ * obj-c++.dg/lookup-2.mm: Likewise.
+ * obj-c++.dg/try-catch-2.mm: Likewise.
+ * obj-c++.dg/try-catch-9.mm: Likewise.
+
+2008-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/35144
+ * g++.dg/tree-ssa/pr35144.C: New test.
+
+ PR inline-asm/35160
+ * gcc.target/i386/pr35160.c: New test.
+
+ PR c++/34862
+ * g++.dg/init/new27.C: New test.
+
+2008-02-11 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/35077
+ * g++.dg/template/crash78.C: New.
+
+2008-02-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/35047
+ * gcc.dg/compat/vector-2_x.c: Add -mno-mmx for x86 targets.
+ * gcc.dg/compat/vector-2_y.c: Ditto.
+
+2008-02-11 Uros Bizjak <ubizjak@gmail.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/33992
+ * gcc.c-torture/execute/pr33992.c: New testcase.
+
+2008-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * gfortran.dg/streamio_14.f90: New test.
+
+2008-02-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr17390.c: Remove ilp32 target requirement.
+ Add -mfpmath=387 to dg-options.
+
+2008-02-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/35047
+ * gcc.dg/tree-ssa/gen-vect-2.c: Add -mno-sse for x86 targets.
+ * gcc.dg/tree-ssa/gen-vect-11.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-11a.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-11b.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-11c.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-25.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-26.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-28.c: Ditto.
+ * gcc.dg/tree-ssa/gen-vect-32.c: Ditto.
+
+2008-02-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR objc++/34193
+ * obj-c++.dg/gnu-runtime-2.mm: Fix signature of function main().
+
+2008-02-08 Sa Liu <saliu@de.ibm.com>
+
+ * gcc.target/spu/intrinsics-3.c: New. Test error messages.
+
+2008-02-06 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/35056
+ * g++.dg/conversion/bitfield8.C: New.
+
+2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/ext/vector13.C: Fix for compilation under -pedantic.
+
+2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/35049
+ PR c++/35096
+ * g++.dg/ext/vector13.C: New.
+
+2008-02-06 David Daney <ddaney@avtrex.com>
+
+ * g++.dg/tree-ssa/ivopts-1.C: Remove xfail for mips*-*-*.
+
+2008-02-05 Bob Wilson <bob.wilson@acm.org>
+
+ * lib/target-supports.exp (check_effective_target_hard_float): Remove
+ special case for xtensa-*-*.
+
+2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/35037
+ * gfortran.dg/volatile11.f90: New test.
+
+2008-02-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33553
+ * g++.dg/template/array19.C: New test.
+
+2008-02-05 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
+
+ PR 33738
+ * g++.dg/warn/pr33738.C: Remove.
+
+2008-02-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34945
+ * gfortran.dg/bounds_check_13.f: New test.
+
+2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR testsuite/33946
+ * gcc.c-torture/execute/multi-ix.c: Call memset instead of bzero.
+
+2008-02-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35083
+ * gcc.target/i386/pr35083.c: New test.
+
+2008-02-05 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/32315
+ * gfortran.dg/data_bounds_1.f90: New test.
+
+2008-02-04 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
+
+ PR 33738
+ * g++.dg/warn/pr33738.C: New.
+
+2008-02-04 Daniel Franke <franke.daniel@gmail.com>
+
+ * gfortran.dg/where_operator_assign_4.f90: Fix typo in error message
+ to match.
+
+2008-02-04 Hans-Peter Nilsson <hp@axis.com>
+
+ * lib/target-supports.exp (check_effective_target_hard_float): Only
+ use the macro definition tests for mips*-*-* and xtensa-*-*. For all
+ other targets, grep for a call insn in the rtl expand dump for an
+ add of two doubles.
+ (target_compile): Support generating rtl dumps as output.
+
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33631
+ * gcc.c-torture/execute/pr33631.c: New testcase.
+
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35043
+ * gcc.c-torture/compile/pr35043.c: New testcase.
+
+2008-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/tree-ssa/ivopts-1.C: Remove xfail for hppa*-*-*.
+
+2008-02-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr31628.c: Require effective target fpic.
+ * gcc.target/i386/strinline.c: Ditto.
+ * gcc.dg/sibcall-6.c: Skip if !nonpic for 32bit x86 targets.
+ * gcc.dg/pr35045.c: Ditto.
+ * gcc.dg/20050503-1.c: Ditto.
+
+2008-02-03 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/32760
+ * gfortran.dg/host_assoc_variable_1.f90: New test.
+ * gfortran.dg/allocate_stat.f90: Change last three error messages.
+
+2008-02-02 Michael Matz <matz@suse.de>
+
+ PR target/35045
+ * gcc.dg/pr35045.c: New test.
+
+2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/35001
+ * gfortran.dg/shape_4.f90: New test.
+
+2008-02-02 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcc.target/cris/torture/pr34773.c: Use __asm__, not asm.
+
+2008-02-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR rtl-optimization/34773
+ * gcc.target/cris/torture/pr34773.c: New test.
+
+2008-02-01 Nick Clifton <nickc@redhat.com>
+
+ * lib/target-supports.exp (check_profiling_available): Do not
+ expect profiling to work on the xstormy16 target.
+
+2008-02-01 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/35047
+ * gcc.c-torture/execute/20050316-2.x: New file.
+ * gcc.target/i386/pr17390.c: Update scan pattern.
+ * gcc.dg/builtin-apply4.c: Add -mno-mmx for 32bit x86 targets.
+ * g++.dg/tree-ssa/ivopts-1.C: Remove XPASS for x86 targets.
+
+2008-01-31 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34910
+ * gfortran.dg/proc_assign_2.f90: New test.
+
+2008-01-31 Douglas Gregor <doug.gregor@gmail.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34935
+ PR c++/34936
+ * g++.dg/ext/alias-canon.C: New.
+ * g++.dg/ext/alias-mangle.C: New.
+
+2008-01-30 Jan Hubicka <jh@suse.cz>
+
+ * gcc.c-torture/execute/pr34982.c: Add forgotten return 0.
+
+2008-01-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * g++.dg/other/first-global.C: Add -fpie for all pic targets.
+ * g++.dg/parse/attr-externally-visible-1.C: Likewise.
+
+2008-01-30 Jan Hubicka <jh@suse.cz>
+
+ PR target/34982
+ * gcc.c-torture/execute/pr34982.c: New testcase.
+
+2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/tf_to_di-1.c: New testcase.
+
+2008-01-30 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34975
+ * gfortran.dg/use_only_3.f90: New test.
+ * gfortran.dg/use_only_3.inc: Modules for new test.
+
+ PR fortran/34429
+ * gfortran.dg/function_charlen_2.f90: New test.
+
+2008-01-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34969
+ * gcc.dg/pr34969.c: New test.
+
+ PR c/35017
+ * gcc.dg/inline-25.c: New test.
+ * gcc.dg/inline-26.c: New test.
+ * gcc.dg/inline-27.c: New test.
+
+2008-01-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35006
+ * gcc.c-torture/compile/pr35006.c: New testcase.
+
+2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34055
+ PR c++/34103
+ PR c++/34219
+ PR c++/34606
+ PR c++/34753
+ PR c++/34754
+ PR c++/34755
+ PR c++/34919
+ PR c++/34961
+ * g++.dg/cpp0x/vt-34219-2.C: New.
+ * g++.dg/cpp0x/pr32126.C: Tweak expected error messages.
+ * g++.dg/cpp0x/vt-34961.C: New.
+ * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test
+ cases from the re-opened PR.
+ * g++.dg/cpp0x/vt-34753.C: New.
+ * g++.dg/cpp0x/vt-34919.C: New.
+ * g++.dg/cpp0x/vt-34754.C: New.
+ * g++.dg/cpp0x/vt-34606.C: New.
+ * g++.dg/cpp0x/vt-34219.C: New.
+ * g++.dg/cpp0x/pr32125.C: Tweak expected error messages.
+ * g++.dg/cpp0x/vt-34755.C: New.
+ * g++.dg/cpp0x/pr31438.C: Ditto.
+ * g++.dg/cpp0x/variadic81.C: Ditto.
+
+2008-01-29 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * g++.dg/torture/pr34641.C: Put the dg-do first.
+
+2008-01-29 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.target/mips/lazy-binding-1.c: Skip for mips16.
+
+2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * g++.old-deja/g++.pt/incomplete1.C: Fix typo in comment.
+
+2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR 31535
+ * gcc.target/powerpc/spe-small-data-1.c: New test.
+ * gcc.target/powerpc/spe-small-data-2.c: New test.
+
+2008-01-28 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34980
+ * gfortran.dg/shape_3.f90: New test.
+
+2008-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/20020926-1.c: Remove -m31.
+
+2008-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/20020926-1.c: Disable for s390x.
+
+2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34994
+ * gfortran.dg/missing_optional_dummy_5.f90: Fix matching regular
+ expression.
+
+2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34990
+ * gfortran.dg/array_constructor_22.f90: New test.
+
+2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ PR middle-end/34688
+ * gcc.c-torture/compile/pr34688: New test.
+
+2008-01-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34848
+ * gfortran.dg/missing_optional_dummy_5.f90: New.
+
+2008-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/tree-ssa/20070302-1.c (baz): Mark with attribute
+ noinline. XFAIL test.
+
+2008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/31610
+ * gfortran.dg/array_3.f90: New test.
+
+2008-01-26 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c-torture/compile/pr34966.c (atan): Only use asm
+ on i?86/x86_64.
+
+ PR c++/34965
+ * gcc.dg/pr34965.c: New test.
+ * g++.dg/other/error24.C: New test.
+
+2008-01-26 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfofortran/34887
+ * gfortran.dg/x_slash_2.f: New test.
+
+2008-01-26 Richard Guenther <rguenther@suse.de>
+
+ PR c++/34235
+ * g++.dg/torture/pr34235.C: New testcase.
+
+2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * g++.dg/tree-ssa/ivopts-1.C: XFAIL for MIPS too.
+
+2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/34981
+ * gcc.target/mips/lazy-binding-1.c: New test.
+ * gcc.target/mips/mips.exp (setup_mips_tests): Set
+ mips_forced_no_abicalls and mips_forced_no_shared.
+ (dg-mips-options): Avoid using -mabicalls with an implicit -mabi=eabi.
+ Avoid using small data with -mabicalls. Don't make -G0 force
+ -mn-abicalls. Skip -mabicalls and -mshared tests if the multilib
+ forces the opposite option.
+
+2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR target/34970
+ * gcc.target/i386/fastcall-1.c: Scan for correct label.
+ Use -std=gnu89 switch.
+
+2008-01-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34876
+ * gfortran.dg/direct_io_9.f: New test.
+
+2008-01-25 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34661
+ * gfortran.dg/where_operator_assign_4.f90: New test.
+
+2008-01-25 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/builtin-inf-1.c, gcc.dg/compare6.c, gcc.dg/sibcall-3.c,
+ gcc.dg/sibcall-4.c, gcc.dg/torture/builtin-attr-1.c: Don't handle
+ c4x-*-* targets.
+
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32244
+ * gcc.c-torture/execute/pr32244-1.c: New testcase.
+
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34966
+ * gcc.c-torture/compile/pr34966.c: New testcase.
+
+2008-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR c++/33887
+ * g++.dg/torture/pr33887-1.C: New testcase.
+ * g++.dg/torture/pr33887-2.C: Likewise.
+ * g++.dg/torture/pr33887-3.C: Likewise.
+ * gcc.c-torture/execute/20071211-1.c: Likewise.
+
+2008-01-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * gcc.dg/pr34856.c: Use pointer mode for "pin".
+
+2008-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/33333
+ * g++.dg/gomp/pr33333.C: New test.
+
+ PR preprocessor/34692
+ * gcc.dg/cpp/pr34692.c: New test.
+ * gcc.dg/gomp/pr34692.c: New test.
+
+2008-01-25 Olga Golovanevsky <olga@il.ibm.com>
+
+ * gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.
+
+2008-01-24 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34202
+ * gfortran.dg/empty_type.f90: New test.
+
+2008-01-24 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/34603
+ * g++.dg/template/crash77.C: New.
+
+2008-01-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * gcc.dg/pr34856.c: New test.
+
+2008-01-24 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/namelist_39.f90: Delete temporary files.
+ * gfortran.dg/namelist_44.f90: Ditto.
+
+2008-01-24 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34953
+ * g++.dg/torture/pr34953.C: New testcase.
+
+2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34934
+ * gcc.c-torture/compile/20080124-1.c: New test.
+
+2008-01-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34872
+ * gfortran.dg/function_charlen_3.f: New test.
+
+2008-01-23 Michael Matz <matz@suse.de>
+
+ PR debug/34895
+ * g++.dg/debug/pr34895.cc: New testcase.
+
+2008-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31529
+ * gcc.dg/pr31529-1.c: New testcase.
+ * gcc.dg/pr31529-2.c: Likewise.
+
+2008-01-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34829
+ * g++.dg/ext/pr34829.C (operator new): Use size_t instead of
+ unsigned int for the first argument.
+
+2008-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33984
+ * g++.dg/conversion/bitfield7.C: New test.
+ * g++.dg/cpp0x/decltype4.C: Fixed xfail.
+
+2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ From Michael Frysinger <michael.frysinger@analog.com>
+ * gcc.target/bfin/mcpu-bf547.c: New test.
+ * gcc.target/bfin/mcpu-bf523.c: New test.
+ * gcc.target/bfin/mcpu-bf524.c: New test.
+ * gcc.target/bfin/mcpu-bf526.c: New test.
+
+2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/execute/20080122-1.c: New test.
+
+2008-01-22 Tom Tromey <tromey@redhat.com>
+
+ PR c++/34859
+ * gcc.dg/cpp/pr34859.c: New file.
+
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34875
+ * gfortran.dg/vector_subscript_3.f90: New test.
+
+2008-01-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34848
+ * gfortran.dg/missing_optional_dummy_4.f90
+
+2008-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/vect/vect-ifcvt-9.c: Use inline.
+
+2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/unchecked_union1.adb: New test.
+
+2008-01-22 Tom Tromey <tromey@redhat.com>
+
+ PR c++/34829
+ * g++.dg/ext/pr34829.C: New file.
+
+2008-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34607
+ * gcc.dg/gomp/pr34607.c: New test.
+ * g++.dg/gomp/pr34607.C: New test.
+
+ PR c++/34914
+ * g++.dg/ext/vector10.C: New test.
+
+ PR c++/34918
+ * g++.dg/other/error23.C: New test.
+
+ PR c++/34917
+ * g++.dg/ext/vector12.C: New test.
+
+2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 32102
+ * gcc.dg/Wstrict-overflow-21.c: New.
+ * g++.dg/warn/Wstrict-aliasing-8.C: New.
+
+2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/33092
+ * gcc.dg/pr33092.c: New.
+
+2008-01-22 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.target/s390/20020926-1.c: Add -m31 option.
+
+2008-01-22 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/34915
+ * gfortran.dg/initialization_18.f90: New test.
+
+2008-01-22 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34899
+ * gfortran.dg/tab_continuation.f: New.
+
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34896
+ * gfortran.dg/use_rename_2.f90: New test.
+
+2008-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34856
+ * gcc.c-torture/compile/pr34856.c: New testcase.
+
+2008-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR c/34885
+ * gcc.c-torture/compile/pr34885.c: New testcase.
+
+2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/alignment1.ads: New test.
+
+2008-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR c++/34850
+ * g++.dg/torture/pr34850.C: New testcase.
+
+2008-01-21 Alon Dayan <alond@il.ibm.com>
+ Olga Golovanevsky <olga@il.ibm.com>
+
+ PR tree-optimization/34701
+ * gcc.dg/struct/wo_prof_array_field.c: New test.
+
+2008-01-20 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/34891
+ * g++.dg/ext/vector9.C: New.
+
+2008-01-20 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/34776
+ PR c++/34486
+ * g++.dg/template/crash75.C: New.
+ * g++.dg/template/crash76.C: Likewise.
+
+2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/34808
+ * gcc.c-torture/compile/pr34808.c: New test.
+
+2008-01-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34784
+ * gfortran.dg/mapping_2.f90: Correct ubound expression for h4.
+
+ PR fortran/34861
+ * gfortran.dg/entry_array_specs_3.f90: New test.
+
+ PR fortran/34854
+ * gfortran.dg/use_rename_1.f90: New test.
+
+2008-01-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34784
+ * gfortran.dg/array_constructor_20.f90: New test.
+ * gfortran.dg/mapping_2.f90: Correct ubound expression for h4.
+
+ PR fortran/34785
+ * gfortran.dg/array_constructor_21.f90: New test.
+
+2008-01-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34795
+ * gfortran.dg/inquire_13.f90: New test.
+
+ PR libfortran/34659
+ * gfortran.dg/continuation_9.f90: New test.
+
+2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/34831
+ * gcc.target/mips/pr34831.c: New test.
+
+2008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/34817
+ PR fortran/34838
+ * gfortran.dg/any_all_1.f90: New test.
+ * gfortran.dg/any_all_2.f90: New test.
+
+2008-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/eh/ia64-2.C: Place "dg-do run" statement before
+ "dg-require-weak" statement.
+ * g++.dg/eh/weak1.C: Likewise.
+
+2008-01-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR gcov-profile/34610
+ * gcc.dg/gomp/pr34610.c: New test.
+
+2008-01-19 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34760
+ * gfortran.dg/implicit_11.f90: New.
+ * gfortran.dg/allocate_stat.f90: Update dg-error pattern.
+ * gfortran.dg/entry_15.f90: Ditto.
+ * gfortran.dg/func_assign.f90: Ditto.
+ * gfortran.dg/gomp/reduction3.f90: Ditto.
+ * gfortran.dg/proc_assign_1.f90: Ditto.
+
+ * gfortran.dg/interface_proc_end.f90: Use dg-error instead
+ of dg-excess-errors.
+
+2008-01-18 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/32616
+ * gfortran.dg/argument_checking_15.f90: New.
+ * gfortran.dg/argument_checking_5.f90: Change TODO into
+ dg-warning.
+
+2008-01-18 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/enum_4.f90: Replace dg-excess-errors by dg-error.
+ * gfortran.dg/enum_5.f90: Ditto.
+ * gfortran.dg/enum_6.f90: Ditto.
+ * gfortran.dg/bom_error.f90: Ditto.
+ * gfortran.dg/func_decl_4.f90: Ditto.
+
+2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34782
+ * gfortran.dg/fmt_t_6.f: New test.
+
+2008-01-18 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/large_real_kind_form_io_1.f90: Enlarge string for
+ internal I/O.
+
+2008-01-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * g++.dg/lookup/two-stage2.C: fix comment.
+
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ * gcc.dg/debug/dwarf2/var1.c: Add -fno-merge-debug-strings.
+
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ PR c++/33407
+ * g++.dg/init/new26.C: New test.
+
+2008-01-18 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34801
+ * gcc.dg/Warray-bounds.c: XFAIL two tests, remove one
+ redundant one.
+
+2008-01-18 Hans-Peter Nilsson <hp@axis.com>
+
+ * g++.dg/tree-ssa/pr34355.C: Correct order of dg-do and
+ dg-require-effective-target.
+
+2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR target/34556
+ * gfortran.dg/reshape_2.f90: New test.
+
+2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * gcc.dg/20040223-1.c: Fix comment typo.
+
+2008-01-17 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/34814
+ * gcc.target/powerpc/ppc32-abi-dfp-1.c: Enable checks that will fail
+ until 34814 is fixed.
+
+2008-01-17 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/34648
+ * gcc.c-torture/compile/pr34648.c: New testcase.
+
+2008-01-17 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR testsuite/34821
+ * gcc.dg/autopar/autopar.exp: New.
+ * g++.dg/tree-ssa/pr34355.C: Require pthread.
+ * lib/target-supports.exp (check_effective_target_pthread): New.
+
+ * gcc.dg/tree-ssa/parallelization-1.c: Moved to gcc.dg/autopar.
+ * gcc.dg/tree-ssa/reduc-1short.c: Same.
+ * gcc.dg/tree-ssa/reduc-1.c: Same.
+ * gcc.dg/tree-ssa/reduc-2short.c: Same.
+ * gcc.dg/tree-ssa/reduc-2.c: Same
+ * gcc.dg/tree-ssa/reduc-3.c: Same.
+ * gcc.dg/tree-ssa/reduc-1char.c: Same.
+ * gcc.dg/tree-ssa/reduc-6.c: Same.
+ * gcc.dg/tree-ssa/reduc-7.c: Same.
+ * gcc.dg/tree-ssa/reduc-2char.c: Same.
+ * gcc.dg/tree-ssa/reduc-8.c: Same.
+ * gcc.dg/tree-ssa/reduc-9.c: Same.
+
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr5.adb: New test.
+
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
+
+2008-01-17 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34825
+ * gcc.dg/pr34825.c: New testcase.
+
+2008-01-17 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/execute/20080117-1.c: New testcase.
+
+2008-01-17 Revital Eres <eres@il.ibm.com>
+
+ PR30957
+ * gcc.dg/pr30957-1.c: Always xfail and add noinline attribute.
+
+2008-01-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34429
+ * gfortran.dg/function_charlen_1.f90: New test.
+
+ PR fortran/34431
+ * gfortran.dg/function_types_1.f90: New test.
+ * gfortran.dg/function_types_2.f90: New test.
+
+ PR fortran/34471
+ * gfortran.dg/function_kinds_4.f90: New test.
+ * gfortran.dg/function_kinds_5.f90: New test.
+
+ * gfortran.dg/defined_operators_1.f90: Errors now at function
+ declarations.
+ * gfortran.dg/private_type_4.f90: The same.
+ * gfortran.dg/interface_15.f90: The same.
+ * gfortran.dg/elemental_args_check_2.f90: The same.
+ * gfortran.dg/auto_internal_assumed.f90: The same.
+
+2008-01-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/sizetype.adb: New test.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32628
+ * gcc.dg/overflow-warn-7.c: New testcase.
+
+2008-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/tree-ssa/loop-19.c: Require nonpic.
+
+2008-01-16 Jakub Jelinek <jakub@redhat.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR c/34668
+ * gcc.dg/pr34668-1.c: New test.
+ * gcc.dg/pr34668-2.c: Likewise.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR c++/33819
+ * g++.dg/torture/pr33819.C: New testcase.
+
+2008-01-16 Richard Guenther <rguenther@suse.de>
+
+ PR c/34768
+ * gcc.c-torture/execute/pr34768-1.c: New testcase.
+ * gcc.c-torture/execute/pr34768-2.c: Likewise.
+
+2008-01-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34796
+ * gfortran.dg/argument_checking_13.f90: New.
+ * gfortran.dg/argument_checking_14.f90: New.
+
+2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34671
+ * gfortran.dg/anyallcount_1.f90: New test.
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34399
+ * g++.dg/cpp0x/vt-34399.C: New.
+ * g++.dg/template/friend50.C: New.
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34751
+ * g++.dg/cpp0x/vt-34751.C: New.
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34051
+ PR c++/34055
+ PR c++/34102
+ PR c++/34103
+ * g++.dg/cpp0x/vt-34051-2.C: New.
+ * g++.dg/cpp0x/vt-34102.C: New.
+ * g++.dg/cpp0x/vt-34051.C: New.
+ * g++.dg/cpp0x/vt-34055.C: New.
+ * g++.dg/cpp0x/vt-34103.C: New.
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34314
+ * g++.dg/cpp0x/vt-34314.C: New.
+ * g++.dg/cpp0x/variadic79.C: Fix the error message to reflect
+ reality (the error message was wrong previously).
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/33964
+ * g++.dg/cpp0x/vt-33964.C: New.
+ * g++.dg/template/partial5.C: New.
+
+2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/34052
+ * g++.dg/cpp0x/vt-34052.C: New.
+ * g++.dg/template/ttp26.C: New.
+
+2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/rep_clause2.ad[sb]: New test.
+ * gnat.dg/rep_problem2.adb: Rename to rep_clause1.adb.
+
+2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24924
+ * g++.dg/cpp/pedantic-errors.C: Delete.
+ * g++.dg/cpp/permissive.C: Delete.
+
+2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20080114-1.c: New test.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34665
+ * gfortran.dg/argument_checking_11.f90: New.
+ * gfortran.dg/argument_checking_12.f90: New.
+ * gfortran.dg/used_dummy_types_4.f90: Update dg-error.
+ * gfortran.dg/c_assoc_2.f03: Update dg-error.
+ * gfortran.dg/argument_checking_3.f90: Ditto.
+ * gfortran.dg/pointer_intent_2.f90: Ditto.
+ * gfortran.dg/import2.f90: Ditto.
+ * gfortran.dg/assumed_shape_ranks_1.f90: Ditto.
+ * gfortran.dg/implicit_actual.f90: Ditto.
+ * gfortran.dg/used_dummy_types_3.f90: Ditto.
+ * gfortran.dg/derived_comp_array_ref_6.f90: Ditto.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34763
+ * gfortran.dg/interface_proc_end.f90: New.
+
+2008-01-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34759
+ * gfortran.dg/assumed_size_refs_4.f90: New.
+
+2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/unchecked_convert1.adb.
+
+2008-01-13 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/struct-ret-3.c: Adjust testcase to make stack
+ readable and writable again before exiting.
+
+2008-01-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34601
+ * gcc.dg/noncompile/incomplete-4.c: New testcase.
+
+2008-01-13 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/32135
+ * gcc.dg/pr32135.c: new.
+
+2008-01-12 Doug Kwan <dougkwan@google.com>
+
+ * gcc.dg/qual-return-1.c: Add -Wignored-qualifiers.
+ * g++.dg/warn/Wreturn-type-4.C: Replace -Wreturn-type by
+ -Wignored-qualifiers.
+
+2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/slice3.adb: New test.
+ * gnat.dg/slice4.adb: Likewise.
+
+2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/bit_packed_array.ad[sb]: New test.
+
+2008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34432
+ * gfortran.dg/parens_7.f90: New test.
+
+2008-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/tree-ssa/loadpre5.c: Use static.
+ * gcc.dg/tree-ssa/loadpre8.c: Likewise.
+
+ * gcc.dg/pr33826.c: Require nonpic.
+
+2008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/34722
+ * gfortran.dg/inquire_12.f90: New test.
+
+2008-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34670
+ * all_bounds_1.f90: New test case.
+ * maxloc_bounds_1.f90: New test case.
+ * maxloc_bounds_2.f90: New test case.
+ * maxloc_bounds_3.f90: New test case.
+ * maxloc_bounds_4.f90: New test case.
+ * maxloc_bounds_5.f90: New test case.
+ * maxloc_bounds_6.f90: New test case.
+ * maxloc_bounds_7.f90: New test case.
+ * maxloc_bounds_8.f90: New test case.
+
+2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/struct-ret-3.c: New test.
+
+2008-01-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34537
+ * gfortran.dg/transfer_simplify_8.f90: New test.
+
+2008-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * g++.dg/torture/pr34641.C: Add dg-require-visibility. Define
+ size_t using predefined macro.
+
+2008-01-10 Raksit Ashok <raksit@google.com>
+
+ PR rtl-optimization/27971
+ * gcc.target/i386/pr27971.c: New testcase.
+
+2008-01-10 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34396
+ * gfortran.dg/bounds_check_12.f90: New test.
+
+2008-01-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/cmov7.c: Add -mbranch-cost=5 to dg-options.
+ * gcc.target/i386/addr-sel-1.c: Require nonpic effective target.
+
+2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR middle-end/34641
+ * g++.dg/torture/pr34641.C: New testcase.
+
+2008-01-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34651
+ * g++.dg/torture/pr34651.C: New testcase.
+
+2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/34017
+ * gcc.dg/tree-ssa/pr34017.c: New.
+
+2008-01-09 Richard Guenther <rguenther@suse.de>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30132
+ * gcc.c-torture/compile/pr30132.c: New testcase.
+
+2008-01-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34458
+ * gcc.c-torture/compile/pr34458.c: New testcase.
+
+2008-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR testsuite/30459
+ g++.dg/eh/ia64-2.C: Require weak support.
+
+2008-01-08 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31863
+ * g++.dg/torture/pr31863.C: New testcase.
+
+2008-01-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34694
+ * gcc.dg/gomp/pr34694.c: New test.
+ * g++.dg/gomp/pr34694.C: New test.
+
+ PR c++/33890
+ * g++.dg/gomp/pr33890.C: New test.
+
+2008-01-08 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34476
+ * gfortran.dg/parameter_array_init_3.f90: New test.
+
+2008-01-08 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34681
+ PR fortran/34704
+ * gfortran.dg/alloc_comp_default_init_1.f90: New test.
+
+2008-01-07 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/target-supports.exp (check_effective_target_powerpc_spu): New.
+ * g++.dg/other/spu2vmx-1.C: Use it.
+
+2008-01-07 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * gcc.dg/out-of-bounds-1.c: Don't use -mstrict-align for Darwin.
+
+ PR testsuite/34575
+ * gcc.target/powerpc/popcount-1.c: Skip on darwin.
+ * gcc.target/powerpc/parity-1.c: Likewise.
+
+2008-01-07 Fred Fish <fnf@specifix.com>
+
+ PR preprocessor/30363:
+ * gcc.dg/cpp/trad/macroargs.c: Add code to test quoting in
+ macro expansions.
+
+2008-01-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34672
+ * gfortran.dg/use_only_2.f90: New test.
+
+2008-01-06 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/34680
+ * g++.dg/rtti/predefined-rtti-macro-1.C: New.
+ * g++.dg/rtti/predefined-rtti-macro-2.C: Likewise.
+
+2008-01-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34545
+ * gfortran.dg/use_12.f90: New test.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34689
+ * interface.c (compare_actual_formal): Fix intent(out) check for
+ function result variables.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34690
+ * gfortran.dg/elemental_args_check_2.f90: Fix test case.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34689
+ * gfortran.dg/intent_out_4.f90: Fix test case.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34689
+ * gfortran.dg/intent_out_4.f90: New.
+
+2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34540
+ * gfortran.dg/optional_dim_3.f90: New test.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34658
+ * gfortran.dg/common_11.f90: New.
+ * gfortran.dg/blockdata_1.f90: Update test case.
+ * gfortran.dg/blockdata_2.f90: Update test case.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/equiv_constraint_9.f90: Fix typo.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34655
+ * gfortran.dg/equiv_constraint_9.f90: New.
+
+2008-01-06 Revital Eres <eres@il.ibm.com>
+
+ PR tree-optimization/34263
+ * gcc.dg/pr34263.c: New testcase.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34654
+ * gfortran.dg/internal_io_unf.f90: New.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34660
+ * gfortran.dg/elemental_args_check_2.f90: New.
+
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34662
+ * gfortran.dg/intent_out_3.f90: New.
+
+2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * objc.dg/stabs-1.m: Allow labels to be begin with $L as well as .L.
+
+2008-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34676
+ * gfortran.dg/list_read_8.f90: New test.
+
+2008-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34029
+ * gcc.c-torture/compile/pr34029-1.c: New testcase.
+ * gcc.c-torture/compile/pr34029-2.c: Likewise.
+
+2008-01-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR gcov-profile/34609
+ * g++.dg/gcov/gcov-6.C: New test.
+
+2008-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31081
+ * g++.dg/torture/pr31081-1.C: New testcase.
+ * g++.dg/torture/pr31081-2.C: Likewise.
+
+2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * gcc.target/mips/rsqrt-1.c: Require -mgp64.
+ * gcc.target/mips/rsqrt-2.c: Likewise.
+ * gcc.target/mips/rsqrt-4.c: New test.
+
+2008-01-04 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34557
+ * gfortran.dg/equiv_substr.f90: New.
+
+2008-01-03 Tom Tromey <tromey@redhat.com>
+
+ PR c/34457:
+ * gcc.dg/pr34457-2.c: New file.
+ * gcc.dg/pr34457-1.c: New file.
+
+2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ Revert fix for PR tree-optimization/34458.
+
+2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/34458
+ * gcc.dg/tree-ssa/pr34458.c: New.
+
+2008-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34565
+ * gfortran.dg/internal_readwrite_1.f90: New test.
+ * gfortran.dg/internal_readwrite_2.f90: New test.
+
+2008-01-03 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/34602:
+ * gcc.dg/cpp/pr34602.c: New file.
+
+2008-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/29484
+ * gcc.c-torture/execute/20071220-1.c: New test.
+ * gcc.c-torture/execute/20071220-2.c: New test.
+
+2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/34635
+ * gcc.dg/tree-ssa/pr34635.c: New.
+ * gcc.dg/tree-ssa/pr34635-1.c: New.
+
+2008-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/34562
+ * g++.dg/other/first-global.C: Also accept _GLOBAL__I_65535_0_foobar
+ in scan-assembler check.
+
+2008-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34608
+ * g++.dg/gomp/pr34608.C: New test.
+
+2008-01-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34093
+ PR middle-end/31976
+ * gcc.c-torture/compile/pr34093.c: New testcase.
+
+2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
+
+ * g++.dg/cpp0x/long_long.C: New.
+
+2008-01-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * gcc.target/spu/tag_manager.c : Include stdlib.h.
+ * gcc.target/spu/Wmain.c: Fix the line numbers for the
+ warning on the function main.
+
+2008-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.target/i386/i386.exp (check_effective_target_sse5): Use __v8hi
+ rather than __v2di type.
diff --git a/gcc/testsuite/g++.dg/conversion/simd1.C b/gcc/testsuite/g++.dg/conversion/simd1.C
index 06cdc1ab341..56be6f47ca9 100644
--- a/gcc/testsuite/g++.dg/conversion/simd1.C
+++ b/gcc/testsuite/g++.dg/conversion/simd1.C
@@ -6,7 +6,6 @@
#define vector __attribute__((vector_size(16)))
vector signed int vld (int a1, const vector signed int *a2) { return *a2; } /* { dg-message "vld" } */
-/* { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } 8 } */
vector signed short vld (int a1, const vector signed short *a2) { return *a2; } /* { dg-message "vld" } */
extern int i;
@@ -21,3 +20,6 @@ void foo ()
vss = vld(i, vssp);
vss = vld(i, cvssp);
}
+
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector returned by reference.*" } */
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto12.C b/gcc/testsuite/g++.dg/cpp0x/auto12.C
new file mode 100644
index 00000000000..437088d654c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/auto12.C
@@ -0,0 +1,52 @@
+// More auto/decltype mangling tests.
+// { dg-options "-std=c++0x" }
+
+template <class T>
+struct B
+{
+ static int i;
+};
+
+int&& x();
+
+template <class T>
+struct A
+{
+ static int i;
+ static int &ir;
+ static int &&irr;
+ template <class U>
+ auto f(U u) -> decltype (u + i);
+ template <class U>
+ auto fr(U u) -> decltype (u + ir);
+ template <class U>
+ auto frr(U u) -> decltype (u + irr);
+ template <class U>
+ auto g(U u) -> decltype (u + sizeof (i));
+ template <class U>
+ auto h(U u) -> decltype (u + B<U>::i);
+ template <class U>
+ auto j(U u) -> decltype (u + x());
+};
+
+template<class T> template<class U>
+auto A<T>::f(U u) -> decltype (u + i)
+{
+ return u + i;
+}
+
+int main()
+{
+ // { dg-final { scan-assembler "_ZN1AIiE1fIiEEDTplsTT_sTiES2_" } }
+ A<int>().f(1);
+ // { dg-final { scan-assembler "_ZN1AIiE2frIiEEDTplsTT_sTiES2_" } }
+ A<int>().fr(1);
+ // { dg-final { scan-assembler "_ZN1AIiE3frrIiEEDTplsTT_sTiES2_" } }
+ A<int>().frr(1);
+ // { dg-final { scan-assembler "_ZN1AIiE1gIiEEDTplsTT_sR.ES2_" } }
+ A<int>().g(1);
+ // { dg-final { scan-assembler "_ZN1AIiE1hIiEEDTplsTT_sr1BIS2_E1iES2_" } }
+ A<int>().h(1);
+ // { dg-final { scan-assembler "_ZN1AIiE1jIiEEDTplsTT_sRiES2_" } }
+ A<int>().j(1);
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto13.C b/gcc/testsuite/g++.dg/cpp0x/auto13.C
new file mode 100644
index 00000000000..dc7e35aabaa
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/auto13.C
@@ -0,0 +1,11 @@
+// PR c++/38597
+// { dg-options "-std=c++0x" }
+
+template<class T, class U>
+auto f(T,U) -> decltype(T() + U())
+{ return T() + U(); }
+
+template<class T> void g(T){}
+
+int main() { g(f); } // { dg-error "no matching function" }
+
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto6.C b/gcc/testsuite/g++.dg/cpp0x/auto6.C
index d2bcfedb63c..7d659c7236a 100644
--- a/gcc/testsuite/g++.dg/cpp0x/auto6.C
+++ b/gcc/testsuite/g++.dg/cpp0x/auto6.C
@@ -30,6 +30,12 @@ auto add3(T t, U u) -> decltype (ag(t,u))
return ag(t,u);
}
+template<class T, class U>
+decltype(*(T*)0+*(U*)0) add4(T t, U u)
+{
+ return t+u;
+}
+
template <class T>
struct A
{
@@ -72,13 +78,28 @@ auto k(T t, U u, V v) -> decltype (t.U::template B<V>::MEM)
return t.U::template B<V>::MEM;
}
+// For these two examples we can elide the 'decltype' and just mangle the type.
+template <class T>
+auto l(T t) -> decltype (t)
+{
+ return t;
+}
+
+template <class T, T u>
+auto m(T t) -> decltype (u)
+{
+ return t;
+}
+
A<int> a, *p;
int main()
{
- // { dg-final { scan-assembler "_Z3addIidEDTplsTT_sTT0_ES0_S1_" } }
+ // { dg-final { scan-assembler "_Z3addIidEDTplsTT_sTT0_ES0_S1_" } }
auto i = add(1, 2.0);
- // { dg-final { scan-assembler "_Z4add2IidEDTplcvT_vcvT0_vES0_S1_" } }
+ // { dg-final { scan-assembler "_Z4add4IidEDTplsTT_sTT0_ES0_S1_" } }
+ auto i4 = add4(1, 2.0);
+ // { dg-final { scan-assembler "_Z4add2IidEDTplsRT_sRT0_ES0_S1_" } }
auto i2 = add2(1, 2.0);
// { dg-final { scan-assembler "_Z4add3IidEDTclL_Z2agEsTT_sTT0_EES0_S1_" } }
auto i3 = add3(1, 2.0);
@@ -90,4 +111,8 @@ int main()
h(a,1.0);
// { dg-final { scan-assembler "_Z1kI1C1AIiE1DEDtdtsTT_srNT0_1BIT1_EE3MEMES4_S5_S7_" } }
k( C(), A<int>(), D() );
+ // { dg-final { scan-assembler "_Z1lIiET_S0_" } }
+ l(1);
+ // { dg-final { scan-assembler "_Z1mIiLi1EET_S0_" } }
+ m<int,1>(1);
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype15.C b/gcc/testsuite/g++.dg/cpp0x/decltype15.C
new file mode 100644
index 00000000000..5c2d445debf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype15.C
@@ -0,0 +1,13 @@
+// PR c++/38640
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+
+template<int N> void foo (decltype (N));
+template<long int N> void foo (decltype (N));
+
+void
+bar (void)
+{
+ foo<5> (6);
+ foo<5L> (6L);
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted7.C b/gcc/testsuite/g++.dg/cpp0x/defaulted7.C
new file mode 100644
index 00000000000..97c29258e98
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted7.C
@@ -0,0 +1,12 @@
+// PR c++/38701, 38702
+// { dg-options "-std=c++0x" }
+
+void foo() = default; // { dg-error "cannot be defaulted" }
+namespace
+{
+ void bar() = default; // { dg-error "cannot be defaulted" }
+}
+
+enum E { e };
+
+E& operator |= (E&, const E&) = default; // { dg-error "cannot be defaulted" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/enum2.C b/gcc/testsuite/g++.dg/cpp0x/enum2.C
new file mode 100644
index 00000000000..2353f1d47e6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/enum2.C
@@ -0,0 +1,5 @@
+// PR c++/38637
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+
+template<int> enum E : int { e }; // { dg-error "template declaration of" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist11.C b/gcc/testsuite/g++.dg/cpp0x/initlist11.C
new file mode 100644
index 00000000000..546a5335f1a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist11.C
@@ -0,0 +1,18 @@
+// PR c++/38684
+// { dg-options "-std=c++0x" }
+
+#include <initializer_list>
+
+struct Y {};
+
+struct X : Y {
+ X(std::initializer_list<int>) {}
+};
+
+struct A {
+ X v;
+};
+
+int main() {
+ A a{ {1,2,3} };
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist12.C b/gcc/testsuite/g++.dg/cpp0x/initlist12.C
new file mode 100644
index 00000000000..31d34c4e71d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist12.C
@@ -0,0 +1,20 @@
+// PR c++/38698
+// { dg-options "-std=c++0x" }
+
+struct A
+{
+ int i;
+};
+
+A a({1,2}); // { dg-error "too many initializers" }
+
+union U
+{
+ int i,j;
+};
+
+U u({1,2}); // { dg-error "too many initializers" }
+
+union V {};
+
+V v({1}); // { dg-error "too many initializers" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr38795.C b/gcc/testsuite/g++.dg/cpp0x/pr38795.C
new file mode 100644
index 00000000000..54fb361d3d4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr38795.C
@@ -0,0 +1,13 @@
+// PR c++/38795
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+template<typename... T> int foo(int i)
+{
+ return *reinterpret_cast<T*>(i); // { dg-error "not expanded with|T" }
+}
+
+void bar(int i)
+{
+ foo<int>(i);
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic65.C b/gcc/testsuite/g++.dg/cpp0x/variadic65.C
index 6379da83f11..1c815d1d90f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic65.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic65.C
@@ -5,4 +5,4 @@ template<typename T1 = unused, typename T2 = unused, typename T3 = unused,
struct tuple {};
template<typename... Args>
-void foo(tuple<Args...>) { } // { dg-error "cannot expand" }
+void foo(tuple<Args...>) { } // { dg-bogus "cannot expand" "" { xfail *-*-* } }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic82.C b/gcc/testsuite/g++.dg/cpp0x/variadic82.C
index 5acbc83a060..fb3ddb3c9b9 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic82.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic82.C
@@ -3,9 +3,9 @@
template<typename> struct A;
-template<typename... T> struct A<T*...> // { dg-error "cannot expand" }
+template<typename... T> struct A<T*...> // { dg-bogus "cannot expand" "" { xfail *-*-* } }
{
struct B;
};
-A<void*> a; // { dg-error "incomplete type" }
+A<void*> a; // { dg-bogus "incomplete type" "" { xfail *-*-* } }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic83.C b/gcc/testsuite/g++.dg/cpp0x/variadic83.C
index ec6cabd4e40..2613d625f09 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic83.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic83.C
@@ -3,6 +3,6 @@
template<typename> struct A;
-template<typename... T> struct A<T...> { }; // { dg-error "cannot expand" }
+template<typename... T> struct A<T...> { }; // { dg-bogus "cannot expand" "" { xfail *-*-* } }
-A<int> a; // { dg-error "incomplete type" }
+A<int> a; // { dg-bogus "incomplete type" "" { xfail *-*-* } }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic92.C b/gcc/testsuite/g++.dg/cpp0x/variadic92.C
new file mode 100644
index 00000000000..d382912c91f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic92.C
@@ -0,0 +1,70 @@
+// Various tests for variadic templates and partial specialization.
+// { dg-options "-std=c++0x" }
+
+// PR c++/36846
+template<typename A, typename B>
+struct pair;
+
+template<typename... T>
+struct pairs;
+
+template<typename... AS, typename... BS>
+struct pairs<pair<AS, BS>...> {
+ struct mismatched_packs {};
+};
+
+template class pairs<
+ pair<int, int>,
+ pair<int, int>
+>;
+
+template<int A, int B>
+struct point;
+
+template<typename... T>
+struct points;
+
+template<int... AS, int... BS>
+struct points<point<AS, BS>...> {
+ struct mismatched_packs {};
+};
+
+template class points<
+ point<0, 1>,
+ point<0, 1>
+>;
+
+// PR c++/35477
+template <class...ARGS> struct tuple {};
+template <class A, class B> struct test {};
+template <class... ARGS, class B> struct test<B, tuple<ARGS...>>
+{
+ template <class T> struct inside {};
+};
+
+// PR c++/38276
+template<typename...> struct A;
+
+template<typename, typename> struct B;
+
+template<typename... T, typename... U> struct B<A<T...>, A<U...> >
+{
+ static int i;
+};
+
+B<A<>, A<int> > b1;
+
+B<A<int>, A<> > b2;
+
+// PR c++/35784
+template <typename...> struct p;
+
+template <typename, typename> struct d;
+
+template <typename... A, typename... B>
+struct d<p<A...>, p<B...> > { typedef int t; };
+
+typedef d<p<>, p<int, float> >::t q;
+typedef d<q, d<p<int>, p<float> >::t> r; // *
+
+typedef d<d<p<>, p<int, float> >::t, d<p<>, p<> >::t> s;
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic93.C b/gcc/testsuite/g++.dg/cpp0x/variadic93.C
new file mode 100644
index 00000000000..7d8c3298e61
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic93.C
@@ -0,0 +1,11 @@
+// PR c++/35297
+// { dg-options "-std=c++0x" }
+
+template <class T=int, class... ARGS>
+struct test2 {};
+
+int main()
+{
+ test2<> a;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/eh/check-vect.h b/gcc/testsuite/g++.dg/eh/check-vect.h
index 4321be0a4a6..b46a8827598 100644
--- a/gcc/testsuite/g++.dg/eh/check-vect.h
+++ b/gcc/testsuite/g++.dg/eh/check-vect.h
@@ -13,10 +13,7 @@ sig_ill_handler (int sig)
void check_vect (void)
{
signal(SIGILL, sig_ill_handler);
-#if defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(powerpc)
- /* Altivec instruction, 'vor %v0,%v0,%v0'. */
- asm volatile (".long 0x10000484");
-#elif defined(__i386__) || defined(__x86_64__)
+#if defined(__i386__) || defined(__x86_64__)
/* SSE2 instruction: movsd %xmm0,%xmm0 */
asm volatile (".byte 0xf2,0x0f,0x10,0xc0");
#elif defined(__sparc__)
diff --git a/gcc/testsuite/g++.dg/eh/simd-2.C b/gcc/testsuite/g++.dg/eh/simd-2.C
index e2af86636ac..b4c8690e9de 100644
--- a/gcc/testsuite/g++.dg/eh/simd-2.C
+++ b/gcc/testsuite/g++.dg/eh/simd-2.C
@@ -3,9 +3,7 @@
// { dg-options "-O" }
// { dg-options "-O -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
// { dg-options "-O -w" { target powerpc*-*-* } }
-// { dg-options "-O -w -maltivec" { target { powerpc*-*-linux* && powerpc_altivec_ok } } }
-// { dg-options "-O -w -maltivec" { target { powerpc*-*-darwin* && powerpc_altivec_ok } } }
-// { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } }
+// { dg-options "-O -w -maltivec" { target { powerpc*-*-* && vmx_hw } } }
// { dg-do run }
#include "check-vect.h"
diff --git a/gcc/testsuite/g++.dg/eh/weak1.C b/gcc/testsuite/g++.dg/eh/weak1.C
index 4dd08d1e6b9..f78d1955b52 100644
--- a/gcc/testsuite/g++.dg/eh/weak1.C
+++ b/gcc/testsuite/g++.dg/eh/weak1.C
@@ -1,6 +1,6 @@
// PR target/29487
// { dg-do run { xfail { hppa*-*-hpux* && { ! hppa*64*-*-* } } } }
-// { dg-require-weak "" }
+// { dg-require-weak-override "" }
// { dg-additional-sources "weak1-a.cc" }
// { dg-options "-O2" }
diff --git a/gcc/testsuite/g++.dg/expr/string-1.C b/gcc/testsuite/g++.dg/expr/string-1.C
new file mode 100644
index 00000000000..3901427f439
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/string-1.C
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// This testcase used to seg fault (PR c++/38648)
+
+char a[1];
+
+int foo( // { dg-error "extended initializer lists only available" }
+{
+ a = ""; // { dg-error "" }
+ return 0; // { dg-error "" }
+} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/expr/string-2.C b/gcc/testsuite/g++.dg/expr/string-2.C
new file mode 100644
index 00000000000..252fa70364a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/string-2.C
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// This testcase used to seg fault (PR c++/38648)
+
+char a[1];
+
+int foo(a = "") // { dg-error "invalid array assignment" }
+{ // { dg-error "" }
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/ext/altivec-2.C b/gcc/testsuite/g++.dg/ext/altivec-2.C
index 268ff998946..299693694f6 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-2.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-2.C
@@ -6,7 +6,6 @@
arguments. */
#include <altivec.h>
-#include "altivec_check.h"
int main (int argc, const char * argv[])
{
@@ -15,8 +14,6 @@ int main (int argc, const char * argv[])
vector float v;
const vector float cv = (vector float){1.0, 2.0, 3.0, 4.0};
- altivec_check ();
-
vec_dst(&cv, i, 0);
v = vec_ld(0, &cv);
v = vec_lde(0, &cf);
diff --git a/gcc/testsuite/g++.dg/ext/altivec-3.C b/gcc/testsuite/g++.dg/ext/altivec-3.C
index d42303d8140..15113205950 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-3.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-3.C
@@ -1,4 +1,5 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
@@ -10,7 +11,6 @@
#include <stdlib.h>
#include <altivec.h>
-#include "altivec_check.h"
#define CHECK_INVARIANT(expr) \
if (!(expr)) { \
@@ -132,7 +132,6 @@ void main1(void)
int main(void)
{
- altivec_check();
main1();
return 0;
}
diff --git a/gcc/testsuite/g++.dg/ext/altivec-cell-2.C b/gcc/testsuite/g++.dg/ext/altivec-cell-2.C
index 969cc97aa8a..f0d3433cdd9 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-cell-2.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-cell-2.C
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_extract VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern "C" void abort (void);
@@ -137,6 +137,5 @@ int main1(void)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 ();
}
diff --git a/gcc/testsuite/g++.dg/ext/altivec-cell-3.C b/gcc/testsuite/g++.dg/ext/altivec-cell-3.C
index f7ebcae054e..bd7e774e3cd 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-cell-3.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-cell-3.C
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_splats and vec_promote VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern "C" void abort (void);
@@ -33,6 +33,5 @@ int main1(int t)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 (0);
}
diff --git a/gcc/testsuite/g++.dg/ext/altivec-cell-4.C b/gcc/testsuite/g++.dg/ext/altivec-cell-4.C
index 10ab162dad2..7d91adbb34e 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-cell-4.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-cell-4.C
@@ -1,10 +1,10 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_splats and vec_promote VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern "C" void abort (void);
@@ -38,6 +38,5 @@ int main1(int t)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 (0);
}
diff --git a/gcc/testsuite/g++.dg/ext/altivec-types-1.C b/gcc/testsuite/g++.dg/ext/altivec-types-1.C
index d322e5ebe97..710ce4bff4d 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-types-1.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-types-1.C
@@ -1,6 +1,6 @@
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -std=c++98" } */
/* Valid AltiVec vector types should be accepted with no warnings. */
diff --git a/gcc/testsuite/g++.dg/ext/altivec_check.h b/gcc/testsuite/g++.dg/ext/altivec_check.h
deleted file mode 100644
index 9e8b3f78ac2..00000000000
--- a/gcc/testsuite/g++.dg/ext/altivec_check.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* A runtime check for AltiVec capability. */
-/* Contributed by Ziemowit Laski <zlaski@apple.com> */
-
-#include <signal.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-void exit(int);
-
-void
-sig_ill_handler (int sig)
-{
- exit (0);
-}
-
-void altivec_check(void) {
-
- /* Exit on systems without AltiVec. */
- signal (SIGILL, sig_ill_handler);
-#ifdef __MACH__
- asm volatile ("vor v0,v0,v0");
-#else
- asm volatile ("vor 0,0,0");
-#endif
- signal (SIGILL, SIG_DFL);
-}
diff --git a/gcc/testsuite/g++.dg/ext/attribute-test-1.C b/gcc/testsuite/g++.dg/ext/attribute-test-1.C
index 95983cef7cc..7df68930fc4 100644
--- a/gcc/testsuite/g++.dg/ext/attribute-test-1.C
+++ b/gcc/testsuite/g++.dg/ext/attribute-test-1.C
@@ -7,7 +7,7 @@ extern "C" void abort();
#define vector __attribute__((vector_size(16)))
struct Constants {
- inline vector unsigned int deadbeef(void) const { // { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } }
+ inline vector unsigned int deadbeef(void) const {
return (vector unsigned int){0xdeadbeef, 0xabababab, 0x55555555, 0x12345678};
};
};
@@ -34,4 +34,5 @@ int main()
return 0;
}
-
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector returned by reference.*" } */
diff --git a/gcc/testsuite/g++.dg/ext/attribute-test-2.C b/gcc/testsuite/g++.dg/ext/attribute-test-2.C
index 8347cc10c05..cb3cb24671f 100644
--- a/gcc/testsuite/g++.dg/ext/attribute-test-2.C
+++ b/gcc/testsuite/g++.dg/ext/attribute-test-2.C
@@ -11,7 +11,7 @@ class vector_holder
char __attribute__((vector_size(16))) vec;
char __attribute__((vector_size(16))) vec1;
public:
- operator __attribute__((vector_size(16))) short (void) { // { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } }
+ operator __attribute__((vector_size(16))) short (void) {
return (__attribute__((vector_size(16))) short) vec;
}
@@ -47,3 +47,6 @@ int main()
return 0;
}
+
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector returned by reference.*" } */
diff --git a/gcc/testsuite/g++.dg/ext/attribute-test-3.C b/gcc/testsuite/g++.dg/ext/attribute-test-3.C
index 22497b61fec..050cbb4ed39 100644
--- a/gcc/testsuite/g++.dg/ext/attribute-test-3.C
+++ b/gcc/testsuite/g++.dg/ext/attribute-test-3.C
@@ -23,7 +23,7 @@ class Star
friend vector float fTest(const Star &);
};
-vector float Star::foo() const // { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } }
+vector float Star::foo() const
{
return data.v;
}
@@ -50,6 +50,5 @@ int main() {
return 0;
}
-
-
-
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector returned by reference.*" } */
diff --git a/gcc/testsuite/g++.dg/ext/attribute-test-4.C b/gcc/testsuite/g++.dg/ext/attribute-test-4.C
index 7adaf361045..4783ee8a406 100644
--- a/gcc/testsuite/g++.dg/ext/attribute-test-4.C
+++ b/gcc/testsuite/g++.dg/ext/attribute-test-4.C
@@ -23,7 +23,7 @@ class Star
friend vector float fTest();
};
-vector float Star::foo() // { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } }
+vector float Star::foo()
{
return data.v;
}
@@ -46,3 +46,6 @@ int main() {
abort();
return 0;
}
+
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector returned by reference.*" } */
diff --git a/gcc/testsuite/g++.dg/ext/complex4.C b/gcc/testsuite/g++.dg/ext/complex4.C
new file mode 100644
index 00000000000..78b9356702e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/complex4.C
@@ -0,0 +1,5 @@
+// { dg-do compile }
+// This code used to be rejected as there was no conversion from int to float __complex__
+ #include <vector>
+ typedef float __complex__ fcomplex;
+ std::vector<fcomplex> vfc(10);
diff --git a/gcc/testsuite/g++.dg/ext/complex5.C b/gcc/testsuite/g++.dg/ext/complex5.C
new file mode 100644
index 00000000000..4a29960f528
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/complex5.C
@@ -0,0 +1,6 @@
+/* PR c++/21210 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef float __complex__ fcomplex;
+fcomplex cplx = fcomplex(0);
diff --git a/gcc/testsuite/g++.dg/ext/fixed2.C b/gcc/testsuite/g++.dg/ext/fixed2.C
new file mode 100644
index 00000000000..a4766eb794c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/fixed2.C
@@ -0,0 +1,7 @@
+// PR c++/35319
+// { dg-options "" }
+
+void foo()
+{
+ throw 0r;
+}
diff --git a/gcc/testsuite/g++.dg/ext/label11.C b/gcc/testsuite/g++.dg/ext/label11.C
new file mode 100644
index 00000000000..dd922286064
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/label11.C
@@ -0,0 +1,46 @@
+// PR c++/38725
+// { dg-do compile }
+// { dg-options "" }
+
+struct A {};
+struct B : virtual A {};
+int vi;
+void *vp;
+
+void
+f1 (int i)
+{
+ goto *i;
+}
+
+void
+f2 (B b)
+{
+ goto *b; // { dg-error "cannot convert" }
+}
+
+template <typename T>
+void
+f3 (T i)
+{
+ goto *i;
+}
+
+void
+f3a ()
+{
+ f3 (vi);
+}
+
+template <typename T>
+void
+f4 (T i)
+{
+ goto *i;
+}
+
+void
+f4a ()
+{
+ f4 (vp);
+}
diff --git a/gcc/testsuite/g++.dg/ext/spe1.C b/gcc/testsuite/g++.dg/ext/spe1.C
index b9ae5e7d135..8b1e630ecc0 100644
--- a/gcc/testsuite/g++.dg/ext/spe1.C
+++ b/gcc/testsuite/g++.dg/ext/spe1.C
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
typedef int v2si __attribute__ ((vector_size (8)));
diff --git a/gcc/testsuite/g++.dg/ext/vector15.C b/gcc/testsuite/g++.dg/ext/vector15.C
new file mode 100644
index 00000000000..7058bf1b8c0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/vector15.C
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+
+/* Check that we error out when using vector_size on the bool type. */
+
+__attribute__((vector_size(16) )) bool a; /* { dg-error "" } */
diff --git a/gcc/testsuite/g++.dg/gomp/pr38633.C b/gcc/testsuite/g++.dg/gomp/pr38633.C
new file mode 100644
index 00000000000..99b87957380
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr38633.C
@@ -0,0 +1,14 @@
+// PR middle-end/38633
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+void
+foo ()
+{
+#pragma omp parallel
+ {
+ struct A { int i; } j;
+ j.i = 6;
+ j.i++;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/gomp/pr38639.C b/gcc/testsuite/g++.dg/gomp/pr38639.C
new file mode 100644
index 00000000000..1da3cecdf07
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr38639.C
@@ -0,0 +1,17 @@
+// PR c++/38639
+// { dg-do compile }
+// { dg-options "-fopenmp -std=c++0x" }
+
+template<int> void
+foo ()
+{
+#pragma omp parallel for
+ for (auto i = i = 0; i<4; ++i) // { dg-error "incomplete|unable|invalid" }
+ ;
+}
+
+void
+bar ()
+{
+ foo<0> (); // { dg-message "instantiated from here" }
+}
diff --git a/gcc/testsuite/g++.dg/init/ctor9.C b/gcc/testsuite/g++.dg/init/ctor9.C
new file mode 100644
index 00000000000..02bb5700f3b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ctor9.C
@@ -0,0 +1,8 @@
+// PR c++/38427
+// { dg-do compile }
+
+struct S
+{
+ int &ref;
+ S() : ref() {}; // { dg-error "value-initialization of" }
+};
diff --git a/gcc/testsuite/g++.dg/init/reference1.C b/gcc/testsuite/g++.dg/init/reference1.C
new file mode 100644
index 00000000000..7ce5f90fb4c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/reference1.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+// This code used to be accepted but it is invalid as there is no
+// value initialization of a reference type.
+// PR c++/36695
+
+int main()
+{
+ typedef int& T;
+ T a = T(); // { dg-error "value-initialization of reference" }
+}
+
diff --git a/gcc/testsuite/g++.dg/init/reference2.C b/gcc/testsuite/g++.dg/init/reference2.C
new file mode 100644
index 00000000000..42f53742685
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/reference2.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// This code used to be accepted but it is invalid as there is no
+// value initialization of a reference type.
+// PR c++/36695
+
+// We should we able to diagnostic this without instantiating the template
+template <int a1>
+int f()
+{
+ typedef int& T;
+ T a = T(); // { dg-error "value-initialization of reference" }
+}
+
diff --git a/gcc/testsuite/g++.dg/init/reference3.C b/gcc/testsuite/g++.dg/init/reference3.C
new file mode 100644
index 00000000000..344e94e101e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/reference3.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// This code used to be accepted but it is invalid as there is no
+// value initialization of a reference type.
+// PR c++/36695
+
+template <typename T>
+T f()
+{
+ T a = T(); // { dg-error "value-initialization of reference" }
+}
+
+int &a = f<int&>(); // { dg-message "instantiated from here" }
+
diff --git a/gcc/testsuite/g++.dg/lookup/friend11.C b/gcc/testsuite/g++.dg/lookup/friend11.C
index ab8a9e50736..cd112ca8a4b 100644
--- a/gcc/testsuite/g++.dg/lookup/friend11.C
+++ b/gcc/testsuite/g++.dg/lookup/friend11.C
@@ -3,12 +3,11 @@
/* { dg-do "compile" } */
-// This is invalid: QGList must only be looked up in count.
class QGList;
unsigned count() {
class QGListIterator {
friend class QGList;
- QGListIterator( const QGList & ); /* { dg-error "expected|with no type" } */
+ QGListIterator( const QGList & ); // OK, finds ::QGList.
};
return 0;
}
diff --git a/gcc/testsuite/g++.dg/lookup/friend14.C b/gcc/testsuite/g++.dg/lookup/friend14.C
new file mode 100644
index 00000000000..5c244112a32
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/friend14.C
@@ -0,0 +1,17 @@
+// PR c++/35109
+
+struct C;
+void f() {
+ struct A {
+ friend struct B;
+ friend struct C;
+ void g()
+ {
+ B *b; // { dg-error "not declared" }
+ C* c; // OK, finds ::C
+ }
+ };
+ C *c; // OK, finds ::C
+ struct B {};
+ B *b; // OK, now it isn't hidden
+}
diff --git a/gcc/testsuite/g++.dg/lookup/friend15.C b/gcc/testsuite/g++.dg/lookup/friend15.C
new file mode 100644
index 00000000000..1e271fc3f00
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/friend15.C
@@ -0,0 +1,12 @@
+// Origin: PR c++/35109
+// { dg-do compile }
+
+void foo()
+{
+ struct A
+ {
+ friend class B;
+ };
+ B::B() {} // { dg-error "has not been declared" }
+// { dg-error "expected" "expected" { target *-*-* } 10 }
+}
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class12.C b/gcc/testsuite/g++.dg/lookup/hidden-class12.C
new file mode 100644
index 00000000000..4a3f2d7618b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class12.C
@@ -0,0 +1,24 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/36019
+// { dg-do compile }
+
+struct F {
+ static const int x = 0;
+};
+
+struct A {
+ template <typename A>
+ static int f ()
+ {
+ return A::x;
+ }
+};
+
+
+int
+main ()
+{
+ int i = A::f<F> ();
+ return i;
+}
+
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class13.C b/gcc/testsuite/g++.dg/lookup/hidden-class13.C
new file mode 100644
index 00000000000..2f685b2cb36
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class13.C
@@ -0,0 +1,25 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/36019
+// { dg-do compile }
+
+struct F {
+ static const int x = 0;
+};
+
+struct B {
+ template <typename B>
+ struct C
+ {
+ static int f ()
+ {
+ return B::x;
+ }
+ };
+};
+
+int
+main ()
+{
+ int j = B::C<F>::f ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class14.C b/gcc/testsuite/g++.dg/lookup/hidden-class14.C
new file mode 100644
index 00000000000..99bd6731b1b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class14.C
@@ -0,0 +1,23 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/36019
+// { dg-do compile }
+
+struct F {
+ static const int x = 0;
+ typedef int A;
+};
+
+struct A {
+ template <typename A>
+ struct G : public F
+ {
+ static const A i = 0;
+ };
+};
+
+int
+main ()
+{
+ return A::G<F>::i ;
+}
+
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class15.C b/gcc/testsuite/g++.dg/lookup/hidden-class15.C
new file mode 100644
index 00000000000..b0ed660a6a3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class15.C
@@ -0,0 +1,30 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/36019
+// { dg-do compile }
+
+struct F {
+ static const int y = 0;
+};
+
+struct A {
+ static const int x = 0;
+};
+
+struct B : public A {
+ template <typename A>
+ struct C
+ {
+ static int f ()
+ {
+ return A::x; // { dg-error "'x' is not a member of 'F'" }
+ }
+ };
+};
+
+int
+main ()
+{
+ int j = B::C<F>::f ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/lookup/hidden-class16.C b/gcc/testsuite/g++.dg/lookup/hidden-class16.C
new file mode 100644
index 00000000000..25cc4029408
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/hidden-class16.C
@@ -0,0 +1,27 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/36019
+// { dg-do compile }
+
+struct F {
+ static const int y = 0;
+};
+
+struct A {
+ static const int x = 0;
+};
+
+struct B : public A {
+ template <typename A>
+ static int f ()
+ {
+ return A::x; // { dg-error "'x' is not a member of 'F'" }
+ }
+};
+
+int
+main ()
+{
+ int j = B::f<F> ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/other/error31.C b/gcc/testsuite/g++.dg/other/error31.C
new file mode 100644
index 00000000000..c9e8351bcf3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/error31.C
@@ -0,0 +1,13 @@
+// PR c++/35335
+// { dg-do compile }
+// { dg-options "" }
+// { dg-bogus "not supported by" "" { target *-*-* } 0 }
+
+struct A {}; // { dg-message "note: candidates are" }
+
+void
+foo ()
+{
+ A a;
+ a = ({ { 1; } }); // { dg-error "no match for" }
+}
diff --git a/gcc/testsuite/g++.dg/other/i386-2.C b/gcc/testsuite/g++.dg/other/i386-2.C
index 57acdd32ca3..2c3cd29d890 100644
--- a/gcc/testsuite/g++.dg/other/i386-2.C
+++ b/gcc/testsuite/g++.dg/other/i386-2.C
@@ -1,11 +1,8 @@
-/* Test that {,x,e,p,t,s,w,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
+/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h and mm_malloc.h are
usable with -O -pedantic-errors. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -pedantic-errors -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
+/* { dg-options "-O -pedantic-errors -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <smmintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
int dummy;
diff --git a/gcc/testsuite/g++.dg/other/i386-3.C b/gcc/testsuite/g++.dg/other/i386-3.C
index a57bae33b8a..ffbd3f3cec4 100644
--- a/gcc/testsuite/g++.dg/other/i386-3.C
+++ b/gcc/testsuite/g++.dg/other/i386-3.C
@@ -1,9 +1,6 @@
-/* Test that {,x,e,p,t,s,w,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
+/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h and mm_malloc.h are
usable with -O -fkeep-inline-functions. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -maes -mpclmul -msse4 -msse5" } */
+/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <smmintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
diff --git a/gcc/testsuite/g++.dg/other/i386-5.C b/gcc/testsuite/g++.dg/other/i386-5.C
index d9b5460a8dc..ffbd3f3cec4 100644
--- a/gcc/testsuite/g++.dg/other/i386-5.C
+++ b/gcc/testsuite/g++.dg/other/i386-5.C
@@ -1,9 +1,6 @@
-/* Test that {,x,e,p,t,s,w,g,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
+/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h and mm_malloc.h are
usable with -O -fkeep-inline-functions. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -maes -mpclmul -mavx -msse5" } */
+/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <immintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
diff --git a/gcc/testsuite/g++.dg/other/i386-6.C b/gcc/testsuite/g++.dg/other/i386-6.C
index 15f1d5258df..2c3cd29d890 100644
--- a/gcc/testsuite/g++.dg/other/i386-6.C
+++ b/gcc/testsuite/g++.dg/other/i386-6.C
@@ -1,11 +1,8 @@
-/* Test that {,x,e,p,t,s,w,g,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
+/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h and mm_malloc.h are
usable with -O -pedantic-errors. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O -pedantic-errors -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <immintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
int dummy;
diff --git a/gcc/testsuite/g++.dg/other/opaque-1.C b/gcc/testsuite/g++.dg/other/opaque-1.C
index ae1d76f3f7f..5cdaeafe31a 100644
--- a/gcc/testsuite/g++.dg/other/opaque-1.C
+++ b/gcc/testsuite/g++.dg/other/opaque-1.C
@@ -1,4 +1,6 @@
-/* { dg-do run { target powerpc-*-eabispe* powerpc*-*-linux*spe* } } */
+/* { dg-do run } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8)))
typedef float __vector __ev64_fs__;
diff --git a/gcc/testsuite/g++.dg/other/opaque-2.C b/gcc/testsuite/g++.dg/other/opaque-2.C
index 9a9b1b46404..3bb4af2c778 100644
--- a/gcc/testsuite/g++.dg/other/opaque-2.C
+++ b/gcc/testsuite/g++.dg/other/opaque-2.C
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8)))
typedef float __vector __ev64_fs__;
diff --git a/gcc/testsuite/g++.dg/other/opaque-3.C b/gcc/testsuite/g++.dg/other/opaque-3.C
index 8cba875fd9b..5ece652c0cd 100644
--- a/gcc/testsuite/g++.dg/other/opaque-3.C
+++ b/gcc/testsuite/g++.dg/other/opaque-3.C
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
__ev64_opaque__ o;
#define v __attribute__((vector_size(8)))
diff --git a/gcc/testsuite/g++.dg/other/pr38706.C b/gcc/testsuite/g++.dg/other/pr38706.C
new file mode 100644
index 00000000000..ec10d90ba69
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/pr38706.C
@@ -0,0 +1,19 @@
+// PR target/38706
+// { dg-do compile }
+// { dg-options "-O2" }
+
+class ios_base
+{
+public:
+ virtual ~ios_base ();
+
+};
+
+class istrstream:virtual public ios_base
+{
+public:
+ virtual ~istrstream ();
+
+};
+
+istrstream::~istrstream () {}
diff --git a/gcc/testsuite/g++.dg/other/vararg-3.C b/gcc/testsuite/g++.dg/other/vararg-3.C
new file mode 100644
index 00000000000..4585f3249ed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/vararg-3.C
@@ -0,0 +1,16 @@
+// PR c++/31488: va_list considered non-POD on alpha
+// { dg-do compile }
+
+typedef __builtin_va_list __gnuc_va_list;
+typedef __gnuc_va_list va_list;
+
+extern int foo (int a, int b, ...);
+
+int bar (int a, int b, ...)
+{
+ va_list args;
+ __builtin_va_start(args,b);
+ int result = foo (a, b, args);
+ __builtin_va_end(args);
+ return result;
+}
diff --git a/gcc/testsuite/g++.dg/parse/cond4.C b/gcc/testsuite/g++.dg/parse/cond4.C
new file mode 100644
index 00000000000..ae210e0d750
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/cond4.C
@@ -0,0 +1,6 @@
+// PR c++/38635
+// { dg-do compile }
+
+void foo()
+{
+ if (struct A{}// { dg-error "types may not be defined|expected" }
diff --git a/gcc/testsuite/g++.dg/parse/crash50.C b/gcc/testsuite/g++.dg/parse/crash50.C
new file mode 100644
index 00000000000..711048de160
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash50.C
@@ -0,0 +1,10 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/38636
+// { dg-do compile }
+
+struct A; // { dg-error "forward declaration of 'struct A'" }
+
+A::A(
+
+struct B; // { dg-error "expected '\\)' before ';' token|invalid use of incomplete type 'struct A'" }
+
diff --git a/gcc/testsuite/g++.dg/parse/defarg13.C b/gcc/testsuite/g++.dg/parse/defarg13.C
new file mode 100644
index 00000000000..27c6db50aad
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/defarg13.C
@@ -0,0 +1,8 @@
+// PR c++/38485
+
+template <class Key, class T>
+class QMap { };
+
+class XMLConfigurations {
+ void translateToOther(QMap<int, int> match = (QMap<int, int>()));
+};
diff --git a/gcc/testsuite/g++.dg/parse/linkage3.C b/gcc/testsuite/g++.dg/parse/linkage3.C
new file mode 100644
index 00000000000..0d952d1e642
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/linkage3.C
@@ -0,0 +1,7 @@
+// PR c++/37877
+// { dg-do compile }
+
+extern "C++" struct S
+{
+ static int x;
+} s;
diff --git a/gcc/testsuite/g++.dg/parse/offsetof9.C b/gcc/testsuite/g++.dg/parse/offsetof9.C
new file mode 100644
index 00000000000..efc103837f9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/offsetof9.C
@@ -0,0 +1,32 @@
+/* PR c/32041 */
+/* { dg-do run } */
+
+struct S
+{
+ int c;
+ struct { float f; } sa[2];
+};
+
+char a[__builtin_offsetof (S, sa->f)
+ == __builtin_offsetof (S, sa[0].f) ? 1 : -1];
+
+template <int N>
+struct T
+{
+ int c[N];
+ struct { float f; } sa[N];
+ static int foo () { return __builtin_offsetof (T, sa->f); }
+ static int bar () { return __builtin_offsetof (T, sa[0].f); }
+};
+
+char b[__builtin_offsetof (T<5>, sa->f)
+ == __builtin_offsetof (T<5>, sa[0].f) ? 1 : -1];
+
+int
+main ()
+{
+ if (T<1>::foo () != T<1>::bar ())
+ __builtin_abort ();
+ if (T<7>::foo () != T<7>::bar ())
+ __builtin_abort ();
+}
diff --git a/gcc/testsuite/g++.dg/parse/pr37862.C b/gcc/testsuite/g++.dg/parse/pr37862.C
new file mode 100644
index 00000000000..89b4b699475
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/pr37862.C
@@ -0,0 +1,25 @@
+// { dg-do run }
+#include <stdlib.h>
+
+class A {
+public:
+ virtual void get (void) { }
+};
+
+class B : public A {
+public:
+ void get (void) { abort (); }
+};
+
+class C : public B { };
+
+int main (void)
+{
+ C c;
+ C * p = &c;
+
+ p->A::get ();
+ (p->A::get) (); // The C++ parser used to resolve this to B::get()
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/parse/typedef9.C b/gcc/testsuite/g++.dg/parse/typedef9.C
new file mode 100644
index 00000000000..7788f781fb6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/typedef9.C
@@ -0,0 +1,8 @@
+// PR c++/38794
+// { dg-do compile }
+
+typedef void foo () {} // { dg-error "invalid function declaration" }
+struct S
+{
+ typedef int bar (void) { return 0; } // { dg-error "invalid member function declaration" }
+};
diff --git a/gcc/testsuite/g++.dg/template/call6.C b/gcc/testsuite/g++.dg/template/call6.C
new file mode 100644
index 00000000000..b79d624a484
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/call6.C
@@ -0,0 +1,24 @@
+// PR c++/38577
+// { dg-do compile }
+
+struct A
+{
+ static A *bar ();
+};
+
+struct B : public A
+{
+ static void baz ();
+};
+
+template <class T>
+void foo ()
+{
+ (static_cast<B *> (A::bar ()))->baz ();
+}
+
+void
+bar ()
+{
+ foo<int> ();
+}
diff --git a/gcc/testsuite/g++.dg/template/crash87.C b/gcc/testsuite/g++.dg/template/crash87.C
new file mode 100644
index 00000000000..7b8bf4ada0d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash87.C
@@ -0,0 +1,27 @@
+// Origin: PR c++/38357
+// { dg-do compile }
+
+class BUG
+{
+public:
+ bool name() { return true; }
+};
+
+template <bool T>
+struct BUG1_5
+{
+
+};
+
+template <bool name>
+class BUG2 : BUG
+{
+public:
+ typedef BUG1_5<name> ptr; // { dg-error "could not convert template argument" }
+};
+
+int main()
+{
+ BUG2<false> b;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/template/function1.C b/gcc/testsuite/g++.dg/template/function1.C
new file mode 100644
index 00000000000..1097c5bf9c2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/function1.C
@@ -0,0 +1,27 @@
+// PR c++/38647
+// { dg-do compile }
+
+template<const char *, int> struct A {};
+const char func[] = "abc";
+template<int N> struct A<func, N> {}; // { dg-error "cannot appear|is invalid" }
+
+char a1[1];
+A<a1, 0> a;
+
+template<const char *, int> struct B {};
+template<int N> struct B<__FUNCTION__, N> {}; // { dg-error "cannot appear|is invalid" }
+
+char b1[1];
+B<b1, 0> b;
+
+template<const char *, int> struct C {};
+template<int N> struct C<__PRETTY_FUNCTION__, N> {}; // { dg-error "cannot appear|is invalid" }
+
+char c1[1];
+C<c1, 0> c;
+
+template<const char *, int> struct D {};
+template<int N> struct D<__func__, N> {}; // { dg-error "cannot appear|is invalid" }
+
+char d1[1];
+D<d1, 0> d;
diff --git a/gcc/testsuite/g++.dg/torture/pr36191.C b/gcc/testsuite/g++.dg/torture/pr36191.C
new file mode 100644
index 00000000000..18051cedf7a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr36191.C
@@ -0,0 +1,16 @@
+// PR c++/36191
+// { dg-do compile }
+// { dg-options "-fnon-call-exceptions" }
+
+__complex__ double
+foo (__complex__ double x, double y)
+{
+ try
+ {
+ return x / y;
+ }
+ catch (char *s)
+ {
+ return x;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr37922.C b/gcc/testsuite/g++.dg/torture/pr37922.C
new file mode 100644
index 00000000000..a7d05ab0fe8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr37922.C
@@ -0,0 +1,502 @@
+// { dg-do run }
+// { dg-options "-fpic" { target fpic } }
+
+typedef __SIZE_TYPE__ size_t;
+
+template <typename NumType>
+inline
+NumType
+absolute(NumType const& x)
+{
+ if (x < NumType(0)) return -x;
+ return x;
+}
+
+class trivial_accessor
+{
+ public:
+ typedef size_t index_type;
+ struct index_value_type {};
+
+ trivial_accessor() : size_(0) {}
+
+ trivial_accessor(size_t const& n) : size_(n) {}
+
+ size_t size_1d() const { return size_; }
+
+ protected:
+ size_t size_;
+};
+
+namespace N0
+{
+ template <typename ElementType,
+ typename AccessorType = trivial_accessor>
+ class const_ref
+ {
+ public:
+ typedef ElementType value_type;
+ typedef size_t size_type;
+
+ typedef AccessorType accessor_type;
+ typedef typename accessor_type::index_type index_type;
+ typedef typename accessor_type::index_value_type index_value_type;
+
+ const_ref() {}
+
+ const_ref(const ElementType* begin, accessor_type const& accessor)
+ : begin_(begin), accessor_(accessor)
+ {
+ init();
+ }
+
+ const_ref(const ElementType* begin, index_value_type const& n0)
+ : begin_(begin), accessor_(n0)
+ {
+ init();
+ }
+
+ const_ref(const ElementType* begin, index_value_type const& n0,
+ index_value_type const& n1)
+ : begin_(begin), accessor_(n0, n1)
+ {
+ init();
+ }
+
+ const_ref(const ElementType* begin, index_value_type const& n0,
+ index_value_type const& n1,
+ index_value_type const& n2)
+ : begin_(begin), accessor_(n0, n1, n2)
+ {
+ init();
+ }
+
+ accessor_type const& accessor() const { return accessor_; }
+ size_type size() const { return size_; }
+
+ const ElementType* begin() const { return begin_; }
+ const ElementType* end() const { return end_; }
+
+ ElementType const&
+ operator[](size_type i) const { return begin_[i]; }
+
+ const_ref<ElementType>
+ as_1d() const
+ {
+ return const_ref<ElementType>(begin_, size_);
+ }
+
+ protected:
+ void
+ init()
+ {
+ size_ = accessor_.size_1d();
+ end_ = begin_ + size_;
+ }
+
+ const ElementType* begin_;
+ accessor_type accessor_;
+ size_type size_;
+ const ElementType* end_;
+ };
+}
+
+template <typename ElementType,
+ typename AccessorType = trivial_accessor>
+class ref : public N0::const_ref<ElementType, AccessorType>
+{
+ public:
+ typedef ElementType value_type;
+ typedef size_t size_type;
+
+ typedef N0::const_ref<ElementType, AccessorType> base_class;
+ typedef AccessorType accessor_type;
+ typedef typename accessor_type::index_type index_type;
+
+ ref() {}
+
+ ElementType*
+ begin() const { return const_cast<ElementType*>(this->begin_); }
+
+ ElementType*
+ end() const { return const_cast<ElementType*>(this->end_); }
+
+ ElementType&
+ operator[](size_type i) const { return begin()[i]; }
+};
+
+namespace N1 {
+ template <typename ElementType, size_t N>
+ class tiny_plain
+ {
+ public:
+ typedef ElementType value_type;
+ typedef size_t size_type;
+
+ static const size_t fixed_size=N;
+
+ ElementType elems[N];
+
+ tiny_plain() {}
+
+ static size_type size() { return N; }
+
+ ElementType* begin() { return elems; }
+ const ElementType* begin() const { return elems; }
+ ElementType* end() { return elems+N; }
+ const ElementType* end() const { return elems+N; }
+ ElementType& operator[](size_type i) { return elems[i]; }
+ ElementType const& operator[](size_type i) const { return elems[i]; }
+ };
+
+ template <typename ElementType, size_t N>
+ class tiny : public tiny_plain<ElementType, N>
+ {
+ public:
+ typedef ElementType value_type;
+ typedef size_t size_type;
+
+ typedef tiny_plain<ElementType, N> base_class;
+
+ tiny() {}
+ };
+}
+
+template <typename NumType>
+class mat3 : public N1::tiny_plain<NumType, 9>
+{
+ public:
+ typedef typename N1::tiny_plain<NumType, 9> base_type;
+
+ mat3() {}
+ mat3(NumType const& e00, NumType const& e01, NumType const& e02,
+ NumType const& e10, NumType const& e11, NumType const& e12,
+ NumType const& e20, NumType const& e21, NumType const& e22)
+ : base_type(e00, e01, e02, e10, e11, e12, e20, e21, e22)
+ {}
+ mat3(base_type const& a)
+ : base_type(a)
+ {}
+
+ NumType const&
+ operator()(size_t r, size_t c) const
+ {
+ return this->elems[r * 3 + c];
+ }
+ NumType&
+ operator()(size_t r, size_t c)
+ {
+ return this->elems[r * 3 + c];
+ }
+
+ NumType
+ trace() const
+ {
+ mat3 const& m = *this;
+ return m[0] + m[4] + m[8];
+ }
+
+ NumType
+ determinant() const
+ {
+ mat3 const& m = *this;
+ return m[0] * (m[4] * m[8] - m[5] * m[7])
+ - m[1] * (m[3] * m[8] - m[5] * m[6])
+ + m[2] * (m[3] * m[7] - m[4] * m[6]);
+ }
+};
+
+template <typename NumType>
+inline
+mat3<NumType>
+operator-(mat3<NumType> const& v)
+{
+ mat3<NumType> result;
+ for(size_t i=0;i<9;i++) {
+ result[i] = -v[i];
+ }
+ return result;
+}
+
+class mat_grid : public N1::tiny<size_t, 2>
+{
+ public:
+ typedef N1::tiny<size_t, 2> index_type;
+ typedef index_type::value_type index_value_type;
+
+ mat_grid() { this->elems[0]=0; this->elems[1]=0; }
+
+ mat_grid(index_type const& n) : index_type(n) {}
+
+ mat_grid(index_value_type const& n0, index_value_type const& n1)
+ { this->elems[0]=n0; this->elems[1]=n1; }
+
+ size_t size_1d() const { return elems[0] * elems[1]; }
+
+ size_t
+ operator()(index_value_type const& r, index_value_type const& c) const
+ {
+ return r * elems[1] + c;
+ }
+};
+
+template <typename NumType, typename AccessorType = mat_grid>
+class mat_const_ref : public N0::const_ref<NumType, AccessorType>
+{
+ public:
+ typedef AccessorType accessor_type;
+ typedef typename N0::const_ref<NumType, AccessorType> base_type;
+ typedef typename accessor_type::index_value_type index_value_type;
+
+ mat_const_ref() {}
+
+ mat_const_ref(const NumType* begin, accessor_type const& grid)
+ : base_type(begin, grid)
+ {}
+
+ mat_const_ref(const NumType* begin, index_value_type const& n_rows,
+ index_value_type const& n_columns)
+ : base_type(begin, accessor_type(n_rows, n_columns))
+ {}
+
+ accessor_type
+ grid() const { return this->accessor(); }
+
+ index_value_type const&
+ n_rows() const { return this->accessor()[0]; }
+
+ index_value_type const&
+ n_columns() const { return this->accessor()[1]; }
+
+ NumType const&
+ operator()(index_value_type const& r, index_value_type const& c) const
+ {
+ return this->begin()[this->accessor()(r, c)];
+ }
+};
+
+template <typename NumType, typename AccessorType = mat_grid>
+class mat_ref : public mat_const_ref<NumType, AccessorType>
+{
+ public:
+ typedef AccessorType accessor_type;
+ typedef mat_const_ref<NumType, AccessorType> base_type;
+ typedef typename accessor_type::index_value_type index_value_type;
+
+ mat_ref() {}
+
+ mat_ref(NumType* begin, accessor_type const& grid)
+ : base_type(begin, grid)
+ {}
+
+ mat_ref(NumType* begin, index_value_type n_rows,
+ index_value_type n_columns)
+ : base_type(begin, accessor_type(n_rows, n_columns))
+ {}
+
+ NumType*
+ begin() const { return const_cast<NumType*>(this->begin_); }
+
+ NumType*
+ end() const { return const_cast<NumType*>(this->end_); }
+
+ NumType&
+ operator[](index_value_type const& i) const { return begin()[i]; }
+
+ NumType&
+ operator()(index_value_type const& r, index_value_type const& c) const
+ {
+ return this->begin()[this->accessor()(r, c)];
+ }
+};
+
+ template <typename AnyType>
+ inline void
+ swap(AnyType* a, AnyType* b, size_t n)
+ {
+ for(size_t i=0;i<n;i++) {
+ AnyType t = a[i]; a[i] = b[i]; b[i] = t;
+ }
+ }
+
+template <typename IntType>
+size_t
+form_t(mat_ref<IntType>& m,
+ mat_ref<IntType> const& t)
+{
+ typedef size_t size_t;
+ size_t mr = m.n_rows();
+ size_t mc = m.n_columns();
+ size_t tc = t.n_columns();
+ if (tc) {
+ }
+ size_t i, j;
+ for (i = j = 0; i < mr && j < mc;) {
+ size_t k = i; while (k < mr && m(k,j) == 0) k++;
+ if (k == mr)
+ j++;
+ else {
+ if (i != k) {
+ swap(&m(i,0), &m(k,0), mc);
+ if (tc) swap(&t(i,0), &t(k,0), tc);
+ }
+ for (k++; k < mr; k++) {
+ IntType a = absolute(m(k, j));
+ if (a != 0 && a < absolute(m(i,j))) {
+ swap(&m(i,0), &m(k,0), mc);
+ if (tc) swap(&t(i,0), &t(k,0), tc);
+ }
+ }
+ if (m(i,j) < 0) {
+ for(size_t ic=0;ic<mc;ic++) m(i,ic) *= -1;
+ if (tc) for(size_t ic=0;ic<tc;ic++) t(i,ic) *= -1;
+ }
+ bool cleared = true;
+ for (k = i+1; k < mr; k++) {
+ IntType a = m(k,j) / m(i,j);
+ if (a != 0) {
+ for(size_t ic=0;ic<mc;ic++) m(k,ic) -= a * m(i,ic);
+ if (tc) for(size_t ic=0;ic<tc;ic++) t(k,ic) -= a * t(i,ic);
+ }
+ if (m(k,j) != 0) cleared = false;
+ }
+ if (cleared) { i++; j++; }
+ }
+ }
+ m = mat_ref<IntType>(m.begin(), i, mc);
+ return i;
+}
+
+template <typename IntType>
+size_t
+form(mat_ref<IntType>& m)
+{
+ mat_ref<IntType> t(0,0,0);
+ return form_t(m, t);
+}
+
+typedef mat3<int> sg_mat3;
+
+class rot_mx
+{
+ public:
+ explicit
+ rot_mx(sg_mat3 const& m, int denominator=1)
+ : num_(m), den_(denominator)
+ {}
+
+ sg_mat3 const&
+ num() const { return num_; }
+ sg_mat3&
+ num() { return num_; }
+
+ int const&
+ operator[](size_t i) const { return num_[i]; }
+ int&
+ operator[](size_t i) { return num_[i]; }
+
+ int
+ const& operator()(int r, int c) const { return num_(r, c); }
+ int&
+ operator()(int r, int c) { return num_(r, c); }
+
+ int const&
+ den() const { return den_; }
+ int&
+ den() { return den_; }
+
+ rot_mx
+ minus_unit_mx() const
+ {
+ rot_mx result(*this);
+ for (size_t i=0;i<9;i+=4) result[i] -= den_;
+ return result;
+ }
+
+ rot_mx
+ operator-() const { return rot_mx(-num_, den_); }
+
+ int
+ type() const;
+
+ int
+ order(int type=0) const;
+
+ private:
+ sg_mat3 num_;
+ int den_;
+};
+
+class rot_mx_info
+{
+ public:
+ rot_mx_info(rot_mx const& r);
+
+ int type() const { return type_; }
+
+ private:
+ int type_;
+};
+
+int rot_mx::type() const
+{
+ int det = num_.determinant();
+ if (det == -1 || det == 1) {
+ switch (num_.trace()) {
+ case -3: return -1;
+ case -2: return -6;
+ case -1: if (det == -1) return -4;
+ else return 2;
+ case 0: if (det == -1) return -3;
+ else return 3;
+ case 1: if (det == -1) return -2;
+ else return 4;
+ case 2: return 6;
+ case 3: return 1;
+ }
+ }
+ return 0;
+}
+
+int rot_mx::order(int type) const
+{
+ if (type == 0) type = rot_mx::type();
+ if (type > 0) return type;
+ if (type % 2) return -type * 2;
+ return -type;
+}
+
+rot_mx_info::rot_mx_info(rot_mx const& r)
+: type_(r.type())
+{
+ if (type_ == 0) {
+ return;
+ }
+ rot_mx proper_r = r;
+ int proper_order = type_;
+ // THE PROBLEM IS AROUND HERE
+ if (proper_order < 0) {
+ proper_order *= -1;
+ proper_r = -proper_r; // THIS FAILS ...
+ }
+ if (proper_order > 1) {
+ rot_mx rmi = proper_r.minus_unit_mx(); // ... THEREFORE WRONG HERE
+ mat_ref<int> re_mx(rmi.num().begin(), 3, 3);
+ if (form(re_mx) != 2) {
+ type_ = 0;
+ }
+ }
+}
+
+int main()
+{
+ N1::tiny<int, 9> e;
+ e[0] = 1; e[1] = 0; e[2] = 0;
+ e[3] = 0; e[4] = -1; e[5] = 0;
+ e[6] = 0; e[7] = 0; e[8] = 1;
+ rot_mx r(e);
+ rot_mx_info ri(r);
+ if (ri.type() != -2)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr38565.C b/gcc/testsuite/g++.dg/torture/pr38565.C
new file mode 100644
index 00000000000..8cd1e1d4b9b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr38565.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+// Ignore warning on some powerpc-linux configurations.
+// { dg-prune-output "non-standard ABI extension" }
+#define vector __attribute__((vector_size(16) ))
+vector unsigned int f(int a)
+{
+ vector unsigned int mask = a ? (vector unsigned int){ 0x80000000, 0x80000000,
+0x80000000, 0x80000000 } : (vector unsigned int){0};
+ return mask;
+}
+
diff --git a/gcc/testsuite/g++.dg/torture/pr38705.C b/gcc/testsuite/g++.dg/torture/pr38705.C
new file mode 100644
index 00000000000..8058d3a3979
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr38705.C
@@ -0,0 +1,27 @@
+// PR c++/38705
+// { dg-do compile }
+
+typedef int T;
+typedef __SIZE_TYPE__ size_t;
+extern "C" void *memcpy (void *, const void *, size_t);
+
+void
+foo (char *p, const int q)
+{
+ memcpy (p, &q, sizeof (int));
+}
+
+struct S
+{
+ T t;
+ int u;
+ int bar () const;
+ template <class T> void foo (const T &x) const {}
+};
+
+int
+S::bar () const
+{
+ foo (u);
+ foo (t);
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr38811.C b/gcc/testsuite/g++.dg/torture/pr38811.C
new file mode 100644
index 00000000000..e9b304da6e5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr38811.C
@@ -0,0 +1,73 @@
+/* { dg-do compile } */
+
+typedef unsigned long ULONG;
+void iwos_ErrorMessage(long error, const char * const file_name,
+ ULONG line_num, const char * const message);
+class AbcA2d {
+public:
+ double x;
+ double y;
+ ~AbcA2d() { }
+};
+enum AbcZyParamType { ABC_SP_1 };
+class AbcExtent2d {
+ AbcA2d m_vMin;
+ AbcA2d m_vMax;
+public:
+ AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax);
+ AbcA2d ClampPoint2d(const AbcA2d & rPoint) const;
+ AbcA2d GetMax() const { return m_vMax; }
+ AbcA2d GetMin() const { }
+ AbcA2d Evaluate(double dNormalizedX, double dNormalizedY) const;
+};
+inline AbcExtent2d::AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax)
+{
+ if (rMin.x > rMax.x || rMin.y > rMax.y)
+ {
+ long sErr = (1007);
+ if (sErr != 1000)
+ iwos_ErrorMessage(sErr,(const char * const)__null,
+ 0,(const char * const)__null);
+ }
+ else
+ {
+ m_vMin = rMin;
+ m_vMax = rMax;
+ }
+}
+inline AbcA2d AbcExtent2d::ClampPoint2d(const AbcA2d & rPoint) const
+{
+ AbcA2d sRet = rPoint;
+ if (rPoint.x < m_vMin.x)
+ sRet.x = m_vMin.x;
+ return sRet;
+}
+inline AbcA2d AbcExtent2d::Evaluate(double dNormalizedX, double dNormalizedY)
+const
+{
+ AbcA2d sRet;
+ sRet.x = m_vMin.x + dNormalizedX * (m_vMax.x - m_vMin.x);
+ sRet.y = m_vMin.y + dNormalizedY * (m_vMax.y - m_vMin.y);
+ return ClampPoint2d(sRet);
+}
+class AbcAbcdTracer {
+ AbcExtent2d m_vUVDomain;
+ virtual long TestIsoAbcde(AbcZyParamType eZyParam, double dParam,
+ int & rbZyxIsSolution);
+ virtual int DoesPointLieOnAbcde(AbcA2d & rUV, int bRefinePoint) const;
+};
+long AbcAbcdTracer::TestIsoAbcde(AbcZyParamType eZyParam, double dParam,
+ int & rbZyxIsSolution)
+{
+ AbcA2d sUV1(m_vUVDomain.GetMin());
+ AbcA2d sUV2(m_vUVDomain.GetMax());
+ AbcExtent2d sUVIso(sUV1,sUV2);
+ for (ULONG i=0; i<10; i++)
+ {
+ double dT = i / (10 -1.0);
+ AbcA2d sUV = sUVIso.Evaluate(dT,dT);
+ if (!DoesPointLieOnAbcde(sUV,0))
+ ;
+ }
+}
+
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr38572.C b/gcc/testsuite/g++.dg/tree-ssa/pr38572.C
new file mode 100644
index 00000000000..89d228f02d0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr38572.C
@@ -0,0 +1,32 @@
+// PR tree-optimization/38572
+// { dg-do compile }
+// { dg-options "-O2" }
+
+// Crash caused by the out-of-bounds enum values (all the remaining cruft
+// is needed only to trigger the appropriate code path in tree-vrp.c).
+enum JSOp
+{
+ JSOP_GETELEM = 5,
+ JSOP_LIMIT
+};
+extern void g ();
+void f (char *pc, char *endpc, int format, char ***fp, enum JSOp op)
+{
+ while (pc <= endpc)
+ {
+ if ((fp && *fp && pc == **fp) || pc == endpc)
+ {
+ if (format == 1)
+ op = (JSOp) 256;
+ else if (format == 2)
+ op = (JSOp) 257;
+ else
+ op = JSOP_GETELEM;
+ }
+ if (op >= JSOP_LIMIT)
+ {
+ if (format)
+ g ();
+ }
+ }
+}
diff --git a/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C b/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C
new file mode 100644
index 00000000000..8a19d646fa2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C
@@ -0,0 +1,21 @@
+// PR c++/36254
+// { dg-do compile }
+// { dg-options "-Wreturn-type" }
+
+int i, j, k;
+struct X { X (); ~X (); };
+
+bool
+foo ()
+{
+ X x;
+ if (i && j)
+ {
+ if (k)
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+}
diff --git a/gcc/testsuite/g++.dg/warn/pr36921.C b/gcc/testsuite/g++.dg/warn/pr36921.C
new file mode 100644
index 00000000000..7393669101f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/pr36921.C
@@ -0,0 +1,27 @@
+/* PR 36921: comparison operator can be overloaded. Do not emit
+ warnings in such case.
+ { dg-do compile }
+ { dg-options "-Wparentheses" }
+*/
+struct A {};
+A operator<(A, A) { return A(); }
+A operator>(A, A) { return A(); }
+A operator<=(A, A) { return A(); }
+A operator>=(A, A) { return A(); }
+A operator==(A, A) { return A(); }
+A operator!=(A, A) { return A(); }
+
+int main() {
+ A() < A() < A(); // should not emit warning
+ 1 < 2 < 3; // { dg-warning "mathematical meaning" "parentheses" }
+ A() > A() > A(); // should not emit warning
+ 1 > 2 > 3; // { dg-warning "mathematical meaning" "parentheses" }
+ A() <= A() <= A(); // should not emit warning
+ 1 <= 2 <= 3; // { dg-warning "mathematical meaning" "parentheses" }
+ A() >= A() >= A(); // should not emit warning
+ 1 >= 2 >= 3; // { dg-warning "mathematical meaning" "parentheses" }
+
+ A() == A() < A (); // { dg-warning "suggest parentheses" "parentheses" }
+ A() < A() != A (); // { dg-warning "suggest parentheses" "parentheses" }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
index 1a1af7b5823..7cf963f0ac7 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
@@ -6,9 +6,7 @@
/* { dg-xfail-if "jump beyond 128K not supported" { xtensa*-*-* } { "-O0" } { "" } } */
/* { dg-xfail-if "PR36698" { spu-*-* } { "-O0" } { "" } } */
/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
-/* If list of targets on dg-timeout-factor grows to 3, make it unconditional
- for all targets. */
-/* { dg-timeout-factor 2.0 { target hppa*-*-* } } */
+/* { dg-timeout-factor 4.0 } */
/* This testcase exposed two branch shortening bugs on powerpc. */
diff --git a/gcc/testsuite/gcc.c-torture/compile/20090107-1.c b/gcc/testsuite/gcc.c-torture/compile/20090107-1.c
new file mode 100644
index 00000000000..b5d4c1a4466
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20090107-1.c
@@ -0,0 +1,25 @@
+/* Verify that we don't ICE by forming invalid addresses for unaligned
+ doubleword loads (originally for PPC64). */
+
+struct a
+{
+ unsigned int x;
+ unsigned short y;
+} __attribute__((packed));
+
+struct b {
+ struct a rep;
+ unsigned long long seq;
+} __attribute__((packed));
+
+struct c {
+ int x;
+ struct a a[5460];
+ struct b b;
+};
+
+extern void use_ull(unsigned long long);
+extern void f(struct c *i) {
+ use_ull(i->b.seq);
+ return;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c b/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
index b94fa43db12..6640d1a7472 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
@@ -1,3 +1,5 @@
+/* { dg-timeout-factor 4.0 } */
+
#define PAR1 int, int, int, int, int, int, int, int, int, int
#define PAR2 PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1
#define PAR3 PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
index 0c5a2f5e774..10f8714414f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
@@ -1,4 +1,4 @@
-/* { dg-skip-if "too complex for avr" { "avr-*-*" } { "*" } { "" } } */
+/* { dg-skip-if "too complex for avr and picochip" { picochip-*-* avr-*-* } { "*" } { "" } } */
#define LIM1(x) x##0, x##1, x##2, x##3, x##4, x##5, x##6, x##7, x##8, x##9,
#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
index 5b52c83b061..c24ad4b5793 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
@@ -1,4 +1,4 @@
-/* { dg-skip-if "Array too big" { "avr-*-*" } { "*" } { "" } } */
+/* { dg-skip-if "Array too big" { avr-*-* picochip-*-* } { "*" } { "" } } */
#define STR2 "012345678901234567890123456789012345678901234567890123456789\
0123456789012345678901234567890123456789"
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38505.c b/gcc/testsuite/gcc.c-torture/compile/pr38505.c
new file mode 100644
index 00000000000..b3b4a10c773
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38505.c
@@ -0,0 +1,23 @@
+/* PR middle-end/38505 */
+/* { dg-do compile } */
+
+struct S
+{
+ unsigned short a[50];
+ unsigned short b[20];
+};
+extern void bar (struct S *);
+extern void baz (unsigned short *);
+extern unsigned short d[];
+
+void
+foo (void)
+{
+ struct S s;
+ unsigned short g[50];
+
+ baz (g);
+ __builtin_memcpy (&s, g, sizeof (g));
+ __builtin_memcpy (s.b, d, sizeof (s.b));
+ bar (&s);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38564.c b/gcc/testsuite/gcc.c-torture/compile/pr38564.c
new file mode 100644
index 00000000000..de365cc1f55
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38564.c
@@ -0,0 +1,22 @@
+struct S
+{
+ struct S *n, *p;
+} *s;
+
+void bar (void *);
+
+int
+foo (int x)
+{
+ struct S p = { &p, &p };
+ int i;
+ for (i = 0; i < x; i++)
+ bar (s);
+ return p.n == &p;
+}
+
+int dialog_calendar(int state)
+{
+ int *obj = (state == 1 ? &state : 0);
+ return (obj == &state);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38590-1.c b/gcc/testsuite/gcc.c-torture/compile/pr38590-1.c
new file mode 100644
index 00000000000..87976546e7b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38590-1.c
@@ -0,0 +1,6 @@
+
+int func_75 (int p_76)
+{
+ return (1 / (int) -(unsigned int)p_76);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38590-2.c b/gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
new file mode 100644
index 00000000000..076359d749b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
@@ -0,0 +1,6 @@
+
+int func_75 (int p_76)
+{
+ return (1 / (int) -(unsigned int)p_76) ? 1 : p_76;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38661-1.c b/gcc/testsuite/gcc.c-torture/compile/pr38661-1.c
new file mode 100644
index 00000000000..065f12010a7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38661-1.c
@@ -0,0 +1,9 @@
+/* We used to ICE because we would wrap INT_MAX
+ into INT_MIN while doing the switch converison. */
+
+const char *func(int val) {
+ switch (val) {
+ case - __INT_MAX__ -1 : return "foo";
+ default: return "";
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38661.c b/gcc/testsuite/gcc.c-torture/compile/pr38661.c
new file mode 100644
index 00000000000..5d243c6be51
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38661.c
@@ -0,0 +1,9 @@
+/* We used to ICE because we would wrap INT_MAX
+ into INT_MIN while doing the switch converison. */
+
+const char *func(int val) {
+ switch (val) {
+ case __INT_MAX__: return "foo";
+ default: return "";
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38771.c b/gcc/testsuite/gcc.c-torture/compile/pr38771.c
new file mode 100644
index 00000000000..7988680dd46
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38771.c
@@ -0,0 +1,7 @@
+/* PR middle-end/38771 */
+
+unsigned long long
+foo (long long x)
+{
+ return -(unsigned long long) (x ? : x);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38807.c b/gcc/testsuite/gcc.c-torture/compile/pr38807.c
new file mode 100644
index 00000000000..8b05d08aa72
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38807.c
@@ -0,0 +1,23 @@
+/* PR tree-optimization/38807 */
+
+int
+baz (short x)
+{
+ return x;
+}
+
+int a, b;
+
+int
+bar (int x)
+{
+ if (baz (a ^ x ^ a))
+ return b;
+ return 0;
+}
+
+int
+foo (void)
+{
+ return bar (a == 0 || 1 == 1 - a) ? 1 : bar (1 && a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20081117-1.x b/gcc/testsuite/gcc.c-torture/execute/20081117-1.x
new file mode 100644
index 00000000000..7378270cdb0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20081117-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20081218-1.c b/gcc/testsuite/gcc.c-torture/execute/20081218-1.c
new file mode 100644
index 00000000000..24b7bdd73a7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20081218-1.c
@@ -0,0 +1,39 @@
+struct A { int i, j; char pad[512]; } a;
+
+int __attribute__((noinline))
+foo (void)
+{
+ __builtin_memset (&a, 0x26, sizeof a);
+ return a.i;
+}
+
+void __attribute__((noinline))
+bar (void)
+{
+ __builtin_memset (&a, 0x36, sizeof a);
+ a.i = 0x36363636;
+ a.j = 0x36373636;
+}
+
+int
+main (void)
+{
+ int i;
+ if (sizeof (int) != 4 || __CHAR_BIT__ != 8)
+ return 0;
+
+ if (foo () != 0x26262626)
+ __builtin_abort ();
+ for (i = 0; i < sizeof a; i++)
+ if (((char *)&a)[i] != 0x26)
+ __builtin_abort ();
+
+ bar ();
+ if (a.j != 0x36373636)
+ __builtin_abort ();
+ a.j = 0x36363636;
+ for (i = 0; i < sizeof a; i++)
+ if (((char *)&a)[i] != 0x36)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x b/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x
new file mode 100644
index 00000000000..c8fdaf5b254
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_freestanding] } {
+ return 1;
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr37573.x b/gcc/testsuite/gcc.c-torture/execute/pr37573.x
new file mode 100644
index 00000000000..7378270cdb0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr37573.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr38533.c b/gcc/testsuite/gcc.c-torture/execute/pr38533.c
new file mode 100644
index 00000000000..44eb5b87d41
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr38533.c
@@ -0,0 +1,21 @@
+/* PR middle-end/38533 */
+
+#define A asm volatile ("" : "=r" (f) : "0" (0)); e |= f;
+#define B A A A A A A A A A A A
+#define C B B B B B B B B B B B
+
+int
+foo (void)
+{
+ int e = 0, f;
+ C C B B B B B A A A A A A
+ return e;
+}
+
+int
+main (void)
+{
+ if (foo ())
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20020103-1.c b/gcc/testsuite/gcc.dg/20020103-1.c
index 3402e8bdfce..81ffdb1b285 100644
--- a/gcc/testsuite/gcc.dg/20020103-1.c
+++ b/gcc/testsuite/gcc.dg/20020103-1.c
@@ -3,7 +3,7 @@
/* { dg-do compile { target { { i?86-*-* rs6000-*-* alpha*-*-* x86_64-*-* } || { powerpc*-*-* && ilp32 } } } } */
/* { dg-require-effective-target fpic } */
/* { dg-options "-O2 -fpic -fno-omit-frame-pointer -fno-asynchronous-unwind-tables" } */
-/* { dg-final { scan-assembler-not "LC\[0-9\]" { xfail powerpc*-*-* } } } */
+/* { dg-final { scan-assembler-not "LC\[0-9\]" } } */
/* Clobber all call-saved registers that can hold a pointer value. */
#if defined(__i386__)
diff --git a/gcc/testsuite/gcc.dg/20020425-1.c b/gcc/testsuite/gcc.dg/20020425-1.c
index ac26e60069a..7783c8870c1 100644
--- a/gcc/testsuite/gcc.dg/20020425-1.c
+++ b/gcc/testsuite/gcc.dg/20020425-1.c
@@ -1,5 +1,6 @@
/* PR c/2161: parser stack overflow. */
/* { dg-do compile } */
+/* { dg-timeout-factor 4.0 } */
#define ONE else if (0) { }
#define TEN ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
diff --git a/gcc/testsuite/gcc.dg/20020919-1.c b/gcc/testsuite/gcc.dg/20020919-1.c
index 6b8c5ba7c52..e0fab27020a 100644
--- a/gcc/testsuite/gcc.dg/20020919-1.c
+++ b/gcc/testsuite/gcc.dg/20020919-1.c
@@ -41,7 +41,7 @@
|| defined (__POWERPC__) || defined (PPC) || defined (_IBMR2)
# define REG1 "6"
# define REG2 "7"
-# ifndef __powerpc64__
+# if !defined(__powerpc64__) && !defined(__LP64__)
# define REG3 "8"
# define REG4 "9"
# endif
diff --git a/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c b/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c
new file mode 100644
index 00000000000..a48827474d7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wall" } */
+
+struct S { int *p; int *q; };
+
+void foo (struct S *);
+
+int bar (int b)
+{
+ struct S s;
+ int *p;
+ float f;
+ foo (&s);
+ if (b)
+ p = s.q;
+ else
+ p = (int *)&f;
+ return *p;
+}
diff --git a/gcc/testsuite/gcc.dg/array-quals-1.c b/gcc/testsuite/gcc.dg/array-quals-1.c
index fc5398ba338..f01db686b45 100644
--- a/gcc/testsuite/gcc.dg/array-quals-1.c
+++ b/gcc/testsuite/gcc.dg/array-quals-1.c
@@ -4,7 +4,7 @@
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */
/* The MMIX port always switches to the .data section at the end of a file. */
-/* { dg-final { scan-assembler-not "\\.data(?!\\.rel\\.ro)" { xfail powerpc*-*-aix* mmix-*-* x86_64-*-mingw* avr-*-*} } } */
+/* { dg-final { scan-assembler-not "\\.data(?!\\.rel\\.ro)" { xfail powerpc*-*-aix* mmix-*-* x86_64-*-mingw* picochip--*-* avr-*-*} } } */
static const int a[2] = { 1, 2 };
const int a1[2] = { 1, 2 };
typedef const int ci;
diff --git a/gcc/testsuite/gcc.dg/cpp/assert4.c b/gcc/testsuite/gcc.dg/cpp/assert4.c
index 6a4cb3ff5e1..0bd88ce0681 100644
--- a/gcc/testsuite/gcc.dg/cpp/assert4.c
+++ b/gcc/testsuite/gcc.dg/cpp/assert4.c
@@ -313,7 +313,7 @@
# error
#endif
-#if defined __powerpc__
+#if defined __powerpc__ || defined __PPC__
# if defined __powerpc64__
# if (#cpu(powerpc) || #machine(powerpc) \
|| !#cpu(powerpc64) || !#machine(powerpc64))
diff --git a/gcc/testsuite/gcc.dg/dfp/decfloat-constants.c b/gcc/testsuite/gcc.dg/dfp/decfloat-constants.c
index 87c9849ac9b..ec9d3816706 100644
--- a/gcc/testsuite/gcc.dg/dfp/decfloat-constants.c
+++ b/gcc/testsuite/gcc.dg/dfp/decfloat-constants.c
@@ -14,36 +14,50 @@
#include <float.h>
extern void abort (void);
+static int failcnt;
+
+/* Support compiling the test to report individual failures; default is
+ to abort as soon as a check fails. */
+#ifdef DBG
+#include <stdio.h>
+#define FAILURE { printf ("failed at line %d\n", __LINE__); failcnt++; }
+#else
+#define FAILURE abort ();
+#endif
int main ()
{
- if (DEC32_MANT_DIG != 7) abort();
- if (DEC64_MANT_DIG != 16) abort();
- if (DEC128_MANT_DIG != 34) abort();
+ if (DEC32_MANT_DIG != 7) FAILURE
+ if (DEC64_MANT_DIG != 16) FAILURE
+ if (DEC128_MANT_DIG != 34) FAILURE
- if (DEC32_MIN_EXP != -95) abort();
- if (DEC64_MIN_EXP != -383) abort();
- if (DEC128_MIN_EXP != -6143) abort();
+ if (DEC32_MIN_EXP != -94) FAILURE
+ if (DEC64_MIN_EXP != -382) FAILURE
+ if (DEC128_MIN_EXP != -6142) FAILURE
- if (DEC32_MAX_EXP != 96) abort();
- if (DEC64_MAX_EXP != 384) abort();
- if (DEC128_MAX_EXP != 6144) abort();
+ if (DEC32_MAX_EXP != 97) FAILURE
+ if (DEC64_MAX_EXP != 385) FAILURE
+ if (DEC128_MAX_EXP != 6145) FAILURE
- if (DEC32_MAX != 9.999999E96DF) abort();
- if (DEC64_MAX != 9.999999999999999E384DD) abort();
- if (DEC128_MAX != 9.999999999999999999999999999999999E6144DL) abort();
+ if (DEC32_MAX != 9.999999E96DF) FAILURE
+ if (DEC64_MAX != 9.999999999999999E384DD) FAILURE
+ if (DEC128_MAX != 9.999999999999999999999999999999999E6144DL) FAILURE
- if (DEC32_EPSILON != 1E-6DF) abort();
- if (DEC64_EPSILON != 1E-15DD) abort();
- if (DEC128_EPSILON != 1E-33DL) abort();
+ if (DEC32_EPSILON != 1E-6DF) FAILURE
+ if (DEC64_EPSILON != 1E-15DD) FAILURE
+ if (DEC128_EPSILON != 1E-33DL) FAILURE
- if (DEC32_MIN != 1E-95DF) abort();
- if (DEC64_MIN != 1E-383DD) abort();
- if (DEC128_MIN != 1E-6143DL) abort();
+ if (DEC32_MIN != 1E-95DF) FAILURE
+ if (DEC64_MIN != 1E-383DD) FAILURE
+ if (DEC128_MIN != 1E-6143DL) FAILURE
+
+ if (DEC32_SUBNORMAL_MIN != 0.000001E-95DF) FAILURE
+ if (DEC64_SUBNORMAL_MIN != 0.000000000000001E-383DD) FAILURE
+ if (DEC128_SUBNORMAL_MIN != 0.000000000000000000000000000000001E-6143DL)
+ FAILURE
- if (DEC32_DEN != 0.000001E-95DF) abort();
- if (DEC64_DEN != 0.000000000000001E-383DD) abort();
- if (DEC128_DEN != 0.000000000000000000000000000000001E-6143DL) abort();
+ if (failcnt != 0)
+ abort ();
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/fixed-point/composite-type.c b/gcc/testsuite/gcc.dg/fixed-point/composite-type.c
index 990d4f0f1ac..031de0e1104 100644
--- a/gcc/testsuite/gcc.dg/fixed-point/composite-type.c
+++ b/gcc/testsuite/gcc.dg/fixed-point/composite-type.c
@@ -32,39 +32,39 @@ do \
NAME = f2_##NAME(h3_##NAME); \
} while(0)
-FIXED_POINT_COMPOSITE_DECL(short _Fract, sf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Fract, f); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(long _Fract, lf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(long long _Fract, llf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned short _Fract, usf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned _Fract, uf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned long _Fract, ulf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned long long _Fract, ullf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat short _Fract, Ssf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat _Fract, Sf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat long _Fract, Slf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat long long _Fract, Sllf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned short _Fract, Susf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned _Fract, Suf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long _Fract, Sulf); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long long _Fract, Sullf); /* { dg-error "incompatible types in assignment" } */
+FIXED_POINT_COMPOSITE_DECL(short _Fract, sf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Fract, f); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(long _Fract, lf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(long long _Fract, llf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned short _Fract, usf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned _Fract, uf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned long _Fract, ulf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned long long _Fract, ullf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat short _Fract, Ssf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat _Fract, Sf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat long _Fract, Slf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat long long _Fract, Sllf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned short _Fract, Susf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned _Fract, Suf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long _Fract, Sulf); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long long _Fract, Sullf); /* { dg-error "incompatible types when assigning" } */
-FIXED_POINT_COMPOSITE_DECL(short _Accum, sk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Accum, k); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(long _Accum, lk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(long long _Accum, llk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned short _Accum, usk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned _Accum, uk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned long _Accum, ulk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(unsigned long long _Accum, ullk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat short _Accum, Ssk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat _Accum, Sk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat long _Accum, Slk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat long long _Accum, Sllk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned short _Accum, Susk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned _Accum, Suk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long _Accum, Sulk); /* { dg-error "incompatible types in assignment" } */
-FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long long _Accum, Sullk); /* { dg-error "incompatible types in assignment" } */
+FIXED_POINT_COMPOSITE_DECL(short _Accum, sk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Accum, k); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(long _Accum, lk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(long long _Accum, llk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned short _Accum, usk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned _Accum, uk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned long _Accum, ulk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(unsigned long long _Accum, ullk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat short _Accum, Ssk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat _Accum, Sk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat long _Accum, Slk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat long long _Accum, Sllk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned short _Accum, Susk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned _Accum, Suk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long _Accum, Sulk); /* { dg-error "incompatible types when assigning" } */
+FIXED_POINT_COMPOSITE_DECL(_Sat unsigned long long _Accum, Sullk); /* { dg-error "incompatible types when assigning" } */
int main()
{
@@ -104,3 +104,6 @@ int main()
return 0;
}
+
+/* Match all extra informative notes. */
+/* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/gomp/pr38633.c b/gcc/testsuite/gcc.dg/gomp/pr38633.c
new file mode 100644
index 00000000000..6c96bd1c18c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gomp/pr38633.c
@@ -0,0 +1,14 @@
+/* PR middle-end/38633 */
+/* { dg-do compile } */
+/* { dg-options "-fopenmp" } */
+
+void
+foo ()
+{
+#pragma omp parallel
+ {
+ struct A { int i; } j;
+ j.i = 6;
+ j.i++;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/gomp/pr38676.c b/gcc/testsuite/gcc.dg/gomp/pr38676.c
new file mode 100644
index 00000000000..cd9312028d3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gomp/pr38676.c
@@ -0,0 +1,19 @@
+/* PR middle-end/38676 */
+/* { dg-do compile } */
+/* { dg-options "-fopenmp" } */
+
+int
+main ()
+{
+ int bar, foo = 1;
+#pragma omp parallel for shared(foo)
+ for (bar = 0; bar < 3; bar++)
+ {
+ switch (foo)
+ {
+ case 1:
+ break;
+ }
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/block-0.c b/gcc/testsuite/gcc.dg/graphite/block-0.c
index f277f05fb06..627f044fc14 100644
--- a/gcc/testsuite/gcc.dg/graphite/block-0.c
+++ b/gcc/testsuite/gcc.dg/graphite/block-0.c
@@ -21,5 +21,5 @@ main()
return toto();
}
-/* { dg-final { scan-tree-dump-times "Loop blocked" 1 "graphite"} } */
+/* { dg-final { scan-tree-dump-times "will be loop blocked" 1 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-1.c b/gcc/testsuite/gcc.dg/graphite/block-1.c
index 039b974fdae..0a70e9e10a4 100644
--- a/gcc/testsuite/gcc.dg/graphite/block-1.c
+++ b/gcc/testsuite/gcc.dg/graphite/block-1.c
@@ -2,6 +2,8 @@
#define MAX 8192
+void bar (void);
+
int main()
{
int i, j;
@@ -9,6 +11,8 @@ int main()
int A[MAX * MAX];
int B[MAX * MAX];
+ bar ();
+
for (i = 0; i < MAX; i++)
for (j = 0; j < MAX; j++)
{
@@ -20,6 +24,11 @@ int main()
for (j = 0; j < MAX; j++)
A[i*MAX + j] += B[j*MAX + i];
+ bar ();
+
+ /* FIXME: For now, reductions are not handled by the code generation
+ of graphite. We have to bound the scop to the above loops. */
+
for(i = 0; i < MAX; i++)
for(j = 0; j < MAX; j++)
sum += A[i*MAX + j];
@@ -27,5 +36,5 @@ int main()
return sum;
}
-/* { dg-final { scan-tree-dump-times "Loop blocked" 3 "graphite"} } */
+/* { dg-final { scan-tree-dump-times "will be loop blocked" 2 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-2.c b/gcc/testsuite/gcc.dg/graphite/block-2.c
new file mode 100644
index 00000000000..fc4e889e791
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/block-2.c
@@ -0,0 +1,31 @@
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+
+typedef unsigned char UChar;
+typedef int Int32;
+typedef unsigned int UInt32;
+
+void fallbackSort ( UInt32* fmap,
+ UInt32* eclass,
+ Int32 nblock,
+ Int32 verb )
+{
+ Int32 ftab[257];
+ Int32 ftabCopy[256];
+ Int32 H, i, j, k, l, r, cc, cc1;
+ Int32 nNotDone;
+ Int32 nBhtab;
+ UChar* eclass8 = (UChar*)eclass;
+
+ if (verb >= 4)
+ VPrintf0 ( " bucket sorting ...\n" );
+ for (i = 0; i < 257; i++) ftab[i] = 0;
+ for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
+ for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
+ for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
+
+ for (i = 0; i < nblock; i++) {
+ j = eclass8[i] + ftab [i];
+ }
+ AssertH ( j < 256, 1005 );
+}
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-3.c b/gcc/testsuite/gcc.dg/graphite/block-3.c
new file mode 100644
index 00000000000..1d2ca40dbac
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/block-3.c
@@ -0,0 +1,25 @@
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+
+#define N 24
+#define M 100
+
+float A[M][M][M], B[M][M], C[M][M];
+
+void test (void)
+{
+ int i, j, k;
+
+ /* These loops contain too few iterations for being strip-mined by 64. */
+ for (i = 0; i < 24; i++)
+ for (j = 0; j < 24; j++)
+ for (k = 0; k < 24; k++)
+ A[i][j][k] = B[i][k] * C[k][j];
+
+ /* These loops should still be strip mined. */
+ for (i = 0; i < M; i++)
+ for (j = 0; j < M; j++)
+ for (k = 0; k < M; k++)
+ A[i][j][k] = B[i][k] * C[k][j];
+}
+
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-4.c b/gcc/testsuite/gcc.dg/graphite/block-4.c
new file mode 100644
index 00000000000..e3649f01d2d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/block-4.c
@@ -0,0 +1,23 @@
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+
+#define N 24
+#define M 1000
+
+float A[1000][1000], B[1000][1000], C[1000][1000];
+
+void test (void)
+{
+ int i, j, k;
+
+ for (i = 0; i < 24; i++)
+ for (j = 0; j < 24; j++)
+ for (k = 0; k < 24; k++)
+ A[i][j] = B[i][k] * C[k][j];
+
+ for (i = 0; i < 1000; i++)
+ for (j = 0; j < 1000; j++)
+ for (k = 0; k < 1000; k++)
+ A[i][j] = B[i][k] * C[k][j];
+}
+
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-5.c b/gcc/testsuite/gcc.dg/graphite/block-5.c
new file mode 100644
index 00000000000..e0bd4688d39
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/block-5.c
@@ -0,0 +1,26 @@
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+
+#define N 10000
+void foo (int);
+int test ()
+{
+ int a[N][N];
+ int b[N][N];
+ unsigned i, j;
+
+ for (i = 0; i < N; i++)
+ for (j = 0; j < N; j++)
+ a[i][j] = i*j;
+
+ for (j = 1; j < N; j++)
+ for (i = 0; i < N; i++)
+ a[i][j] = a[i][j-1] + b[i][j];
+
+ for (i = 0; i < N; i++)
+ for (j = 0; j < N; j++)
+ foo (a[i][j]);
+}
+
+/* Interchange is legal for loops 0 and 1 of the first two SCoPs */
+/* { dg-final { scan-tree-dump-times "Interchange valid for loops 0 and 1:" 2 "graphite"} } */
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-6.c b/gcc/testsuite/gcc.dg/graphite/block-6.c
new file mode 100644
index 00000000000..77429f1cb83
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/block-6.c
@@ -0,0 +1,25 @@
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+
+#define N 10000
+void foo (int);
+int test ()
+{
+ int a[N][N];
+ unsigned i, j;
+
+ for (i = 0; i < N; i++)
+ for (j = 0; j < N; j++)
+ a[i][j] = i*j;
+
+ for (i = 1; i < N; i++)
+ for (j = 1; j < (N-1) ; j++)
+ a[i][j] = a[i-1][j+1] * a[i-1][j+1]/2;
+
+ for (i = 0; i < N; i++)
+ for (j = 0; j < N; j++)
+ foo (a[i][j]);
+}
+
+/* Interchange is not legal for loops 0 and 1 of SCoP 2. */
+/* { dg-final { scan-tree-dump-times "Interchange not valid for loops 0 and 1:" 1 "graphite"} } */
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/pr37485.c b/gcc/testsuite/gcc.dg/graphite/pr37485.c
index 67661910ba2..cf0969bac1d 100644
--- a/gcc/testsuite/gcc.dg/graphite/pr37485.c
+++ b/gcc/testsuite/gcc.dg/graphite/pr37485.c
@@ -29,3 +29,4 @@ void fallbackSort ( UInt32* fmap,
AssertH ( j < 256, 1005 );
}
/* { dg-final { scan-tree-dump-times "Loop blocked" 1 "graphite" { xfail *-*-* }} } */
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/pr37684.c b/gcc/testsuite/gcc.dg/graphite/pr37684.c
index 35c32911c30..a9e6f5a4a59 100644
--- a/gcc/testsuite/gcc.dg/graphite/pr37684.c
+++ b/gcc/testsuite/gcc.dg/graphite/pr37684.c
@@ -63,3 +63,5 @@ int BZ2_bzCompressInit
}
prepare_new_block ( s );
}
+
+/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/pr37883.c b/gcc/testsuite/gcc.dg/graphite/pr37883.c
new file mode 100644
index 00000000000..2ab043adce1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr37883.c
@@ -0,0 +1,11 @@
+/* { dg-options "-O3 -floop-block" } */
+
+void test_sort()
+{
+ char *base;
+ register char c, *i, *hi;
+
+ for (i = base; i < hi; i++)
+ *i++ = c;
+}
+
diff --git a/gcc/testsuite/gcc.dg/graphite/pr37928.c b/gcc/testsuite/gcc.dg/graphite/pr37928.c
new file mode 100644
index 00000000000..47ad5bce0bd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr37928.c
@@ -0,0 +1,33 @@
+/* { dg-options "-O3 -floop-block" } */
+
+int get_state(int size, int *node, int *hash)
+{
+ int i=0;
+ while(hash[i])
+ {
+ if(node[hash[i]] == 0)
+ return hash[i]-1;
+ i++;
+ if(i==5)
+ i=0;
+ }
+ return -1;
+}
+
+void foo (int);
+
+int gate1(int size, int *node, int *hash)
+{
+ int i, j ;
+ int add_size=0;
+ for(i=0; i<size; i++)
+ {
+ j = get_state(size,node, hash);
+ if(j == -1)
+ {
+ add_size++;
+ }
+ }
+
+ foo (size+add_size);
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38073.c b/gcc/testsuite/gcc.dg/graphite/pr38073.c
new file mode 100644
index 00000000000..9c48d8d095f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38073.c
@@ -0,0 +1,9 @@
+/* { dg-options "-O3 -fgraphite-identity" } */
+
+test_seg(int a, int b)
+{
+ int i,r=1;
+ for(i=0; i<b ;i++)
+ r*=a;
+ return r;
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38125.c b/gcc/testsuite/gcc.dg/graphite/pr38125.c
new file mode 100644
index 00000000000..780e6f643e6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38125.c
@@ -0,0 +1,32 @@
+/* { dg-options "-O3 -fgraphite-identity" } */
+
+typedef struct sv TEST_SV;
+typedef struct av TEST_AV;
+typedef struct magic TEST_MAGIC;
+typedef struct xpvav TEST_XPVAV;
+struct sv
+{
+ void* sv_any;
+};
+struct av
+{
+ TEST_XPVAV* sv_any;
+};
+struct xpvav
+{
+ char* xav_array;
+ long int xav_fill;
+ long int xav_max;
+};
+struct magic {
+ TEST_SV* mg_obj;
+};
+extern TEST_SV PL_sv_undef;
+Perl_av_fill( register TEST_AV *av, int fill)
+{
+ TEST_MAGIC *mg;
+ int key = ((TEST_XPVAV*) (av)->sv_any)->xav_fill;
+ TEST_SV** ary = ((TEST_SV**)((TEST_XPVAV*) (av)->sv_any)->xav_array);
+ while (key < fill)
+ ary[++key] = &PL_sv_undef;
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38409.c b/gcc/testsuite/gcc.dg/graphite/pr38409.c
new file mode 100644
index 00000000000..41c67753426
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38409.c
@@ -0,0 +1,24 @@
+/* { dg-options "-O2 -floop-block" } */
+
+typedef struct test input ;
+struct test
+{
+ int type ;
+ int symflag ;
+};
+Chv_copyEntriesToVector ( input *chv,double *dvec)
+{
+ double *entries ;
+ int mm, nent;
+ int first, i, k , stride ;
+ if ( ((chv)->type == 1) )
+ {
+ for ( i = 0 ; i < 10 ; i++)
+ {
+ dvec[2*mm] = entries[2*k] ;
+ k += stride ;
+ stride -= 2 ;
+ }
+ }
+ return(mm) ;
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38413.c b/gcc/testsuite/gcc.dg/graphite/pr38413.c
new file mode 100644
index 00000000000..6c2b23a8829
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38413.c
@@ -0,0 +1,14 @@
+/* { dg-options "-O2 -fgraphite-identity" } */
+
+static int qsz;
+
+void specqsort(base, n, size, compar)
+ char *base;
+{
+ register char c, *i, *j, *lo, *hi;
+ qsz = size;
+ for (i = base, hi = base + qsz; i < hi; )
+ {
+ *i++ = c;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38446.c b/gcc/testsuite/gcc.dg/graphite/pr38446.c
new file mode 100644
index 00000000000..b7b346cd98b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38446.c
@@ -0,0 +1,14 @@
+/* { dg-options "-O2 -fgraphite-identity" } */
+
+void copy_data()
+{
+ int ****source;
+ int ****dest;
+
+ int i, j, k, l;
+ for (i = 0; i < 10; i++)
+ for (k = 0; k < 2; k++)
+ for (l = 0; l < 65; l++)
+ source[i][j][k][l] = dest[i][j][k][l];
+}
+
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38498.c b/gcc/testsuite/gcc.dg/graphite/pr38498.c
new file mode 100644
index 00000000000..c79bbad554d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38498.c
@@ -0,0 +1,19 @@
+/* { dg-options "-O2 -floop-block" } */
+
+double test_vector (float **data, int rows, int cols, int vqrows,double epsilon, int maxiter,int **mean, int *map)
+{
+ int i, j, r, it;
+ double sqerr, prev_sqerr=0, t;
+ unsigned int *sel;
+ int *count;
+ for (it = 0;; it++)
+ {
+ if ((sqerr == 0.0) || (it >= maxiter-1) ||((it > 0) && ( ((prev_sqerr - sqerr) / prev_sqerr) < epsilon )) )
+ for (i = 0; i < vqrows; i++)
+ {
+ for (j = 0; j < cols; j++)
+ mean[i][j] = 0.0;
+ count[i] = 0;
+ }
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38500.c b/gcc/testsuite/gcc.dg/graphite/pr38500.c
new file mode 100644
index 00000000000..f5292d173c1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38500.c
@@ -0,0 +1,29 @@
+/* { dg-options "-O3 -fgraphite-identity" } */
+
+typedef unsigned char U8;
+extern char test1;
+
+char *Perl_screaminstr (int, int, int);
+
+void
+Perl_re_intuit_start( int minlen, char *strend, unsigned int flags, int i)
+{
+ register int start_shift = 0;
+ register int end_shift = 0;
+ register char *s;
+ char *strbeg;
+ char *t;
+ if(i > 0)
+ goto success_at_start;
+ int end = 0;
+ int eshift = (test1 ? Perl_utf8_distance((U8*)strend,(U8*)s) : (U8*)strend - (U8*)s) - end;
+ if (end_shift < eshift)
+ end_shift = eshift;
+ restart:
+ s = Perl_screaminstr(start_shift + (s - strbeg), end_shift, 0);
+ while( t < strend - minlen){
+ }
+ success_at_start:
+ eshift = (test1 ? Perl_utf8_distance((U8*)strend,(U8*)s) : (U8*)strend - (U8*)s) - end;
+ goto restart;
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38510.c b/gcc/testsuite/gcc.dg/graphite/pr38510.c
new file mode 100644
index 00000000000..07ddb6ef166
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38510.c
@@ -0,0 +1,40 @@
+/* { dg-options "-O2 -fgraphite-identity" } */
+typedef long int integer;
+typedef double doublereal;
+
+static int balanc_(nm, n, a, low, igh, scale)
+doublereal *a;
+{
+ integer a_dim1, a_offset, i__1, i__2;
+ integer iexc;
+ integer i__, j, k, l, m;
+ integer jj;
+goto L100;
+L20:
+if (j == m) {
+goto L50;
+}
+for (i__ = 1; i__ <= i__1; ++i__) {
+a[i__ + j * a_dim1] = a[i__ + m * a_dim1];
+}
+L50:
+switch ((int)iexc) {
+case 2: goto L130;
+}
+L100:
+for (jj = 1; jj <= i__1; ++jj) {
+goto L20;
+}
+L130:
+for (j = k; j <= i__1; ++j) {
+goto L20;
+}
+}
+
+int pymol_rg_(integer *nm, integer *n, doublereal *a, doublereal *wr,
+ doublereal *fv1,integer *ierr)
+{
+ integer a_dim1, a_offset, z_dim1, z_offset;
+ integer is1, is2;
+ balanc_(nm, n, &a[a_offset], &is1, &is2, &fv1[1]);
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38559.c b/gcc/testsuite/gcc.dg/graphite/pr38559.c
new file mode 100644
index 00000000000..1e2ef0a4ff3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38559.c
@@ -0,0 +1,14 @@
+/* { dg-options "-O2 -floop-block" } */
+
+int test()
+{
+ int offset, len;
+ register char *mid;
+ register char *midend;
+ register char *bigend;
+ long unsigned int curlen;
+ if (offset + len > curlen) {
+ while (midend > mid)
+ *--bigend = *--midend;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr38786.c b/gcc/testsuite/gcc.dg/graphite/pr38786.c
new file mode 100644
index 00000000000..47df44789f8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr38786.c
@@ -0,0 +1,20 @@
+/* { dg-options "-O2 -fgraphite-identity" } */
+
+typedef struct
+{
+ int ****cofAC;
+} ImageParameters;
+typedef struct
+{
+ int ****cofAC;
+} RD_DATA;
+extern RD_DATA *rdopt;
+extern ImageParameters *img;
+dummy_slice_too_big (int bits_slice)
+{
+ int i, j, k, l;
+ for (j = 0; j < 4; j++)
+ for (k = 0; k < 2; k++)
+ for (l = 0; l < 65; l++)
+ img->cofAC[i][j][k][l] = rdopt->cofAC[i][j][k][l];
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-15.c b/gcc/testsuite/gcc.dg/graphite/scop-15.c
index 7e242537315..9324631e2fd 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-15.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-15.c
@@ -48,5 +48,6 @@ int longest_match(IPos cur_match)
&& --chain_length != 0);
return best_len;
}
+
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-16.c b/gcc/testsuite/gcc.dg/graphite/scop-16.c
index 42f7b6aade3..d0b32f63973 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-16.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-16.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
+
#define N 10000
void foo (int);
int test ()
@@ -20,6 +21,5 @@ int test ()
foo (a[i][j]);
}
-/* Interchange is legal for loops 0 and 1 of the first two SCoPs */
-/* { dg-final { scan-tree-dump-times "Interchange valid for loops 0 and 1:" 2 "graphite"} } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-17.c b/gcc/testsuite/gcc.dg/graphite/scop-17.c
index 4c1b0ca2993..c2fec3fccaf 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-17.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-17.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
+
#define N 10000
void foo (int);
int test ()
@@ -19,6 +20,5 @@ int test ()
foo (a[i][j]);
}
-/* Interchange is not legal for loops 0 and 1 of SCoP 2. */
-/* { dg-final { scan-tree-dump-times "Interchange not valid for loops 0 and 1:" 1 "graphite"} } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-18.c b/gcc/testsuite/gcc.dg/graphite/scop-18.c
index fe2d5f4a412..6264116e114 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-18.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-18.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
#define N 24
#define M 1000
@@ -13,14 +13,14 @@ void test (void)
for (i = 0; i < 24; i++)
for (j = 0; j < 24; j++)
for (k = 0; k < 24; k++)
- A[i][j] += B[i][k] * C[k][j];
+ A[i][j] = B[i][k] * C[k][j];
/* These loops should still be strip mined. */
for (i = 0; i < 1000; i++)
for (j = 0; j < 1000; j++)
for (k = 0; k < 1000; k++)
- A[i][j] += B[i][k] * C[k][j];
+ A[i][j] = B[i][k] * C[k][j];
}
-/* { dg-final { scan-tree-dump-times "Strip Mining is not profitable" 3 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite"} } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
diff --git a/gcc/testsuite/gcc.dg/pch/pch.exp b/gcc/testsuite/gcc.dg/pch/pch.exp
index e2ec69fd7bd..c76c37af8df 100644
--- a/gcc/testsuite/gcc.dg/pch/pch.exp
+++ b/gcc/testsuite/gcc.dg/pch/pch.exp
@@ -44,6 +44,7 @@ set test "largefile.c"
set testh "largefile.hs"
set f [open $test w]
puts $f "/* { dg-xfail-if \"PR 14940\" { \"i?86-*-solaris2.10\" } { \"*\" } { \"\" } } */"
+puts $f "/* { dg-timeout-factor 4.0 } */"
set v 0
for { set v 0 } { $v < 10000 } { incr v } {
puts $f "#define MACRO_${v} \"1234567890\" \"$v\""
diff --git a/gcc/testsuite/gcc.dg/pr32041.c b/gcc/testsuite/gcc.dg/pr32041.c
new file mode 100644
index 00000000000..60837b20436
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr32041.c
@@ -0,0 +1,12 @@
+/* PR c/32041 */
+/* { dg-do compile } */
+
+struct S
+{
+ int c;
+ struct { float f; } sa[2];
+};
+
+char a[__builtin_offsetof (struct S, sa->f)
+ == __builtin_offsetof (struct S, sa[0].f) ? 1 : -1];
+
diff --git a/gcc/testsuite/gcc.dg/pr34027-1.c b/gcc/testsuite/gcc.dg/pr34027-1.c
index 532e4976dc3..8e8872a5133 100644
--- a/gcc/testsuite/gcc.dg/pr34027-1.c
+++ b/gcc/testsuite/gcc.dg/pr34027-1.c
@@ -8,5 +8,9 @@ unsigned long foobar(unsigned long ns)
return ns;
}
-/* { dg-final { scan-tree-dump "ns % 10000" "optimized" } } */
+/* This test was originally introduced to test that we transform
+ to ns % 10000. See the discussion of PR 32044 why we do not do
+ that anymore. */
+/* { dg-final { scan-tree-dump-times "%" 0 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "/" 0 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/pr34856.c b/gcc/testsuite/gcc.dg/pr34856.c
index ae42c85b0bd..6bfc704774f 100644
--- a/gcc/testsuite/gcc.dg/pr34856.c
+++ b/gcc/testsuite/gcc.dg/pr34856.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
-/* { dg-options "-O2 -w" { target { powerpc*-*-linux* } } } */
/* { dg-options "-O2 -maltivec" { target { powerpc*-*-linux* && powerpc_altivec_ok } } } */
typedef unsigned __attribute__ ((__mode__ (__pointer__))) uintptr_t;
@@ -28,3 +27,6 @@ void f1 (unsigned ctr)
}
while (ctr);
}
+
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector passed by reference.*" } */
diff --git a/gcc/testsuite/gcc.dg/pr35442.c b/gcc/testsuite/gcc.dg/pr35442.c
index 4f1e3cc537f..2bf5ce67880 100644
--- a/gcc/testsuite/gcc.dg/pr35442.c
+++ b/gcc/testsuite/gcc.dg/pr35442.c
@@ -9,3 +9,6 @@ foo (A a)
{
((B) a) (); /* { dg-error "is not a function" } */
}
+
+/* Ignore a warning that is irrelevant to the purpose of this test. */
+/* { dg-prune-output ".*GCC vector passed by reference.*" } */
diff --git a/gcc/testsuite/gcc.dg/pr35742.c b/gcc/testsuite/gcc.dg/pr35742.c
new file mode 100644
index 00000000000..60947279209
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr35742.c
@@ -0,0 +1,13 @@
+/* PR c/35742 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu99" } */
+/* { dg-bogus "not supported by" "" { target *-*-* } 0 } */
+
+void
+foo ()
+{
+ for (;;)
+ ({break;})(); /* { dg-error "is not a function" } */
+ for (;;)
+ ({continue;})(); /* { dg-error "is not a function" } */
+}
diff --git a/gcc/testsuite/gcc.dg/pr36489.c b/gcc/testsuite/gcc.dg/pr36489.c
new file mode 100644
index 00000000000..5cf221615ec
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr36489.c
@@ -0,0 +1,22 @@
+/* PR c/36489 */
+/* { dg-do compile } */
+/* { dg-options "-Woverride-init" } */
+
+struct A { int a; int b[3]; };
+union B { int a; int b[3]; };
+int t1[10][10]
+ = { [1][2] = 11, [1][3] = 12 };
+int t2[10][10]
+ = { [1][2] = 11, [1] = { [3] = 12 } }; /* { dg-warning "initializ" } */
+int t3[10][10]
+ = { [1][2] = 11, [1][2] = 12 }; /* { dg-warning "initializ" } */
+struct A t4[2]
+ = { [0].b[0] = 1, [0].b[1] = 2, [0].b[2] = 3 };
+struct A t5[2]
+ = { [0].b[0] = 1, [0].b[1] = 2, [0].b = { 3 } }; /* { dg-warning "initializ" } */
+union B t6
+ = { .b[0] = 1, .b[1] = 2, .b[2] = 3 };
+union B t7
+ = { .b[0] = 1, .b[1] = 2, .b = { 2 } }; /* { dg-warning "initializ" } */
+union B t8
+ = { .b[0] = 1, .b[1] = 2, .b[1] = 3 }; /* { dg-warning "initializ" } */
diff --git a/gcc/testsuite/gcc.dg/pr38245-3.c b/gcc/testsuite/gcc.dg/pr38245-3.c
new file mode 100644
index 00000000000..6ef8372a14f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38245-3.c
@@ -0,0 +1,112 @@
+/* PR rtl-optimization/38245 */
+/* { dg-do run } */
+/* { dg-additional-sources "pr38245-4.c" } */
+/* { dg-options "-O2" } */
+
+#include "pr38245-3.h"
+
+extern void abort (void);
+
+struct A { int i, j; union { short s[4]; long long l; }; char pad[512]; } a;
+int globv = 6;
+
+void __attribute__((noinline))
+f1 (void)
+{
+ a.s[2] = b1 (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f2 (void)
+{
+ a.s[2] = b2 (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f3 (void)
+{
+ struct B b = { 30, 31, { 32, 33 } };
+ a.s[2] = b3 (6, 7, 8, 9, 10, 11, 12, b, 14, b, 16, b, 18, 19, 20, 21,
+ 6, b, 8, b, 10, 11, 12, 13, 14, b, 16, b, 18, 19, 20, 21);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f4 (void)
+{
+ struct B b = { 30, 31, { 32, 33 } };
+ a.s[2] = b4 (6, 7, 8, 9, 10, 11, 12, b, 14, b, 16, b, 18, 19, 20, 21,
+ 6, b, 8, b, 10, 11, 12, 13, 14, b, 16, b, 18, 19, 20, 21);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f5 (void)
+{
+ a.s[2] = b5 (6.0, 7, 8, 9, 10, 11, 21.0, 22.0, 23.0);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f6 (void)
+{
+ a.s[2] = b6 (6.0, 7, 8, 9, 10, 11, 21.0, 22.0, 23.0);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f7 (void)
+{
+ a.s[2] = b7 (6, 7);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f8 (void)
+{
+ a.s[2] = b8 (6, 7);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f9 (void)
+{
+ a.s[2] = b9 (6, 7, 8, 9, 10, 11, 12);
+ a.l = 6;
+}
+
+void __attribute__((noinline))
+f10 (void)
+{
+ a.s[2] = b10 (6, 7, 8, 9, 10, 11, 12);
+ a.l = 6;
+}
+
+int
+main (void)
+{
+ char buf[256];
+ int i;
+ for (i = 0; i < (int) sizeof buf; i++)
+ buf[i] = i;
+ asm volatile ("" : : "r" (buf) : "memory");
+ f1 ();
+ f2 ();
+ f3 ();
+ f4 ();
+ f5 ();
+ f6 ();
+ f7 ();
+ f8 ();
+ f9 ();
+ f10 ();
+ asm volatile ("" : : "r" (buf) : "memory");
+ for (i = 0; i < (int) sizeof buf; i++)
+ if (buf[i] != (char) i)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr38245-3.h b/gcc/testsuite/gcc.dg/pr38245-3.h
new file mode 100644
index 00000000000..b1c2a0f67c2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38245-3.h
@@ -0,0 +1,35 @@
+/* PR rtl-optimization/38245 */
+
+struct B { long a, b; char p[32]; };
+extern int globv;
+
+extern int b1 (long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long)
+ __attribute__((pure, noinline));
+extern int b2 (long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long,
+ long long, long, long, long, long, long, long, long)
+ __attribute__((const, noinline));
+extern int b3 (long long, long, long, long, long, long, long, struct B,
+ long long, struct B, long, struct B, long, long, long, long,
+ long long, struct B, long, struct B, long, long, long, long,
+ long long, struct B, long, struct B, long, long, long, long)
+ __attribute__((pure, noinline));
+extern int b4 (long long, long, long, long, long, long, long, struct B,
+ long long, struct B, long, struct B, long, long, long, long,
+ long long, struct B, long, struct B, long, long, long, long,
+ long long, struct B, long, struct B, long, long, long, long)
+ __attribute__((const, noinline));
+extern int b5 () __attribute__((pure, noinline));
+extern int b6 () __attribute__((const, noinline));
+extern int b7 (int, int)
+ __attribute__((pure, noinline));
+extern int b8 (int, int)
+ __attribute__((const, noinline));
+extern int b9 (int, int, int, int, int, int, int)
+ __attribute__((pure, noinline));
+extern int b10 (int, int, int, int, int, int, int)
+ __attribute__((const, noinline));
diff --git a/gcc/testsuite/gcc.dg/pr38245-4.c b/gcc/testsuite/gcc.dg/pr38245-4.c
new file mode 100644
index 00000000000..c9b3d2d8fb8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38245-4.c
@@ -0,0 +1,107 @@
+/* PR rtl-optimization/38245 */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+#include "pr38245-3.h"
+
+int
+b1 (long long a1, long a2, long a3, long a4,
+ long a5, long a6, long a7, long a8,
+ long long a9, long a10, long a11, long a12,
+ long a13, long a14, long a15, long a16,
+ long long a17, long a18, long a19, long a20,
+ long a21, long a22, long a23, long a24,
+ long long a25, long a26, long a27, long a28,
+ long a29, long a30, long a31, long a32)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10
+ + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20
+ + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30
+ + a31 + a32 + globv;
+}
+
+int
+b2 (long long a1, long a2, long a3, long a4,
+ long a5, long a6, long a7, long a8,
+ long long a9, long a10, long a11, long a12,
+ long a13, long a14, long a15, long a16,
+ long long a17, long a18, long a19, long a20,
+ long a21, long a22, long a23, long a24,
+ long long a25, long a26, long a27, long a28,
+ long a29, long a30, long a31, long a32)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10
+ + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20
+ + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30
+ + a31 + a32;
+}
+
+int
+b3 (long long a1, long a2, long a3, long a4,
+ long a5, long a6, long a7, struct B a8,
+ long long a9, struct B a10, long a11, struct B a12,
+ long a13, long a14, long a15, long a16,
+ long long a17, struct B a18, long a19, struct B a20,
+ long a21, long a22, long a23, long a24,
+ long long a25, struct B a26, long a27, struct B a28,
+ long a29, long a30, long a31, long a32)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8.a + a9 + a10.a
+ + a11 + a12.a + a13 + a14 + a15 + a16 + a17 + a18.a + a19 + a20.a
+ + a21 + a22 + a23 + a24 + a25 + a26.a + a27 + a28.a + a29 + a30
+ + a31 + a32 + globv;
+}
+
+int
+b4 (long long a1, long a2, long a3, long a4,
+ long a5, long a6, long a7, struct B a8,
+ long long a9, struct B a10, long a11, struct B a12,
+ long a13, long a14, long a15, long a16,
+ long long a17, struct B a18, long a19, struct B a20,
+ long a21, long a22, long a23, long a24,
+ long long a25, struct B a26, long a27, struct B a28,
+ long a29, long a30, long a31, long a32)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8.a + a9 + a10.a
+ + a11 + a12.a + a13 + a14 + a15 + a16 + a17 + a18.a + a19 + a20.a
+ + a21 + a22 + a23 + a24 + a25 + a26.a + a27 + a28.a + a29 + a30
+ + a31 + a32;
+}
+
+int
+b5 (double a1, int a2, int a3, int a4, int a5, int a6, double a7,
+ double a8, double a9)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + globv;
+}
+
+int
+b6 (double a1, int a2, int a3, int a4, int a5, int a6, double a7,
+ double a8, double a9)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9;
+}
+
+int
+b7 (int a1, int a2)
+{
+ return a1 + a2 + globv;
+}
+
+int
+b8 (int a1, int a2)
+{
+ return a1 + a2;
+}
+
+int
+b9 (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + globv;
+}
+
+int
+b10 (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
+{
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7;
+}
diff --git a/gcc/testsuite/gcc.dg/pr38364.c b/gcc/testsuite/gcc.dg/pr38364.c
new file mode 100644
index 00000000000..23f72de74ee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38364.c
@@ -0,0 +1,79 @@
+/* PR middle-end/38364 */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftrapv" } */
+
+extern void abort (void);
+
+static inline short
+f1 (short x, short y)
+{
+ if (x > 0)
+ {
+ if (y > 0)
+ {
+ if (x > __SHRT_MAX__ / y)
+ return x;
+ }
+ else if (y < (-__SHRT_MAX__ - 1) / x)
+ return x;
+ }
+ else
+ {
+ if (y > 0)
+ {
+ if (x < (-__SHRT_MAX__ - 1) / y)
+ return x;
+ }
+ else if (x != 0 && y < __SHRT_MAX__ / x)
+ return x;
+ }
+ return x * y;
+}
+
+static inline signed char
+f2 (signed char x, signed char y)
+{
+ if (((x ^ y) & (((x ^ ((x ^ y) & (1 << (__CHAR_BIT__ - 1)))) - y) ^ y)) < 0)
+ return x;
+ return x - y;
+}
+
+unsigned int v;
+
+int
+f3 (int x, unsigned int y)
+{
+ f1 (1, 1);
+ return 1;
+}
+
+int
+f4 (unsigned short x)
+{
+ v = x;
+ return 1;
+}
+
+int
+f5 (int x)
+{
+ if (f2 (x, 1))
+ f1 (1, f4 (1));
+ return x;
+}
+
+int
+f6 (unsigned int x)
+{
+ f4 (x < (1 != f5 (0)));
+ return x;
+}
+
+int
+main (void)
+{
+ f6 (1);
+ if (v != 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr38616.c b/gcc/testsuite/gcc.dg/pr38616.c
new file mode 100644
index 00000000000..b4534b508c0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38616.c
@@ -0,0 +1,14 @@
+/* PR middle-end/38616 */
+/* { dg-do run } */
+/* { dg-options "-O2 -fstack-protector" } */
+/* { dg-require-effective-target fstack_protector } */
+
+#include <stdio.h>
+
+#define BUFFER "1234567890abcdefghijklmno"
+int main (void)
+{
+ char buffer[1024]="";
+ sprintf (buffer, "%s", BUFFER);
+ return strcmp (buffer, BUFFER);
+}
diff --git a/gcc/testsuite/gcc.dg/pr38645.c b/gcc/testsuite/gcc.dg/pr38645.c
new file mode 100644
index 00000000000..3268f2ac673
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38645.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+int foo()
+{
+ volatile int a[1];
+ int i, *p = (int*)a;
+
+ a[0] = 1;
+ for (i = 0; i < 1; ++i)
+ if (p[i])
+ return -1;
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "a.0. ={v} 1;" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/pr38700.c b/gcc/testsuite/gcc.dg/pr38700.c
new file mode 100644
index 00000000000..bfa75b0c7cb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr38700.c
@@ -0,0 +1,11 @@
+/* PR c/38700 */
+/* { dg-do compile } */
+/* { dg-options "-O0" } */
+
+int
+foo ()
+{
+ __SIZE_TYPE__ s = __builtin_expect ((__SIZE_TYPE__)&&L, 0);
+L:
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/sibcall-3.c b/gcc/testsuite/gcc.dg/sibcall-3.c
index a33d4d34502..e085bfbc7a3 100644
--- a/gcc/testsuite/gcc.dg/sibcall-3.c
+++ b/gcc/testsuite/gcc.dg/sibcall-3.c
@@ -5,7 +5,7 @@
Copyright (C) 2002 Free Software Foundation Inc.
Contributed by Hans-Peter Nilsson <hp@bitrange.com> */
-/* { dg-do run { xfail arc-*-* avr-*-* cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } } */
+/* { dg-do run { xfail { { arc-*-* avr-*-* cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } || { arm*-*-* && { ! arm32 } } } } } */
/* -mlongcall disables sibcall patterns. */
/* { dg-skip-if "" { powerpc*-*-* } { "-mlongcall" } { "" } } */
/* { dg-options "-O2 -foptimize-sibling-calls" } */
diff --git a/gcc/testsuite/gcc.dg/sibcall-4.c b/gcc/testsuite/gcc.dg/sibcall-4.c
index e13db6bb74f..11b09d0791b 100644
--- a/gcc/testsuite/gcc.dg/sibcall-4.c
+++ b/gcc/testsuite/gcc.dg/sibcall-4.c
@@ -5,7 +5,7 @@
Copyright (C) 2002 Free Software Foundation Inc.
Contributed by Hans-Peter Nilsson <hp@bitrange.com> */
-/* { dg-do run { xfail arc-*-* avr-*-* cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } } */
+/* { dg-do run { xfail { { arc-*-* avr-*-* cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } || { arm*-*-* && { ! arm32 } } } } } */
/* -mlongcall disables sibcall patterns. */
/* { dg-skip-if "" { powerpc*-*-* } { "-mlongcall" } { "" } } */
/* { dg-options "-O2 -foptimize-sibling-calls" } */
diff --git a/gcc/testsuite/gcc.dg/struct-ret-3.c b/gcc/testsuite/gcc.dg/struct-ret-3.c
index 4a603cbe681..0be43b6d6bc 100644
--- a/gcc/testsuite/gcc.dg/struct-ret-3.c
+++ b/gcc/testsuite/gcc.dg/struct-ret-3.c
@@ -7,6 +7,13 @@
#include <string.h>
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+
+#if defined(STACK_SIZE) && (STACK_SIZE < 128*1024)
+ #define CHUNK_SIZE 4096
+#else
+ #define CHUNK_SIZE 16384
+#endif
unsigned long ossAlignX(unsigned long i, unsigned long X)
{
@@ -58,31 +65,38 @@ int main(void)
struct stuff
{
- char c0[4096-sizeof(struct XXX)];
+ char c0[CHUNK_SIZE-sizeof(struct XXX)];
struct XXX o;
- char c1[4096*2-sizeof(struct SQLU_DATAPART_0)];
+ char c1[CHUNK_SIZE*2-sizeof(struct SQLU_DATAPART_0)];
struct SQLU_DATAPART_0 dp;
- char c2[4096*2-sizeof(struct SQLU_DICT_INFO_0)];
+ char c2[CHUNK_SIZE*2-sizeof(struct SQLU_DICT_INFO_0)];
struct SQLU_DICT_INFO_0 di;
- char c3[4096];
+ char c3[CHUNK_SIZE];
};
- char buf[sizeof(struct stuff)+4096];
- struct stuff *u = (struct stuff *)ossAlignX((unsigned long)&buf[0], 4096);
+ char buf[sizeof(struct stuff)+CHUNK_SIZE];
+ struct stuff *u
+ = (struct stuff *)ossAlignX((unsigned long)&buf[0], CHUNK_SIZE);
+
+ /* This test assumes system memory page
+ size of CHUNK_SIZE bytes or less. */
+ if (sysconf(_SC_PAGESIZE) > CHUNK_SIZE)
+ return 0;
+
memset(u, 1, sizeof(struct stuff));
u->c1[0] = '\xAA';
u->c2[0] = '\xBB';
u->c3[0] = '\xCC';
- rc = mprotect(u->c1, 4096, PROT_NONE);
+ rc = mprotect(u->c1, CHUNK_SIZE, PROT_NONE);
if (rc == -1)
printf("mprotect:c1: %d: %d(%s)\n", rc, errno, strerror(errno));
- rc = mprotect(u->c2, 4096, PROT_NONE);
+ rc = mprotect(u->c2, CHUNK_SIZE, PROT_NONE);
if (rc == -1)
printf("mprotect:c2: %d: %d(%s)\n", rc, errno, strerror(errno));
- rc = mprotect(u->c3, 4096, PROT_NONE);
+ rc = mprotect(u->c3, CHUNK_SIZE, PROT_NONE);
if (rc == -1)
printf("mprotect:c3: %d: %d(%s)\n", rc, errno, strerror(errno));
@@ -90,9 +104,9 @@ int main(void)
u->dp.pDictRidderInfo = &u->di;
Initialize(&u->o, 0);
- mprotect(u->c1, 4096, PROT_READ|PROT_WRITE);
- mprotect(u->c2, 4096, PROT_READ|PROT_WRITE);
- mprotect(u->c3, 4096, PROT_READ|PROT_WRITE);
+ mprotect(u->c1, CHUNK_SIZE, PROT_READ|PROT_WRITE);
+ mprotect(u->c2, CHUNK_SIZE, PROT_READ|PROT_WRITE);
+ mprotect(u->c3, CHUNK_SIZE, PROT_READ|PROT_WRITE);
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c
index 81c3edfa413..1312a35494b 100644
--- a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c
+++ b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c
@@ -24,8 +24,10 @@ main ()
if (str.a != res)
abort ();
-
- return str.a;
+
+ /* POSIX ignores all but the 8 low-order bits, but other
+ environments may not. */
+ return (str.a & 255);
}
/*--------------------------------------------------------------------------*/
diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c
index f9cb7d58a5d..e17ca56ee8b 100644
--- a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c
+++ b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c
@@ -25,7 +25,9 @@ main ()
if (str.a != res)
abort ();
- return str.a;
+ /* POSIX ignores all but the 8 low-order bits, but other
+ environments may not. */
+ return (str.a & 255);
}
/*--------------------------------------------------------------------------*/
diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_pointer.c b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_pointer.c
index fd562579b35..bd70dfb6375 100644
--- a/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_pointer.c
+++ b/gcc/testsuite/gcc.dg/struct/wo_prof_single_str_pointer.c
@@ -29,7 +29,9 @@ main ()
if (p->a != res)
abort ();
- return p->a;
+ /* POSIX ignores all but the 8 low-order bits, but other
+ environments may not. */
+ return (p->a & 255);
}
/*--------------------------------------------------------------------------*/
diff --git a/gcc/testsuite/gcc.dg/torture/pr38271.c b/gcc/testsuite/gcc.dg/torture/pr38271.c
new file mode 100644
index 00000000000..2c64a9b34a6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr38271.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized" } */
+
+struct xxx {
+ short a;
+ short b;
+ void *c;
+};
+
+void bar(struct xxx);
+
+void foo(struct xxx *p, int i)
+{
+ struct xxx s0 = *p;
+ struct xxx s = s0;
+ if (s.a) i++;
+ bar(s);
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr38774.c b/gcc/testsuite/gcc.dg/torture/pr38774.c
new file mode 100644
index 00000000000..d6d7fcb0ff5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr38774.c
@@ -0,0 +1,16 @@
+/* PR rtl-optimization/38774 */
+/* { dg-do compile } */
+/* { dg-options "" } */
+/* { dg-options "-march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+
+extern int bar (void);
+volatile int g;
+
+int
+foo (void)
+{
+ int a = 1 >= bar ();
+ if ((1 > 9223372036854775807LL - a && 1 - a ? : 1 + a) & 1)
+ return g;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
index 57db5c32399..9868c078df2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
@@ -2,9 +2,8 @@
Target is restricted to x86 type architectures, so that we may
assume something about memory addressing modes. */
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-fpic" "-fPIC" } { "" } } */
-/* { dg-options "-O1 -fno-pic -fno-PIC -fdump-tree-optimized" } */
+/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && nonpic } } } */
+/* { dg-options "-O1 -fdump-tree-optimized" } */
int arr_base[100];
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c b/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c
index 0e1a02a418b..233c93dac38 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-require-weak "" } */
+/* { dg-require-weak-override "" } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
void __attribute__((weak)) func(void)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr32044.c b/gcc/testsuite/gcc.dg/tree-ssa/pr32044.c
new file mode 100644
index 00000000000..0c1a58206f4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr32044.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-empty -fdump-tree-final_cleanup" } */
+
+int foo (int n)
+{
+ while (n >= 45)
+ n -= 45;
+
+ return n;
+}
+
+int bar (int n)
+{
+ while (n >= 64)
+ n -= 64;
+
+ return n;
+}
+
+int bla (int n)
+{
+ int i = 0;
+
+ while (n >= 45)
+ {
+ i++;
+ n -= 45;
+ }
+
+ return i;
+}
+
+int baz (int n)
+{
+ int i = 0;
+
+ while (n >= 64)
+ {
+ i++;
+ n -= 64;
+ }
+
+ return i;
+}
+
+/* The loops computing division/modulo by 64 should be eliminated. */
+/* { dg-final { scan-tree-dump-times "Removing empty loop" 2 "empty" } } */
+
+/* There should be no division/modulo in the final dump (division and modulo
+ by 64 are done using bit operations). */
+/* { dg-final { scan-tree-dump-times "/" 0 "final_cleanup" } } */
+/* { dg-final { scan-tree-dump-times "%" 0 "final_cleanup" } } */
+
+/* { dg-final { cleanup-tree-dump "empty" } } */
+/* { dg-final { cleanup-tree-dump "final_cleanup" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr38385.c b/gcc/testsuite/gcc.dg/tree-ssa/pr38385.c
new file mode 100644
index 00000000000..a49c93e2610
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr38385.c
@@ -0,0 +1,124 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-loop-distribution" } */
+
+struct rtx_def
+{
+ int a;
+};
+
+typedef struct rtx_def *rtx;
+
+struct rd {
+ int alternative_enabled_p[100];
+ rtx operand[100];
+ int n_operands;
+};
+
+rtx this_insn;
+int n_reloads;
+int n_replacements;
+int n_earlyclobbers;
+int replace_reloads;
+int hard_regs_live_known;
+short* static_reload_reg_p;
+struct rd recog_data;
+
+int
+find_reloads (rtx insn, int replace, int ind_levels, int live_known,
+ short *reload_reg_p)
+{
+ int i, j;
+ int noperands = replace;
+
+ int no_input_reloads = 0;
+ int n_alternatives = replace;
+ char this_alternative_match_win[30];
+ char this_alternative_win[30];
+ char this_alternative_earlyclobber[30];
+ int this_alternative_matches[30];
+ int goal_alternative[30];
+ int this_alternative_number;
+
+ char goal_alternative_match_win[30];
+ char goal_alternative_win[30];
+ int best;
+
+ int operand_mode[30];
+ int retval = 0;
+
+ for (this_alternative_number = 0;
+ this_alternative_number < n_alternatives;
+ this_alternative_number++)
+ {
+
+ int losers = 0;
+ int bad = 0;
+
+ if (!recog_data.alternative_enabled_p[this_alternative_number])
+ {
+ int i;
+
+ for (i = 0; i < recog_data.n_operands; i++)
+ ;
+
+ continue;
+ }
+
+ for (i = 0; i < noperands; i++)
+ if (this_alternative_earlyclobber[i]
+ && (this_alternative_win[i] || this_alternative_match_win[i]))
+ {
+ if (j != noperands)
+ {
+ losers++;
+
+ for (j = 0; j < noperands; j++)
+ if (this_alternative_matches[j] == i
+ && this_alternative_match_win[j])
+ {
+ this_alternative_win[j] = 0;
+ this_alternative_match_win[j] = 0;
+ losers++;
+ }
+ }
+ }
+
+ if (losers == 0)
+ {
+ for (i = 0; i < noperands; i++)
+ {
+ goal_alternative_win[i] = 0;
+ goal_alternative_match_win[i] = 0;
+ }
+
+ goto finish;
+ }
+
+ if (! bad && best > losers)
+ {
+ for (i = 0; i < noperands; i++)
+ {
+ goal_alternative[i] = 0;
+ goal_alternative_win[i] = 0;
+ }
+ }
+ }
+
+
+ finish:
+
+ for (i = 0; i < noperands; i++)
+ if (! goal_alternative_win[i])
+ {
+ rtx op = recog_data.operand[i];
+ int mode = operand_mode[i];
+
+ if (((ix86_preferred_reload_class ((op), (goal_alternative[i])) == 2)
+ || no_input_reloads)
+ && mode != 0)
+ {}
+ }
+
+ return retval;
+}
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr38533.c b/gcc/testsuite/gcc.dg/tree-ssa/pr38533.c
new file mode 100644
index 00000000000..e7872276047
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr38533.c
@@ -0,0 +1,30 @@
+/* PR middle-end/38533 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-reassoc1" } */
+
+#define A asm volatile ("" : "=r" (f) : "0" (0)); e |= f;
+#define B A A A A A A A A A A A
+#define C B B B B B B B B B B B
+
+int
+foo (void)
+{
+ int e = 0, f;
+ C C B B B B B A A A A A A
+ return e;
+}
+
+int
+main (void)
+{
+ if (foo ())
+ __builtin_abort ();
+ return 0;
+}
+
+/* Verify that reassoc hasn't increased register pressure too much
+ by moving all bitwise ors after the last __asm__. There should
+ be exactly 2 (first) __asm__ stmts with no intervening stmts,
+ all others should have some bitwise or in between. */
+/* { dg-final { scan-tree-dump-times "__asm__\[^;\n]*;\n *__asm__" 1 "reassoc1"} } */
+/* { dg-final { cleanup-tree-dump "reassoc1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
index cfbb9c97b16..a27f2d6c023 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
@@ -4,6 +4,8 @@
union loc { unsigned reg; signed offset; };
void __frame_state_for (volatile char *state_in, int x)
{
+ /* We should move all the loads out of this loop. Right now, we only
+ move one. It takes two insertions because we insert a cast. */
union loc fs;
int reg;
for (;;) {
@@ -16,5 +18,5 @@ void __frame_state_for (volatile char *state_in, int x)
}
}
-/* { dg-final { scan-tree-dump-not "Insertions:" "pre" } } */
+/* { dg-final { scan-tree-dump "Insertions: 2" "pre" } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
new file mode 100644
index 00000000000..76c7850fa10
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
@@ -0,0 +1,28 @@
+/* { dg-require-effective-target vect_float } */
+/* { dg-do compile } */
+
+#include <stdlib.h>
+#include "../../tree-vect.h"
+
+__attribute__ ((noinline)) void
+ggSpectrum_Set8(float * data, float d)
+{
+ int i;
+
+ for (i = 0; i < 8; i++)
+ data[i] = d;
+}
+
+__attribute__ ((noinline)) void
+ggSpectrum_Set20(float * data, float d)
+{
+ int i;
+
+ for (i = 0; i < 20; i++)
+ data[i] = d;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorization not profitable" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
index 752c4f61390..5eb01ebba86 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
@@ -114,7 +114,7 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" {target { vect_strided && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" {target { vect_strided && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {target { vect_strided && vect_int_mult } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr38529.c b/gcc/testsuite/gcc.dg/vect/pr38529.c
new file mode 100644
index 00000000000..496aa43f39b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr38529.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_float } */
+
+float a[4];
+
+void foo()
+{
+ int i, j;
+
+ for (i = 0; i < 4; ++i)
+ for (j = 0; j < 17; ++j)
+ a[i] = 0;
+}
+
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
+
diff --git a/gcc/testsuite/gcc.dg/vect/vect-105.c b/gcc/testsuite/gcc.dg/vect/vect-105.c
index eb21b160cff..bbf42af897f 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-105.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-105.c
@@ -16,6 +16,8 @@ static int a[N][N] = {{1,2,3,11},{4,5,6,12},{7,8,9,13},{34,45,67,83}};
static int b[N][N] = {{17,28,15,23},{0,2,3,24},{4,31,82,25},{29,31,432,256}};
static int c[N][N] = {{1,2,3,11},{4,9,13,34},{45,67,83,13},{34,45,67,83}};
+volatile int y;
+
__attribute__ ((noinline))
int main1 (int x) {
int i,j;
@@ -28,7 +30,9 @@ int main1 (int x) {
{
p->a[i][j] = a[i][j];
p->b[i][j] = b[i][j];
- if (x == 135)
+ /* Because Y is volatile, the compiler cannot move this check out
+ of the loop. */
+ if (y)
abort (); /* to avoid vectorization */
}
}
diff --git a/gcc/testsuite/gcc.dg/vector-3.c b/gcc/testsuite/gcc.dg/vector-3.c
new file mode 100644
index 00000000000..3f86698b83f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vector-3.c
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+
+/* Check that we error out when using vector_size on the bool type. */
+
+__attribute__((vector_size(16) )) _Bool a; /* { dg-error "" } */
diff --git a/gcc/testsuite/gcc.target/arm/eabi1.c b/gcc/testsuite/gcc.target/arm/eabi1.c
index 06af6710299..e88ba021fdc 100644
--- a/gcc/testsuite/gcc.target/arm/eabi1.c
+++ b/gcc/testsuite/gcc.target/arm/eabi1.c
@@ -75,10 +75,10 @@ extern int __aeabi_lcmp (long long, long long);
extern int __aeabi_ulcmp (unsigned long long, unsigned long long);
extern int __aeabi_idiv (int, int);
extern unsigned int __aeabi_uidiv (unsigned int, unsigned int);
-extern int __eabi_uread4 (void *);
-extern int __eabi_uwrite4 (int, void *);
-extern long long __eabi_uread8 (void *);
-extern long long __eabi_uwrite8 (long long, void *);
+extern int __aeabi_uread4 (void *);
+extern int __aeabi_uwrite4 (int, void *);
+extern long long __aeabi_uread8 (void *);
+extern long long __aeabi_uwrite8 (long long, void *);
#define eq(a, b, type, abs, epsilon, format) \
{ \
diff --git a/gcc/testsuite/gcc.target/arm/long-calls-1.c b/gcc/testsuite/gcc.target/arm/long-calls-1.c
index 7c2e7fe1c71..587f6d6f25b 100644
--- a/gcc/testsuite/gcc.target/arm/long-calls-1.c
+++ b/gcc/testsuite/gcc.target/arm/long-calls-1.c
@@ -38,8 +38,14 @@ DO_TESTS_CALL_ATTR (weak_, EXTERN_CALL, weak)
DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
-/* Calls to remote_* should honor the call type sttribute,
- with "short" being the default. */
+/* Calls to remote_* should honor the call type attribute,
+ with "short" being the default.
+
+ In the regular expressions below:
+
+ * We allow both "b" and "bl" in some cases to allow for the
+ possibility of sibling calls. As of this writing, GCC does not
+ use sibling calls in Thumb-2 mode. */
/* { dg-final { scan-assembler "\tbl\tremote_n1\n" } } */
/* { dg-final { scan-assembler "\tbl\tremote_n2\n" } } */
@@ -59,46 +65,46 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
should be short. */
/* { dg-final { scan-assembler "\tbl\tstrong_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s3\n" } } */
-/* Calls to weak_* should honor the call type sttribute,
+/* Calls to weak_* should honor the call type attribute,
with "short" being the default. */
/* { dg-final { scan-assembler "\tbl\tweak_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n1\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n2\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n3\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tweak_l1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tweak_l2\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tweak_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s3\n" } } */
/* Calls to static_*2 calls should honor the call type attribute,
@@ -106,21 +112,21 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
should be short. */
/* { dg-final { scan-assembler "\tbl\tstatic_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s3\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/long-calls-2.c b/gcc/testsuite/gcc.target/arm/long-calls-2.c
index c63f8abec3b..8ce2404c1f7 100644
--- a/gcc/testsuite/gcc.target/arm/long-calls-2.c
+++ b/gcc/testsuite/gcc.target/arm/long-calls-2.c
@@ -38,8 +38,14 @@ DO_TESTS_CALL_ATTR (weak_, EXTERN_CALL, weak)
DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
-/* Calls to remote_* should honor the call type sttribute,
- with "long" being the default. */
+/* Calls to remote_* should honor the call type attribute,
+ with "long" being the default.
+
+ In the regular expressions below:
+
+ * We allow both "b" and "bl" in some cases to allow for the
+ possibility of sibling calls. As of this writing, GCC does not
+ use sibling calls in Thumb-2 mode. */
/* { dg-final { scan-assembler-not "\tbl\tremote_n1\n" } } */
/* { dg-final { scan-assembler-not "\tbl\tremote_n2\n" } } */
@@ -59,26 +65,26 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
should be short. */
/* { dg-final { scan-assembler "\tbl\tstrong_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n1\n" } } */
/* { dg-final { scan-assembler-not "\tbl\tstrong_n2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstrong_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s3\n" } } */
-/* Calls to weak_* should honor the call type sttribute,
+/* Calls to weak_* should honor the call type attribute,
with "long" being the default. */
/* { dg-final { scan-assembler-not "\tbl?\tweak_n1\n" } } */
@@ -90,11 +96,11 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
/* { dg-final { scan-assembler-not "\tbl?\tweak_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tweak_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s3\n" } } */
/* Calls to static_*2 calls should honor the call type attribute,
@@ -102,20 +108,20 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
should be short. */
/* { dg-final { scan-assembler "\tbl\tstatic_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tstatic_n2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l1\n" } } */
/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l3\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s1\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s2\n" } } */
/* { dg-final { scan-assembler "\tbl\tstatic_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s3\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/long-calls-3.c b/gcc/testsuite/gcc.target/arm/long-calls-3.c
index 92817156370..bd1891c008b 100644
--- a/gcc/testsuite/gcc.target/arm/long-calls-3.c
+++ b/gcc/testsuite/gcc.target/arm/long-calls-3.c
@@ -39,79 +39,88 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
/* Calls to remote_*, strong_* and weak_* should honor the call type
- sttribute, with "short" being the default. */
+ attribute, with "short" being the default.
-/* { dg-final { scan-assembler "\tbl\tremote_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_n3\\(PLT\\)\n" } } */
+ In the regular expressions below:
+
+ * The PLT marker is optional, even though we are using -fpic,
+ because it is not used (or required) on some targets.
-/* { dg-final { scan-assembler-not "\tbl\tremote_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_l3\\(PLT\\)\n" } } */
+ * We allow both "b" and "bl" in some cases to allow for the
+ possibility of sibling calls. As of this writing, GCC does not
+ use sibling calls in Thumb-2 mode. */
-/* { dg-final { scan-assembler "\tbl\tremote_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_n3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tstrong_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tstrong_l3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tstrong_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tstrong_l3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_n3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n3(\\(PLT\\))?\n" } } */
+
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l3(\\(PLT\\))?\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tweak_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_s3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s3(\\(PLT\\))?\n" } } */
/* Calls to static_*2 calls should honor the call type attribute,
with "short" being the default. Calls to other static_* functions
should be short. */
-/* { dg-final { scan-assembler "\tbl\tstatic_n1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_n2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_n3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n3(\\(PLT\\))\n" } } */
-
-/* { dg-final { scan-assembler "\tbl\tstatic_l1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_l3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l3(\\(PLT\\))\n" } } */
-
-/* { dg-final { scan-assembler "\tbl\tstatic_s1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_s2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_s3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s3(\\(PLT\\))\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_n1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_n2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_n3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n3((\\(PLT\\))?)\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tstatic_l1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_l3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l3((\\(PLT\\))?)\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tstatic_s1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_s2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_s3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s3((\\(PLT\\))?)\n" } } */
diff --git a/gcc/testsuite/gcc.target/arm/long-calls-4.c b/gcc/testsuite/gcc.target/arm/long-calls-4.c
index facf85c73b6..dc184b8f8be 100644
--- a/gcc/testsuite/gcc.target/arm/long-calls-4.c
+++ b/gcc/testsuite/gcc.target/arm/long-calls-4.c
@@ -39,72 +39,81 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
/* Calls to remote_*, strong_* and weak_* should honor the call type
- sttribute, with "long" being the default. */
+ attribute, with "long" being the default.
-/* { dg-final { scan-assembler-not "\tbl\tremote_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_n3\\(PLT\\)\n" } } */
+ In the regular expressions below:
+
+ * The PLT marker is optional, even though we are using -fpic,
+ because it is not used (or required) on some targets.
-/* { dg-final { scan-assembler-not "\tbl\tremote_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl\tremote_l3\\(PLT\\)\n" } } */
+ * We allow both "b" and "bl" in some cases to allow for the
+ possibility of sibling calls. As of this writing, GCC does not
+ use sibling calls in Thumb-2 mode. */
-/* { dg-final { scan-assembler "\tbl\tremote_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tremote_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl\tremote_l3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_n3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tremote_s3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstrong_l3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstrong_s3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_n3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstrong_l3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_n1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_n2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_n3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstrong_s3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s3(\\(PLT\\))?\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tweak_l3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s1\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s2\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tbl\tweak_s3\\(PLT\\)\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s3\\(PLT\\)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_n1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_n2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_n3(\\(PLT\\))?\n" } } */
+
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tweak_l3(\\(PLT\\))?\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tweak_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s1(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s2(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl\tweak_s3(\\(PLT\\))?\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s3(\\(PLT\\))?\n" } } */
/* Calls to static_*2 calls should honor the call type attribute,
with "long" being the default. Calls to other static_* functions
should be short. */
-/* { dg-final { scan-assembler "\tbl\tstatic_n1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstatic_n2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_n3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n3(\\(PLT\\))\n" } } */
-
-/* { dg-final { scan-assembler "\tbl\tstatic_l1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_l3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l3(\\(PLT\\))\n" } } */
-
-/* { dg-final { scan-assembler "\tbl\tstatic_s1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s1(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_s2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s2(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tbl\tstatic_s3(\\(PLT\\))\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s3(\\(PLT\\))\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_n1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstatic_n2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_n3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n3((\\(PLT\\))?)\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tstatic_l1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler-not "\tbl?\tstatic_l2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_l3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l3((\\(PLT\\))?)\n" } } */
+
+/* { dg-final { scan-assembler "\tbl\tstatic_s1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s1((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_s2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s2((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl\tstatic_s3((\\(PLT\\))?)\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s3((\\(PLT\\))?)\n" } } */
diff --git a/gcc/testsuite/gcc.target/i386/avx-2.c b/gcc/testsuite/gcc.target/i386/avx-2.c
index 62f6538bbe6..e0d9c811f94 100644
--- a/gcc/testsuite/gcc.target/i386/avx-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx-2.c
@@ -78,10 +78,6 @@ test_1 (_mm_permute_pd, __m128d, __m128d, 1)
test_1 (_mm256_permute_pd, __m256d, __m256d, 1)
test_1 (_mm_permute_ps, __m128, __m128, 1)
test_1 (_mm256_permute_ps, __m256, __m256, 1)
-test_3 (_mm_permute2_pd, __m128d, __m128d, __m128d, __m128d, 1)
-test_3 (_mm256_permute2_pd, __m256d, __m256d, __m256d, __m256d, 1)
-test_3 (_mm_permute2_ps, __m128, __m128, __m128, __m128, 1)
-test_3 (_mm256_permute2_ps, __m256, __m256, __m256, __m256, 1)
test_2 (_mm256_permute2f128_pd, __m256d, __m256d, __m256d, 1)
test_2 (_mm256_permute2f128_ps, __m256, __m256, __m256, 1)
test_2 (_mm256_permute2f128_si256, __m256i, __m256i, __m256i, 1)
diff --git a/gcc/testsuite/gcc.target/i386/avx-vmovntdq-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vmovntdq-256-1.c
new file mode 100644
index 00000000000..5caf34e6da0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx-vmovntdq-256-1.c
@@ -0,0 +1,27 @@
+/* { dg-do run } */
+/* { dg-require-effective-target avx } */
+/* { dg-options "-O2 -mavx" } */
+
+#include "avx-check.h"
+
+static void
+__attribute__((noinline))
+test (__m256i *p, __m256i s)
+{
+ return _mm256_stream_si256 (p, s);
+}
+
+static void
+avx_test (void)
+{
+ union256i_d u;
+ int e[8] __attribute__ ((aligned(32))) = {1,1,1,1,1,1,1,1};
+
+ u.x = _mm256_set_epi32 (2434, 6845, 3789, 4683,
+ 4623, 2236, 8295, 1084);
+
+ test ((__m256i *)e, u.x);
+
+ if (check_union256i_d (u, e))
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx-vmovntpd-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vmovntpd-256-1.c
new file mode 100644
index 00000000000..f17deafafc3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx-vmovntpd-256-1.c
@@ -0,0 +1,25 @@
+/* { dg-do run } */
+/* { dg-require-effective-target avx } */
+/* { dg-options "-O2 -mavx" } */
+
+#include "avx-check.h"
+
+static void
+__attribute__((noinline))
+test (double *p, __m256d s)
+{
+ return _mm256_stream_pd (p, s);
+}
+
+static void
+avx_test (void)
+{
+ union256d u;
+ double e[4] __attribute__ ((aligned(32))) = {1,1,1,1};
+
+ u.x = _mm256_set_pd (2134.3343, 1234.635654, -13443.35, 43.35345);
+ test (e, u.x);
+
+ if (check_union256d (u, e))
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx-vmovntps-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vmovntps-256-1.c
new file mode 100644
index 00000000000..9f79403f4f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx-vmovntps-256-1.c
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+/* { dg-require-effective-target avx } */
+/* { dg-options "-O2 -mavx" } */
+
+#include "avx-check.h"
+
+static void
+__attribute__((noinline))
+test (float *p, __m256 s)
+{
+ return _mm256_stream_ps (p, s);
+}
+
+static void
+avx_test (void)
+{
+ union256 u;
+ float e[8] __attribute__ ((aligned(32)));
+
+ u.x = _mm256_set_ps (24.43, 68.346, -43.35, 546.46,
+ 46.9, -2.78, 82.9, -0.4);
+ test (e, u.x);
+
+ if (check_union256 (u, e))
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-1.c b/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-1.c
deleted file mode 100644
index 04086246b4f..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-1.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx" } */
-
-#include "avx-check.h"
-
-#ifndef ZERO_MATCH
-#define ZERO_MATCH 2
-#endif
-
-static double
-select2dp(double *src1, double *src2, long long sel)
-{
- double tmp = 0.0;
-
- if ((sel & 0x3) == 0) tmp = src1[0];
- if ((sel & 0x3) == 1) tmp = src1[1];
- if ((sel & 0x3) == 2) tmp = src2[0];
- if ((sel & 0x3) == 3) tmp = src2[1];
-
- return tmp;
-}
-
-static double
-sel_and_condzerodp(double *src1, double *src2, long long sel, int imm8)
-{
- double tmp;
-
- tmp = select2dp(src1, src2, sel & 0x3);
-
- if (((imm8 & 0x3) == 2) && ((sel & 0x4) == 0x4)) tmp = 0;
- if (((imm8 & 0x3) == 3) && ((sel & 0x4) == 0x0)) tmp = 0;
-
- return tmp;
-}
-
-void static
-avx_test ()
-{
- union128d s1, s2, u;
- union128i_q s3;
- double e[2];
-
- s1.x = _mm_set_pd (1, 2);
- s2.x = _mm_set_pd (3, 4);
- s3.x = _mm_set_epi64x (1, 2);
- u.x = _mm_permute2_pd(s1.x, s2.x, s3.x, ZERO_MATCH);
-
- e[0] = sel_and_condzerodp (s1.a, s2.a, (s3.a[0] & 0xe)>>1, ZERO_MATCH);
- e[1] = sel_and_condzerodp (s1.a, s2.a, (s3.a[1] & 0xe)>>1, ZERO_MATCH);
-
- if (check_union128d (u, e))
- abort ();
-}
-
diff --git a/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-256-1.c
deleted file mode 100644
index d9a94ae6b9d..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx-vpermil2pd-256-1.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx" } */
-
-#include "avx-check.h"
-
-#ifndef ZERO_MATCH
-#define ZERO_MATCH 1
-#endif
-
-static double
-select2dp(double *src1, double *src2, long long sel)
-{
- double tmp = 3.414;
-
- if ((sel & 0x3) == 0) tmp = src1[0];
- if ((sel & 0x3) == 1) tmp = src1[1];
- if ((sel & 0x3) == 2) tmp = src2[0];
- if ((sel & 0x3) == 3) tmp = src2[1];
-
- return tmp;
-}
-
-static double
-sel_and_condzerodp(double *src1, double *src2, long long sel, int imm8)
-{
- double tmp;
-
- tmp = select2dp(src1, src2, sel);
-
- if (((imm8 & 0x3) == 2) && ((sel & 0x4) == 0x4)) tmp = 0;
- if (((imm8 & 0x3) == 3) && ((sel & 0x4) == 0x0)) tmp = 0;
-
- return tmp;
-}
-
-void static
-avx_test ()
-{
- union256d u, s1, s2;
- double e[4] = {0.0};
- union256i_q s3;
-
- s1.x = _mm256_set_pd (1, 2, 3, 4);
- s2.x = _mm256_set_pd (5, 6, 7, 8);
- s3.x = _mm256_set_epi64x (0, 1, 2, 3);
- u.x = _mm256_permute2_pd(s1.x, s2.x, s3.x, ZERO_MATCH);
-
- e[0] = sel_and_condzerodp (s1.a, s2.a, (s3.a[0] & 0xe)>>1, ZERO_MATCH);
- e[1] = sel_and_condzerodp (s1.a, s2.a, (s3.a[1] & 0xe)>>1, ZERO_MATCH);
- e[2] = sel_and_condzerodp (s1.a + 2, s2.a + 2, (s3.a[2] & 0xe)>>1, ZERO_MATCH);
- e[3] = sel_and_condzerodp (s1.a + 2, s2.a + 2, (s3.a[3] & 0xe)>>1, ZERO_MATCH);
-
- if (check_union256d (u, e))
- abort ();
-}
-
diff --git a/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-1.c b/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-1.c
deleted file mode 100644
index c04600e92fb..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-1.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx" } */
-
-#include "avx-check.h"
-
-#ifndef ZERO_MATCH
-#define ZERO_MATCH 1
-#endif
-
-static float
-select2sp(float *src1, float *src2, int sel)
-{
- float tmp;
-
- if ((sel & 0x7) == 0) tmp = src1[0];
- if ((sel & 0x7) == 1) tmp = src1[1];
- if ((sel & 0x7) == 2) tmp = src1[2];
- if ((sel & 0x7) == 3) tmp = src1[3];
- if ((sel & 0x7) == 4) tmp = src2[0];
- if ((sel & 0x7) == 5) tmp = src2[1];
- if ((sel & 0x7) == 6) tmp = src2[2];
- if ((sel & 0x7) == 7) tmp = src2[3];
-
- return tmp;
-}
-static float
-sel_and_condzerosp(float *src1, float *src2, int sel, int imm8)
-{
- float tmp;
-
- tmp = select2sp(src1, src2, sel & 0x7);
-
- if (((imm8 & 0x3) == 2) && ((sel & 0x8) == 0x8)) tmp = 0;
- if (((imm8 & 0x3) == 3) && ((sel & 0x8) == 0x0)) tmp = 0;
-
- return tmp;
-}
-
-void static
-avx_test ()
-{
- int i;
- union128 source1, source2, u;
- union128i_d source3;
- float s1[4] = {1, 2, 3, 4};
- float s2[4] = {5, 6, 7, 8};
- int s3[4] = {0, 1, 0, 1};
- float e[4];
-
- source1.x = _mm_loadu_ps(s1);
- source2.x = _mm_loadu_ps(s2);
- source3.x = _mm_loadu_si128((__m128i*) s3);
- u.x = _mm_permute2_ps(source1.x, source2.x, source3.x, ZERO_MATCH);
-
- for (i = 0; i < 4; ++i) {
- e[i] = sel_and_condzerosp(&s1[i & 0x4], &s2[i & 0x4], s3[i] & 0xf, ZERO_MATCH & 0x3);
- }
-
- if (check_union128 (u, e))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-256-1.c
deleted file mode 100644
index 6ee58038673..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx-vpermil2ps-256-1.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx" } */
-
-#include "avx-check.h"
-
-#ifndef ZERO_MATCH
-#define ZERO_MATCH 3
-#endif
-
-static float
-select2sp(float *src1, float *src2, int sel)
-{
- float tmp;
-
- if ((sel & 0x7) == 0) tmp = src1[0];
- if ((sel & 0x7) == 1) tmp = src1[1];
- if ((sel & 0x7) == 2) tmp = src1[2];
- if ((sel & 0x7) == 3) tmp = src1[3];
- if ((sel & 0x7) == 4) tmp = src2[0];
- if ((sel & 0x7) == 5) tmp = src2[1];
- if ((sel & 0x7) == 6) tmp = src2[2];
- if ((sel & 0x7) == 7) tmp = src2[3];
-
- return tmp;
-}
-static float
-sel_and_condzerosp(float *src1, float *src2, int sel, int imm8)
-{
- float tmp;
-
- tmp = select2sp(src1, src2, sel & 0x7);
-
- if (((imm8 & 0x3) == 2) && ((sel & 0x8) == 0x8)) tmp = 0;
- if (((imm8 & 0x3) == 3) && ((sel & 0x8) == 0x0)) tmp = 0;
-
- return tmp;
-}
-
-void static
-avx_test ()
-{
- int i;
- union256 source1, source2, u;
- union256i_d source3;
- float s1[8]={1, 2, 3, 4, 5, 6, 7, 8};
- float s2[8]={9, 10, 11, 12, 13, 14, 15, 16};
- int s3[8]={11, 2, 3, 15, 5, 12, 7, 8};
- float e[8];
-
- source1.x = _mm256_loadu_ps(s1);
- source2.x = _mm256_loadu_ps(s2);
- source3.x = _mm256_loadu_si256((__m256i*) s3);
- u.x = _mm256_permute2_ps(source1.x, source2.x, source3.x, ZERO_MATCH);
-
- for (i = 0; i < 8; ++i) {
- e[i] = sel_and_condzerosp(&s1[i & 0x4], &s2[i & 0x4], s3[i] & 0xf, ZERO_MATCH & 0x3);
- }
-
- if (check_union256(u, e))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr37843-3.c b/gcc/testsuite/gcc.target/i386/pr37843-3.c
index 505ff879023..a475e4143ff 100644
--- a/gcc/testsuite/gcc.target/i386/pr37843-3.c
+++ b/gcc/testsuite/gcc.target/i386/pr37843-3.c
@@ -1,13 +1,15 @@
/* Test for stack alignment with sibcall optimization. */
-/* { dg-do compile { target { *-*-linux* && { ilp32 && nonpic } } } } */
-/* { dg-options "-O2 -std=gnu99 -mpreferred-stack-boundary=4 -mincoming-stack-boundary=2" } */
+/* { dg-do compile { target { ilp32 && nonpic } } } */
+/* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
/* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
/* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
/* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
-extern int foo (_Decimal128);
+#include <emmintrin.h>
-int bar (_Decimal128 x)
+extern int foo (__m128, __m128, __m128, __m128);
+
+int bar (__m128 x1, __m128 x2, __m128 x3, __m128 x4)
{
- return foo(x);
+ return foo (x1, x2, x3, x4);
}
diff --git a/gcc/testsuite/gcc.target/i386/sse-10.c b/gcc/testsuite/gcc.target/i386/sse-10.c
index b5bc8f66b44..5cf0714f07b 100644
--- a/gcc/testsuite/gcc.target/i386/sse-10.c
+++ b/gcc/testsuite/gcc.target/i386/sse-10.c
@@ -1,6 +1,6 @@
/* PR 17930 */
/* { dg-do run } */
-/* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer" } */
+/* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" } */
/* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
#include "sse2-check.h"
diff --git a/gcc/testsuite/gcc.target/i386/sse-12.c b/gcc/testsuite/gcc.target/i386/sse-12.c
index ef4dd6e84e0..5e2173a8f6e 100644
--- a/gcc/testsuite/gcc.target/i386/sse-12.c
+++ b/gcc/testsuite/gcc.target/i386/sse-12.c
@@ -1,10 +1,8 @@
-/* Test that {,x,e,p,t,s,a}mmintrin.h, mm3dnow.h and mm_malloc.h are
+/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h and mm_malloc.h are
usable with -O -std=c89 -pedantic-errors. */
/* { dg-do compile } */
-/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -m3dnow -msse4 -msse5" } */
+/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
-#include <bmmintrin.h>
-#include <smmintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
int dummy;
diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c b/gcc/testsuite/gcc.target/i386/sse-13.c
index e3deeca3549..8bfb9f866b4 100644
--- a/gcc/testsuite/gcc.target/i386/sse-13.c
+++ b/gcc/testsuite/gcc.target/i386/sse-13.c
@@ -1,10 +1,10 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
+/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
#include <mm_malloc.h>
/* Test that the intrinsics compile with optimization. All of them are
- defined as inline functions in {,x,e,p,t,s,w,a,b}mmintrin.h and mm3dnow.h
+ defined as inline functions in {,x,e,p,t,s,w,a,b,i}mmintrin.h and mm3dnow.h
that reference the proper builtin functions. Defining away "extern" and
"__inline" results in all of them being compiled as proper functions. */
@@ -17,6 +17,38 @@
#define __builtin_ia32_extrqi(X, I, L) __builtin_ia32_extrqi(X, 1, 1)
#define __builtin_ia32_insertqi(X, Y, I, L) __builtin_ia32_insertqi(X, Y, 1, 1)
+/* immintrin.h */
+#define __builtin_ia32_blendpd256(X, Y, M) __builtin_ia32_blendpd256(X, Y, 1)
+#define __builtin_ia32_blendps256(X, Y, M) __builtin_ia32_blendps256(X, Y, 1)
+#define __builtin_ia32_dpps256(X, Y, M) __builtin_ia32_dpps256(X, Y, 1)
+#define __builtin_ia32_shufpd256(X, Y, M) __builtin_ia32_shufpd256(X, Y, 1)
+#define __builtin_ia32_shufps256(X, Y, M) __builtin_ia32_shufps256(X, Y, 1)
+#define __builtin_ia32_cmpsd(X, Y, O) __builtin_ia32_cmpsd(X, Y, 1)
+#define __builtin_ia32_cmpss(X, Y, O) __builtin_ia32_cmpss(X, Y, 1)
+#define __builtin_ia32_cmppd(X, Y, O) __builtin_ia32_cmppd(X, Y, 1)
+#define __builtin_ia32_cmpps(X, Y, O) __builtin_ia32_cmpps(X, Y, 1)
+#define __builtin_ia32_cmppd256(X, Y, O) __builtin_ia32_cmppd256(X, Y, 1)
+#define __builtin_ia32_cmpps256(X, Y, O) __builtin_ia32_cmpps256(X, Y, 1)
+#define __builtin_ia32_vextractf128_pd256(X, N) __builtin_ia32_vextractf128_pd256(X, 1)
+#define __builtin_ia32_vextractf128_ps256(X, N) __builtin_ia32_vextractf128_ps256(X, 1)
+#define __builtin_ia32_vextractf128_si256(X, N) __builtin_ia32_vextractf128_si256(X, 1)
+#define __builtin_ia32_vpermilpd(X, N) __builtin_ia32_vpermilpd(X, 1)
+#define __builtin_ia32_vpermilpd256(X, N) __builtin_ia32_vpermilpd256(X, 1)
+#define __builtin_ia32_vpermilps(X, N) __builtin_ia32_vpermilps(X, 1)
+#define __builtin_ia32_vpermilps256(X, N) __builtin_ia32_vpermilps256(X, 1)
+#define __builtin_ia32_vpermil2pd(X, Y, C, I) __builtin_ia32_vpermil2pd(X, Y, C, 1)
+#define __builtin_ia32_vpermil2pd256(X, Y, C, I) __builtin_ia32_vpermil2pd256(X, Y, C, 1)
+#define __builtin_ia32_vpermil2ps(X, Y, C, I) __builtin_ia32_vpermil2ps(X, Y, C, 1)
+#define __builtin_ia32_vpermil2ps256(X, Y, C, I) __builtin_ia32_vpermil2ps256(X, Y, C, 1)
+#define __builtin_ia32_vperm2f128_pd256(X, Y, C) __builtin_ia32_vperm2f128_pd256(X, Y, 1)
+#define __builtin_ia32_vperm2f128_ps256(X, Y, C) __builtin_ia32_vperm2f128_ps256(X, Y, 1)
+#define __builtin_ia32_vperm2f128_si256(X, Y, C) __builtin_ia32_vperm2f128_si256(X, Y, 1)
+#define __builtin_ia32_vinsertf128_pd256(X, Y, C) __builtin_ia32_vinsertf128_pd256(X, Y, 1)
+#define __builtin_ia32_vinsertf128_ps256(X, Y, C) __builtin_ia32_vinsertf128_ps256(X, Y, 1)
+#define __builtin_ia32_vinsertf128_si256(X, Y, C) __builtin_ia32_vinsertf128_si256(X, Y, 1)
+#define __builtin_ia32_roundpd256(V, M) __builtin_ia32_roundpd256(V, 1)
+#define __builtin_ia32_roundps256(V, M) __builtin_ia32_roundps256(V, 1)
+
/* wmmintrin.h */
#define __builtin_ia32_aeskeygenassist128(X, C) __builtin_ia32_aeskeygenassist128(X, 1)
#define __builtin_ia32_pclmulqdq128(X, Y, I) __builtin_ia32_pclmulqdq128(X, Y, 1)
@@ -100,7 +132,4 @@
#define __builtin_ia32_protdi(A, B) __builtin_ia32_protdi(A,1)
#define __builtin_ia32_protqi(A, B) __builtin_ia32_protqi(A,1)
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <smmintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c b/gcc/testsuite/gcc.target/i386/sse-14.c
index 35db725def8..67da6608a1e 100644
--- a/gcc/testsuite/gcc.target/i386/sse-14.c
+++ b/gcc/testsuite/gcc.target/i386/sse-14.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
+/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -m3dnow -mavx -msse5 -maes -mpclmul" } */
#include <mm_malloc.h>
@@ -11,10 +11,7 @@
#define extern
#define __inline
-#include <wmmintrin.h>
-#include <bmmintrin.h>
-#include <smmintrin.h>
-#include <mm3dnow.h>
+#include <x86intrin.h>
#define _CONCAT(x,y) x ## y
@@ -34,6 +31,11 @@
type _CONCAT(_,func) (op1_type A, op2_type B, int const I, int const L) \
{ return func (A, B, imm1, imm2); }
+#define test_3(func, type, op1_type, op2_type, op3_type, imm) \
+ type _CONCAT(_,func) (op1_type A, op2_type B, \
+ op3_type C, int const I) \
+ { return func (A, B, C, imm); }
+
#define test_4(func, type, op1_type, op2_type, op3_type, op4_type, imm) \
type _CONCAT(_,func) (op1_type A, op2_type B, \
op3_type C, op4_type D, int const I) \
@@ -47,6 +49,46 @@
test_1x (_mm_extracti_si64, __m128i, __m128i, 1, 1)
test_2x (_mm_inserti_si64, __m128i, __m128i, __m128i, 1, 1)
+/* immintrin.h */
+test_2 (_mm256_blend_pd, __m256d, __m256d, __m256d, 1)
+test_2 (_mm256_blend_ps, __m256, __m256, __m256, 1)
+test_2 (_mm256_dp_ps, __m256, __m256, __m256, 1)
+test_2 (_mm256_shuffle_pd, __m256d, __m256d, __m256d, 1)
+test_2 (_mm256_shuffle_ps, __m256, __m256, __m256, 1)
+test_2 (_mm_cmp_sd, __m128d, __m128d, __m128d, 1)
+test_2 (_mm_cmp_ss, __m128, __m128, __m128, 1)
+test_2 (_mm_cmp_pd, __m128d, __m128d, __m128d, 1)
+test_2 (_mm_cmp_ps, __m128, __m128, __m128, 1)
+test_2 (_mm256_cmp_pd, __m256d, __m256d, __m256d, 1)
+test_2 (_mm256_cmp_ps, __m256, __m256, __m256, 1)
+test_1 (_mm256_extractf128_pd, __m128d, __m256d, 1)
+test_1 (_mm256_extractf128_ps, __m128, __m256, 1)
+test_1 (_mm256_extractf128_si256, __m128i, __m256i, 1)
+test_1 (_mm256_extract_epi8, int, __m256i, 20)
+test_1 (_mm256_extract_epi16, int, __m256i, 13)
+test_1 (_mm256_extract_epi32, int, __m256i, 6)
+#ifdef __x86_64__
+test_1 (_mm256_extract_epi64, long long, __m256i, 2)
+#endif
+test_1 (_mm_permute_pd, __m128d, __m128d, 1)
+test_1 (_mm256_permute_pd, __m256d, __m256d, 1)
+test_1 (_mm_permute_ps, __m128, __m128, 1)
+test_1 (_mm256_permute_ps, __m256, __m256, 1)
+test_2 (_mm256_permute2f128_pd, __m256d, __m256d, __m256d, 1)
+test_2 (_mm256_permute2f128_ps, __m256, __m256, __m256, 1)
+test_2 (_mm256_permute2f128_si256, __m256i, __m256i, __m256i, 1)
+test_2 (_mm256_insertf128_pd, __m256d, __m256d, __m128d, 1)
+test_2 (_mm256_insertf128_ps, __m256, __m256, __m128, 1)
+test_2 (_mm256_insertf128_si256, __m256i, __m256i, __m128i, 1)
+test_2 (_mm256_insert_epi8, __m256i, __m256i, int, 30)
+test_2 (_mm256_insert_epi16, __m256i, __m256i, int, 7)
+test_2 (_mm256_insert_epi32, __m256i, __m256i, int, 3)
+#ifdef __x86_64__
+test_2 (_mm256_insert_epi64, __m256i, __m256i, long long, 1)
+#endif
+test_1 (_mm256_round_pd, __m256d, __m256d, 1)
+test_1 (_mm256_round_ps, __m256, __m256, 1)
+
/* wmmintrin.h */
test_1 (_mm_aeskeygenassist_si128, __m128i, __m128i, 1)
test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1)
diff --git a/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c b/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
index b219e29a988..d36eaef488c 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
@@ -24,7 +24,7 @@ static void
TEST (void)
{
union128i_d u;
- int e[4] __attribute__ ((aligned(32)));
+ int e[4] __attribute__ ((aligned(16)));
u.x = _mm_set_epi32 (21, 34, 334, 8567);
diff --git a/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c b/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
index 7f5274efa45..edcb90c7b23 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
@@ -24,7 +24,7 @@ static void
TEST (void)
{
union128d u;
- double e[2] __attribute__ ((aligned(32)));
+ double e[2] __attribute__ ((aligned(16)));
u.x = _mm_set_pd (2134.3343,1234.635654);
test (e, u.x);
diff --git a/gcc/testsuite/gcc.target/mips/20020620-1.c b/gcc/testsuite/gcc.target/mips/20020620-1.c
index f4828f439e7..1f2affe48fc 100644
--- a/gcc/testsuite/gcc.target/mips/20020620-1.c
+++ b/gcc/testsuite/gcc.target/mips/20020620-1.c
@@ -1,5 +1,5 @@
-/* { dg-do compile { target mips64*-*-* mipsisa64*-*-* } } */
-/* { dg-mips-options "-O2 -mlong64" } */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong64" } */
int foo (int *x, int i)
{
return x[i] + i;
diff --git a/gcc/testsuite/gcc.target/mips/asm-1.c b/gcc/testsuite/gcc.target/mips/asm-1.c
index ab5d8f8c480..9f9cb3a3483 100644
--- a/gcc/testsuite/gcc.target/mips/asm-1.c
+++ b/gcc/testsuite/gcc.target/mips/asm-1.c
@@ -1,7 +1,7 @@
/* PR target/17565. GCC used to put the asm into the delay slot
of the call. */
/* { dg-do assemble } */
-/* { dg-mips-options "-O" } */
+/* { dg-options "-O" } */
NOMIPS16 int foo (int n)
{
diff --git a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
index 34214e4476a..bc597ab2d2b 100644
--- a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
+++ b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32 -mabi=32" } */
+/* { dg-options "-O2 isa>=2 -mabi=32" } */
/* { dg-final { scan-assembler "addiu" } } */
/* { dg-final { scan-assembler-not "subu" } } */
diff --git a/gcc/testsuite/gcc.target/mips/branch-1.c b/gcc/testsuite/gcc.target/mips/branch-1.c
index 8c991dd9ff1..fb715362e08 100644
--- a/gcc/testsuite/gcc.target/mips/branch-1.c
+++ b/gcc/testsuite/gcc.target/mips/branch-1.c
@@ -1,6 +1,6 @@
/* We should implement these "if" statements using an "andi" instruction
followed by a branch on zero. */
-/* { dg-mips-options "-O2" } */
+/* { dg-options "-O2" } */
void bar (void);
NOMIPS16 void f1 (int x) { if (x & 4) bar (); }
diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-1.c b/gcc/testsuite/gcc.target/mips/branch-cost-1.c
index 8048f37459d..d825e06176e 100644
--- a/gcc/testsuite/gcc.target/mips/branch-cost-1.c
+++ b/gcc/testsuite/gcc.target/mips/branch-cost-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mbranch-cost=1 -mips64 -O2" } */
+/* { dg-options "-mbranch-cost=1 isa>=4 -O2" } */
NOMIPS16 int
foo (int x, int y, int z, int k)
{
diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-2.c b/gcc/testsuite/gcc.target/mips/branch-cost-2.c
index d4dc8fe1bba..23f528ad63f 100644
--- a/gcc/testsuite/gcc.target/mips/branch-cost-2.c
+++ b/gcc/testsuite/gcc.target/mips/branch-cost-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mbranch-cost=10 -mips64 -O2" } */
+/* { dg-options "-mbranch-cost=10 isa>=4 -O2" } */
NOMIPS16 int
foo (int x, int y, int z, int k)
{
diff --git a/gcc/testsuite/gcc.target/mips/cache-1.c b/gcc/testsuite/gcc.target/mips/cache-1.c
index 40c22e08cdc..05cb4079157 100644
--- a/gcc/testsuite/gcc.target/mips/cache-1.c
+++ b/gcc/testsuite/gcc.target/mips/cache-1.c
@@ -1,24 +1,24 @@
-/* { dg-mips-options "-O2" } */
+/* { dg-options "-O2 isa>=3" } */
-void
+NOMIPS16 void
f1 (int *area)
{
__builtin_mips_cache (20, area);
}
-void
+NOMIPS16 void
f2 (const short *area)
{
__builtin_mips_cache (24, area + 10);
}
-void
+NOMIPS16 void
f3 (volatile unsigned int *area, int offset)
{
__builtin_mips_cache (0, area + offset);
}
-void
+NOMIPS16 void
f4 (const volatile unsigned char *area)
{
__builtin_mips_cache (4, area - 80);
diff --git a/gcc/testsuite/gcc.target/mips/call-saved-1.c b/gcc/testsuite/gcc.target/mips/call-saved-1.c
index 42d2dfbfada..5c86b6c8cf9 100644
--- a/gcc/testsuite/gcc.target/mips/call-saved-1.c
+++ b/gcc/testsuite/gcc.target/mips/call-saved-1.c
@@ -1,8 +1,6 @@
/* Check that we save all call-saved GPRs in a MIPS16 __builtin_eh_return
function. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev=0" } */
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/call-saved-2.c b/gcc/testsuite/gcc.target/mips/call-saved-2.c
index 80ca92cf1a1..9ac7a2735ad 100644
--- a/gcc/testsuite/gcc.target/mips/call-saved-2.c
+++ b/gcc/testsuite/gcc.target/mips/call-saved-2.c
@@ -1,7 +1,5 @@
/* Check that we save non-MIPS16 GPRs if they are explicitly clobbered. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips2 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev=0 -O2" } */
MIPS16 void
foo (void)
diff --git a/gcc/testsuite/gcc.target/mips/call-saved-3.c b/gcc/testsuite/gcc.target/mips/call-saved-3.c
index 5f71c85ec4a..e178eb0f061 100644
--- a/gcc/testsuite/gcc.target/mips/call-saved-3.c
+++ b/gcc/testsuite/gcc.target/mips/call-saved-3.c
@@ -1,8 +1,6 @@
/* Check that we save all call-saved GPRs in a MIPS16 __builtin_setjmp
function. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips2 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev=0 -O2" } */
void bar (void);
extern int buf[];
diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-1.c b/gcc/testsuite/gcc.target/mips/clear-cache-1.c
index d6e60c251ff..60bbf9dfc40 100644
--- a/gcc/testsuite/gcc.target/mips/clear-cache-1.c
+++ b/gcc/testsuite/gcc.target/mips/clear-cache-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32r2" } */
+/* { dg-options "-O2 isa_rev>=2" } */
/* { dg-final { scan-assembler "synci" } } */
/* { dg-final { scan-assembler "jr.hb" } } */
/* { dg-final { scan-assembler-not "_flush_cache" } } */
diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-2.c b/gcc/testsuite/gcc.target/mips/clear-cache-2.c
index ee7c05048ab..2c925b86031 100644
--- a/gcc/testsuite/gcc.target/mips/clear-cache-2.c
+++ b/gcc/testsuite/gcc.target/mips/clear-cache-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32" } */
+/* { dg-options "-O2 -mips32" } */
/* { dg-final { scan-assembler-not "synci" } } */
/* { dg-final { scan-assembler-not "jr.hb" } } */
/* { dg-final { scan-assembler "_flush_cache" } } */
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-1.c b/gcc/testsuite/gcc.target/mips/code-readable-1.c
index 7a58457d929..ee239e1f85f 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-1.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-1.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mcode-readable=yes -mgp32" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mcode-readable=yes -mgp32 addressing=absolute" } */
MIPS16 int
foo (int i)
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-2.c b/gcc/testsuite/gcc.target/mips/code-readable-2.c
index 18a1218eb38..1aeecafe1c8 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-2.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-2.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mcode-readable=pcrel -mgp32" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mcode-readable=pcrel -mgp32 addressing=absolute" } */
MIPS16 int
foo (int i)
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-3.c b/gcc/testsuite/gcc.target/mips/code-readable-3.c
index 5afa136c1c5..21dc82be2b5 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-3.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-3.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mcode-readable=no -mgp32" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mcode-readable=no -mgp32 addressing=absolute" } */
MIPS16 int
foo (int i)
diff --git a/gcc/testsuite/gcc.target/mips/dmult-1.c b/gcc/testsuite/gcc.target/mips/dmult-1.c
index 561bdf4bb15..61e66c20ffc 100644
--- a/gcc/testsuite/gcc.target/mips/dmult-1.c
+++ b/gcc/testsuite/gcc.target/mips/dmult-1.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips64 -mgp64" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "-mips64 -mgp64" } */
/* { dg-final { scan-assembler "\tdmult\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tdmul\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
index 1197fa92a27..d1812c16520 100644
--- a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
+++ b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
@@ -1,5 +1,5 @@
-/* { dg-do compile { target {fixed_point} } } */
-/* { dg-mips-options "-O2 -mips32r2 -mdsp" } */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mgp32 -mdsp" } */
/* { dg-final { scan-assembler-times "\tdpaq_sa.l.w\t\\\$ac" 3 } } */
NOMIPS16 _Sat long long _Fract
diff --git a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
index 42935bb0215..849bd923261 100644
--- a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
+++ b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
@@ -1,5 +1,5 @@
-/* { dg-do compile { target {fixed_point} } } */
-/* { dg-mips-options "-O2 -mips32r2 -mdsp" } */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mgp32 -mdsp" } */
/* { dg-final { scan-assembler-times "\tdpsq_sa.l.w\t\\\$ac" 2 } } */
NOMIPS16 _Sat long long _Fract
diff --git a/gcc/testsuite/gcc.target/mips/dse-1.c b/gcc/testsuite/gcc.target/mips/dse-1.c
index 30ceb73f461..6ef55cde25e 100644
--- a/gcc/testsuite/gcc.target/mips/dse-1.c
+++ b/gcc/testsuite/gcc.target/mips/dse-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mgp64 -O" } */
+/* { dg-options "-mgp64 -O" } */
#define TEST(ID, TYPE1, TYPE2) \
union u##ID { \
diff --git a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
index 97e93bcc0ab..bb89e84f239 100644
--- a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
+++ b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
@@ -1,31 +1,30 @@
-/* { dg-do run { target mips*-*-* } } */
-/* { dg-options "-O2" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mdsp -mgp32" } */
extern void abort (void);
extern void exit (int);
-#if __mips_dsp
-void __attribute__ ((noinline))
+NOMIPS16 void __attribute__ ((noinline))
test1 (int i)
{
__builtin_mips_wrdsp (i, 63);
}
-void __attribute__ ((noinline))
+NOMIPS16 void __attribute__ ((noinline))
test2 ()
{
long long a = 0;
__builtin_mips_extpdp (a, 3);
}
-void __attribute__ ((noinline))
+NOMIPS16 void __attribute__ ((noinline))
test3 (int i)
{
long long a = 0;
__builtin_mips_extpdp (a, i);
}
-void __attribute__ ((noinline))
+NOMIPS16 void __attribute__ ((noinline))
test4 ()
{
long long a = 0;
@@ -33,7 +32,7 @@ test4 ()
__builtin_mips_mthlip (a, i);
}
-int
+NOMIPS16 int
main ()
{
int cntl;
@@ -68,13 +67,3 @@ main ()
exit (0);
}
-
-#else
-
-int
-main ()
-{
- exit (0);
-}
-
-#endif
diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
index 9aa95c69afa..ab2c28a7321 100644
--- a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
+++ b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP REV 2 MULT instruction */
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2 -O2 -ffixed-hi -ffixed-lo" } */
+/* { dg-options "-mgp32 -mdspr2 -O2 -ffixed-hi -ffixed-lo" } */
/* { dg-final { scan-assembler "\tmult\t" } } */
/* { dg-final { scan-assembler "ac1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
index ac8a7d80286..312938ae57d 100644
--- a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
+++ b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP REV 2 MULTU instruction */
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2 -O2 -ffixed-hi -ffixed-lo" } */
+/* { dg-options "-mgp32 -mdspr2 -O2 -ffixed-hi -ffixed-lo" } */
/* { dg-final { scan-assembler "\tmultu\t" } } */
/* { dg-final { scan-assembler "ac1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-1.c b/gcc/testsuite/gcc.target/mips/ext-1.c
index 2d9368a8bd1..426cbb28573 100644
--- a/gcc/testsuite/gcc.target/mips/ext-1.c
+++ b/gcc/testsuite/gcc.target/mips/ext-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mips64r2 -mgp64" } */
+/* { dg-options "-O isa_rev>=2 -mgp64" } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "and" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext_ins.c b/gcc/testsuite/gcc.target/mips/ext_ins.c
index 77df1d2ba87..8186b84a27f 100644
--- a/gcc/testsuite/gcc.target/mips/ext_ins.c
+++ b/gcc/testsuite/gcc.target/mips/ext_ins.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32r2" } */
+/* { dg-options "isa_rev>=2" } */
/* { dg-final { scan-assembler "ext" } } */
/* { dg-final { scan-assembler "ins" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
index e72974befc7..76f3b86ec5d 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
index a6dbfa3dfc7..6ac908a71bb 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
index 4bf16e175a9..e1677b6577a 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
index 160f9aedd3b..f767ae20289 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
index 7e1efc85ab9..b0779e0ec34 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
index 8d8fe095e34..4a690f59ed1 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
index fd7d0364bd7..bb5fd743af7 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
index 900a697c99e..bac01913405 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
index de74e9724ee..bec7951c1d4 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
index 0c962ee267f..864ab8c1ee4 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
index 15a0704f2c9..62fd70f5f09 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
index 1f81e5bc66c..d8bdb4516de 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
index bbe985695da..d4b558e0115 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
index 6e990a63fa6..d48ed263c82 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
index 8373c42d949..88afad339c9 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=mips4 -mfix-r10000" } */
+/* { dg-options "-O2 -mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
index adb32a2eed1..513fc6130a5 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -O2 -dp" } */
typedef int int32_t;
typedef int uint32_t;
int32_t foo (int32_t x, int32_t y) { return x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
index 3c217b984cd..ebf3ca30562 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
@@ -1,7 +1,7 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-mips-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
typedef unsigned long long uint64_t;
typedef unsigned int uint128_t __attribute__((mode(TI)));
uint128_t foo (uint64_t x, uint64_t y) { return (uint128_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
index 528a30bbddd..93f78134e4e 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
typedef long long int64_t;
int64_t foo (int64_t x) { return x / 11993; }
/* { dg-final { scan-assembler "[concat {\tdmult\t\$4,\$[0-9]+[^\n]+smuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
index f03a7a06147..554975ccca1 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
typedef unsigned long long uint64_t;
uint64_t foo (uint64_t x) { return x / 11993; }
/* { dg-final { scan-assembler "[concat {\tdmultu\t\$4,\$[0-9]+[^\n]+umuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
index 038dd5ecd49..4f27041bedb 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
+/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
typedef int int32_t;
typedef long long int64_t;
int32_t foo (int32_t x, int32_t y) { return ((int64_t) x * y) >> 32; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
index 43189430496..207fc66b062 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
+/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
uint32_t foo (uint32_t x, uint32_t y) { return ((uint64_t) x * y) >> 32; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
index 7acb2374d5a..be32b57ae4f 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
@@ -1,7 +1,7 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-mips-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
typedef int int32_t;
typedef long long int64_t;
int64_t foo (int32_t x, int32_t y) { return (int64_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
index 86ab8a26eea..c14e949f229 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
@@ -1,7 +1,7 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-mips-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
uint64_t foo (uint32_t x, uint32_t y) { return (uint64_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
index 2c75deddeca..32861f9750b 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
typedef long long int64_t;
typedef unsigned long long uint64_t;
int64_t foo (int64_t x, int64_t y) { return x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
index e7b9251ceb4..2555d5306d7 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
typedef long long int64_t;
typedef int int128_t __attribute__((mode(TI)));
int64_t foo (int64_t x, int64_t y) { return ((int128_t) x * y) >> 64; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
index 5089b99e08d..964dc222291 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
typedef unsigned long long uint64_t;
typedef unsigned int uint128_t __attribute__((mode(TI)));
uint64_t foo (uint64_t x, uint64_t y) { return ((uint128_t) x * y) >> 64; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
index 55183396f07..68724eb376f 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
@@ -1,7 +1,7 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-mips-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
typedef long long int64_t;
typedef int int128_t __attribute__((mode(TI)));
int128_t foo (int64_t x, int64_t y) { return (int128_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
index 48840accd62..f4eb492e4e4 100644
--- a/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=vr4130 -mfix-vr4130" } */
+/* { dg-options "-march=vr4130 -mfix-vr4130" } */
NOMIPS16 unsigned int
foo (unsigned int x, unsigned int y)
{
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
index aaeba4f2836..18708cb450a 100644
--- a/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
@@ -1,4 +1,4 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=vr4130 -mfix-vr4130" } */
+/* { dg-options "-march=vr4130 -mfix-vr4130" } */
NOMIPS16 int foo (void) { int r; asm ("# foo" : "=l" (r)); return r; }
/* { dg-final { scan-assembler "\tmacc\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
index 5cc32cafe43..d3399d10cee 100644
--- a/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
+/* { dg-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
NOMIPS16 unsigned long long
foo (unsigned long long x, unsigned long long y)
{
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
index 91b883d46b5..8b307c6e621 100644
--- a/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
+/* { dg-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
NOMIPS16 long long
foo (void)
{
diff --git a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
index ff4e975618c..a2e2fbfefe3 100644
--- a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
+++ b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
@@ -1,6 +1,6 @@
/* Test scalar fixed-point instructions */
-/* { dg-do compile { target {fixed_point} } } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2 -O2" } */
+/* { dg-do compile } */
+/* { dg-options "-mdspr2 -O2" } */
/* { dg-final { scan-assembler-times "\taddu\t" 10 } } */
/* { dg-final { scan-assembler-times "\tsubu\t" 10 } } */
/* { dg-final { scan-assembler "\taddu_s.qb\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
index 08208f2c2d7..2fb16aa1d07 100644
--- a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
+++ b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
@@ -1,6 +1,6 @@
/* Test vector fixed-point instructions */
-/* { dg-do compile { target {fixed_point} } } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2 -O2" } */
+/* { dg-do compile } */
+/* { dg-options "-mdspr2 -O2" } */
/* { dg-final { scan-assembler-times "\taddq_s.ph\t" 2 } } */
/* { dg-final { scan-assembler-times "\tsubq_s.ph\t" 2 } } */
/* { dg-final { scan-assembler-times "\taddu_s.qb\t" 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-1.c b/gcc/testsuite/gcc.target/mips/fpcmp-1.c
index 19e66f96b78..cae48a0e93a 100644
--- a/gcc/testsuite/gcc.target/mips/fpcmp-1.c
+++ b/gcc/testsuite/gcc.target/mips/fpcmp-1.c
@@ -1,5 +1,5 @@
/* We used to use c.lt.fmt instead of c.ule.fmt here. */
-/* { dg-mips-options "-mhard-float -O2" } */
+/* { dg-options "-mhard-float -O2" } */
NOMIPS16 int f1 (float x, float y) { return __builtin_isless (x, y); }
NOMIPS16 int f2 (double x, double y) { return __builtin_isless (x, y); }
/* { dg-final { scan-assembler "c\\.ule\\.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-2.c b/gcc/testsuite/gcc.target/mips/fpcmp-2.c
index 9c1090bb4ba..3e1c259f89a 100644
--- a/gcc/testsuite/gcc.target/mips/fpcmp-2.c
+++ b/gcc/testsuite/gcc.target/mips/fpcmp-2.c
@@ -1,5 +1,5 @@
/* We used to use c.le.fmt instead of c.ult.fmt here. */
-/* { dg-mips-options "-mhard-float -O2" } */
+/* { dg-options "-mhard-float -O2" } */
NOMIPS16 int f1 (float x, float y) { return __builtin_islessequal (x, y); }
NOMIPS16 int f2 (double x, double y) { return __builtin_islessequal (x, y); }
/* { dg-final { scan-assembler "c\\.ult\\.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
index db2190d18dc..92977e04e38 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=32 -mhard-float -mips1 -O2 -EL" } */
+/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EL" } */
NOMIPS16 void
foo (double d, double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
index fe21ee2a1d9..3f4f833ba5e 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=32 -mhard-float -mips1 -O2 -EB" } */
+/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EB" } */
NOMIPS16 void
foo (double d, double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
index a32c6874eaf..34784d01ce2 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=32 -mfp64 -O2 -EL" } */
+/* { dg-options "-mabi=32 -mfp64 -O2 -EL" } */
NOMIPS16 double
foo (double d)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
index 4f26f0694e4..282cf761b37 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=32 -mfp64 -O2 -EB" } */
+/* { dg-options "-mabi=32 -mfp64 -O2 -EB" } */
NOMIPS16 double
foo (double d)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
index 7159d381b85..848e5ea25ed 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=64 -mhard-float -O2 -EL" } */
+/* { dg-options "-mabi=64 -mhard-float -O2 -EL" } */
NOMIPS16 void
foo (long double d, long double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
index f1933feccc1..7f2611397ba 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=64 -mhard-float -O2 -EB" } */
+/* { dg-options "-mabi=64 -mhard-float -O2 -EB" } */
NOMIPS16 void
foo (long double d, long double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
index 4736edd24ee..3abd10417d7 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mabi=64 -msoft-float -O2 -EL" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mabi=64 -O2 -EL" } */
extern long double g[16];
extern unsigned char gstuff[0x10000];
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
index ade9e5e9c0a..8b6901b7fc7 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mabi=64 -msoft-float -O2 -EB" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mabi=64 -O2 -EB" } */
extern long double g[16];
extern unsigned char gstuff[0x10000];
diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c
index c12d08e0521..74df7de1481 100644
--- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c
+++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c
@@ -1,5 +1,5 @@
/* { dg-do preprocess } */
-/* { dg-mips-options "-mips2" } */
+/* { dg-options "isa>=2 -mgp32" } */
#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
#error nonono
diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c
index eaae7801754..3a03ba3491b 100644
--- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c
+++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c
@@ -1,5 +1,5 @@
/* { dg-do preprocess } */
-/* { dg-mips-options "-mgp64" } */
+/* { dg-options "-mgp64" } */
#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
#error nonono
diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-3.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-3.c
index faf50fc69ca..b47a2ceb2db 100644
--- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-3.c
+++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-3.c
@@ -1,6 +1,4 @@
-/* { dg-do preprocess { target mips16_attribute } } */
-/* { dg-mips-options "-mips2 -mips16" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "isa>=2 -mgp32 -mips16" } */
#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
#error nonono
diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c
index b53f4b05b61..78a12440a2e 100644
--- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c
+++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c
@@ -1,6 +1,4 @@
-/* { dg-do preprocess { target mips16_attribute } } */
-/* { dg-mips-options "-mgp64 -mips16" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "-mgp64 -mips16" } */
#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
#error nonono
diff --git a/gcc/testsuite/gcc.target/mips/ins-1.c b/gcc/testsuite/gcc.target/mips/ins-1.c
index 77047af60b9..9e19354d1a6 100644
--- a/gcc/testsuite/gcc.target/mips/ins-1.c
+++ b/gcc/testsuite/gcc.target/mips/ins-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=mips32r2" } */
+/* { dg-options "-O isa_rev>=2 -mgp32" } */
/* { dg-final { scan-assembler "\tins\t" } } */
struct
diff --git a/gcc/testsuite/gcc.target/mips/ins-2.c b/gcc/testsuite/gcc.target/mips/ins-2.c
new file mode 100644
index 00000000000..a71e6c05326
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/ins-2.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-O -meb isa_rev>=2 -mgp64" } */
+/* { dg-final { scan-assembler-times "\tins\t|\tdins\t" 1 } } */
+/* { dg-final { scan-assembler-times "\tsll\t|\tins\t" 1 } } */
+
+/* When inserting something into the top bit of a 32-bit structure,
+ we must make sure that the register remains properly sign-extended.
+ There are two ways of doing this:
+
+ - use purely 32-bit bit manipulations (a single INS, matched twice here).
+ - use a 64-bit bit manipulation (DINS), and sign-extend the result. We
+ check for this extension using SLL. */
+
+struct s
+{
+ int a:3;
+ int b:29;
+};
+
+NOMIPS16 void
+f (int a)
+{
+ struct s s;
+ asm volatile ("" : "=r"(s));
+ s.a = a;
+ asm volatile ("" :: "r"(s));
+}
diff --git a/gcc/testsuite/gcc.target/mips/int-moves-1.c b/gcc/testsuite/gcc.target/mips/int-moves-1.c
index 62e659a93fe..485555c39ff 100644
--- a/gcc/testsuite/gcc.target/mips/int-moves-1.c
+++ b/gcc/testsuite/gcc.target/mips/int-moves-1.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mgp64 -msoft-float -O2 -EL" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mgp64 -O2 -EL" } */
typedef unsigned uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/int-moves-2.c b/gcc/testsuite/gcc.target/mips/int-moves-2.c
index 325bfceb029..eba7983707b 100644
--- a/gcc/testsuite/gcc.target/mips/int-moves-2.c
+++ b/gcc/testsuite/gcc.target/mips/int-moves-2.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mgp64 -msoft-float -O2 -EB" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -mgp64 -O2 -EB" } */
typedef unsigned uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
index 761be46e032..e85727c42d7 100644
--- a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
+++ b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
@@ -1,9 +1,9 @@
-/* { dg-do compile { target nomips16 } } */
-/* { dg-mips-options "-mabicalls -mshared -mexplicit-relocs -O2 -fno-delayed-branch" } */
+/* { dg-do compile } */
+/* { dg-options "-mabicalls -mshared -mexplicit-relocs -O2 -fno-delayed-branch" } */
void bar (void);
-void
+NOMIPS16 void
foo (int n)
{
while (n--)
diff --git a/gcc/testsuite/gcc.target/mips/long-calls-pg.c b/gcc/testsuite/gcc.target/mips/long-calls-pg.c
index 7d2d5f16150..5e554c497d8 100644
--- a/gcc/testsuite/gcc.target/mips/long-calls-pg.c
+++ b/gcc/testsuite/gcc.target/mips/long-calls-pg.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mabi=32 -march=mips32 -fno-pic -pg -mno-abicalls -mlong-calls" } */
+/* { dg-options "-O2 -mabi=32 -pg -mno-abicalls -mlong-calls" } */
/* { dg-final { scan-assembler-not "\tjal\t_mcount" } } */
-void
+NOMIPS16 void
foo (void)
{
}
diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
index d8293b28844..fd7289ceaf7 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=loongson2e" } */
+/* { dg-options "-O2 isa=loongson" } */
typedef int st;
typedef unsigned int ut;
diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
index 4953292c062..6f1f1387551 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=loongson2e -mgp64" } */
+/* { dg-options "-O2 isa=loongson -mgp64" } */
typedef long long st;
typedef unsigned long long ut;
diff --git a/gcc/testsuite/gcc.target/mips/loongson-simd.c b/gcc/testsuite/gcc.target/mips/loongson-simd.c
index e4cae5ea61d..ae3565f4795 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-simd.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-simd.c
@@ -19,7 +19,10 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* { dg-do run } */
-/* { dg-require-effective-target mips_loongson } */
+/* loongson.h does not handle or check for MIPS16ness. There doesn't
+ seem any good reason for it to, given that the Loongson processors
+ do not support MIPS16. */
+/* { dg-options "isa=loongson -mhard-float -mno-mips16 -flax-vector-conversions" } */
#include "loongson.h"
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/mips/madd-1.c b/gcc/testsuite/gcc.target/mips/madd-1.c
index c0cdf495896..53881a4b085 100644
--- a/gcc/testsuite/gcc.target/mips/madd-1.c
+++ b/gcc/testsuite/gcc.target/mips/madd-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr4130 -mgp32" } */
+/* { dg-options "-O2 -march=vr4130 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmacc\t\\\$1," 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-2.c b/gcc/testsuite/gcc.target/mips/madd-2.c
index daadd416c03..eab7a68454c 100644
--- a/gcc/testsuite/gcc.target/mips/madd-2.c
+++ b/gcc/testsuite/gcc.target/mips/madd-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5500 -mgp32" } */
+/* { dg-options "-O2 -march=vr5500 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-3.c b/gcc/testsuite/gcc.target/mips/madd-3.c
index 8526a5e1806..6b479f59c71 100644
--- a/gcc/testsuite/gcc.target/mips/madd-3.c
+++ b/gcc/testsuite/gcc.target/mips/madd-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32 -mgp32" } */
+/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-4.c b/gcc/testsuite/gcc.target/mips/madd-4.c
index 8bdf99fbb24..f325af74698 100644
--- a/gcc/testsuite/gcc.target/mips/madd-4.c
+++ b/gcc/testsuite/gcc.target/mips/madd-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32r2 -mdspr2 -mgp32" } */
+/* { dg-options "-O2 -mdspr2 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmadd\t\\\$ac" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-5.c b/gcc/testsuite/gcc.target/mips/madd-5.c
index 780194dc7e6..1ad1c91f3e1 100644
--- a/gcc/testsuite/gcc.target/mips/madd-5.c
+++ b/gcc/testsuite/gcc.target/mips/madd-5.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler-times "\tmadd\t" 4 } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-6.c b/gcc/testsuite/gcc.target/mips/madd-6.c
index bbb6783d4a0..4e5afadceb2 100644
--- a/gcc/testsuite/gcc.target/mips/madd-6.c
+++ b/gcc/testsuite/gcc.target/mips/madd-6.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler-not "\tmadd\t" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler "\taddu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-7.c b/gcc/testsuite/gcc.target/mips/madd-7.c
index 25fd07db128..93ed0fc6f06 100644
--- a/gcc/testsuite/gcc.target/mips/madd-7.c
+++ b/gcc/testsuite/gcc.target/mips/madd-7.c
@@ -1,4 +1,5 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* -mlong32 added because of PR target/38598. */
+/* { dg-options "-O2 -march=5kc -mlong32" } */
/* { dg-final { scan-assembler-not "\tmul\t" } } */
/* { dg-final { scan-assembler "\tmadd\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-8.c b/gcc/testsuite/gcc.target/mips/madd-8.c
index 0fc680e5979..35092a8ad93 100644
--- a/gcc/testsuite/gcc.target/mips/madd-8.c
+++ b/gcc/testsuite/gcc.target/mips/madd-8.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler-not "\tmadd\t" } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/maddu-1.c b/gcc/testsuite/gcc.target/mips/maddu-1.c
index 254f3e75d54..04161ce3a21 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-1.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr4130 -mgp32" } */
+/* { dg-options "-O2 -march=vr4130 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmaccu\t\\\$1," 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-2.c b/gcc/testsuite/gcc.target/mips/maddu-2.c
index fc1574e9667..a9768f15bf8 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-2.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5500 -mgp32" } */
+/* { dg-options "-O2 -march=vr5500 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-3.c b/gcc/testsuite/gcc.target/mips/maddu-3.c
index b3cc5105554..b0b4817a47f 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-3.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32 -mgp32" } */
+/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-4.c b/gcc/testsuite/gcc.target/mips/maddu-4.c
index 2bc54f86471..9c1ccd5f926 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-4.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32r2 -mdspr2 -mgp32" } */
+/* { dg-options "-O2 -mdspr2 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmaddu\t\\\$ac" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c
index 4e50b20cda6..f3eda7500db 100644
--- a/gcc/testsuite/gcc.target/mips/memcpy-1.c
+++ b/gcc/testsuite/gcc.target/mips/memcpy-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2" } */
+/* { dg-options "-O2" } */
/* { dg-final { scan-assembler-not "\tlbu\t" } } */
#include <string.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
index 393ebfc71e9..eb3f8f9a864 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
index 3c8850bb1aa..dc815748ebd 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D branch-if-any-two builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
index 909a89a2440..7df590f5c30 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D absolute compare builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
index 058ff2c3c8e..7f9cbdb1b84 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
index a98e579e731..c07dbe50580 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-5.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
index 30715ea31a3..848414540f0 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D absolute compare (floats) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
index 0eef933b2ee..d5d09f99869 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-7.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D absolute compare (doubles) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
index 042a73066b1..c80f2b9c893 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-8.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Test MIPS-3D absolute compare and conditional move builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
index fdfedcbeae3..3875391b535 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-9.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mipsisa64*-*-* } } */
-/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mips3d" } */
/* Matrix Multiplications */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
index c47b57dc5c5..9e6c6600617 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mpaired_single } } */
-/* { dg-mips-options "-O2 -mpaired-single" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mpaired-single" } */
/* Test v2sf calculations */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
index d7b33b1afc8..baec12c1ce6 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mpaired_single } } */
-/* { dg-mips-options "-O2 -mpaired-single" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mpaired-single" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
index a7c9545df3f..e9ed4c03f5f 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mpaired_single } } */
-/* { dg-mips-options "-O2 -mpaired-single" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mpaired-single" } */
/* Test MIPS paired-single conditional move */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
index 54efb80e464..b4452d09105 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
@@ -1,5 +1,5 @@
-/* { dg-do run { target mpaired_single } } */
-/* { dg-mips-options "-O2 -mpaired-single" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mpaired-single" } */
/* Test MIPS paired-single comparisons */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-5.c b/gcc/testsuite/gcc.target/mips/mips-ps-5.c
index 9b748887ade..94d2f80efc7 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-5.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mips64 -O2 -mpaired-single -mgp64 -ftree-vectorize" } */
+/* { dg-options "-O2 -mpaired-single -mgp64 -ftree-vectorize" } */
extern float a[], b[], c[];
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
index fc198dc3d09..5b8b2522866 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
@@ -1,7 +1,7 @@
/* mips-ps-2.c with an extra -ffinite-math-only option. This option
changes the way that abs.ps is handled. */
-/* { dg-do run { target mpaired_single } } */
-/* { dg-mips-options "-O2 -mpaired-single -ffinite-math-only" } */
+/* { dg-do run } */
+/* { dg-options "-O2 -mpaired-single -ffinite-math-only" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-7.c b/gcc/testsuite/gcc.target/mips/mips-ps-7.c
index cfec230ceb1..65a1104ba39 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-7.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-7.c
@@ -1,6 +1,6 @@
-/* mips-ps-5.c with -mips32r2 instead of -mips64. */
+/* mips-ps-5.c with -mgp32 instead of -mgp64. */
/* { dg-do compile } */
-/* { dg-mips-options "-mips32r2 -O2 -mpaired-single -ftree-vectorize" } */
+/* { dg-options "-mgp32 -O2 -mpaired-single -ftree-vectorize" } */
extern float a[], b[], c[];
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
index 07ce7741b06..f7988553394 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
@@ -1,7 +1,7 @@
/* Test v2sf calculations. The nmadd and nmsub patterns need
-ffinite-math-only. */
/* { dg-do compile } */
-/* { dg-mips-options "-mips32r2 -O2 -mpaired-single -ffinite-math-only" } */
+/* { dg-options "isa_rev>=2 -mgp32 -O2 -mpaired-single -ffinite-math-only" } */
/* { dg-final { scan-assembler "cvt.ps.s" } } */
/* { dg-final { scan-assembler "mov.ps" } } */
/* { dg-final { scan-assembler "ldc1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type.c b/gcc/testsuite/gcc.target/mips/mips-ps-type.c
index df1cec707aa..2a10f91bd54 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-type.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-type.c
@@ -1,7 +1,7 @@
/* Test v2sf calculations. The nmadd and nmsub patterns need
-ffinite-math-only. */
/* { dg-do compile } */
-/* { dg-mips-options "-mips64 -O2 -mpaired-single -mgp64 -ffinite-math-only" } */
+/* { dg-options "-O2 -mpaired-single -mgp64 -ffinite-math-only" } */
/* { dg-final { scan-assembler "cvt.ps.s" } } */
/* { dg-final { scan-assembler "mov.ps" } } */
/* { dg-final { scan-assembler "ldc1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
index 92f14e1f3bc..c0f9d332a59 100644
--- a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
+++ b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
@@ -1,7 +1,7 @@
/* Test for case where another independent multiply insn may interfere
with a macc chain. */
/* { dg-do compile } */
-/* { dg-mips-options "-Os -march=24kf" } */
+/* { dg-options "-Os -march=24kf" } */
NOMIPS16 int foo (int a, int b, int c, int d, int e, int f, int g)
{
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
index 8e66e0a1901..c5d6089a964 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,371 +14,1112 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# GCC testsuite that uses the `dg.exp' driver.
+# A MIPS version of the GCC dg.exp driver.
+#
+# There are many MIPS features that we want to test, and many of those
+# features are specific to certain architectures, certain ABIs and so on.
+# There are therefore many cases in which we want to test something that
+# is incompatible with the user's chosen test options.
+#
+# In most dg testsuites, the options added by dg-options have a lower
+# priority than the options chosen by the user. For example, if a test
+# specifies:
+#
+# { dg-options "-mips1" }
+#
+# and the user passes the following option to runtest:
+#
+# --target_board unix/-mips3
+#
+# the test would be compiled as MIPS III rather than MIPS I. If the
+# test really wouldn't work with -mips3, normal practice would be to
+# have something like:
+#
+# { dg-do compile { target can_force_mips1 } }
+#
+# so that the test is skipped when an option like -mips3 is passed.
+#
+# Sticking to the same approach here would cause us to skip many tests,
+# even though the toolchain can generate the required code. For example,
+# there are 6 MIPS ABIs, plus variants. Some configurations support
+# more than one ABI, so it is natural to use something like:
+#
+# --target_board unix{-mabi=n32,-mabi=32,-mabi=64}
+#
+# when testing them. But these -mabi=* options would normally prevent any
+# EABI and o64 tests from running.
+#
+# This testsuite therefore defines a local version of dg-options that
+# overrides any user options that are incompatible with the test options.
+# It tries to keep the other user options intact.
+#
+#
+# Most of the tests in this testsuite are scan-assembler tests, but
+# sometimes we need a link test instead. In these cases, we must not
+# try to link code with options that are incompatible with the current
+# multilib, because xgcc is passed -L and -B options that are specific
+# to that multilib.
+#
+# Normal GCC practice would be to skip incompatible link tests as
+# unsupported, but in this particular case, it seems better to downgrade
+# them to an assemble test instead. At least that way we get some
+# test-for-ICE and code-sanity coverage.
+#
+# The same problem applies to run tests. If a test requires runtime
+# support for a particular feature, and if the current target does not
+# provide that support, normal practice would be to skip the test.
+# But in this case it seems better to downgrade it to a link test instead.
+# (We might then have to downgrade it to an assembler test according to
+# the constraints just mentioned.)
+#
+# The local dg-options therefore checks whether the new options are
+# link-compatiable with the user's options. If not, it automatically
+# downgrades link tests to assemble tests. It does the same for run
+# tests, but in addition, it downgrades run tests to link tests if the
+# target does not provide runtime support for a required feature or ASE.
+#
+#
+# Another problem is that many of the options we want to test require
+# certain other features. For example, -mips3d requires both 64-bit
+# FPRs and a MIPS32 or MIPS64 target; -mfix-r10000 requires branch-
+# likely instructions; and so on. We could handle this by specifying
+# a set of options that are guaranteed to give us what we want, such as:
+#
+# dg-options "-mips3d -mpaired-single -mhard-float -mgp64 -mfp64 -mabi=n32 -march=mips64 -mips64"
+#
+# With the new dg-options semantics, this would override any troublesome
+# user options like -mips3, -march=vr4100, -mfp32, -mgp32, -msoft-float,
+# -mno-paired-single and so on. But there are three major problems with
+# this:
+#
+# - It is easy to forget options.
+#
+# - If a new option is added, all tests that are incompatible with that
+# option must be updated.
+#
+# - We want to be able to test MIPS-3D with things like -march=mips32,
+# -march=mips64r2, -march=sb1, and so on.
+#
+# The local version of dg-options therefore works out the requirements
+# of each test option. As with the test options themselves, the local
+# dg-options overrides any user options that incompatible with these
+# requirements, but it keeps the other user options the same.
+#
+# For example, if the user passes -mips3, a MIPS-3D test will choose
+# a different architecture like -mips64 instead. But if the user
+# passes -march=sb1, MIPS-3D tests will be run with that option.
+#
+#
+# Sometimes it is useful to say "I want an environment that is compatible
+# with option X, but I don't want to pass option X itself". The main example
+# of this is -mips16: we want to be able to test __attribute__((mips16))
+# without requiring the test itself to be compiled as -mips16. The local
+# version of dg-options lets you do this by putting X in parentheses.
+# For example:
+#
+# { dg-options "(-mips16)" }
+#
+# selects a MIPS16-compatible target without passing -mips16 itself.
+#
+# It is also useful to say "any architecture within this ISA range is fine".
+# This can be done using special pseudo-options of the form:
+#
+# PROP=VALUE PROP<=VALUE PROP>=VALUE
+#
+# where PROP can be:
+#
+# isa:
+# the value of the __mips macro.
+#
+# isa_rev:
+# the value of the __mips_isa_rev macro, or 0 if it isn't defined.
+#
+# For example, "isa_rev>=1" selects a MIPS32 or MIPS64 processor,
+# "isa=4" selects a MIPS IV processor, and so on. There are also
+# the following special pseudo-options:
+#
+# isa=loongson:
+# select a Loongson processor
+#
+# addressing=absolute
+# force absolute addresses to be used
+#
+#
+# In summary:
+#
+# (1) Try to avoid { target ... } requirements wherever possible.
+# Specify the requirements as dg-options instead.
+#
+# (2) Don't worry about the consequences of (1) for link and run tests.
+# If the test uses { dg-do link } or { dg-do run }, and its
+# dg-options are incompatible with the current target, the
+# testsuite will downgrade them where necessary.
+#
+# (3) Try to use the bare minimum of options and leave dg-options
+# to work out the dependencies. For example, if you want
+# a MIPS-3D test, you should generally just specify -mips3d.
+# Don't specify an architecture option like -mips64 unless
+# the test really doesn't work with -mips32r2, -mips64r2,
+# -march=sb1, etc.
+#
+# (4) If you want something compatible with a particular option,
+# but don't want to pass the option itself, wrap that option
+# in parentheses. In particular, pass '(-mips16)' if you
+# want to use "mips16" attributes.
+#
+# (5) When testing a feature of a generic ISA (as opposed to a
+# processor-specific extension), try to use the "isa" and
+# "isa_rev" pseudo-options instead of specific architecture
+# options. For example, if the feature is present on revision 2
+# processors and above, try to use "isa_rev>=2" instead of
+# "-mips32r2" or "-mips64r2".
# Exit immediately if this isn't a MIPS target.
if ![istarget mips*-*-*] {
- return
+ return
}
# Load support procs.
load_lib gcc-dg.exp
-# Find out which target is selected by the default compiler flags.
-# Also remember which aspects of the target are forced on the command
-# line (as opposed to being overridable defaults).
-#
-# $mips_isa: the ISA level specified by __mips
-# $mips_isa_rev: the ISA revision specified by __mips_isa_rev
-# $mips_arch: the architecture specified by _MIPS_ARCH
-# $mips_mips16: true if MIPS16 output is selected
-# $mips_gp: the number of bytes in a general register
-# $mips_fp: the number of bytes in a floating-point register
-# $mips_float: "hard" or "soft"
-# $mips_abi: the ABI specified by _MIPS_SIM
-#
-# $mips_forced_isa: true if the command line uses -march=* or -mips*
-# $mips_forced_abi: true if the command line uses -mabi=*
-# $mips_forced_regs: true if the command line uses -mgp* or -mfp*
-# $mips_forced_float: true if the command line uses -mhard/soft-float
-# $mips_forced_be true if the command line uses -EB or -meb
-# $mips_forced_le true if the command line uses -EL or -mel
-# $mips_forced_gp true if the command line forces a particular GP mode
-# $mips_forced_no_abicalls
-# true if the command line contains -mno-abicalls
-# $mips_forced_no_shared
-# true if the command line contains -mno-shared
-# $mips_forced_no_er true if the command line contains -mno-explicit-relocs
-proc setup_mips_tests {} {
- global mips_isa
- global mips_isa_rev
- global mips_arch
- global mips_mips16
- global mips_gp
- global mips_fp
- global mips_float
- global mips_abi
-
- global mips_forced_isa
- global mips_forced_abi
- global mips_forced_float
- global mips_forced_be
- global mips_forced_le
- global mips_forced_gp
- global mips_forced_no_abicalls
- global mips_forced_no_shared
- global mips_forced_no_er
- global mips_forced_regs
-
- global compiler_flags
+# A list of GROUP REGEXP pairs. Each GROUP represents a logical group of
+# options from which only option should be chosen. REGEXP matches all the
+# options in that group; it is implicitly wrapped in "^(...)$".
+set mips_option_groups {
+ abi "-mabi=.*"
+ addressing "addressing=.*"
+ arch "-mips([1-5]|32.*|64.*)|-march=.*|isa(|_rev)(=|<=|>=).*"
+ dump_pattern "-dp"
+ endianness "-E(L|B)|-me(l|b)"
+ float "-m(hard|soft)-float"
+ fp "-mfp(32|64)"
+ gp "-mgp(32|64)"
+ long "-mlong(32|64)"
+ mips16 "-mips16|-mno-mips16"
+ mips3d "-mips3d|-mno-mips3d"
+ optimization "-O(|[0-3s])"
+ pic "-f(no-|)(pic|PIC)"
+ profiling "-pg"
+ small-data "-G[0-9]+"
+ warnings "-w"
+}
+
+# Add -mfoo/-mno-foo options to mips_option_groups.
+foreach option {
+ abicalls
+ branch-likely
+ dsp
+ dspr2
+ explicit-relocs
+ extern-sdata
+ fix-r4000
+ fix-r10000
+ fix-vr4130
+ gpopt
+ local-sdata
+ long-calls
+ paired-single
+ plt
+ shared
+ smartmips
+ sym32
+} {
+ lappend mips_option_groups $option "-m(no-|)$option"
+}
+
+# Add -mfoo= options to mips_option_groups.
+foreach option {
+ branch-cost
+ code-readable
+ r10k-cache-barrier
+} {
+ lappend mips_option_groups $option "-m$option=.*"
+}
+
+# Add -ffoo/-fno-foo options to mips_option_groups.
+foreach option {
+ delayed-branch
+ fast-math
+ finite-math-only
+ fixed-hi
+ fixed-lo
+ lax-vector-conversions
+ split-wide-types
+ tree-vectorize
+} {
+ lappend mips_option_groups $option "-f(no-|)$option"
+}
+
+# A list of option groups that have an impact on the ABI.
+set mips_abi_groups {
+ abi
+ abicalls
+ arch
+ endianness
+ float
+ fp
+ gp
+ gpopt
+ long
+ pic
+ small-data
+}
+
+# mips_option_tests(OPTION) is some assembly code that will run to completion
+# on a target that supports OPTION.
+set mips_option_tests(-mips16) {
+ move $2,$31
+ bal 1f
+ .set mips16
+ jr $31
+ .set nomips16
+ .align 2
+1:
+ ori $3,$31,1
+ jalr $3
+ move $31,$2
+}
+set mips_option_tests(-mpaired-single) {
+ .set mips64
+ lui $2,0x3f80
+ mtc1 $2,$f0
+ cvt.ps.s $f2,$f0,$f0
+}
+set mips_option_tests(-mips3d) {
+ .set mips64
+ .set mips3d
+ lui $2,0x3f80
+ mtc1 $2,$f0
+ cvt.ps.s $f2,$f0,$f0
+ mulr.ps $f2,$f2,$f2
+ rsqrt1.s $f2,$f0
+ mul.s $f4,$f2,$f0
+ rsqrt2.s $f4,$f4,$f2
+ madd.s $f4,$f2,$f2,$f4
+}
+set mips_option_tests(-mdsp) {
+ .set mips64r2
+ .set dsp
+ addsc $2,$2,$2
+}
+set mips_option_tests(-mdspr2) {
+ .set mips64r2
+ .set dspr2
+ prepend $2,$3,11
+}
+
+# Canonicalize command-line option OPTION.
+proc mips_canonicalize_option { option } {
+ regsub {^-mips([1-5]|32*|64*)$} $option {-march=mips\1} option
+
+ regsub {^-mel$} $option {-EL} option
+ regsub {^-meb$} $option {-EB} option
+
+ regsub {^-O$} $option {-O1} option
+
+ # MIPS doesn't use -fpic and -fPIC to distinguish between code models.
+ regsub {^-f(no-|)PIC} $option {-f\1pic} option
+
+ return $option
+}
+
+# Return true if OPTION1 and OPTION2 represent the same command-line option.
+proc mips_same_option_p { option1 option2 } {
+ return [string equal \
+ [mips_canonicalize_option $option1] \
+ [mips_canonicalize_option $option2]]
+}
+
+# Preprocess CODE using target_compile options OPTIONS. Return the
+# compiler output.
+proc mips_preprocess { options code } {
global tool
set src dummy[pid].c
set f [open $src "w"]
- puts $f {
- int isa = __mips;
- #ifdef __mips_isa_rev
- int isa_rev = __mips_isa_rev;
- #else
- int isa_rev = 1;
- #endif
- const char *arch = _MIPS_ARCH;
- #ifdef __mips16
- int mips16 = 1;
- #endif
- #ifdef __mips64
- int gp = 64;
- #else
- int gp = 32;
- #endif
- int fp = __mips_fpr;
- #ifdef __mips_hard_float
- const char *float = "hard";
- #else
- const char *float = "soft";
- #endif
- #if !defined _MIPS_SIM
- const char *abi = "eabi";
- #elif _MIPS_SIM==_ABIO32
- const char *abi = "32";
- #elif _MIPS_SIM==_ABIO64
- const char *abi = "o64";
- #elif _MIPS_SIM==_ABIN32
- const char *abi = "n32";
- #else
- const char *abi = "64";
- #endif
- }
+ puts $f $code
close $f
- set output [${tool}_target_compile $src "" preprocess ""]
+ set output [${tool}_target_compile $src "" preprocess $options]
file delete $src
- regexp {isa = ([^;]*)} $output dummy mips_isa
- regexp {isa_rev = ([^;]*)} $output dummy mips_isa_rev
- regexp {arch = "([^"]*)} $output dummy mips_arch
- set mips_mips16 [regexp {mips16 = 1} $output]
- regexp {gp = ([^;]*)} $output dummy mips_gp
- regexp {fp = ([^;]*)} $output dummy mips_fp
- regexp {float = "([^"]*)} $output dummy mips_float
- regexp {abi = "([^"]*)} $output dummy mips_abi
-
- set mips_forced_isa [regexp -- {(-mips[1-5][[:>:]]|-mips32*|-mips64*|-march)} $compiler_flags]
- set mips_forced_abi [regexp -- {-mabi} $compiler_flags]
- set mips_forced_regs [regexp -- {(-mgp|-mfp)} $compiler_flags]
- set mips_forced_float [regexp -- {-m(hard|soft)-float} $compiler_flags]
- set mips_forced_be [regexp -- {-(EB|meb)[[:>:]]} $compiler_flags]
- set mips_forced_le [regexp -- {-(EL|mel)[[:>:]]} $compiler_flags]
- set mips_forced_gp [regexp -- {-(G|m(|no-)((extern|local)-sdata|gpopt)|mabicalls|mrtp)} $compiler_flags]
- set mips_forced_no_abicalls [regexp -- {-mno-abicalls} $compiler_flags]
- set mips_forced_no_shared [regexp -- {-mno-shared} $compiler_flags]
- set mips_forced_no_er [regexp -- {-mno-explicit-relocs} $compiler_flags]
-
- if {$mips_forced_regs && $mips_gp == 32 && $mips_fp == 64} {
- set mips_forced_abi 1
- set mips_forced_isa 1
+ return $output
+}
+
+# Set the target board's command-line options to NEW_OPTIONS, storing the
+# old values in UPVAR.
+proc mips_push_test_options { upvar new_options } {
+ upvar $upvar var
+ global board_info
+
+ array unset var
+ set var(name) board_info([target_info name],multilib_flags)
+ if { [info exists $var(name)] } {
+ set var(old_options) [set $var(name)]
+ set $var(name) [join $new_options " "]
}
}
-# Like dg-options, but treats certain MIPS-specific options specially:
-#
-# -mgp32
-# -march=mips32*
-# Force 32-bit code. Skip the test if the multilib flags force
-# a 64-bit ABI.
-#
-# -mgp64
-# Force 64-bit code. Also force a 64-bit target architecture
-# if the other flags don't do so. Skip the test if the multilib
-# flags force a 32-bit ABI or a 32-bit architecture.
-#
-# -mfp64
-# Force the use of 64-bit floating-point registers, even on a
-# 32-bit target. Also force -mhard-float and an architecture that
-# supports such a combination, unless these things are already
-# specified by other parts of the given flags.
-#
-# -mabi=*
-# Force a particular ABI. Skip the test if the multilib flags
-# force a specific ABI or a different register size. If testing
-# MIPS16 multilibs, try to force -msoft-float for ABIs other than
-# o32 and o64, and skip the test if this is not possible.
-#
-# -march=*
-# -mips*
-# Select the target architecture. Skip the test if the multilib
-# flags force a different architecture.
-#
-# -msoft-float
-# -mhard-float
-# Select the given floating-point mode. Skip the test if the
-# multilib flags force a different selection.
-#
-# -EB
-# -EL
-# Select the given endianness. Skip the test if the multilib flags
-# force the opposite endianness.
-#
-# -G*
-# -m(no-)extern-sdata
-# -m(no-)local-sdata
-# -m(no-)gpopt
-# Select the small-data mode, and -mno-abcialls. Skip the test if
-# the multilib flags already contain such an option, or specify
-# something that might be incompatible with them.
-#
-# -mabicalls
-# -mshared
-# Select the form of SVR4 PIC. Skip the test if the multilib flags
-# conflict with the required setting.
-#
-# -mexplicit-relocs
-# Select explicit relocations. Skip the test if the multilib flags
-# force -mno-explicit-relocs.
-#
-# -mpaired-single
-# Select paired-single instructions. Also behave as for -mfp64.
-proc dg-mips-options {args} {
- upvar dg-extra-tool-flags extra_tool_flags
- upvar dg-do-what do_what
+# Undo the effects of [mips_push_test_options UPVAR ...]
+proc mips_pop_test_options { upvar } {
+ upvar $upvar var
+ global board_info
- global mips_isa
- global mips_isa_rev
- global mips_arch
- global mips_mips16
- global mips_gp
- global mips_fp
- global mips_float
- global mips_abi
-
- global mips_forced_isa
- global mips_forced_abi
- global mips_forced_regs
- global mips_forced_float
- global mips_forced_be
- global mips_forced_le
- global mips_forced_gp
- global mips_forced_no_abicalls
- global mips_forced_no_shared
- global mips_forced_no_er
-
- set flags [lindex $args 1]
- set matches 1
-
- # Add implied flags.
- foreach flag $flags {
- if {[string match -mpaired-single $flag]
- && [lsearch $flags -mfp*] < 0} {
- append flags " -mfp64"
- } elseif {[regexp -- {^-mabi=(.*)} $flag dummy abi]
- && $mips_mips16
- && $abi != "32"
- && $abi != "o64"} {
- if {[lsearch $flags -mhard-float] >= 0} {
- set matches 0
- } else {
- append flags " -msoft-float"
- }
- } elseif {[regexp -- {^-mr10k-cache-barrier=(load|store)} $flag]
- && $mips_isa < 3
- && [lsearch -regexp $flags {^(-mips|-march)}] < 0} {
- append flags " -mips3"
+ if { [info exists var(old_options)] } {
+ set $var(name) $var(old_options)
+ }
+}
+
+# Return property PROP for architecture option ARCH (which belongs to
+# the "arch" group in mips_option_groups). See the comment at the
+# top of the file for the valid property names.
+#
+# Cache the results in mips_arch_info (which can be reused between test
+# variants).
+proc mips_arch_info { arch prop } {
+ global mips_arch_info
+ global board_info
+
+ set arch [mips_canonicalize_option $arch]
+ if { ![info exists mips_arch_info($arch,$prop)] } {
+ mips_push_test_options saved_options {}
+ set output [mips_preprocess [list "additional_flags=$arch -mabi=32"] {
+ int isa = __mips;
+ #ifdef __mips_isa_rev
+ int isa_rev = __mips_isa_rev;
+ #else
+ int isa_rev = 0;
+ #endif
+ }]
+ foreach lhs { isa isa_rev } {
+ regsub ".*$lhs = (\[^;\]*).*" $output {\1} rhs
+ verbose -log "Architecture $arch has $lhs $rhs"
+ set mips_arch_info($arch,$lhs) $rhs
}
+ mips_pop_test_options saved_options
}
- foreach flag $flags {
- if {[string match -mfp* $flag]
- && [lsearch -regexp $flags {^-m(hard|soft)-float$}] < 0} {
- append flags " -mhard-float"
+ return $mips_arch_info($arch,$prop)
+}
+
+# Return the option group associated with OPTION, or "" if none.
+proc mips_option_maybe_group { option } {
+ global mips_option_groups
+
+ foreach { group regexp } $mips_option_groups {
+ if { [regexp -- "^($regexp)\$" $option] } {
+ return $group
}
}
+ return ""
+}
- # Handle options that force a particular register size. Add
- # architecture and ABI options if necessary.
- set mips_new_gp $mips_gp
- set mips_new_fp $mips_fp
- foreach flag $flags {
- switch -glob -- $flag {
- -msmartmips -
- -mips[12] -
- -mips32* -
- -march=mips32* -
- -march=r3900 -
- -march=24k* -
- -mabi=32 -
- -mgp32 {
- set mips_new_gp 32
- }
- -mabi=64 -
- -mabi=o64 -
- -mabi=n32 -
- -mgp64 {
- set mips_new_gp 64
- }
- -mfp64 {
- set mips_new_fp 64
- }
+# Return the option group associated with OPTION. Raise an error if
+# there is none.
+proc mips_option_group { option } {
+ set group [mips_option_maybe_group $option]
+ if { [string equal $group ""] } {
+ error "Unrecognised option: $option"
+ }
+ return $group
+}
+
+# Return the option for option group GROUP, or "" if no option in that
+# group has been chosen. UPSTATUS describes the option status.
+proc mips_option { upstatus group } {
+ upvar $upstatus status
+
+ return $status(option,$group)
+}
+
+# If the default options for this test run include an option in group GROUP,
+# return that option, otherwise return "".
+proc mips_original_option { group } {
+ global mips_base_options
+
+ return [mips_option mips_base_options $group]
+}
+
+# Return true if the test described up UPSTATUS requires a specific
+# option in group GROUP.
+proc mips_test_option_p { upstatus group } {
+ upvar $upstatus status
+
+ return $status(test_option_p,$group)
+}
+
+# If the test described by UPSTATUS requires a particular option in group
+# GROUP, return that option, otherwise return "".
+proc mips_test_option { upstatus group } {
+ upvar $upstatus status
+
+ if { [mips_test_option_p status $group] } {
+ return [mips_option status $group]
+ } else {
+ return ""
+ }
+}
+
+# Return true if the options described by UPSTATUS include OPTION.
+proc mips_have_option_p { upstatus option } {
+ upvar $upstatus status
+
+ return [mips_same_option_p \
+ [mips_option status [mips_option_group $option]] \
+ $option]
+}
+
+# Return true if the test described by UPSTATUS requires option OPTION.
+proc mips_have_test_option_p { upstatus option } {
+ upvar $upstatus status
+
+ set group [mips_option_group $option]
+ return [mips_same_option_p [mips_test_option status $group] $option]
+}
+
+# If the test described by UPSTATUS does not specify an option in
+# OPTION's group, act as though it had specified OPTION.
+#
+# The first optional argument indicates whether the option should be
+# treated as though it were wrapped in parentheses; see the comment at
+# the top of the file for details about this convention. The default is 0.
+proc mips_make_test_option { upstatus option args } {
+ upvar $upstatus status
+
+ set group [mips_option_group $option]
+ if { ![mips_test_option_p status $group] } {
+ set status(option,$group) $option
+ set status(test_option_p,$group) 1
+ if { [llength $args] == 0 || ![lindex $args 0] } {
+ set status(explicit_p,$group) 1
+ }
+ }
+}
+
+# If the test described by UPSTATUS requires option FROM, assume that
+# it implicitly requires option TO.
+proc mips_option_dependency { upstatus from to } {
+ upvar $upstatus status
+
+ if { [mips_have_test_option_p status $from] } {
+ mips_make_test_option status $to
+ }
+}
+
+# Return true if the given arch-group option specifies a 32-bit ISA.
+proc mips_32bit_arch_p { option } {
+ set isa [mips_arch_info $option isa]
+ return [expr { $isa < 3 || $isa == 32 }]
+}
+
+# Return true if the given arch-group option specifies a 64-bit ISA.
+proc mips_64bit_arch_p { option } {
+ return [expr { ![mips_32bit_arch_p $option] }]
+}
+
+# Return true if the given abi-group option implicitly requires -mgp32.
+proc mips_32bit_abi_p { option } {
+ switch -glob -- $option {
+ -mabi=32 {
+ return 1
}
}
+ return 0
+}
- if {$mips_new_gp != $mips_gp || $mips_new_fp != $mips_fp} {
- if {$mips_forced_regs} {
- set matches 0
+# Return true if the given abi-group option implicitly requires -mgp64.
+proc mips_64bit_abi_p { option } {
+ switch -glob -- $option {
+ -mabi=o64 -
+ -mabi=n32 -
+ -mabi=64 {
+ return 1
}
- # Select an appropriate ABI.
- if {[lsearch $flags "-mabi=*"] < 0} {
- if {$mips_new_gp == 32} {
- append flags " -mabi=32"
- } else {
- append flags " -mabi=o64"
+ }
+ return 0
+}
+
+# Check whether the current target supports all the options that the
+# current test requires. Return "" if so, otherwise return one of
+# the incompatible options. UPSTATUS describes the option status.
+proc mips_first_unsupported_option { upstatus } {
+ global mips_option_tests
+ upvar $upstatus status
+
+ foreach { option code } [array get mips_option_tests] {
+ if { [mips_have_test_option_p status $option] } {
+ regsub -all "\n" $code "\\n\\\n" asm
+ # Use check_runtime from target-supports.exp, which caches
+ # the result for us.
+ if { ![check_runtime mips_option_$option [subst {
+ __attribute__((nomips16)) int
+ main (void)
+ {
+ asm (".set push\
+ $asm\
+ .set pop");
+ return 0;
+ }
+ }]] } {
+ return $option
}
}
- # And an appropriate architecture.
- if {[lsearch -regexp $flags {^(-mips|-march)}] < 0} {
- if {$mips_new_gp == 64 && $mips_gp == 32} {
- append flags " -mips3"
- } elseif {$mips_new_gp == 32 && $mips_new_fp == 64} {
- append flags " -mips32r2"
- }
+ }
+ return ""
+}
+
+# Initialize this testsuite for a new test variant.
+proc mips-dg-init {} {
+ # Invariant information.
+ global mips_option_groups
+
+ # Internally-generated information about this run.
+ global mips_base_options
+ global mips_extra_options
+
+ # Override dg-options with our mips-dg-options routine.
+ rename dg-options mips-old-dg-options
+ rename mips-dg-options dg-options
+
+ # Start with a fresh option status.
+ array unset mips_base_options
+ foreach { group regexp } $mips_option_groups {
+ set mips_base_options(option,$group) ""
+ set mips_base_options(explicit_p,$group) 0
+ set mips_base_options(test_option_p,$group) 0
+ }
+
+ # Use preprocessor macros to work out as many implicit options as we can.
+ set output [mips_preprocess "" {
+ const char *options[] = {
+ #if !defined _MIPS_SIM
+ "-mabi=eabi",
+ #elif _MIPS_SIM==_ABIO32
+ "-mabi=32",
+ #elif _MIPS_SIM==_ABIO64
+ "-mabi=o64",
+ #elif _MIPS_SIM==_ABIN32
+ "-mabi=n32",
+ #else
+ "-mabi=64",
+ #endif
+
+ "-march=" _MIPS_ARCH,
+
+ #ifdef _MIPSEB
+ "-EB",
+ #else
+ "-EL",
+ #endif
+
+ #ifdef __mips_hard_float
+ "-mhard-float",
+ #else
+ "-msoft-float",
+ #endif
+
+ #if __mips_fpr == 64
+ "-mfp64",
+ #else
+ "-mfp32",
+ #endif
+
+ #ifdef __mips64
+ "-mgp64",
+ #else
+ "-mgp32",
+ #endif
+
+ #if _MIPS_SZLONG == 64
+ "-mlong64",
+ #else
+ "-mlong32",
+ #endif
+
+ #ifdef __mips16
+ "-mips16",
+ #else
+ "-mno-mips16",
+ #endif
+
+ #ifdef __mips3d
+ "-mips3d",
+ #else
+ "-mno-mips3d",
+ #endif
+
+ #ifdef __mips_paired_single_float
+ "-mpaired-single",
+ #else
+ "-mno-paired-single",
+ #endif
+
+ #if __mips_abicalls
+ "-mabicalls",
+ #else
+ "-mno-abicalls",
+ #endif
+
+ #if __mips_dsp_rev >= 2
+ "-mdspr2",
+ #else
+ "-mno-dspr2",
+ #endif
+
+ #if __mips_dsp_rev >= 1
+ "-mdsp",
+ #else
+ "-mno-dsp",
+ #endif
+
+ #ifndef __PIC__
+ "addressing=absolute",
+ #endif
+
+ #ifdef __mips_smartmips
+ "-msmartmips",
+ #else
+ "-mno-smartmips",
+ #endif
+
+ 0
+ };
+ }]
+ foreach line [split $output "\r\n"] {
+ # Poor man's string concatenation.
+ regsub -all {" "} $line "" line
+ if { [regexp {"(.*)",} $line dummy option] } {
+ set group [mips_option_group $option]
+ set mips_base_options(option,$group) $option
}
}
- foreach flag $flags {
- if {[string match -mabicalls $flag]} {
- # EABI has no SVR4-style PIC mode, so try to force another ABI.
- if {$mips_abi == "eabi" && [lsearch $flags "-mabi=*"] < 0} {
- if {$mips_new_gp == 32} {
- append flags " -mabi=32"
+ # Process the target's multilib options, saving any unrecognized
+ # ones in mips_extra_options.
+ set mips_extra_options {}
+ foreach option [split [board_info target multilib_flags]] {
+ set group [mips_option_maybe_group $option]
+ if { ![string equal $group ""] } {
+ set mips_base_options(option,$group) $option
+ set mips_base_options(explicit_p,$group) 1
+ } else {
+ lappend mips_extra_options $option
+ }
+ }
+}
+
+# Finish a test run started by mips-dg-init.
+proc mips-dg-finish {} {
+ rename dg-options mips-dg-options
+ rename mips-old-dg-options dg-options
+}
+
+# Override dg-options so that we can do some MIPS-specific processing.
+# All options used in this testsuite must appear in mips_option_groups.
+#
+# Test options override multilib options. Certain test options can
+# also imply other test options, which also override multilib options.
+# These dependencies are ordered as follows:
+#
+# START END
+# | |
+# -mips16 -mno-mips16
+# | |
+# -mips3d -mno-mips3d
+# | |
+# -mpaired-single -mno-paired-single
+# | |
+# -mfp64 -mfp32
+# | |
+# -mhard-float -msoft-float
+# | |
+# -mno-sym32 -msym32
+# | |
+# -fpic -fno-pic
+# | |
+# -mshared -mno-shared
+# | |
+# -mno-plt -mplt
+# | |
+# addressing=unknown addressing=absolute
+# | |
+# -mabicalls -mno-abicalls
+# | |
+# -G0 <other value>
+# | |
+# <other value> -mr10k-cache-barrier=none
+# | |
+# -mfix-r10000 -mno-fix-r10000
+# | |
+# -mbranch-likely -mno-branch-likely
+# | |
+# -msmartmips -mno-smartmips
+# | |
+# -mno-gpopt -mgpopt
+# | |
+# -mexplicit-relocs -mno-explicit-relocs
+# | |
+# +-- gp, abi & arch ---------+
+#
+# For these purposes, the "gp", "abi" & "arch" option groups are treated
+# as a single node.
+proc mips-dg-options { args } {
+ # dg.exp variables.
+ upvar dg-extra-tool-flags extra_tool_flags
+ upvar dg-do-what do_what
+
+ # Invariant information.
+ global mips_option_groups
+ global mips_abi_groups
+
+ # Information about this run.
+ global mips_base_options
+
+ # Start out with the default option state.
+ array set options [array get mips_base_options]
+
+ # Record the options that this test explicitly needs.
+ foreach option [lindex $args 1] {
+ set all_but_p [regexp {^\((.*)\)$} $option dummy option]
+ set group [mips_option_group $option]
+ if { [mips_test_option_p options $group] } {
+ set old [mips_option options $group]
+ error "Inconsistent $group option: $old vs. $option"
+ } else {
+ mips_make_test_option options $option $all_but_p
+ }
+ }
+
+ # Handle dependencies between options on the left of the
+ # dependency diagram.
+ mips_option_dependency options "-mips3d" "-mpaired-single"
+ mips_option_dependency options "-mpaired-single" "-mfp64"
+ mips_option_dependency options "-mfp64" "-mhard-float"
+ mips_option_dependency options "-fpic" "-mshared"
+ mips_option_dependency options "-mshared" "-mno-plt"
+ mips_option_dependency options "-mno-plt" "addressing=unknown"
+ mips_option_dependency options "-mabicalls" "-G0"
+ mips_option_dependency options "-mno-gpopt" "-mexplicit-relocs"
+
+ # Work out information about the current ABI.
+ set abi_test_option_p [mips_test_option_p options abi]
+ set abi [mips_option options abi]
+ set eabi_p [mips_same_option_p $abi "-mabi=eabi"]
+
+ # If the test forces a particular ABI, set the register size
+ # accordingly.
+ if { $abi_test_option_p } {
+ if { [mips_32bit_abi_p $abi] } {
+ mips_make_test_option options "-mgp32"
+ } elseif { [mips_64bit_abi_p $abi] } {
+ mips_make_test_option options "-mgp64"
+ }
+ }
+
+ # Interpret the special "isa" and "isa_rev" options. If we have
+ # a choice of a 32-bit or a 64-bit architecture, prefer to keep
+ # the -mgp setting the same.
+ set spec [mips_option options arch]
+ if { [regexp {^[^-]} $spec] } {
+ set arch [mips_option mips_base_options arch]
+ if { [string equal $spec "isa=loongson"] } {
+ if { ![regexp {^-march=loongson} $arch] } {
+ set arch "-march=loongson2f"
+ }
+ } else {
+ if { ![regexp {^(isa(?:|_rev))(=|<=|>=)([0-9]+)$} $spec \
+ dummy prop relation value] } {
+ error "Unrecognized isa specification: $isa_spec"
+ }
+ set current [mips_arch_info $arch $prop]
+ if { ($current < $value && ![string equal $relation "<="])
+ || ($current > $value && ![string equal $relation ">="])
+ || ([mips_have_test_option_p options "-mgp64"]
+ && [mips_32bit_arch_p $arch]) } {
+ # The current setting is out of range; it cannot
+ # possibly be used. Find a replacement that can.
+ if { [string equal $prop "isa"] } {
+ set arch "-mips$value"
+ } elseif { $value == 0 } {
+ set arch "-mips4"
} else {
- append flags " -mabi=n32"
+ if { [mips_have_option_p options "-mgp32"] } {
+ set arch "-mips32"
+ } else {
+ set arch "-mips64"
+ }
+ if { $value > 1 } {
+ append arch "r$value"
+ }
}
}
- # Turn off small data, if on by default.
- append flags " -G0"
}
+ set options(option,arch) $arch
}
- # Handle the other options.
- foreach flag $flags {
- if {[regexp -- {^-mabi=(.*)} $flag dummy abi]} {
- if {$abi != $mips_abi && $mips_forced_abi} {
- set matches 0
- }
- } elseif {[regexp -- {^-mips(.*)} $flag dummy isa]
- || [regexp -- {^-march=mips(.*)} $flag dummy isa]} {
- if {![regexp {(.*)r(.*)} $isa dummy isa isa_rev]} {
- set isa_rev 1
- }
- if {($isa != $mips_isa || $isa_rev != $mips_isa_rev)
- && $mips_forced_isa} {
- set matches 0
+ # Work out information about the current architecture.
+ set arch_test_option_p [mips_test_option_p options arch]
+ set arch [mips_option options arch]
+ set isa [mips_arch_info $arch isa]
+ set isa_rev [mips_arch_info $arch isa_rev]
+
+ # If the test forces a 32-bit architecture, force -mgp32.
+ # Force the current -mgp setting otherwise; if we don't,
+ # some configurations would make a 64-bit architecture
+ # imply -mgp64.
+ if { $arch_test_option_p } {
+ if { [mips_32bit_arch_p $arch] } {
+ mips_make_test_option options "-mgp32"
+ } else {
+ mips_make_test_option options [mips_option options gp]
+ }
+ }
+
+ # We've now fixed the GP register size. Make it easily available.
+ set gp_size [expr { [mips_have_option_p options "-mgp32"] ? 32 : 64 }]
+
+ # Handle dependencies between the pre-arch options and the arch option.
+ # This should mirror the arch and post-arch code below.
+ if { !$arch_test_option_p } {
+ # We need a revision 2 or better ISA for:
+ #
+ # - the combination of -mgp32 -mfp64
+ # - the DSP ASE
+ if { $isa_rev < 2
+ && (($gp_size == 32 && [mips_have_test_option_p options "-mfp64"])
+ || [mips_have_test_option_p options "-mdsp"]
+ || [mips_have_test_option_p options "-mdspr2"]) } {
+ if { $gp_size == 32 } {
+ mips_make_test_option options "-mips32r2"
+ } else {
+ mips_make_test_option options "-mips64r2"
}
- } elseif {[regexp -- {^-march=(.*)} $flag dummy arch]} {
- if {$arch != $mips_arch && $mips_forced_isa} {
- set matches 0
+ # We need a MIPS32 or MIPS64 ISA for:
+ #
+ # - paired-single instructions(*)
+ #
+ # (*) Note that we don't support MIPS V at the moment.
+ } elseif { $isa_rev < 1
+ && [mips_have_test_option_p options "-mpaired-single"] } {
+ if { $gp_size == 32 } {
+ mips_make_test_option options "-mips32"
+ } else {
+ mips_make_test_option options "-mips64"
}
- } elseif {[regexp -- {^-m(hard|soft)-float} $flag dummy float]} {
- if {$mips_float != $float && $mips_forced_float} {
- set matches 0
+ # We need MIPS III or higher for:
+ #
+ # - the "cache" instruction
+ } elseif { $isa < 3
+ && ([mips_have_test_option_p options \
+ "-mr10k-cache-barrier=load-store"]
+ || [mips_have_test_option_p options \
+ "-mr10k-cache-barrier=store"]) } {
+ mips_make_test_option options "-mips3"
+ # We need MIPS II or higher for:
+ #
+ # - branch-likely instructions(*)
+ #
+ # (*) needed by both -mbranch-likely and -mfix-r10000
+ } elseif { $isa < 2
+ && ([mips_have_test_option_p options "-mbranch-likely"]
+ || [mips_have_test_option_p options "-mfix-r10000"]) } {
+ mips_make_test_option options "-mips2"
+ # Check whether we need to switch from a 32-bit processor to the
+ # "nearest" 64-bit processor.
+ } elseif { $gp_size == 64 && [mips_32bit_arch_p $arch] } {
+ if { $isa_rev == 0 } {
+ mips_make_test_option options "-mips3"
+ } elseif { $isa_rev == 1 } {
+ mips_make_test_option options "-mips64"
+ } else {
+ mips_make_test_option options "-mips64r$isa_rev"
}
- } elseif {[regexp -- {^-(EB|meb)$} $flag]} {
- if {$mips_forced_le} {
- set matches 0
+ }
+ unset arch
+ unset isa
+ unset isa_rev
+ }
+
+ # Set an appropriate ABI, handling dependencies between the pre-abi
+ # options and the abi options. This should mirror the abi and post-abi
+ # code below.
+ if { !$abi_test_option_p } {
+ if { ($eabi_p
+ && ([mips_have_option_p options "-mabicalls"]
+ || ($gp_size == 32
+ && [mips_have_option_p options "-mfp64"]))) } {
+ # EABI doesn't support -mabicalls.
+ # EABI doesn't support the combination -mgp32 -mfp64.
+ set force_abi 1
+ } elseif { [mips_have_option_p options "-mips16"]
+ && ![mips_same_option_p $abi "-mabi=32"]
+ && ![mips_same_option_p $abi "-mabi=o64"]
+ && (![mips_have_option_p options "addressing=absolute"]
+ || [mips_have_option_p options "-mhard-float"]) } {
+ # -mips16 -mhard-float requires o32 or o64.
+ # -mips16 PIC requires o32 or o64.
+ set force_abi 1
+ } else {
+ set force_abi 0
+ }
+ if { $gp_size == 32 } {
+ if { $force_abi || [mips_64bit_abi_p $abi] } {
+ mips_make_test_option options "-mabi=32"
}
- } elseif {[regexp -- {^-(EL|mel)$} $flag]} {
- if {$mips_forced_be} {
- set matches 0
+ } else {
+ if { $force_abi || [mips_32bit_abi_p $abi] } {
+ # All configurations should have an assembler that
+ # supports o64, since it requires the same BFD target
+ # vector as o32. In contrast, many assembler
+ # configurations do not have n32 or n64 support.
+ mips_make_test_option options "-mabi=o64"
}
- } elseif {[regexp -- {^-(G|m(|no-)((extern|local)-sdata|gpopt))} $flag]} {
- if {$flag != "-G0"} {
- append flags " -mno-abicalls"
+ }
+ unset abi
+ unset eabi_p
+ }
+
+ # Handle dependencies between the abi options and the post-abi options.
+ # This should mirror the abi and pre-abi code above.
+ if { $abi_test_option_p } {
+ if { $eabi_p } {
+ mips_make_test_option options "-mno-abicalls"
+ if { $gp_size == 32 } {
+ mips_make_test_option options "-mfp32"
}
- if {$mips_forced_gp} {
- set matches 0
+ }
+ if { [mips_have_option_p options "-mips16"]
+ && ![mips_same_option_p $abi "-mabi=32"]
+ && ![mips_same_option_p $abi "-mabi=o64"]
+ && (![mips_have_option_p options "addressing=absolute"]
+ || [mips_have_option_p options "-mhard-float"]) } {
+ if { [mips_test_option_p options mips16] } {
+ mips_make_test_option options "addressing=absolute"
+ mips_make_test_option options "-msoft-float"
+ } else {
+ mips_make_test_option options "-mno-mips16"
}
- } elseif {[regexp -- {^-mabicalls$} $flag]} {
- if {$mips_forced_no_abicalls} {
- set matches 0
+ }
+ unset abi
+ unset eabi_p
+ }
+
+ # Handle dependencies between the arch option and the post-arch options.
+ # This should mirror the arch and pre-arch code above.
+ if { $arch_test_option_p } {
+ if { $isa < 2 } {
+ mips_make_test_option options "-mno-branch-likely"
+ mips_make_test_option options "-mno-fix-r10000"
+ }
+ if { $isa < 3 } {
+ mips_make_test_option options "-mr10k-cache-barrier=none"
+ }
+ if { $isa_rev < 1 } {
+ mips_make_test_option options "-mno-paired-single"
+ }
+ if { $isa_rev < 2 } {
+ if { $gp_size == 32 } {
+ mips_make_test_option options "-mfp32"
}
- } elseif {[regexp -- {^-mshared$} $flag]} {
- if {$mips_forced_no_shared} {
- set matches 0
+ mips_make_test_option options "-mno-dsp"
+ mips_make_test_option options "-mno-dspr2"
+ }
+ unset arch
+ unset isa
+ unset isa_rev
+ }
+
+ # Handle dependencies between options on the right of the diagram.
+ mips_option_dependency options "-mno-explicit-relocs" "-mgpopt"
+ switch -- [mips_test_option options small-data] {
+ "" -
+ -G0 {}
+ default {
+ mips_make_test_option options "-mno-abicalls"
+ }
+ }
+ if { [mips_have_option_p options "-mabicalls"] } {
+ mips_option_dependency options "addressing=absolute" "-mplt"
+ }
+ mips_option_dependency options "-mplt" "-msym32"
+ mips_option_dependency options "-mplt" "-mno-shared"
+ mips_option_dependency options "-mno-shared" "-fno-pic"
+ mips_option_dependency options "-mfp32" "-mno-paired-single"
+ mips_option_dependency options "-msoft-float" "-mno-paired-single"
+ mips_option_dependency options "-mno-paired-single" "-mno-mips3d"
+
+ # If the test requires an unsupported option, change run tests
+ # to link tests.
+
+ switch -- [lindex $do_what 0] {
+ run {
+ set option [mips_first_unsupported_option options]
+ if { ![string equal $option ""] } {
+ set do_what [lreplace $do_what 0 0 link]
+ verbose -log "Downgraded to a 'link' test due to unsupported option '$option'"
}
- } elseif {[regexp -- {^-mexplicit-relocs$} $flag]} {
- if {$mips_forced_no_er} {
- set matches 0
+ }
+ }
+
+ # If the test has overridden a option that changes the ABI,
+ # downgrade a link or execution test to an assembler test.
+ foreach group $mips_abi_groups {
+ set old_option [mips_original_option $group]
+ set new_option [mips_option options $group]
+ if { ![mips_same_option_p $old_option $new_option] } {
+ switch -- [lindex $do_what 0] {
+ link -
+ run {
+ set do_what [lreplace $do_what 0 0 assemble]
+ verbose -log "Downgraded to an 'assemble' test due to incompatible $group option ($old_option changed to $new_option)"
+ }
}
+ break
}
}
- if {$matches} {
- append extra_tool_flags " " $flags
- } else {
- set do_what [list [lindex $do_what 0] "N" "P"]
+
+ # Add all options to the dg variable.
+ set options(explicit_p,addressing) 0
+ foreach { group regexp } $mips_option_groups {
+ if { $options(explicit_p,$group) } {
+ append extra_tool_flags " " $options(option,$group)
+ }
+ }
+
+ # If the test is MIPS16-compatible, provide a counterpart to the
+ # NOMIPS16 convenience macro.
+ if { [mips_have_test_option_p options "-mips16"] } {
+ append extra_tool_flags " -DMIPS16=__attribute__((mips16))"
+ }
+
+ # Use our version of gcc-dg-test for this test.
+ if { ![string equal [info procs "mips-gcc-dg-test"] ""] } {
+ rename gcc-dg-test mips-old-gcc-dg-test
+ rename mips-gcc-dg-test gcc-dg-test
}
}
-setup_mips_tests
+# A version of gcc-dg-test that is used by dg-options tests.
+proc mips-gcc-dg-test { prog do_what extra_tool_flags } {
+ global board_info
+ global mips_extra_options
+
+ # Override the user's chosen test options with the combined test/user
+ # version.
+ mips_push_test_options saved_options $mips_extra_options
+ set result [gcc-dg-test-1 gcc_target_compile $prog \
+ $do_what $extra_tool_flags]
+ mips_pop_test_options saved_options
+
+ # Restore the usual gcc-dg-test.
+ rename gcc-dg-test mips-gcc-dg-test
+ rename mips-old-gcc-dg-test gcc-dg-test
+
+ return $result
+}
dg-init
-# MIPS16 is defined in add_options_for_mips16_attribute.
+mips-dg-init
+# MIPS16 is defined by "-mips16" or "(-mips16)" in dg-options.
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" \
"-DNOMIPS16=__attribute__((nomips16))"
+mips-dg-finish
dg-finish
diff --git a/gcc/testsuite/gcc.target/mips/mips16-attributes-2.c b/gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
index edab378c218..bc81cfa7e03 100644
--- a/gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
@@ -1,6 +1,5 @@
-/* { dg-do compile { target mips16_attribute } } */
/* { dg-skip-if "" { *-*-* } { "-mflip-mips16" } { "" } } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16)" } */
void f1 (void);
void __attribute__((mips16)) f1 (void) {} /* { dg-error "conflicting" } */
diff --git a/gcc/testsuite/gcc.target/mips/mips16-attributes-3.c b/gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
index 3b4e10777a4..74745039056 100644
--- a/gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
@@ -1,3 +1,4 @@
+/* { dg-options "(-mips16)" } */
/* We should be able to assign mips16 and nomips16 functions to a pointer. */
void __attribute__((mips16)) f1 (void);
void (*ptr1) (void) = f1;
diff --git a/gcc/testsuite/gcc.target/mips/mips16-attributes.c b/gcc/testsuite/gcc.target/mips/mips16-attributes.c
index 96945e10e8c..28bb9aae7fa 100644
--- a/gcc/testsuite/gcc.target/mips/mips16-attributes.c
+++ b/gcc/testsuite/gcc.target/mips/mips16-attributes.c
@@ -1,8 +1,8 @@
/* Verify that mips16 and nomips16 attributes work, checking all combinations
of calling a nomips16/mips16/default function from a nomips16/mips16/default
function. */
-/* { dg-do run { target { mipsisa*-*-elf* && mips16_attribute } } } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-do run } */
+/* { dg-options "(-mips16)" } */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips16e-extends.c b/gcc/testsuite/gcc.target/mips/mips16e-extends.c
index df43c415cd1..d077f2fae6e 100644
--- a/gcc/testsuite/gcc.target/mips/mips16e-extends.c
+++ b/gcc/testsuite/gcc.target/mips/mips16e-extends.c
@@ -1,6 +1,5 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-Os -march=mips32" } */
-/* { dg-add-options mips16_attribute } */
+/* -mlong32 added because of PR target/38595. */
+/* { dg-options "(-mips16) -Os isa_rev>=1 -mlong32" } */
MIPS16 short cksum16 (unsigned long n)
{
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
index c82f68ee38f..e6a271e246b 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
-/* { dg-do run { target mipsisa32r2*-*-* } } */
-/* { dg-mips-options "-march=mips32r2 -mdsp -O2" } */
+/* { dg-do run } */
+/* { dg-options "-mdsp -O2" } */
#include <stdlib.h>
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c
index f0f3fda403e..cbf347b29c9 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32 -mdsp" } */
+/* { dg-options "-mdsp" } */
/* { dg-final { scan-assembler "addq.ph" } } */
/* { dg-final { scan-assembler "addu.qb" } } */
/* { dg-final { scan-assembler "subq.ph" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
index 08f18da6ff2..c00ea3e0b49 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32 -mdsp" } */
+/* { dg-options "-mgp32 -mdsp" } */
/* { dg-final { scan-assembler "addq.ph" } } */
/* { dg-final { scan-assembler "addq_s.ph" } } */
/* { dg-final { scan-assembler "addq_s.w" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dspr2-type.c b/gcc/testsuite/gcc.target/mips/mips32-dspr2-type.c
index 5d231983b22..9501e9cbeac 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dspr2-type.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dspr2-type.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP REV 2 instructions */
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2" } */
+/* { dg-options "-mdspr2" } */
/* { dg-final { scan-assembler "\tmul.ph\t" } } */
typedef short v2hi __attribute__ ((vector_size(4)));
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
index 31cf22cfcd4..1b3031ff19d 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP REV 2 instructions */
-/* { dg-do run { target mipsisa32r2*-*-* } } */
-/* { dg-mips-options "-march=mips32r2 -mdspr2 -O2" } */
+/* { dg-do run } */
+/* { dg-options "-mdspr2 -O2" } */
typedef signed char v4q7 __attribute__ ((vector_size(4)));
typedef signed char v4i8 __attribute__ ((vector_size(4)));
@@ -13,7 +13,7 @@ typedef long long a64;
void abort (void);
-void test_MIPS_DSPR2 (void);
+NOMIPS16 void test_MIPS_DSPR2 (void);
int little_endian;
@@ -28,7 +28,7 @@ int main ()
return 0;
}
-void test_MIPS_DSPR2 ()
+NOMIPS16 void test_MIPS_DSPR2 ()
{
v4q7 v4q7_a,v4q7_b,v4q7_c,v4q7_r,v4q7_s;
v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s;
diff --git a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
index 9257612cc17..cf57323db1a 100644
--- a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
+++ b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
@@ -1,14 +1,14 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mabi=32 -mfp64" } */
+/* { dg-options "-O -mabi=32 -mfp64" } */
/* { dg-final { scan-assembler "mthc1" } } */
/* { dg-final { scan-assembler "mfhc1" } } */
-double func1 (long long a)
+NOMIPS16 double func1 (long long a)
{
return a;
}
-long long func2 (double b)
+NOMIPS16 long long func2 (double b)
{
return b;
}
diff --git a/gcc/testsuite/gcc.target/mips/movcc-1.c b/gcc/testsuite/gcc.target/mips/movcc-1.c
index 1f216b7937e..1a930c9ac06 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-1.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips4" } */
+/* { dg-options "-O2 isa>=4" } */
/* { dg-final { scan-assembler "movz" } } */
/* { dg-final { scan-assembler "movn" } } */
diff --git a/gcc/testsuite/gcc.target/mips/movcc-2.c b/gcc/testsuite/gcc.target/mips/movcc-2.c
index bb578099a5b..d42acc1d77c 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-2.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips4" } */
+/* { dg-options "-O2 isa>=4" } */
/* { dg-final { scan-assembler "movz" } } */
/* { dg-final { scan-assembler "movn" } } */
diff --git a/gcc/testsuite/gcc.target/mips/movcc-3.c b/gcc/testsuite/gcc.target/mips/movcc-3.c
index c3e0b422a30..e6481777add 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-3.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips4 -mhard-float" } */
+/* { dg-options "-O2 isa>=4 -mhard-float" } */
/* { dg-final { scan-assembler "movt" } } */
/* { dg-final { scan-assembler "movf" } } */
/* { dg-final { scan-assembler "movz.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-1.c b/gcc/testsuite/gcc.target/mips/msub-1.c
index ec6bbc5faaf..803ea77df74 100644
--- a/gcc/testsuite/gcc.target/mips/msub-1.c
+++ b/gcc/testsuite/gcc.target/mips/msub-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5400 -mgp32" } */
+/* { dg-options "-O2 -march=vr5400 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsac\t\\\$0," 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-2.c b/gcc/testsuite/gcc.target/mips/msub-2.c
index 09c22e76632..e6cdc2c1a9a 100644
--- a/gcc/testsuite/gcc.target/mips/msub-2.c
+++ b/gcc/testsuite/gcc.target/mips/msub-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5500 -mgp32" } */
+/* { dg-options "-O2 -march=vr5500 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-3.c b/gcc/testsuite/gcc.target/mips/msub-3.c
index 97dccf2fd97..c44f34f4f0e 100644
--- a/gcc/testsuite/gcc.target/mips/msub-3.c
+++ b/gcc/testsuite/gcc.target/mips/msub-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32 -mgp32" } */
+/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-4.c b/gcc/testsuite/gcc.target/mips/msub-4.c
index df08a6304a4..d41c3129914 100644
--- a/gcc/testsuite/gcc.target/mips/msub-4.c
+++ b/gcc/testsuite/gcc.target/mips/msub-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32r2 -mdspr2 -mgp32" } */
+/* { dg-options "-O2 -mdspr2 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsub\t\\\$ac" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-5.c b/gcc/testsuite/gcc.target/mips/msub-5.c
index 675da64a5e1..dcb124a7198 100644
--- a/gcc/testsuite/gcc.target/mips/msub-5.c
+++ b/gcc/testsuite/gcc.target/mips/msub-5.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler-times "\tmsub\t" 4 } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-6.c b/gcc/testsuite/gcc.target/mips/msub-6.c
index afe01cb5162..ee4ca3d8da0 100644
--- a/gcc/testsuite/gcc.target/mips/msub-6.c
+++ b/gcc/testsuite/gcc.target/mips/msub-6.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler-not "\tmsub\t" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler "\tsubu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-7.c b/gcc/testsuite/gcc.target/mips/msub-7.c
index 9fff31d5132..ca90cee9ea5 100644
--- a/gcc/testsuite/gcc.target/mips/msub-7.c
+++ b/gcc/testsuite/gcc.target/mips/msub-7.c
@@ -1,4 +1,5 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* -mlong32 added because of PR target/38598. */
+/* { dg-options "-O2 -march=5kc -mlong32" } */
/* { dg-final { scan-assembler-not "\tmul\t" } } */
/* { dg-final { scan-assembler "\tmsub\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-8.c b/gcc/testsuite/gcc.target/mips/msub-8.c
index 7517540cdc4..49d67f24a6c 100644
--- a/gcc/testsuite/gcc.target/mips/msub-8.c
+++ b/gcc/testsuite/gcc.target/mips/msub-8.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=5kc" } */
+/* { dg-options "-O2 -march=5kc" } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler-not "\tmsub\t" } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msubu-1.c b/gcc/testsuite/gcc.target/mips/msubu-1.c
index 187cb71c728..ae804034644 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-1.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5400 -mgp32" } */
+/* { dg-options "-O2 -march=vr5400 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsacu\t\\\$0," 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-2.c b/gcc/testsuite/gcc.target/mips/msubu-2.c
index 36cb91bcfa5..186dc47d6f7 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-2.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5500 -mgp32" } */
+/* { dg-options "-O2 -march=vr5500 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-3.c b/gcc/testsuite/gcc.target/mips/msubu-3.c
index ee5dd6a9cf9..272c64818e3 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-3.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32 -mgp32" } */
+/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-4.c b/gcc/testsuite/gcc.target/mips/msubu-4.c
index fb655db8730..8f5fd647b37 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-4.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips32r2 -mdspr2 -mgp32" } */
+/* { dg-options "-O2 -mdspr2 -mgp32" } */
/* { dg-final { scan-assembler-times "\tmsubu\t\\\$ac" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/near-far-1.c b/gcc/testsuite/gcc.target/mips/near-far-1.c
index f8bc5c93ef4..ac0cc1ef79b 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-1.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-1.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mlong-calls" } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-options "-mlong-calls addressing=absolute" } */
extern int long_call_func () __attribute__((long_call));
extern int far_func () __attribute__((far));
diff --git a/gcc/testsuite/gcc.target/mips/near-far-2.c b/gcc/testsuite/gcc.target/mips/near-far-2.c
index d65c44cf9f9..c954b444cb0 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-2.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-2.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mno-long-calls" } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-options "-mno-long-calls addressing=absolute" } */
extern int long_call_func () __attribute__((long_call));
extern int far_func () __attribute__((far));
diff --git a/gcc/testsuite/gcc.target/mips/near-far-3.c b/gcc/testsuite/gcc.target/mips/near-far-3.c
index bde44e54366..f4ae791f1a0 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-3.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-3.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mlong-calls -O2" } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-options "-mlong-calls addressing=absolute -O2" } */
NOMIPS16 extern int long_call_func () __attribute__((long_call));
NOMIPS16 extern int far_func () __attribute__((far));
diff --git a/gcc/testsuite/gcc.target/mips/near-far-4.c b/gcc/testsuite/gcc.target/mips/near-far-4.c
index f79216860ba..b9aa21fe4f4 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-4.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-4.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-mno-long-calls -O2" } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-options "-mno-long-calls addressing=absolute -O2" } */
NOMIPS16 extern int long_call_func () __attribute__((long_call));
NOMIPS16 extern int far_func () __attribute__((far));
diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-1.c b/gcc/testsuite/gcc.target/mips/neg-abs-1.c
index e5daa291af0..20691ff2c4b 100644
--- a/gcc/testsuite/gcc.target/mips/neg-abs-1.c
+++ b/gcc/testsuite/gcc.target/mips/neg-abs-1.c
@@ -1,7 +1,7 @@
/* Make sure that we use abs.fmt and neg.fmt when the signs of NaNs don't
matter. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mhard-float -ffinite-math-only" } */
+/* { dg-options "-O2 -mhard-float -ffinite-math-only" } */
/* { dg-final { scan-assembler "neg.s" } } */
/* { dg-final { scan-assembler "neg.d" } } */
/* { dg-final { scan-assembler "abs.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-2.c b/gcc/testsuite/gcc.target/mips/neg-abs-2.c
index 5ef08da6f34..67125f78a67 100644
--- a/gcc/testsuite/gcc.target/mips/neg-abs-2.c
+++ b/gcc/testsuite/gcc.target/mips/neg-abs-2.c
@@ -1,7 +1,7 @@
/* Make sure that we avoid abs.fmt and neg.fmt when the signs of NaNs
matter. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mhard-float -fno-finite-math-only" } */
+/* { dg-options "-O2 -mhard-float -fno-finite-math-only" } */
/* { dg-final { scan-assembler-not "neg.s" } } */
/* { dg-final { scan-assembler-not "neg.d" } } */
/* { dg-final { scan-assembler-not "abs.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-1.c b/gcc/testsuite/gcc.target/mips/nmadd-1.c
index bd3b10ab69c..123d48799ed 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-1.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float" } */
+/* { dg-options "-O2 -ffast-math isa=4 -mhard-float" } */
/* { dg-final { scan-assembler "nmadd.s" } } */
/* { dg-final { scan-assembler "nmadd.d" } } */
/* { dg-final { scan-assembler "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-2.c b/gcc/testsuite/gcc.target/mips/nmadd-2.c
index cce3710881d..90e4d838d89 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-2.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -fno-fast-math -ffinite-math-only -mips4 -mhard-float" } */
+/* { dg-options "-O2 -fno-fast-math -ffinite-math-only isa=4 -mhard-float" } */
/* { dg-final { scan-assembler "nmadd.s" } } */
/* { dg-final { scan-assembler "nmadd.d" } } */
/* { dg-final { scan-assembler "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-3.c b/gcc/testsuite/gcc.target/mips/nmadd-3.c
index 381fdef08fb..df726186128 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-3.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-3.c
@@ -1,7 +1,7 @@
/* The same code as nmadd-2.c, but compiled with -fno-finite-math-only.
We can't use nmadd and nmsub in that case. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -fno-fast-math -fno-finite-math-only -mips4 -mhard-float" } */
+/* { dg-options "-O2 -fno-fast-math -fno-finite-math-only isa=4 -mhard-float" } */
/* { dg-final { scan-assembler-not "nmadd.s" } } */
/* { dg-final { scan-assembler-not "nmadd.d" } } */
/* { dg-final { scan-assembler-not "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
index 6d1d7e8c0ec..ee7f3d54d5d 100644
--- a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
+++ b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mno-smartmips" } */
+/* { dg-options "-O -mno-smartmips" } */
NOMIPS16 int scaled_indexed_word_load (int a[], int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
index 6433397f4e3..d1f50a8fbef 100644
--- a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
+++ b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mno-smartmips -march=mips32" } */
+/* { dg-options "-O -mno-smartmips -march=mips32" } */
NOMIPS16 int rotate_left (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
index 97aacc58a2a..8dd5be16765 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon" } */
+/* { dg-options "-O -march=octeon" } */
/* { dg-final { scan-assembler-times "\tbaddu\t" 4 } } */
/* { dg-final { scan-assembler-not "\tandi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
index 24fd72884e7..6629dbb5844 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
@@ -1,9 +1,11 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=octeon" } */
+/* { dg-options "-O2 -march=octeon" } */
/* { dg-final { scan-assembler-times "\tbbit1\t" 4 } } */
/* { dg-final { scan-assembler-times "\tbbit0\t" 2 } } */
/* { dg-final { scan-assembler-not "andi\t" } } */
+NOMIPS16 void foo (void);
+
NOMIPS16 void
f1 (long long i)
{
@@ -51,5 +53,5 @@ NOMIPS16 void
f6 ()
{
if (!test_bit(0, &r))
- g ();
+ foo ();
}
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
index 6be7ef58643..55bf23eae4e 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=octeon -mbranch-likely" } */
+/* { dg-options "-O2 -march=octeon -mbranch-likely" } */
/* { dg-final { scan-assembler "\tbbit\[01\]\t" } } */
/* { dg-final { scan-assembler-not "\tbbit\[01\]l\t" } } */
/* { dg-final { scan-assembler "\tbnel\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
index fd01f12181d..bcc37d29e34 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
@@ -11,7 +11,7 @@
which does not get recognized as a valid bbit pattern. The
middle-end should be able to simplify this further. */
-/* { dg-mips-options "-O2 -march=octeon -meb" } */
+/* { dg-options "-O2 -march=octeon -meb" } */
/* { dg-final { scan-assembler-times "\tbbit\[01\]\t|\tbgez\t" 2 } } */
/* { dg-final { scan-assembler-not "ext\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
index 27dc6b3d2b7..ac85e237846 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* The tests also work with -mgp32. For long long tests, only one of
the 32-bit parts is used. */
-/* { dg-mips-options "-O -march=octeon" } */
+/* { dg-options "-O -march=octeon" } */
/* { dg-final { scan-assembler-times "\tcins\t" 3 } } */
/* { dg-final { scan-assembler-not "\tandi\t|sll\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
index c60ee933ffa..2dcff0aad1c 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-O -march=octeon -mgp64" } */
/* { dg-final { scan-assembler-not "\tcins\t" } } */
NOMIPS16 unsigned
diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-1.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-1.c
index 1cbf7a63c51..b8b8c1bc324 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-dmul-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
/* { dg-final { scan-assembler "\tdmul\t" } } */
/* { dg-final { scan-assembler-not "\tdmult\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
index 2e8e4e61033..6b2308c0bba 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
/* { dg-final { scan-assembler-not "\tdmul" } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-1.c b/gcc/testsuite/gcc.target/mips/octeon-exts-1.c
index bdaa0b927ef..b0f4be143fc 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=octeon" } */
+/* { dg-options "-march=octeon" } */
/* { dg-final { scan-assembler "\texts\t" } } */
struct foo
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
index 7847cf9411b..fc5df639d02 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -meb" } */
+/* { dg-options "-O -march=octeon -meb" } */
/* { dg-final { scan-assembler-times "\texts\t" 4 } } */
struct bar
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
index d7610f82e32..9d0e9302a54 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-O -march=octeon -mgp64" } */
/* { dg-final { scan-assembler-times "\texts\t" 3 } } */
struct foo
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
index 475fa21e8dc..7e6a578a19c 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-O -march=octeon -mgp64" } */
/* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */
/* { dg-final { scan-assembler-times "\texts\t" 6 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
index 31251e74763..e7a4738b96f 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
@@ -1,6 +1,6 @@
/* -mel version of octeon-exts-2.c. */
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mel" } */
+/* { dg-options "-O -march=octeon -mel" } */
/* { dg-final { scan-assembler-times "\texts\t" 4 } } */
struct bar
diff --git a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
index 2554af6c821..54d2e9c04aa 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-O -march=octeon -mgp64" } */
/* { dg-final { scan-assembler "\tpop\t" } } */
/* { dg-final { scan-assembler "\tdpop\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-1.c b/gcc/testsuite/gcc.target/mips/octeon-seq-1.c
index 3199cd7ad2a..c07660a2e66 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-1.c
@@ -1,7 +1,7 @@
/* Check if we expand seq and sne. */
/* { dg-do compile } */
-/* { dg-mips-options "-march=octeon" } */
+/* { dg-options "-march=octeon" } */
/* { dg-final { scan-assembler-times "\tseq\t|\tseqi\t" 4 } } */
/* { dg-final { scan-assembler-times "\tsne\t|\tsnei\t" 4 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-2.c b/gcc/testsuite/gcc.target/mips/octeon-seq-2.c
index 994e51b7738..83e068c54fd 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
/* { dg-final { scan-assembler-times "\tseq\t|\tseqi\t" 3 } } */
/* { dg-final { scan-assembler-times "\tsne\t|\tsnei\t" 3 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
index 522d0eaa4e3..899f145844b 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-O -march=octeon -mgp64" } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "\tseqi\t\|\tsnei\t" 4 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
index 88a71001be9..e61bcb361c0 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=octeon" } */
+/* { dg-options "-O2 -march=octeon" } */
/* { dg-final { scan-assembler-not "xor" } } */
unsigned
diff --git a/gcc/testsuite/gcc.target/mips/pr26765.c b/gcc/testsuite/gcc.target/mips/pr26765.c
index bf90f279174..25c2e8d4c83 100644
--- a/gcc/testsuite/gcc.target/mips/pr26765.c
+++ b/gcc/testsuite/gcc.target/mips/pr26765.c
@@ -2,7 +2,7 @@
This testcase used to trigger an unrecognizable insn. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -w" } */
+/* { dg-options "-O2 -w" } */
__thread int *a = 0;
diff --git a/gcc/testsuite/gcc.target/mips/pr33256.c b/gcc/testsuite/gcc.target/mips/pr33256.c
index e19c93291a2..ead5888cc07 100644
--- a/gcc/testsuite/gcc.target/mips/pr33256.c
+++ b/gcc/testsuite/gcc.target/mips/pr33256.c
@@ -1,6 +1,6 @@
/* GCC used to report an ICE for this test because we generated a LO_SUM
for an illegitimate constant. */
-/* { dg-mips-options "-mabi=64 -msym32 -O2 -EB -mno-abicalls" } */
+/* { dg-options "-mabi=64 -msym32 -O2 -EB -mno-abicalls" } */
extern unsigned long a[];
int b (int);
diff --git a/gcc/testsuite/gcc.target/mips/pr33635-1.c b/gcc/testsuite/gcc.target/mips/pr33635-1.c
index 34251e47fdf..78e761f71c5 100644
--- a/gcc/testsuite/gcc.target/mips/pr33635-1.c
+++ b/gcc/testsuite/gcc.target/mips/pr33635-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mabi=64 -O2" } */
+/* { dg-options "-mabi=64 -O2" } */
NOMIPS16 long double __powitf2 (long double x, int m)
{
diff --git a/gcc/testsuite/gcc.target/mips/pr33755.c b/gcc/testsuite/gcc.target/mips/pr33755.c
index a550480ddd7..ca6a1e6984d 100644
--- a/gcc/testsuite/gcc.target/mips/pr33755.c
+++ b/gcc/testsuite/gcc.target/mips/pr33755.c
@@ -1,5 +1,5 @@
/* { dg-do link } */
-/* { dg-mips-options "-O2" } */
+/* { dg-options "-O2" } */
volatile int gv;
const char *ptrs[2];
diff --git a/gcc/testsuite/gcc.target/mips/pr34831.c b/gcc/testsuite/gcc.target/mips/pr34831.c
index 3cdcd4a72ca..2da436f71b8 100644
--- a/gcc/testsuite/gcc.target/mips/pr34831.c
+++ b/gcc/testsuite/gcc.target/mips/pr34831.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-ffast-math -mips64 -mgp32" } */
+/* { dg-options "-ffast-math -mips64 -mgp32" } */
double
foo (void)
diff --git a/gcc/testsuite/gcc.target/mips/pr35802.c b/gcc/testsuite/gcc.target/mips/pr35802.c
index 34300980695..9ecc4d06ea6 100644
--- a/gcc/testsuite/gcc.target/mips/pr35802.c
+++ b/gcc/testsuite/gcc.target/mips/pr35802.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -march=74kc -mgp32" } */
+/* { dg-options "-O2 -march=74kc -mgp32" } */
__thread int x __attribute__((tls_model("initial-exec")));
__thread int y __attribute__((tls_model("initial-exec")));
diff --git a/gcc/testsuite/gcc.target/mips/pr37362.c b/gcc/testsuite/gcc.target/mips/pr37362.c
index a356b787035..14e3a75f1bb 100644
--- a/gcc/testsuite/gcc.target/mips/pr37362.c
+++ b/gcc/testsuite/gcc.target/mips/pr37362.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=mips64r2 -mabi=n32" } */
+/* { dg-options "-march=mips64r2 -mabi=n32" } */
typedef float TFtype __attribute__((mode(TF)));
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
index fd13d8ac876..b271e2bf416 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
+/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
/* Test that stores to uncached addresses do not get unnecessary
cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
index 405d7fcf033..68c4b7ef239 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */
int bar (int);
/* Test that code after a branch-likely does not get an unnecessary
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
index be6816fda9b..d1082d910d8 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
/* Test that loads are not unnecessarily protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
index 7e8026f1e5f..d4163910900 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=load-store -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=load-store -mno-abicalls" } */
/* Test that loads are correctly protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
index fa5a416ce20..3e955abf549 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store" } */
/* Test that indirect calls are protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
index 4d807833abb..1fdcee0e25a 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -O2 -mr10k-cache-barrier=store" } */
/* Test that indirect calls are protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
index 5b03838ca2c..a3e7f0db92c 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
@@ -1,2 +1,2 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mips2" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mips2" } */
/* { dg-error "requires.*cache.*instruction" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
index ed439b143f5..3d06d0ddb6e 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
+/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
/* Test that stores to constant cached addresses are protected
by cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
index 8238f39b04c..be2c7fbd76e 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
/* Test that in-range stores to the frame are not protected by
cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
index e8280e8af27..9dd23eafa78 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
void bar (int *x);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
index 6e21ec3e393..a6b53a9ea34 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */
/* Test that in-range stores to static objects do not get an unnecessary
cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
index f014aa0dcdc..c52caaa1ad2 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mabi=64" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mabi=64" } */
int x[4];
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
index c98b4a8a0fe..3f738654cc1 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
void bar1 (void);
void bar2 (void);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
index 5394ae8067e..394bf486f38 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -G8" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */
/* Test that in-range stores to components of static objects
do not get an unnecessary cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
index cf795b6e732..67b52f92d35 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O2 -mr10k-cache-barrier=store -G8" } */
+/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */
/* Test that out-of-range stores to components of static objects
are protected by a cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/r3900-mult.c b/gcc/testsuite/gcc.target/mips/r3900-mult.c
index 393f1086e07..4dc2b003f35 100644
--- a/gcc/testsuite/gcc.target/mips/r3900-mult.c
+++ b/gcc/testsuite/gcc.target/mips/r3900-mult.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-march=r3900" } */
+/* { dg-options "-march=r3900" } */
/* { dg-final { scan-assembler "\tmult\t\[^\n\]*,\[^\n\]*," } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-1.c b/gcc/testsuite/gcc.target/mips/rsqrt-1.c
index 4cc6212c351..f0a9b3aed62 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-1.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float -mgp64" } */
+/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */
/* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-2.c b/gcc/testsuite/gcc.target/mips/rsqrt-2.c
index 03a001356f0..bc81039d523 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-2.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float -mgp64" } */
+/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */
/* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-3.c b/gcc/testsuite/gcc.target/mips/rsqrt-3.c
index 76cee835eb6..cfa771ef86b 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-3.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -mips4 -mhard-float" } */
+/* { dg-options "-O2 isa=4 -mhard-float" } */
/* { dg-final { scan-assembler-not "rsqrt.d" } } */
/* { dg-final { scan-assembler-not "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-4.c b/gcc/testsuite/gcc.target/mips/rsqrt-4.c
index 7f7da6452ed..726c35403dc 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-4.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -ffast-math -mips64 -mhard-float -mgp32" } */
+/* { dg-options "-O2 -ffast-math -mips64 -mhard-float -mgp32" } */
/* { dg-final { scan-assembler-not "\trsqrt.d\t" } } */
/* { dg-final { scan-assembler-times "\trsqrt.s\t" 2 } } */
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-1.c b/gcc/testsuite/gcc.target/mips/save-restore-1.c
index 9c8017c7c65..f6a854ee9f3 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-1.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-1.c
@@ -1,7 +1,5 @@
/* Check that we can use the save instruction to save varargs. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips32r2 -mabi=32 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
#include <stdarg.h>
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-2.c b/gcc/testsuite/gcc.target/mips/save-restore-2.c
index de082d331cd..4a11bc21083 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-2.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-2.c
@@ -1,7 +1,5 @@
/* Check that we can use the save instruction to save spilled arguments. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips32r2 -mabi=32 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
MIPS16 void
foo (int *a, int b, int c)
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-3.c b/gcc/testsuite/gcc.target/mips/save-restore-3.c
index a73e83b9fff..d45fe50ea6b 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-3.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-3.c
@@ -1,8 +1,6 @@
/* Check that we can use the save instruction to save spilled arguments
when the argument save area is out of range of a direct load or store. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips32r2 -mabi=32 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
void bar (int *);
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-4.c b/gcc/testsuite/gcc.target/mips/save-restore-4.c
index 13f1f0454ee..ef7722bce09 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-4.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-4.c
@@ -1,7 +1,5 @@
/* Check that we can use the save instruction to save $16, $17 and $31. */
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-mips32r2 -mabi=32 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-5.c b/gcc/testsuite/gcc.target/mips/save-restore-5.c
index a7e82ba144f..0dd823a6813 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-5.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-5.c
@@ -1,7 +1,5 @@
/* Check that we don't try to save the same register twice. */
-/* { dg-do assemble { target mips16_attribute } } */
-/* { dg-mips-options "-mips32r2 -mgp32 -O2" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) isa_rev>=1 -mgp32 -O2" } */
int bar (int, int, int, int);
void frob (void);
diff --git a/gcc/testsuite/gcc.target/mips/sb1-1.c b/gcc/testsuite/gcc.target/mips/sb1-1.c
index 6bf8ea7abf8..819938fcdc0 100644
--- a/gcc/testsuite/gcc.target/mips/sb1-1.c
+++ b/gcc/testsuite/gcc.target/mips/sb1-1.c
@@ -1,6 +1,6 @@
/* Test SB-1 v2sf extensions. */
/* { dg-do compile } */
-/* { dg-mips-options "-march=sb1 -O2 -mpaired-single -mgp64 -ffast-math" } */
+/* { dg-options "-march=sb1 -O2 -mpaired-single -mgp64 -ffast-math" } */
/* { dg-final { scan-assembler "div.ps" } } */
/* { dg-final { scan-assembler "recip.ps" } } */
/* { dg-final { scan-assembler "sqrt.ps" } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-1.c b/gcc/testsuite/gcc.target/mips/scc-1.c
index 4bd4a4c2fb2..d0dc040151c 100644
--- a/gcc/testsuite/gcc.target/mips/scc-1.c
+++ b/gcc/testsuite/gcc.target/mips/scc-1.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-O -mips32" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -O isa_rev>=1" } */
/* { dg-final { scan-assembler-times {slt \$2,\$5,\$4} 1 } } */
/* { dg-final { scan-assembler-times {sltu \$2,\$5,\$4} 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-2.c b/gcc/testsuite/gcc.target/mips/scc-2.c
index c6c79d8cb61..440c28b84bf 100644
--- a/gcc/testsuite/gcc.target/mips/scc-2.c
+++ b/gcc/testsuite/gcc.target/mips/scc-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mgp64" } */
+/* { dg-options "-O -mgp64" } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 12 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-3.c b/gcc/testsuite/gcc.target/mips/scc-3.c
index 445a324bb8a..b295e782c2d 100644
--- a/gcc/testsuite/gcc.target/mips/scc-3.c
+++ b/gcc/testsuite/gcc.target/mips/scc-3.c
@@ -1,6 +1,4 @@
-/* { dg-do compile { target mips16_attribute } } */
-/* { dg-mips-options "-O -mabi=o64" } */
-/* { dg-add-options mips16_attribute } */
+/* { dg-options "(-mips16) -O -mabi=o64" } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 8 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-4.c b/gcc/testsuite/gcc.target/mips/scc-4.c
index fd6e9326789..40460666c7f 100644
--- a/gcc/testsuite/gcc.target/mips/scc-4.c
+++ b/gcc/testsuite/gcc.target/mips/scc-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -mabi=o64" } */
+/* { dg-options "-O -mabi=o64" } */
/* { dg-final { scan-assembler "slt\t" } } */
/* { dg-final { scan-assembler "sltu\t\|xor\t\|xori\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/sdata-1.c b/gcc/testsuite/gcc.target/mips/sdata-1.c
index 2acfdef384d..f9a25cdc9f7 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-1.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-G4 -mexplicit-relocs" } */
+/* { dg-options "-G4 -mexplicit-relocs" } */
/* { dg-final { scan-assembler "%gp_?rel\\(l4a\\)" } } */
/* { dg-final { scan-assembler "%gp_?rel\\(l4b\\)" } } */
diff --git a/gcc/testsuite/gcc.target/mips/sdata-2.c b/gcc/testsuite/gcc.target/mips/sdata-2.c
index 5479c813375..5a9fff2da1d 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-2.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-G4 -mexplicit-relocs -mno-local-sdata" } */
+/* { dg-options "-G4 -mexplicit-relocs -mno-local-sdata" } */
/* { dg-final { scan-assembler-not "%gp_?rel\\(l4a\\)" } } */
/* { dg-final { scan-assembler-not "%gp_?rel\\(l4b\\)" } } */
diff --git a/gcc/testsuite/gcc.target/mips/sdata-3.c b/gcc/testsuite/gcc.target/mips/sdata-3.c
index 3cea3d3e70c..f232324954f 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-3.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-3.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-G4 -mexplicit-relocs -mno-extern-sdata" } */
+/* { dg-options "-G4 -mexplicit-relocs -mno-extern-sdata" } */
/* { dg-final { scan-assembler "%gp_?rel\\(l4a\\)" } } */
/* { dg-final { scan-assembler "%gp_?rel\\(l4b\\)" } } */
diff --git a/gcc/testsuite/gcc.target/mips/sdata-4.c b/gcc/testsuite/gcc.target/mips/sdata-4.c
index f88348dcadb..7786c6db9e4 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-4.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-4.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-G4 -mexplicit-relocs -mno-gpopt" } */
+/* { dg-options "-G4 -mexplicit-relocs -mno-gpopt" } */
/* { dg-final { scan-assembler-not "%gp_?rel" } } */
/* { dg-final { scan-assembler-not "\\\$gp" } } */
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
index 17b2ddfefb3..c6bc495c8de 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -msmartmips" } */
+/* -mlong32 added because of PR target/38599. */
+/* { dg-options "-O -msmartmips -mlong32" } */
NOMIPS16 int scaled_indexed_word_load (int a[], int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
index c36964624f5..e9735b20a52 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -msmartmips" } */
+/* { dg-options "-O -msmartmips" } */
NOMIPS16 int rotate_left (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
index 73561c8b3c1..ac4c94df8e2 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -msmartmips" } */
+/* { dg-options "-O -msmartmips" } */
NOMIPS16 int rotate_right (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
index dada19efc71..360f3c463ff 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -msmartmips" } */
+/* { dg-options "-O -msmartmips" } */
#define S 13
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
index ee063614d74..b8b82944540 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-mips-options "-O -msmartmips" } */
+/* { dg-options "-O -msmartmips" } */
#define S 13
diff --git a/gcc/testsuite/gcc.target/mips/timode-1.c b/gcc/testsuite/gcc.target/mips/timode-1.c
index 8f07db98559..fc087ee1c35 100644
--- a/gcc/testsuite/gcc.target/mips/timode-1.c
+++ b/gcc/testsuite/gcc.target/mips/timode-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-mgp64" } */
+/* { dg-options "-mgp64" } */
typedef int int128_t __attribute__((mode(TI)));
typedef unsigned int uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/timode-2.c b/gcc/testsuite/gcc.target/mips/timode-2.c
index 025dc21810a..9f3e43c41bd 100644
--- a/gcc/testsuite/gcc.target/mips/timode-2.c
+++ b/gcc/testsuite/gcc.target/mips/timode-2.c
@@ -1,4 +1,5 @@
-/* { dg-do run { target mips64 } } */
+/* { dg-do run } */
+/* { dg-options "-mgp64" } */
typedef int int128_t __attribute__((mode(TI)));
typedef unsigned int uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/truncate-1.c b/gcc/testsuite/gcc.target/mips/truncate-1.c
index 0607a700482..7e54aae3eba 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-1.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-1.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O -mgp64" } */
+/* { dg-options "-O -mgp64" } */
#define TEST(ID, TYPE, SHIFT) \
int __attribute__((nomips16)) \
diff --git a/gcc/testsuite/gcc.target/mips/truncate-2.c b/gcc/testsuite/gcc.target/mips/truncate-2.c
index 51125a48190..423dc26f4da 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-2.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-2.c
@@ -1,4 +1,4 @@
-/* { dg-mips-options "-O -mgp64" } */
+/* { dg-options "-O -mgp64" } */
#define TEST(ID, TYPE, SHIFT) \
int NOMIPS16 \
diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-1.c b/gcc/testsuite/gcc.target/mips/vr-mult-1.c
index 9ea55af44a5..2ed4f2f9b06 100644
--- a/gcc/testsuite/gcc.target/mips/vr-mult-1.c
+++ b/gcc/testsuite/gcc.target/mips/vr-mult-1.c
@@ -1,7 +1,7 @@
/* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
is preferred over mtlo/msac. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5400" } */
+/* { dg-options "-O2 -march=vr5400" } */
NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; }
NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; }
/* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-2.c b/gcc/testsuite/gcc.target/mips/vr-mult-2.c
index 0ff3d47de70..7e8be5e4283 100644
--- a/gcc/testsuite/gcc.target/mips/vr-mult-2.c
+++ b/gcc/testsuite/gcc.target/mips/vr-mult-2.c
@@ -1,7 +1,7 @@
/* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
is preferred over mtlo/msac. */
/* { dg-do compile } */
-/* { dg-mips-options "-O2 -march=vr5500" } */
+/* { dg-options "-O2 -march=vr5500" } */
NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; }
NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; }
/* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/20030218-1.c b/gcc/testsuite/gcc.target/powerpc/20030218-1.c
index 6296d31bfce..2a1c4e6d253 100644
--- a/gcc/testsuite/gcc.target/powerpc/20030218-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/20030218-1.c
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mspe=yes" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* Test vectors that can interconvert without a cast. */
@@ -15,10 +16,11 @@ main (void)
opp = vfloat;
vshort = opp;
- vfloat = vshort; /* { dg-error "incompatible types in assignment" } */
+ vfloat = vshort; /* { dg-error "incompatible types when assigning" } */
/* Just because this is a V2SI, it doesn't make it an opaque. */
- vint = vshort; /* { dg-error "incompatible types in assignment" } */
+ vint = vshort; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
+ /* { dg-error "incompatible types when assigning" "" { target *-*-* } 22 } */
return 0;
}
diff --git a/gcc/testsuite/gcc.target/powerpc/20030505.c b/gcc/testsuite/gcc.target/powerpc/20030505.c
index 0df1c0335eb..2bef590bf7b 100644
--- a/gcc/testsuite/gcc.target/powerpc/20030505.c
+++ b/gcc/testsuite/gcc.target/powerpc/20030505.c
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabispe* } } */
-/* { dg-options "-W" } */
+/* { dg-do compile } */
+/* { dg-options "-W -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
#define __vector __attribute__((vector_size(8)))
@@ -9,7 +10,7 @@ __ev64_opaque__ *p1;
__ev64_fs__ *p2;
int *x;
-extern void f (__ev64_opaque__ *);
+extern void f (__ev64_opaque__ *); /* { dg-message "expected.*but argument is of type" } */
int main ()
{
diff --git a/gcc/testsuite/gcc.target/powerpc/20081204-1.c b/gcc/testsuite/gcc.target/powerpc/20081204-1.c
index ba4df8f3e29..8a973d0ec52 100644
--- a/gcc/testsuite/gcc.target/powerpc/20081204-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/20081204-1.c
@@ -2,6 +2,8 @@
TARGET_HARD_FLOAT && !TARGET_FPRS. */
/* { dg-do compile } */
/* { dg-options "-mcpu=750 -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
+
static int comp(const void *a,const void *b){
return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b);
}
diff --git a/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c b/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c
index dc309515010..2971e553ed0 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "dlmzb\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-macchw-1.c b/gcc/testsuite/gcc.target/powerpc/405-macchw-1.c
index 1add3c98016..e65ba08ebd8 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-macchw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-macchw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "macchw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-macchw-2.c b/gcc/testsuite/gcc.target/powerpc/405-macchw-2.c
index 221c30e1e60..6263818c1e3 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-macchw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-macchw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "macchw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c
index 897d3494b40..18d448c0618 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "macchwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c
index f9bdf1e2b95..7728c8b68d0 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "macchwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-machhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-machhw-1.c
index 753fe9a0f91..2211cd1583b 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-machhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-machhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "machhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-machhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-machhw-2.c
index 9e79d3019b6..4c54f27b527 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-machhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-machhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "machhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c
index 48dcfc579a1..44d8ea68cae 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "machhwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c
index b73f7eacd3d..0fc96d1bd00 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "machhwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c
index a99f31ea7b7..43ec01914f7 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "maclhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c
index b7950abc360..d79df52858c 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "maclhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c
index 24a249e4b79..0d65a5d34e2 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "maclhwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c
index 79fdb2a2b60..5b148d66c19 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "maclhwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c b/gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c
index e3ab225745b..510e0c81cd2 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulchw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c b/gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c
index 6c481649614..14b4df1c094 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulchw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c
index ae3a1a028ac..a0ecdac652e 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulchwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c
index 7b0faa5a2ac..c4da9927398 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulchwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c
index f151e28fcfa..efdd8cdbb65 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulhhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c
index 9be7eaf4803..cfa00034eb9 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulhhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c
index 3d7871aac3f..c6f7a24524e 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulhhwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c
index 166a60801d4..9b647e7d778 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mulhhwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c
index beab7ebc40d..ea28b5542c8 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mullhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c
index 921a3b6dd26..76bbb6403e5 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mullhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c b/gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c
index f363056391f..152dfe9b859 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mullhwu " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c b/gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c
index 6e4d42e1038..ff4b8eca529 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "mullhwu\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c b/gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c
index e5a42d53dc4..dd258efe5eb 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmacchw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c b/gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c
index 7ac8767a75f..2a470b9e78b 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmacchw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c
index 6f1e2aeb346..f699a3fc41d 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmachhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c
index aab8ea290bc..07a30c13f76 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmachhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c b/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c
index f90223d27ed..91eba842a02 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmaclhw " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c b/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c
index d191de38e70..83717a4ffda 100644
--- a/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mcpu=405" } */
+/* { dg-skip-if "other options override -mcpu=405" { ! powerpc_405_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "nmaclhw\\. " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-1.c b/gcc/testsuite/gcc.target/powerpc/altivec-1.c
index f235e7b57ac..b1809fe2c9c 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-1.c
@@ -1,11 +1,11 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Program to test PowerPC AltiVec instructions. */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
@@ -24,8 +24,6 @@ vector float f, g, h;
int main ()
{
- altivec_check(); /* Exits if AltiVec not supported */
-
k = vec_add (a1, a2);
if (!vec_all_eq (addi, k))
abort ();
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-10.c b/gcc/testsuite/gcc.target/powerpc/altivec-10.c
index 82b3f45a391..f532eebbfab 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-10.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-10.c
@@ -1,11 +1,12 @@
-/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
#include <altivec.h>
-#include <signal.h>
-#include "altivec_check.h"
+extern void exit (int);
+extern void abort (void);
typedef union
{
@@ -72,8 +73,6 @@ check_cmple()
int
main()
{
- altivec_check ();
-
check_cmple ();
check_vec_all_num ();
exit (0);
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-12.c b/gcc/testsuite/gcc.target/powerpc/altivec-12.c
index 296a3f7510a..39d26940d4e 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-12.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-12.c
@@ -1,11 +1,11 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Program to test PowerPC AltiVec instructions. */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
#define CHECK_IF(E) if(!(E)) abort()
@@ -26,9 +26,6 @@ vector float f, g, h;
int main ()
{
-
- altivec_check(); /* Exit if AltiVec not available. */
-
k = vec_add (a1, a2);
CHECK_IF (vec_all_eq (addi, k));
CHECK_IF (vec_all_ge (addi, k));
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-24.c b/gcc/testsuite/gcc.target/powerpc/altivec-24.c
index cb1a66832e7..d296fe24658 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-24.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-24.c
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
@@ -28,7 +28,6 @@ int verify (void)
int main (void)
{
- altivec_check (); /* Exit if hardware doesn't support AltiVec. */
initialize (MAGIC_NUMBER);
verify ();
return 0;
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-3.c b/gcc/testsuite/gcc.target/powerpc/altivec-3.c
index 17f62fd8f03..d388ad299a4 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-3.c
@@ -1,8 +1,10 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
-#include "altivec_check.h"
+extern void exit (int);
+extern void abort (void);
typedef int int4 __attribute__ ((vector_size (16)));
typedef float float4 __attribute__ ((vector_size (16)));
@@ -73,7 +75,6 @@ main1 ()
int
main ()
{
- altivec_check ();
main1 ();
exit (0);
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c b/gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c
index b9c7c90b303..fdb375c9efe 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_extract VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
@@ -137,6 +137,5 @@ int main1(void)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 ();
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c b/gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c
index abaf56f2770..b941ab186fa 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_splats and vec_promote VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
@@ -33,6 +33,5 @@ int main1(int t)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 (0);
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c b/gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c
index b800ea51105..c694691d475 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c
@@ -1,10 +1,10 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Test the vec_splats and vec_promote VMX intrinsics. */
#include <altivec.h>
-#include "altivec_check.h"
extern void abort (void);
@@ -38,6 +38,5 @@ int main1(int t)
int main(void)
{
- altivec_check(); /* Exits if AltiVec not supported */
return main1 (0);
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c b/gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c
index 12e13e00aa8..dda5eb0c114 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c
@@ -1,9 +1,11 @@
-/* { dg-do run } */
+/* { dg-do run { target { powerpc*-*-* && cell_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! cell_hw } } } } */
/* { dg-require-effective-target powerpc_ppu_ok } */
/* { dg-options "-O2 -maltivec -mabi=altivec -mcpu=cell" } */
#include <altivec.h>
#include <string.h>
-#include "altivec_check.h"
+
+extern void abort (void);
typedef short int sint16;
typedef signed char int8;
@@ -51,6 +53,5 @@ return 0;
int main(void)
{
- altivec_cell_check ();
return main1();
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-consts.c b/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
index e06a5286b17..2c5bc99cff8 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
@@ -1,11 +1,10 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -mabi=altivec -O2" } */
/* Check that "easy" AltiVec constants are correctly synthesized. */
-#include "altivec_check.h"
-
extern void abort (void);
typedef __attribute__ ((vector_size (16))) unsigned char v16qi;
@@ -283,8 +282,6 @@ void v4si_vspltisw_neg_addself ()
int main ()
{
- altivec_check (); /* Exit if hardware doesn't support AltiVec. */
-
v16qi_vspltisb ();
v16qi_vspltisb_neg ();
v16qi_vspltisb_addself ();
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-macros.c b/gcc/testsuite/gcc.target/powerpc/altivec-macros.c
index 8ea8df241db..c07eaa36a49 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-macros.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-macros.c
@@ -1,6 +1,7 @@
/* Copyright (C) 2007 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* Conditional macros should not be expanded by pragmas. */
@@ -48,16 +49,16 @@ _Pragma ("__vector")
#define pixel newer_pixel
#define bool newer_bool
-/* { dg-warning "redefined" "__vector redefined" { target *-*-* } 44 } */
-/* { dg-warning "redefined" "__pixel redefined" { target *-*-* } 45 } */
-/* { dg-warning "redefined" "__bool redefined" { target *-*-* } 46 } */
-/* { dg-warning "redefined" "vector redefined" { target *-*-* } 47 } */
-/* { dg-warning "redefined" "pixel redefined" { target *-*-* } 48 } */
-/* { dg-warning "redefined" "bool redefined" { target *-*-* } 49 } */
-
-/* { dg-message "location of the previous" "prev __vector defn" { target *-*-* } 24 } */
-/* { dg-message "location of the previous" "prev __pixel defn" { target *-*-* } 27 } */
-/* { dg-message "location of the previous" "prev __bool defn" { target *-*-* } 30 } */
-/* { dg-message "location of the previous" "prev vector defn" { target *-*-* } 33 } */
-/* { dg-message "location of the previous" "prev pixel defn" { target *-*-* } 36 } */
-/* { dg-message "location of the previous" "prev bool defn" { target *-*-* } 39 } */
+/* { dg-warning "redefined" "__vector redefined" { target *-*-* } 45 } */
+/* { dg-warning "redefined" "__pixel redefined" { target *-*-* } 46 } */
+/* { dg-warning "redefined" "__bool redefined" { target *-*-* } 47 } */
+/* { dg-warning "redefined" "vector redefined" { target *-*-* } 48 } */
+/* { dg-warning "redefined" "pixel redefined" { target *-*-* } 49 } */
+/* { dg-warning "redefined" "bool redefined" { target *-*-* } 50 } */
+
+/* { dg-message "location of the previous" "prev __vector defn" { target *-*-* } 25 } */
+/* { dg-message "location of the previous" "prev __pixel defn" { target *-*-* } 28 } */
+/* { dg-message "location of the previous" "prev __bool defn" { target *-*-* } 31 } */
+/* { dg-message "location of the previous" "prev vector defn" { target *-*-* } 34 } */
+/* { dg-message "location of the previous" "prev pixel defn" { target *-*-* } 37 } */
+/* { dg-message "location of the previous" "prev bool defn" { target *-*-* } 40 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c b/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
index 2aa54a912a5..1349ae590d9 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
@@ -1,11 +1,12 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
#include <stdarg.h>
-#include <signal.h>
-#include "altivec_check.h"
+extern void exit (int);
+extern void abort (void);
#define vector __attribute__((vector_size (16)))
@@ -77,8 +78,5 @@ int main1(void)
int main (void)
{
- /* Exit on systems without AltiVec. */
- altivec_check ();
-
return main1 ();
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c b/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
index e6027bdeff8..3689f97490c 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
@@ -1,9 +1,9 @@
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -O2" } */
#include <altivec.h>
-#include "altivec_check.h"
int printf(const char * , ...);
extern void abort();
@@ -600,7 +600,6 @@ int main(int argc, char **argv)
{
char toto[32] __attribute__((aligned(16)));
- altivec_check (); /* Exit if hardware doesn't support AltiVec. */
foo(toto, toto, 0, 0);
return 0;
}
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec_check.h b/gcc/testsuite/gcc.target/powerpc/altivec_check.h
deleted file mode 100644
index d966e238a10..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/altivec_check.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* A runtime check for AltiVec capability. */
-/* Contributed by Ziemowit Laski <zlaski@apple.com> */
-
-#include <signal.h>
-extern void exit (int);
-extern void abort (void);
-
-void
-sig_ill_handler (int sig)
-{
- exit (0);
-}
-
-void altivec_check(void) {
-
- /* Exit on systems without AltiVec. */
- signal (SIGILL, sig_ill_handler);
-#ifdef __MACH__
- asm volatile ("vor v0,v0,v0");
-#else
- asm volatile ("vor 0,0,0");
-#endif
- signal (SIGILL, SIG_DFL);
-}
-
-void altivec_cell_check (void)
-{
-#ifdef __PPU__
- /* Exit on systems without the Cell Altivec instructions. */
- signal (SIGILL, sig_ill_handler);
-#ifdef __MACH__
- asm volatile ("vor v0,v0,v0");
- asm volatile ("lvlx v0,r0,r0");
-#else
- asm volatile ("vor 0,0,0");
- asm volatile ("lvlx 0,0,0");
-#endif
- signal (SIGILL, SIG_DFL);
-#else
- /* altivec_cell_check shouldn't be called without -mcpu=cell. */
- abort ();
-#endif
-}
diff --git a/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c b/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
index 866fb6c0b94..0692b3d8069 100644
--- a/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
@@ -1,17 +1,9 @@
/* { dg-do run { target powerpc*-*-* } } */
-/* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+/* { dg-require-effective-target powerpc64 } */
/* { dg-options "-mcpu=G5" } */
-#include <signal.h>
#include <stdlib.h>
-void
-sig_ill_handler (int sig)
-{
- exit(0);
-}
-
-
int msw(long long in)
{
union {
@@ -24,16 +16,6 @@ int msw(long long in)
int main()
{
-
- /* Exit on systems without 64bit instructions. */
- signal (SIGILL, sig_ill_handler);
-#ifdef __MACH__
- asm volatile ("extsw r0,r0");
-#else
- asm volatile ("extsw 0,0");
-#endif
- signal (SIGILL, SIG_DFL);
-
if (msw(1) != 0)
abort();
exit(0);
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-spe.c b/gcc/testsuite/gcc.target/powerpc/ppc-spe.c
index b35b2e9da50..b5643943340 100644
--- a/gcc/testsuite/gcc.target/powerpc/ppc-spe.c
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-spe.c
@@ -1,5 +1,6 @@
-/* { dg-do compile { target powerpc-*-eabispe } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* (Test with -O0 so we don't optimize any of them away). */
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
index 8055668d1c1..f07e818faec 100644
--- a/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
@@ -4,3 +4,4 @@
/* { dg-options "-m64" } */
/* { dg-error "-m64 not supported in this configuration" "SPE not 64-bit" { target *-*-* } 0 } */
+/* { dg-error "64-bit E500 not supported" "64-bit E500" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr35907.c b/gcc/testsuite/gcc.target/powerpc/pr35907.c
index e1749dea8c9..7d5465ea151 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr35907.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr35907.c
@@ -1,10 +1,9 @@
/* PR target/35907 */
-/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-O2 -maltivec" } */
-#include "altivec_check.h"
-
#define vector __attribute__((vector_size (16)))
union
{
@@ -53,7 +52,6 @@ test (void)
int
main ()
{
- altivec_check ();
test ();
return 0;
}
diff --git a/gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c b/gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c
index d12f6696eb0..09f8134829c 100644
--- a/gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c
+++ b/gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c
@@ -1,6 +1,6 @@
-/* { dg-do compile { target powerpc*-*-* } } */
-/* { dg-require-effective-target powerpc_spe } */
-/* { dg-options "-O -mspe=yes" } */
+/* { dg-do compile } */
+/* { dg-options "-O -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* { dg-final { scan-assembler "evstdd" } } */
void foo(void)
diff --git a/gcc/testsuite/gcc.target/powerpc/spe1.c b/gcc/testsuite/gcc.target/powerpc/spe1.c
index 9ce56e08d54..ddbb5a6e1c9 100644
--- a/gcc/testsuite/gcc.target/powerpc/spe1.c
+++ b/gcc/testsuite/gcc.target/powerpc/spe1.c
@@ -1,12 +1,13 @@
-/* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
/* (Test with -O0 so we don't optimize any of them away). */
typedef float __attribute__((vector_size(8))) __ev64_fs__;
-static __ev64_opaque__ Foo (void);
+__ev64_opaque__ Foo (void);
void Bar ()
{
diff --git a/gcc/testsuite/gcc.test-framework/dg-do-run-sft-nocache-exp-P.c b/gcc/testsuite/gcc.test-framework/dg-do-run-sft-nocache-exp-P.c
new file mode 100644
index 00000000000..4ef0e7a99a5
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-do-run-sft-nocache-exp-P.c
@@ -0,0 +1,11 @@
+/* { dg-do run } */
+/* { dg-options "-DDEFINED" } */
+/* { dg-shouldfail "comment" { def_nocache } { "*" } { "" } } */
+
+extern void abort (void);
+
+int
+main ()
+{
+ abort (); /* We expect nonzero exit, so this passes. */
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c b/gcc/testsuite/gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c
new file mode 100644
index 00000000000..dfa1792a8b5
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c
@@ -0,0 +1,9 @@
+/* { dg-do run } */
+/* { dg-options "-DDEFINED" } */
+/* { dg-xfail-run-if "comment" { def_nocache } { "*" } { "" } } */
+
+int
+main ()
+{
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-error-nocache-exp-P.c b/gcc/testsuite/gcc.test-framework/dg-error-nocache-exp-P.c
new file mode 100644
index 00000000000..abec81ad5f0
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-error-nocache-exp-P.c
@@ -0,0 +1,7 @@
+/* { dg-options "-DDEFINED" } */
+
+int
+main ()
+{
+ int
+} /* { dg-error "expected" "" { target def_nocache } } */
diff --git a/gcc/testsuite/gcc.test-framework/dg-nocache-scanasm-exp-XF.c b/gcc/testsuite/gcc.test-framework/dg-nocache-scanasm-exp-XF.c
new file mode 100644
index 00000000000..183fbd051bd
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-nocache-scanasm-exp-XF.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-DDEFINED" } */
+
+int
+foo ()
+{
+ return 0;
+}
+
+/* A few examples from scanasm.exp. */
+
+/* { dg-final { scan-assembler "whatever" { xfail def_nocache } } } */
+/* { dg-final { scan-assembler-not "foo" { xfail def_nocache } } } */
+/* { dg-final { scan-hidden "whatever" { xfail def_nocache } } } */
diff --git a/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-P.c b/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-P.c
new file mode 100644
index 00000000000..99392e34133
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-P.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-DNOT_THE_RIGHT_DEFINE" } */
+/* { dg-skip-if "comment" { def_nocache } { "*" } { "" } } */
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-U.c b/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-U.c
new file mode 100644
index 00000000000..ffaf49fdf66
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-nocache-sif-exp-U.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-DDEFINED" } */
+/* { dg-skip-if "comment" { def_nocache } { "*" } { "" } } */
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-P.c b/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-P.c
new file mode 100644
index 00000000000..21e833681dc
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-P.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-DNOT_THE_RIGHT_DEFINE" } */
+/* { dg-xfail-if "comment" { def_nocache } { "*" } { "" } } */
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-XP.c b/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-XP.c
new file mode 100644
index 00000000000..07a55ef9189
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-nocache-xif-exp-XP.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-DDEFINED" } */
+/* { dg-xfail-if "comment" { def_nocache } { "*" } { "" } } */
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c b/gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
new file mode 100644
index 00000000000..9e0ee279886
--- /dev/null
+++ b/gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
@@ -0,0 +1,6 @@
+/* { dg-options "-Wall -DDEFINED" } */
+
+int
+foo ()
+{
+} /* { dg-warning "control" "" { target def_nocache } } */
diff --git a/gcc/testsuite/gcc.test-framework/test-framework.awk b/gcc/testsuite/gcc.test-framework/test-framework.awk
index 381d3473b05..02537e8efb0 100644
--- a/gcc/testsuite/gcc.test-framework/test-framework.awk
+++ b/gcc/testsuite/gcc.test-framework/test-framework.awk
@@ -53,6 +53,8 @@ BEGIN { skip = 1; passes = 0; fails = 0; }
/^PASS.*dox.*\(test for excess errors\)/ { ignore(); next }
# The sf tests pass the compile step; ignore that message.
/^PASS.*sf.*\(test for excess errors\)/ { ignore(); next }
+# Ignore passing compile step for scan tests.
+/^PASS.*scan.*\(test for excess errors\)/ { ignore(); next }
# Ignore lines that begin with comma.
/^,/ { ignore(); next }
# For tests of dg-output, ignore successful compilation.
diff --git a/gcc/testsuite/gcc.test-framework/test-framework.exp b/gcc/testsuite/gcc.test-framework/test-framework.exp
index 7cbc9dbe0c0..722e09f78b6 100644
--- a/gcc/testsuite/gcc.test-framework/test-framework.exp
+++ b/gcc/testsuite/gcc.test-framework/test-framework.exp
@@ -42,6 +42,16 @@ proc check_effective_target_no { args } {
return 0
}
+proc check_effective_target_def_nocache { } {
+ return [check_no_compiler_messages_nocache def_nocache object {
+ #ifdef DEFINED
+ int dummy;
+ #else
+ #error DEFINED is not defined
+ #endif
+ } [current_compiler_flags]]
+}
+
global dg-do-what-default
set save-dg-do-what-default ${dg-do-what-default}
set dg-do-what-default compile
diff --git a/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90 b/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90
new file mode 100644
index 00000000000..be1fa42fb17
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90
@@ -0,0 +1,31 @@
+! { dg-do run }
+! Tests the fix for PR38602, a regression caused by a modification
+! to the nulling of INTENT_OUT dummies with allocatable components
+! that caused a segfault with optional arguments.
+!
+! Contributed by David Kinniburgh <davidkinniburgh@yahoo.co.uk>
+!
+program test_iso
+ type ivs
+ character(LEN=1), dimension(:), allocatable :: chars
+ end type ivs
+ type(ivs) :: v_str
+ integer :: i
+ call foo(v_str, i)
+ if (v_str%chars(1) .ne. "a") call abort
+ if (i .ne. 0) call abort
+ call foo(flag = i)
+ if (i .ne. 1) call abort
+contains
+ subroutine foo (arg, flag)
+ type(ivs), optional, intent(out) :: arg
+ integer :: flag
+ if (present(arg)) then
+ arg = ivs([(char(i+96), i = 1,10)])
+ flag = 0
+ else
+ flag = 1
+ end if
+ end subroutine
+end
+
diff --git a/gcc/testsuite/gfortran.dg/c_loc_pure_1.f90 b/gcc/testsuite/gfortran.dg/c_loc_pure_1.f90
new file mode 100644
index 00000000000..911f5429d4c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/c_loc_pure_1.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! { dg-options "-Wimplicit-interface" }
+! PR 38220 - c_loc is pure and has an explicit interface
+USE ISO_C_BINDING, ONLY: C_PTR, C_LOC
+CONTAINS
+ PURE SUBROUTINE F(x)
+ INTEGER, INTENT(in), TARGET :: x
+ TYPE(C_PTR) :: px
+ px = C_LOC(x)
+ END SUBROUTINE
+END
diff --git a/gcc/testsuite/gfortran.dg/c_loc_tests_13.f90 b/gcc/testsuite/gfortran.dg/c_loc_tests_13.f90
new file mode 100644
index 00000000000..62bfe0a3caa
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/c_loc_tests_13.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+!
+! PR fortran/38536
+! Consecutive array and substring references rejected as C_LOC argument
+!
+! contributed by Scot Breitenfield <brtnfld@hdfgroup.org>
+
+ USE ISO_C_BINDING
+ TYPE test
+ CHARACTER(LEN=2), DIMENSION(1:2) :: c
+ END TYPE test
+ TYPE(test), TARGET :: chrScalar
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(chrScalar%c(1)(1:1))
+ END
diff --git a/gcc/testsuite/gfortran.dg/c_loc_tests_14.f90 b/gcc/testsuite/gfortran.dg/c_loc_tests_14.f90
new file mode 100644
index 00000000000..ec455eca924
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/c_loc_tests_14.f90
@@ -0,0 +1,29 @@
+! { dg-do compile }
+!
+! PR fortran/38536
+! Accept as argument to C_LOC a subcomponent accessed through a pointer.
+
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+ TYPE test3
+ INTEGER, DIMENSION(5) :: b
+ END TYPE test3
+
+ TYPE test2
+ TYPE(test3), DIMENSION(:), POINTER :: a
+ END TYPE test2
+
+ TYPE test
+ TYPE(test2), DIMENSION(2) :: c
+ END TYPE test
+
+ TYPE(test) :: chrScalar
+ TYPE(C_PTR) :: f_ptr
+ TYPE(test3), TARGET :: d(3)
+
+
+ chrScalar%c(1)%a => d
+ f_ptr = C_LOC(chrScalar%c(1)%a(1)%b(1))
+ end
+
diff --git a/gcc/testsuite/gfortran.dg/char_length_14.f90 b/gcc/testsuite/gfortran.dg/char_length_14.f90
new file mode 100644
index 00000000000..5827dd95eee
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/char_length_14.f90
@@ -0,0 +1,23 @@
+! { dg-do run }
+! PR35937, in which letting the length of 'c' to kind = 8 would
+! screw up the interface and would cause an ICE. Note that this is
+! actually the example of comment #4.
+!
+! Contributed by Thomas Koenig <tkoenig@gcc.gnu.org>
+!
+program main
+ implicit none
+ if (f5 ('1') .ne. "a") call abort
+ if (len (f5 ('1')) .ne. 1) call abort
+ if (f5 ('4') .ne. "abcd") call abort
+ if (len (f5 ('4')) .ne. 4) call abort
+contains
+ function f5 (c)
+ character(len=1_8) :: c
+ character(len=scan('123456789', c)) :: f5
+ integer :: i
+ do i = 1, len (f5)
+ f5(i:i) = char (i+96)
+ end do
+ end function f5
+end program main
diff --git a/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90 b/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90
index f99b20f14b8..c67bbb4af89 100644
--- a/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90
+++ b/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90
@@ -6,6 +6,6 @@
character(5), pointer :: ch3(:)
ch2 => ch1 ! Check correct is OK
- ch3 => ch1 ! { dg-error "Different character lengths" }
+ ch3 => ch1 ! { dg-error "Unequal character lengths \\(5/4\\)" }
-end \ No newline at end of file
+end
diff --git a/gcc/testsuite/gfortran.dg/char_pointer_assign_4.f90 b/gcc/testsuite/gfortran.dg/char_pointer_assign_4.f90
new file mode 100644
index 00000000000..7dfc39b946c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/char_pointer_assign_4.f90
@@ -0,0 +1,20 @@
+! { dg-do run }
+! { dg-options "-fbounds-check" }
+! { dg-shouldfail "Unequal character length" }
+
+! PR fortran/31822
+! Verify that runtime checks for matching character length
+! in pointer assignment work.
+
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+
+program ptr
+ implicit none
+ character(len=10), target :: s1
+ character(len=5), pointer :: p1
+ integer, volatile :: i
+ i = 8
+ p1 => s1(1:i)
+end program ptr
+
+! { dg-output "Unequal character lengths \\(5/8\\)" }
diff --git a/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90 b/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90
new file mode 100644
index 00000000000..471f6e6b162
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90
@@ -0,0 +1,23 @@
+! { dg-do run }
+! { dg-options "-fbounds-check" }
+! { dg-shouldfail "Unequal character length" }
+
+! PR fortran/31822
+! Verify that runtime checks for matching character length
+! in pointer assignment work.
+
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+
+program ptr
+ implicit none
+ character(len=10), target :: s1
+ call bar((/ s1, s1 /))
+contains
+ subroutine bar(s)
+ character(len=*),target :: s(2)
+ character(len=17),pointer :: p(:)
+ p => s
+ end subroutine bar
+end program ptr
+
+! { dg-output "Unequal character lengths \\(17/10\\)" }
diff --git a/gcc/testsuite/gfortran.dg/elemental_bind_c.f90 b/gcc/testsuite/gfortran.dg/elemental_bind_c.f90
index d61b49778c0..f966d2b5ff5 100644
--- a/gcc/testsuite/gfortran.dg/elemental_bind_c.f90
+++ b/gcc/testsuite/gfortran.dg/elemental_bind_c.f90
@@ -1,4 +1,4 @@
-! {dg-do compile }
+! { dg-do compile }
!
! PR fortran/33412
!
diff --git a/gcc/testsuite/gfortran.dg/elemental_dependency_2.f90 b/gcc/testsuite/gfortran.dg/elemental_dependency_2.f90
new file mode 100644
index 00000000000..2282e8821f7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/elemental_dependency_2.f90
@@ -0,0 +1,36 @@
+! { dg-do compile }
+!
+! PR fortran/38487
+! Spurious warning on pointers as elemental subroutine actual arguments
+!
+! Contributed by Harald Anlauf <anlauf@gmx.de>
+
+module gfcbug82
+ implicit none
+ type t
+ real, pointer :: q(:) =>NULL()
+ real, pointer :: r(:) =>NULL()
+ end type t
+ type (t), save :: x, y
+ real, dimension(:), pointer, save :: a => NULL(), b => NULL()
+ real, save :: c(5), d
+contains
+ elemental subroutine add (q, r)
+ real, intent (inout) :: q
+ real, intent (in) :: r
+ q = q + r
+ end subroutine add
+
+ subroutine foo ()
+ call add (y% q, x% r)
+ call add (y% q, b )
+ call add (a , x% r)
+ call add (a , b )
+ call add (y% q, d )
+ call add (a , d )
+ call add (c , x% r)
+ call add (c , b )
+ end subroutine foo
+end module gfcbug82
+
+! { dg-final { cleanup-modules "gfcbug82" } }
diff --git a/gcc/testsuite/gfortran.dg/elemental_dependency_3.f90 b/gcc/testsuite/gfortran.dg/elemental_dependency_3.f90
new file mode 100644
index 00000000000..98cfd7be48a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/elemental_dependency_3.f90
@@ -0,0 +1,28 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/38669
+! Temporary created for pointer as actual argument of an elemental subroutine
+!
+! Original testcase by Harald Anlauf <anlauf@gmx.de>
+
+program gfcbu84_main
+ implicit none
+ integer :: jplev, k_lev
+ real :: p(42)
+ real, pointer :: q(:)
+ jplev = 42
+ k_lev = 1
+ allocate (q(jplev))
+ call tq_tvgh (q(k_lev:), p(k_lev:))
+ deallocate (q)
+
+ contains
+ elemental subroutine tq_tvgh (t, p)
+ real ,intent (out) :: t
+ real ,intent (in) :: p
+ t=p
+ end subroutine tq_tvgh
+end program gfcbu84_main
+! { dg-final { scan-tree-dump-times "atmp" 0 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff --git a/gcc/testsuite/gfortran.dg/elemental_subroutine_7.f90 b/gcc/testsuite/gfortran.dg/elemental_subroutine_7.f90
new file mode 100644
index 00000000000..7c7875bbfcd
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/elemental_subroutine_7.f90
@@ -0,0 +1,40 @@
+! { dg-do run }
+!
+! PR fortran/38669
+! Loop bounds temporaries used before being defined for elemental subroutines
+!
+! Original testcase by Harald Anlauf <anlauf@gmx.de>
+
+program gfcbu84_main
+ implicit none
+ integer :: jplev, k_lev
+ integer :: p(42)
+ real :: r(42)
+ integer, pointer :: q(:)
+ jplev = 42
+ k_lev = 1
+ call random_number (r)
+ p = 41 * r + 1
+ allocate (q(jplev))
+
+ q = 0
+ call tq_tvgh (q(k_lev:), p(k_lev:))
+ if (any (p /= q)) call abort
+
+ q = 0
+ call tq_tvgh (q(k_lev:), (p(k_lev:)))
+ if (any (p /= q)) call abort
+
+ q = 0
+ call tq_tvgh (q(k_lev:), (p(p(k_lev:))))
+ if (any (p(p) /= q)) call abort
+
+ deallocate (q)
+
+ contains
+ elemental subroutine tq_tvgh (t, p)
+ integer ,intent (out) :: t
+ integer ,intent (in) :: p
+ t=p
+ end subroutine tq_tvgh
+end program gfcbu84_main
diff --git a/gcc/testsuite/gfortran.dg/fmt_bz_bn.f b/gcc/testsuite/gfortran.dg/fmt_bz_bn.f
index b4a1ac349c8..b24ebab5ee9 100644
--- a/gcc/testsuite/gfortran.dg/fmt_bz_bn.f
+++ b/gcc/testsuite/gfortran.dg/fmt_bz_bn.f
@@ -17,7 +17,7 @@ c Test case derived from reporter.
if (f .ne. 2003.0) call abort
f = 0.0
read (c,'(E11.0)') f
- if (f .ne. 2.0020) call abort
+ if (f .ne. 20.020) call abort
f = 0.0
read (c,'(BZ,E11.0)') f
if (f .ne. 2.002e10) call abort
diff --git a/gcc/testsuite/gfortran.dg/fmt_bz_bn_err.f b/gcc/testsuite/gfortran.dg/fmt_bz_bn_err.f
new file mode 100644
index 00000000000..36881f85dc7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/fmt_bz_bn_err.f
@@ -0,0 +1,15 @@
+! { dg-do run }
+! PR38772 r143102 reveals missed error checking on floating point reads.
+! Test case contributed by Jack Howarth.
+ program badread
+ implicit none
+ double precision r
+ character*20 temp
+ logical ok
+ temp=' end'
+ r = 3.14159d0
+ ok=.true.
+ read(temp,'(f20.0)',err=8888) r
+ call abort
+8888 continue
+ end
diff --git a/gcc/testsuite/gfortran.dg/fmt_g0_1.f08 b/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
index c85ee2dc781..2e7fc1877a4 100644
--- a/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
+++ b/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
@@ -8,13 +8,13 @@
write(buffer, string) ':',0,':'
if (buffer.ne.":0:") call abort
write(buffer, string) ':',1.0/3.0,':'
- if (buffer.ne.": 0.33333334 :") call abort
+ if (buffer.ne.":.33333334:") call abort
write(buffer, '(1x,a,g0,a)') ':',1.0/3.0,':'
- if (buffer.ne." : 0.33333334 :") call abort
+ if (buffer.ne." :.33333334:") call abort
write(buffer, string) ':',"hello",':'
if (buffer.ne.":hello:") call abort
write(buffer, "(g0,g0,g0,g0)") ':',.true.,.false.,':'
if (buffer.ne.":TF:") call abort
write(buffer, "(g0,g0,',',g0,g0)") '(',( 1.2345, 2.4567 ),')'
- if (buffer.ne."( 1.2345001 , 2.4567001 )") call abort
+ if (buffer.ne."(1.2345001,2.4567001)") call abort
end
diff --git a/gcc/testsuite/gfortran.dg/fmt_int_sign.f90 b/gcc/testsuite/gfortran.dg/fmt_int_sign.f90
new file mode 100644
index 00000000000..2257fd8296c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/fmt_int_sign.f90
@@ -0,0 +1,16 @@
+! { dg-do run }
+! { dg-options -fno-range-check }
+! PR38504 double minus sign when printing integer
+! Test case derived from example by Jos de Kloe
+program IntAdtest
+
+ integer, parameter :: i8_ = Selected_Int_Kind(18) ! = integer*8
+ character(len=22) :: str_value
+ integer(i8_) :: value
+ character(len=*), parameter :: format_IntAd = "(i22)"
+
+ value = -9223372036854775807_i8_ -1
+ write(str_value, format_IntAd) value
+ if (str_value.ne." -9223372036854775808") call abort
+
+end program IntAdtest
diff --git a/gcc/testsuite/gfortran.dg/func_result_4.f90 b/gcc/testsuite/gfortran.dg/func_result_4.f90
new file mode 100644
index 00000000000..81f02a57ca2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/func_result_4.f90
@@ -0,0 +1,10 @@
+! { dg-do "compile" }
+! { dg-options "-c" }
+!
+! Do not apply the SAVE attribute to function results.
+!
+FUNCTION f() RESULT (g)
+ INTEGER :: g
+ SAVE
+ g = 42
+END FUNCTION
diff --git a/gcc/testsuite/gfortran.dg/graphite/id-2.f90 b/gcc/testsuite/gfortran.dg/graphite/id-2.f90
new file mode 100644
index 00000000000..0c9f54bb979
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/id-2.f90
@@ -0,0 +1,15 @@
+! { dg-options "-O2 -fgraphite-identity" }
+
+module solv_cap
+ integer, parameter, public :: dp = selected_real_kind(5)
+contains
+ subroutine prod0( G, X )
+ real(kind=dp), intent(in out), dimension(:,:) :: X
+ real(kind=dp), dimension(size(X,1),size(X,2)) :: Y
+ X = Y
+ end subroutine prod0
+ function Ginteg(xq1,yq1, xq2,yq2, xp,yp) result(G)
+ end function Ginteg
+ subroutine fourir(A,ntot,kconjg, E,useold)
+ end subroutine fourir
+end module solv_cap
diff --git a/gcc/testsuite/gfortran.dg/graphite/id-4.f90 b/gcc/testsuite/gfortran.dg/graphite/id-4.f90
new file mode 100644
index 00000000000..896d608777e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/id-4.f90
@@ -0,0 +1,34 @@
+! { dg-options "-O2 -fgraphite-identity" }
+
+MODULE Vcimage
+ CHARACTER (LEN=80), SAVE :: CARD, FIELD
+END MODULE Vcimage
+MODULE Vimage
+ LOGICAL, SAVE :: EOFF
+END MODULE Vimage
+SUBROUTINE READIN(PROB, TITLE, CSTOP, FCYCLE, DCYCLE, DHIST, VHIST&
+ & , IMAX, PHIST, DEBUG, NSTAT, STATS, MAXSTA, NCORE, PPLOT, &
+ & DPLOT, VPLOT, TPLOT, SLIST, D0, E0, NODES, SHEAT, GAMMA, COLD &
+ & , THIST, NVISC, SCREEN, WEIGHT, TSTOP, STABF)
+ USE Vcimage
+ USE Vimage
+ INTEGER, DIMENSION(MAXSTA) :: STATS
+ IF (.NOT.EOFF) THEN
+ IF (FIELD=='PROB' .OR. FIELD=='PROBLEM_NUMBER') THEN
+ CALL QSORT (STATS(1:NSTAT))
+ WRITE (16, &
+ &'(//'' YOU HAVE REQUESTED A PRINTOUT OF THE STATION'', &
+ & '' ABORT''//)')
+ ENDIF
+ ENDIF
+CONTAINS
+ RECURSIVE SUBROUTINE QSORT (LIST)
+ INTEGER, DIMENSION(:), INTENT(INOUT) :: LIST
+ INTEGER, DIMENSION(SIZE(LIST)) :: SMALLER,LARGER
+ IF (SIZE(LIST) > 1) THEN
+ LIST(NUMBER_SMALLER+1:NUMBER_SMALLER+NUMBER_EQUAL) = CHOSEN
+ CALL QSORT (LARGER(1:NUMBER_LARGER))
+ LIST(NUMBER_SMALLER+NUMBER_EQUAL+1:) = LARGER(1:NUMBER_LARGER)
+ END IF
+ END SUBROUTINE QSORT
+END SUBROUTINE READIN
diff --git a/gcc/testsuite/gfortran.dg/graphite/pr37852.f90 b/gcc/testsuite/gfortran.dg/graphite/pr37852.f90
new file mode 100644
index 00000000000..50e23428f82
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/pr37852.f90
@@ -0,0 +1,13 @@
+! { dg-options "-O2 -floop-block" }
+
+PROGRAM TEST_FPU
+CHARACTER (LEN=36) :: invert_id(1) = &
+ (/ 'Test1 - Gauss 2000 (101x101) inverts'/)
+END PROGRAM TEST_FPU
+
+SUBROUTINE Gauss (a,n)
+INTEGER, PARAMETER :: RK8 = SELECTED_REAL_KIND(15, 300)
+REAL(RK8) :: a(n,n)
+INTEGER :: ipvt(n)
+a(:,ipvt) = b
+END SUBROUTINE Gauss
diff --git a/gcc/testsuite/gfortran.dg/graphite/pr37857.f90 b/gcc/testsuite/gfortran.dg/graphite/pr37857.f90
new file mode 100644
index 00000000000..de2d3a124ee
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/pr37857.f90
@@ -0,0 +1,9 @@
+! { dg-options "-O2 -floop-block" }
+
+program superficie_proteina
+ integer, parameter :: LONGreal = selected_real_kind(12,90)
+ integer :: number_of_polypeptides, maximum_polypeptide_length
+ real (kind = LONGreal), dimension (:,:), allocatable :: individual_conformations
+ allocate (individual_conformations(-number_of_bins:0,number_of_polypeptides))
+ individual_conformations = 0.0_LONGreal
+end program superficie_proteina
diff --git a/gcc/testsuite/gfortran.dg/graphite/pr37980.f90 b/gcc/testsuite/gfortran.dg/graphite/pr37980.f90
new file mode 100644
index 00000000000..5306aa84c92
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/pr37980.f90
@@ -0,0 +1,11 @@
+! { dg-options "-O2 -floop-block" }
+
+module INT_MODULE
+contains
+ pure function spher_cartesians(in1) result(out1)
+ integer(kind=kind(1)) :: in1
+ intent(in) :: in1
+ real(kind=kind(1.0d0)), dimension(0:in1,0:in1,0:in1) :: mat0
+ mat0 = 0.0d0
+ end function spher_cartesians
+end module INT_MODULE
diff --git a/gcc/testsuite/gfortran.dg/graphite/pr38083.f90 b/gcc/testsuite/gfortran.dg/graphite/pr38083.f90
new file mode 100644
index 00000000000..834d33ab833
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/pr38083.f90
@@ -0,0 +1,16 @@
+! { dg-options "-O3 -floop-block" }
+
+SUBROUTINE IVSORT (IL,IH,NSEGS,IOUNIT)
+ INTEGER IOUNIT
+
+ INTEGER, PARAMETER :: MAXGS = 32
+
+10 IF (IL .GE. IH) GO TO 80
+20 NSEGS = (IH + IL) / 2
+ IF (NSEGS .GT. MAXSGS) THEN
+ WRITE (IOUNIT),MAXSGS
+ ENDIF
+80 NSEGS = NSEGS - 1
+90 IF (IH - IL .GE. 11) GO TO 20
+110 IF (IL .EQ. IH) GO TO 80
+END SUBROUTINE IVSORT
diff --git a/gcc/testsuite/gfortran.dg/graphite/pr38459.f90 b/gcc/testsuite/gfortran.dg/graphite/pr38459.f90
new file mode 100644
index 00000000000..1feb6e503eb
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/graphite/pr38459.f90
@@ -0,0 +1,14 @@
+! { dg-options "-O2 -fgraphite-identity" }
+# 1 "mltfftsg.F"
+# 1 "<built-in>"
+SUBROUTINE mltfftsg ( a, ldax, lday, b, ldbx, ldby, &
+ n, m)
+ INTEGER, PARAMETER :: dbl = SELECTED_REAL_KIND ( 14, 200 )
+
+! Arguments
+ INTEGER, INTENT ( IN ) :: ldbx, ldby, n, m
+ COMPLEX ( dbl ), INTENT ( INOUT ) :: b ( ldbx, ldby )
+
+ B(N+1:LDBX,1:M) = CMPLX(0._dbl,0._dbl,dbl)
+
+END SUBROUTINE mltfftsg
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_blockdata_1.f90 b/gcc/testsuite/gfortran.dg/host_assoc_blockdata_1.f90
new file mode 100644
index 00000000000..7f24fecb0e0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/host_assoc_blockdata_1.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! PR 38672 - this used to ICE.
+MODULE globals
+ TYPE :: type1
+ integer :: x
+ END TYPE type1
+ TYPE (type1) :: pdm_bps
+END module globals
+BLOCK DATA
+ use globals
+END BLOCK DATA
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_blockdata_2.f90 b/gcc/testsuite/gfortran.dg/host_assoc_blockdata_2.f90
new file mode 100644
index 00000000000..3cb4abaedd2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/host_assoc_blockdata_2.f90
@@ -0,0 +1,17 @@
+! { dg-do compile }
+MODULE globals
+ TYPE :: type1
+ sequence
+ integer :: x
+ END TYPE type1
+ TYPE (type1) :: pdm_bps
+ common /co/ pdm_bps
+END module globals
+BLOCK DATA
+ use globals
+END BLOCK DATA
+
+program main
+ use globals
+ common /co/ pdm_bps ! { dg-error "already in a COMMON block" }
+end program main
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_call_3.f90 b/gcc/testsuite/gfortran.dg/host_assoc_call_3.f90
index 6646270e5ac..379b228e4cf 100644
--- a/gcc/testsuite/gfortran.dg/host_assoc_call_3.f90
+++ b/gcc/testsuite/gfortran.dg/host_assoc_call_3.f90
@@ -11,8 +11,10 @@ MODULE M1
END INTERFACE
CONTAINS
SUBROUTINE S1(I)
+ i = 3
END SUBROUTINE
SUBROUTINE S2(F)
+ f = 4.0
END SUBROUTINE
END MODULE
@@ -36,9 +38,18 @@ CONTAINS
end if
END SUBROUTINE
END SUBROUTINE
+ subroutine S4
+ integer :: check = 0
+ REAL :: rcheck = 0.0
+ call putaline(check)
+ if (check .ne. 3) call abort
+ call putaline(rcheck)
+ if (rcheck .ne. 4.0) call abort
+ end subroutine s4
END MODULE
USE M2
CALL S3
+ call S4
END
! { dg-final { cleanup-modules "M1 M2" } }
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_call_6.f90 b/gcc/testsuite/gfortran.dg/host_assoc_call_6.f90
new file mode 100644
index 00000000000..60a5edc53c1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/host_assoc_call_6.f90
@@ -0,0 +1,25 @@
+! { dg-do compile }
+!
+! PR fortran/38594, in which the symtree for the first
+! 'g' was being attached to the second. This is necessary
+! for generic interfaces(eg. hosts_call_3.f90) but makes
+! a mess otherwise.
+!
+! Contributed by Daniel Franke <dfranke@gcc.gnu.org>
+!
+MODULE m
+CONTAINS
+ SUBROUTINE g()
+ END SUBROUTINE
+ SUBROUTINE f()
+ CALL g()
+ CONTAINS
+ SUBROUTINE g()
+ END SUBROUTINE
+ END SUBROUTINE
+END MODULE
+
+ USE m
+ CALL g()
+END
+! { dg-final { cleanup-modules "m" } }
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_function_5.f90 b/gcc/testsuite/gfortran.dg/host_assoc_function_5.f90
new file mode 100644
index 00000000000..c75202e445a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/host_assoc_function_5.f90
@@ -0,0 +1,47 @@
+! { dg-do compile }
+!
+! PR fortran/38665, in which checking for host association
+! was wrongly trying to substitute mod_symmon(mult) with
+! mod_sympoly(mult) in the user operator expression on line
+! 43.
+!
+! Contributed by Thomas Koenig <tkoenig@gcc.gnu.org>
+!
+module mod_symmon
+ implicit none
+
+ public :: t_symmon, operator(*)
+ private
+
+ type t_symmon
+ integer :: ierr = 0
+ end type t_symmon
+
+ interface operator(*)
+ module procedure mult
+ end interface
+
+contains
+ elemental function mult(m1,m2) result(m)
+ type(t_symmon), intent(in) :: m1, m2
+ type(t_symmon) :: m
+ end function mult
+end module mod_symmon
+
+module mod_sympoly
+ use mod_symmon
+ implicit none
+
+ type t_sympol
+ type(t_symmon), allocatable :: mons(:)
+ end type t_sympol
+contains
+
+ elemental function mult(p1,p2) result(p)
+ type(t_sympol), intent(in) :: p1,p2
+ type(t_sympol) :: p
+ type(t_symmon), allocatable :: mons(:)
+ mons(1) = p1%mons(1)*p2%mons(2)
+ end function
+end module
+! { dg-final { cleanup-modules "mod_symmon mod_sympoly" } }
diff --git a/gcc/testsuite/gfortran.dg/host_assoc_function_6.f90 b/gcc/testsuite/gfortran.dg/host_assoc_function_6.f90
new file mode 100644
index 00000000000..28cd7c83699
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/host_assoc_function_6.f90
@@ -0,0 +1,35 @@
+! { dg-do compile }
+! Tests the fix for PR38765 in which the use associated symbol
+! 'fun' was confused with the contained function in 'mod_b'
+! because the real name was being used instead of the 'use'
+! name..
+!
+! Contributed by Paul Thomas <pault@gcc.gnu.org>
+! from a report by Marco Restelli.
+!
+module mod_a
+ implicit none
+ public :: fun
+ private
+contains
+ pure function fun(x) result(mu)
+ real, intent(in) :: x(:,:)
+ real :: mu(2,2,size(x,2))
+ mu = 2.0
+ end function fun
+end module mod_a
+
+module mod_b
+ use mod_a, only: &
+ a_fun => fun
+ implicit none
+ private
+contains
+ pure function fun(x) result(mu)
+ real, intent(in) :: x(:,:)
+ real :: mu(2,2,size(x,2))
+ mu = a_fun(x)
+ end function fun
+end module mod_b
+
+! { dg-final { cleanup-modules "mod_a mod_b" } }
diff --git a/gcc/testsuite/gfortran.dg/implicit_12.f90 b/gcc/testsuite/gfortran.dg/implicit_12.f90
index 4e9c256d286..3b47352d6cd 100644
--- a/gcc/testsuite/gfortran.dg/implicit_12.f90
+++ b/gcc/testsuite/gfortran.dg/implicit_12.f90
@@ -1,4 +1,4 @@
-! { dg-do run}
+! { dg-do run }
!
! PR fortran/37400
!
diff --git a/gcc/testsuite/gfortran.dg/interface_proc_end.f90 b/gcc/testsuite/gfortran.dg/interface_proc_end.f90
index c6ea2b9e032..ab95b794268 100644
--- a/gcc/testsuite/gfortran.dg/interface_proc_end.f90
+++ b/gcc/testsuite/gfortran.dg/interface_proc_end.f90
@@ -1,4 +1,4 @@
-! { dg-do compile}
+! { dg-do compile }
!
! PR fortran/34763
! Before, gfortran did not allow for the "END" in
diff --git a/gcc/testsuite/gfortran.dg/mapping_2.f90 b/gcc/testsuite/gfortran.dg/mapping_2.f90
index a490611174c..9104184a59b 100644
--- a/gcc/testsuite/gfortran.dg/mapping_2.f90
+++ b/gcc/testsuite/gfortran.dg/mapping_2.f90
@@ -11,7 +11,7 @@ module test
function my_string(x)
integer i
real, intent(in) :: x(:)
- character(0) h4(1:minval([(i,i=30,32)],15))
+ character(0) h4(1:minval([(i,i=30,32), 15]))
character(0) sv1(size(x,1):size(h4))
character(0) sv2(2*lbound(sv1,1):size(h4))
character(lbound(sv2,1)-3) my_string
diff --git a/gcc/testsuite/gfortran.dg/matmul_argument_types.f90 b/gcc/testsuite/gfortran.dg/matmul_argument_types.f90
new file mode 100644
index 00000000000..1480655c4c9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/matmul_argument_types.f90
@@ -0,0 +1,32 @@
+! { dg-do compile }
+!
+! PR fortran/36355
+! Check MATMUL argument types:
+!
+! numeric logical other
+! numeric 1 2 3
+! logical 2 1 3
+! other 3 3 3
+!
+! where
+! 1 ok
+! 2 argument type mismatch
+! 3 invalid argument types
+!
+
+ INTEGER :: a(2,2)
+ LOGICAL :: b(2,2)
+ CHARACTER :: c
+
+ a = MATMUL(a, a) ! ok
+ a = MATMUL(a, b) ! { dg-error "must match" }
+ a = MATMUL(a, c) ! { dg-error "must be numeric or LOGICAL" }
+
+ b = MATMUL(b, a) ! { dg-error "must match" }
+ b = MATMUL(b, b) ! ok
+ b = MATMUL(b, c) ! { dg-error "must be numeric or LOGICAL" }
+
+ c = MATMUL(c, a) ! { dg-error "must be numeric or LOGICAL" }
+ c = MATMUL(c, b) ! { dg-error "must be numeric or LOGICAL" }
+ c = MATMUL(c, c) ! { dg-error "must be numeric or LOGICAL" }
+END
diff --git a/gcc/testsuite/gfortran.dg/merge_char_3.f90 b/gcc/testsuite/gfortran.dg/merge_char_3.f90
new file mode 100644
index 00000000000..498e3ec73c5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/merge_char_3.f90
@@ -0,0 +1,19 @@
+! { dg-do run }
+! { dg-options "-fbounds-check" }
+! { dg-shouldfail "Unequal character lengths" }
+
+! PR fortran/38137
+! Test that -fbounds-check detects unequal character lengths to MERGE
+! at runtime.
+
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+
+subroutine foo(a)
+implicit none
+character(len=*) :: a
+character(len=3) :: b
+print *, merge(a,b,.true.) ! Unequal character lengths
+end subroutine foo
+
+call foo("ab")
+end
diff --git a/gcc/testsuite/gfortran.dg/merge_init_expr.f90 b/gcc/testsuite/gfortran.dg/merge_init_expr.f90
new file mode 100644
index 00000000000..f40f49026cc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/merge_init_expr.f90
@@ -0,0 +1,28 @@
+! { dg-do "run" }
+!
+! Check simplification of MERGE.
+!
+
+ INTEGER, PARAMETER :: array(3) = [1, 2, 3]
+ LOGICAL, PARAMETER :: mask(3) = [ .TRUE., .FALSE., .TRUE. ]
+
+ INTEGER, PARAMETER :: scalar_1 = MERGE (1, 0, .TRUE.)
+ INTEGER, PARAMETER :: scalar_2 = MERGE (0, 1, .FALSE.)
+
+ INTEGER, PARAMETER :: array_1(3) = MERGE (array, 0, .TRUE.)
+ INTEGER, PARAMETER :: array_2(3) = MERGE (array, 0, .FALSE.)
+ INTEGER, PARAMETER :: array_3(3) = MERGE (0, array, .TRUE.)
+ INTEGER, PARAMETER :: array_4(3) = MERGE (0, array, .FALSE.)
+ INTEGER, PARAMETER :: array_5(3) = MERGE (1, 0, mask)
+ INTEGER, PARAMETER :: array_6(3) = MERGE (array, -array, mask)
+
+ INTEGER, PARAMETER :: array_7(3) = MERGE ([1,2,3], -array, mask)
+
+ IF (scalar_1 /= 1 .OR. scalar_2 /= 1) CALL abort
+ IF (.NOT. ALL (array_1 == array)) CALL abort
+ IF (.NOT. ALL (array_2 == [0, 0, 0])) CALL abort
+ IF (.NOT. ALL (array_3 == [0, 0, 0])) CALL abort
+ IF (.NOT. ALL (array_4 == array)) CALL abort
+ IF (.NOT. ALL (array_5 == [1, 0, 1])) CALL abort
+ IF (.NOT. ALL (array_6 == [1, -2, 3])) CALL abort
+END
diff --git a/gcc/testsuite/gfortran.dg/module_commons_3.f90 b/gcc/testsuite/gfortran.dg/module_commons_3.f90
new file mode 100644
index 00000000000..9ae6386e7a8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/module_commons_3.f90
@@ -0,0 +1,57 @@
+! { dg-do run }
+!
+! PR fortran/38657, in which the mixture of PRIVATE and
+! COMMON in TEST4, would mess up the association with
+! TESTCHAR in TEST2.
+!
+! Contributed by Paul Thomas <pault@gcc.gnu.org>
+! From a report in clf by Chris Bradley.
+!
+MODULE TEST4
+ PRIVATE
+ CHARACTER(LEN=80) :: T1 = &
+ "Mary had a little lamb, Its fleece was white as snow;"
+ CHARACTER(LEN=80) :: T2 = &
+ "And everywhere that Mary went, The lamb was sure to go."
+ CHARACTER(LEN=80) :: TESTCHAR
+ COMMON /TESTCOMMON1/ TESTCHAR
+ PUBLIC T1, T2, FOOBAR
+CONTAINS
+ subroutine FOOBAR (CHECK)
+ CHARACTER(LEN=80) :: CHECK
+ IF (TESTCHAR .NE. CHECK) CALL ABORT
+ end subroutine
+END MODULE TEST4
+
+MODULE TEST3
+ CHARACTER(LEN=80) :: TESTCHAR
+ COMMON /TESTCOMMON1/ TESTCHAR
+END MODULE TEST3
+
+MODULE TEST2
+ use TEST4
+ USE TEST3, chr => testchar
+ PRIVATE
+ CHARACTER(LEN=80) :: TESTCHAR
+ COMMON /TESTCOMMON1/ TESTCHAR
+ PUBLIC TESTCHAR, FOO, BAR, CHR, T1, T2, FOOBAR
+contains
+ subroutine FOO
+ TESTCHAR = T1
+ end subroutine
+ subroutine BAR (CHECK)
+ CHARACTER(LEN=80) :: CHECK
+ IF (TESTCHAR .NE. CHECK) CALL ABORT
+ IF (CHR .NE. CHECK) CALL ABORT
+ end subroutine
+END MODULE TEST2
+
+PROGRAM TEST1
+ USE TEST2
+ call FOO
+ call BAR (T1)
+ TESTCHAR = T2
+ call BAR (T2)
+ CALL FOOBAR (T2)
+END PROGRAM TEST1
+! { dg-final { cleanup-modules "TEST2 TEST3 TEST4" } }
diff --git a/gcc/testsuite/gfortran.dg/pr23095.f b/gcc/testsuite/gfortran.dg/pr23095.f
index 44c3901a035..06b78b34847 100644
--- a/gcc/testsuite/gfortran.dg/pr23095.f
+++ b/gcc/testsuite/gfortran.dg/pr23095.f
@@ -1,5 +1,5 @@
- ! { dg-do compile { target i?86-*-* x86_64-*-* } }
- ! { dg-options "-w -m32 -O2 -ffloat-store -fgcse-after-reload" }
+ ! { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
+ ! { dg-options "-w -O2 -ffloat-store -fgcse-after-reload" }
!
! GCSE after reload made a stack register live across an abnormal
! edges for one of the computed jumps. This bombed in reg-stack.
diff --git a/gcc/testsuite/gfortran.dg/pr37243.f b/gcc/testsuite/gfortran.dg/pr37243.f
index ba652122558..7322323d2c5 100644
--- a/gcc/testsuite/gfortran.dg/pr37243.f
+++ b/gcc/testsuite/gfortran.dg/pr37243.f
@@ -35,7 +35,7 @@
IF (J .GT. N) GO TO 320
DO 240 K = 1,N
240 V(K,I) = ZERO
- CALL DAXPY(N,DUM,V(1,II),1,V(1,I),1)
+ CALL DAXPY(N,DUM,V(1,I),1,V(1,I),1)
260 CONTINUE
DUMI = ZERO
DO 280 K = 1,N
diff --git a/gcc/testsuite/gfortran.dg/pr38722.f90 b/gcc/testsuite/gfortran.dg/pr38722.f90
new file mode 100644
index 00000000000..7a4f63e869c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr38722.f90
@@ -0,0 +1,38 @@
+! PR rtl-optimization/38722
+! { dg-do compile }
+! { dg-options "-O1" }
+SUBROUTINE foo(x, n, ga, gc, vr)
+ TYPE pt
+ DOUBLE PRECISION, DIMENSION (:, :, :), POINTER :: cr
+ END TYPE pt
+ TYPE pu
+ TYPE(pt), POINTER :: pw
+ END TYPE pu
+ LOGICAL, INTENT(in) :: x, ga, gc
+ INTEGER :: i, n
+ LOGICAL :: dd, ep, fe
+ TYPE(pu) :: vr
+ TYPE(pu), DIMENSION(:), POINTER :: v
+ IF (.NOT. fe) THEN
+ IF (ga) THEN
+ CALL bar (dd, ep, gc)
+ END IF
+ IF (x .AND. .NOT. ga) THEN
+ IF (gc) THEN
+ DO i=1,n
+ CALL baz (v(i), x, gc)
+ v(i)%pw%cr = 1.0
+ END DO
+ DO i=1,n
+ IF (ep) THEN
+ IF (dd) THEN
+ IF (i==1) THEN
+ v(i)%pw%cr=v(i)%pw%cr + vr%pw%cr
+ ENDIF
+ END IF
+ END IF
+ END DO
+ END IF
+ ENDIF
+ END IF
+END SUBROUTINE foo
diff --git a/gcc/testsuite/gfortran.dg/random_seed_1.f90 b/gcc/testsuite/gfortran.dg/random_seed_1.f90
index 510badf7d68..45627ff5287 100644
--- a/gcc/testsuite/gfortran.dg/random_seed_1.f90
+++ b/gcc/testsuite/gfortran.dg/random_seed_1.f90
@@ -6,9 +6,35 @@
! Possible improvement:
! Provide a separate testcase for systems that support REAL(16),
! to test the minimum size of 12 (instead of 8).
+!
+! Updated to check for arrays of unexpected size,
+! this also works for -fdefault-integer-8.
+!
PROGRAM random_seed_1
IMPLICIT NONE
- INTEGER :: small(7)
- CALL RANDOM_SEED(PUT=small) ! { dg-error "is too small" }
+ INTEGER, PARAMETER :: k = selected_real_kind (precision (0.0_8) + 1)
+ INTEGER, PARAMETER :: nbytes = MERGE(48, 32, k == 16)
+
+ ! '+1' to avoid out-of-bounds warnings
+ INTEGER, PARAMETER :: n = nbytes / KIND(n) + 1
+ INTEGER, DIMENSION(n) :: seed
+
+ ! Get seed, array too small
+ CALL RANDOM_SEED(GET=seed(1:(n-2))) ! { dg-error "too small" }
+
+ ! Get seed, array bigger than necessary
+ CALL RANDOM_SEED(GET=seed(1:n))
+
+ ! Get seed, proper size
+ CALL RANDOM_SEED(GET=seed(1:(n-1)))
+
+ ! Put too few bytes
+ CALL RANDOM_SEED(PUT=seed(1:(n-2))) ! { dg-error "too small" }
+
+ ! Put too many bytes
+ CALL RANDOM_SEED(PUT=seed(1:n))
+
+ ! Put the right amount of bytes
+ CALL RANDOM_SEED(PUT=seed(1:(n-1)))
END PROGRAM random_seed_1
diff --git a/gcc/testsuite/gfortran.dg/transfer_null_1.f90 b/gcc/testsuite/gfortran.dg/transfer_null_1.f90
new file mode 100644
index 00000000000..7201a68b38c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/transfer_null_1.f90
@@ -0,0 +1,20 @@
+! { dg-do compile }
+! Test fix for pr38763, where NULL was not being encoded.
+!
+! Contributed by Steve Kargl <kargl@gcc.gnu.org> from a
+! posting by James van Buskirk on clf.
+!
+program sizetest
+ use ISO_C_BINDING
+ implicit none
+ integer, parameter :: ik1 = selected_int_kind(2)
+ TYPE vehicle_t1
+ INTEGER(C_INT), DIMENSION(:), ALLOCATABLE :: sensors
+ END TYPE vehicle_t1
+ type(vehicle_t1) gfortran_bug_workaround
+ integer i
+ i = size(transfer(vehicle_t1(NULL()),[0_ik1]))
+ print *, i
+ i = size(transfer(vehicle_t1([i]),[0_ik1]))
+ print *, i
+end program sizetest
diff --git a/gcc/testsuite/gfortran.dg/typebound_call_7.f03 b/gcc/testsuite/gfortran.dg/typebound_call_7.f03
index c429dc71257..03a1a51ccd4 100644
--- a/gcc/testsuite/gfortran.dg/typebound_call_7.f03
+++ b/gcc/testsuite/gfortran.dg/typebound_call_7.f03
@@ -1,4 +1,4 @@
-! { dg-do compile}
+! { dg-do compile }
! PR fortran/37429
! Checks for assignments from type-bound functions.
diff --git a/gcc/testsuite/gfortran.dg/typebound_call_8.f03 b/gcc/testsuite/gfortran.dg/typebound_call_8.f03
index c8bf8d83c01..3f65846b3e5 100644
--- a/gcc/testsuite/gfortran.dg/typebound_call_8.f03
+++ b/gcc/testsuite/gfortran.dg/typebound_call_8.f03
@@ -1,4 +1,4 @@
-! { dg-do compile}
+! { dg-do compile }
! PR fortran/37429
! This used to ICE, check that is fixed.
diff --git a/gcc/testsuite/gnat.dg/unchecked_convert3.adb b/gcc/testsuite/gnat.dg/unchecked_convert3.adb
new file mode 100644
index 00000000000..13547521679
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/unchecked_convert3.adb
@@ -0,0 +1,22 @@
+-- { dg-do run }
+-- { dg-options "-gnatVa" }
+
+with Unchecked_Conversion;
+
+procedure Unchecked_Convert3 is
+
+ type Word is range -(2**15) .. (2**15) - 1;
+ type UWord is mod (2**16);
+
+ function To_Word is new unchecked_conversion (UWord, Word);
+
+ function F return UWord is
+ begin
+ return 65036;
+ end;
+
+ W : Word := To_Word(F);
+
+begin
+ null;
+end;
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index 0f8c7255b55..fe6453bad7d 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007
+# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2009
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@@ -15,6 +15,22 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
+# DejaGnu's dg-test defines extra flags that are used to compile a test.
+# Access them for directives that need to examine all options that are
+# used for a test, including checks for non-cached effective targets.
+# We don't know how far up the call chain it is but we know we'll hit
+# it eventually, and that we're at least 3 calls down.
+
+proc current_compiler_flags { } {
+ set frames 2
+ while { ![info exists flags1] } {
+ set frames [expr $frames + 1]
+ upvar $frames dg-extra-tool-flags flags1
+ }
+ upvar $frames tool_flags flags2
+ return "$flags1 $flags2"
+}
+
# If this target does not support weak symbols, skip this test.
proc dg-require-weak { args } {
@@ -29,6 +45,21 @@ proc dg-require-weak { args } {
}
}
+# If this target does not support overriding weak symbols, skip this
+# test.
+
+proc dg-require-weak-override { args } {
+ set weak_override_available [ check_weak_override_available ]
+ if { $weak_override_available == -1 } {
+ upvar name name
+ unresolved "$name"
+ }
+ if { $weak_override_available != 1 } {
+ upvar dg-do-what dg-do-what
+ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+ }
+}
+
# If this target does not support the "visibility" attribute, skip this
# test.
@@ -181,36 +212,6 @@ proc dg-add-options { args } {
}
}
-# Check the flags with which the test will be run against options in
-# a test directive that will skip or xfail that test. The DejaGnu proc
-# check_conditional_xfail will look at the options in compiler_flags, so
-# set that up for this test based on flags we know about.
-
-proc check_test_flags { args } {
- global compiler_flags
- upvar 2 dg-extra-tool-flags extra_tool_flags
-
- # Pull the args out of the enclosing list.
- set args [lindex $args 0]
-
- # Start the list with a dummy tool name so the list will match "*"
- # if there are no flags.
- set compiler_flags " toolname "
- append compiler_flags $extra_tool_flags
- set dest [target_info name]
- if [board_info $dest exists multilib_flags] {
- append compiler_flags "[board_info $dest multilib_flags] "
- }
-
- set answer [check_conditional_xfail $args]
-
- # Any value in this variable originally was left over from an earlier test.
- set compiler_flags ""
-
- verbose "check_test_flags: $args $answer" 2
- return $answer
-}
-
# Compare flags for a test directive against flags that will be used to
# compile the test: multilib flags, flags for torture options, and either
# the default flags for this group of tests or flags specified with a
@@ -219,9 +220,6 @@ proc check_test_flags { args } {
proc check-flags { args } {
global compiler_flags
global TOOL_OPTIONS
- # These variables are from DejaGnu's dg-test.
- upvar dg-extra-tool-flags extra_tool_flags
- upvar tool_flags tool_flags
# The args are within another list; pull them out.
set args [lindex $args 0]
@@ -229,8 +227,7 @@ proc check-flags { args } {
# Start the list with a dummy tool name so the list will match "*"
# if there are no flags.
set compiler_flags " toolname "
- append compiler_flags $extra_tool_flags
- append compiler_flags $tool_flags
+ append compiler_flags [current_compiler_flags]
# If running a subset of the test suite, $TOOL_OPTIONS may not exist.
catch {append compiler_flags " $TOOL_OPTIONS "}
set dest [target_info name]
@@ -269,10 +266,6 @@ proc dg-skip-if { args } {
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
- # These are defined in DejaGnu's dg-test, needed by check-flags.
- upvar dg-extra-tool-flags dg-extra-tool-flags
- upvar tool_flags tool_flags
-
if [check-flags $args] {
upvar dg-do-what dg-do-what
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
@@ -310,10 +303,6 @@ proc dg-xfail-run-if { args } {
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
- # These are defined in DejaGnu's dg-test, needed by check-flags.
- upvar dg-extra-tool-flags dg-extra-tool-flags
- upvar tool_flags tool_flags
-
if [check-flags $args] {
upvar dg-do-what dg-do-what
set dg-do-what [list [lindex ${dg-do-what} 0] "S" "F"]
@@ -338,11 +327,7 @@ proc dg-shouldfail { args } {
if { [llength $args] > 1 } {
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
- # The target matches, now check the flags. These variables
- # are defined in DejaGnu's dg-test, needed by check-flags.
- upvar dg-extra-tool-flags dg-extra-tool-flags
- upvar tool_flags tool_flags
-
+ # The target matches, now check the flags.
if [check-flags $args] {
set shouldfail 1
}
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 7ae240badbc..a6ddeaef43b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -251,6 +251,20 @@ proc check_weak_available { } {
}
###############################
+# proc check_weak_override_available { }
+###############################
+
+# Like check_weak_available, but return 0 if weak symbol definitions
+# cannot be overridden.
+
+proc check_weak_override_available { } {
+ if { [istarget "*-*-mingw*"] } {
+ return 0
+ }
+ return [check_weak_available]
+}
+
+###############################
# proc check_visibility_available { what_kind }
###############################
@@ -452,11 +466,6 @@ proc check_profiling_available { test_what } {
return 0
}
- # At present, there is no profiling support on NetWare.
- if { [istarget *-*-netware*] } {
- return 0
- }
-
# uClibc does not have gcrt1.o.
if { [check_effective_target_uclibc]
&& ([lindex $test_what 1] == "-p"
@@ -470,6 +479,8 @@ proc check_profiling_available { test_what } {
# missing other needed machinery.
if { [istarget mmix-*-*]
|| [istarget arm*-*-eabi*]
+ || [istarget picochip-*-*]
+ || [istarget *-*-netware*]
|| [istarget arm*-*-elf]
|| [istarget arm*-*-symbianelf*]
|| [istarget avr-*-*]
@@ -485,6 +496,7 @@ proc check_profiling_available { test_what } {
|| [istarget mips*-*-elf*]
|| [istarget xstormy16-*]
|| [istarget xtensa*-*-elf]
+ || [istarget *-*-rtems*]
|| [istarget *-*-vxworks*] } {
set profiling_available_saved 0
} else {
@@ -495,6 +507,17 @@ proc check_profiling_available { test_what } {
return $profiling_available_saved
}
+# Check to see if a target is "freestanding". This is as per the definition
+# in Section 4 of C99 standard. Effectively, it is a target which supports no
+# extra headers or libraries other than what is considered essential.
+proc check_effective_target_freestanding { } {
+ if { [istarget picochip-*-*] } then {
+ return 1
+ } else {
+ return 0
+ }
+}
+
# Return 1 if target has packed layout of structure members by
# default, 0 otherwise. Note that this is slightly different than
# whether the target has "natural alignment": both attributes may be
@@ -882,6 +905,99 @@ proc check_vmx_hw_available { } {
}]
}
+# Return 1 if the target supports executing AltiVec and Cell PPU
+# instructions, 0 otherwise. Cache the result.
+
+proc check_effective_target_cell_hw { } {
+ return [check_cached_effective_target cell_hw_available {
+ # Some simulators are known to not support VMX and PPU instructions.
+ if { [istarget powerpc-*-eabi*] } {
+ expr 0
+ } else {
+ # Most targets don't require special flags for this test
+ # case, but Darwin and AIX do.
+ if { [istarget *-*-darwin*]
+ || [istarget *-*-aix*] } {
+ set options "-maltivec -mcpu=cell"
+ } else {
+ set options "-mcpu=cell"
+ }
+ check_runtime_nocache cell_hw_available {
+ int main()
+ {
+ #ifdef __MACH__
+ asm volatile ("vor v0,v0,v0");
+ asm volatile ("lvlx v0,r0,r0");
+ #else
+ asm volatile ("vor 0,0,0");
+ asm volatile ("lvlx 0,0,0");
+ #endif
+ return 0;
+ }
+ } $options
+ }
+ }]
+}
+
+# Return 1 if the target supports executing 64-bit instructions, 0
+# otherwise. Cache the result.
+
+proc check_effective_target_powerpc64 { } {
+ global powerpc64_available_saved
+ global tool
+
+ if [info exists powerpc64_available_saved] {
+ verbose "check_effective_target_powerpc64 returning saved $powerpc64_available_saved" 2
+ } else {
+ set powerpc64_available_saved 0
+
+ # Some simulators are known to not support powerpc64 instructions.
+ if { [istarget powerpc-*-eabi*] || [istarget powerpc-ibm-aix*] } {
+ verbose "check_effective_target_powerpc64 returning 0" 2
+ return $powerpc64_available_saved
+ }
+
+ # Set up, compile, and execute a test program containing a 64-bit
+ # instruction. Include the current process ID in the file
+ # names to prevent conflicts with invocations for multiple
+ # testsuites.
+ set src ppc[pid].c
+ set exe ppc[pid].x
+
+ set f [open $src "w"]
+ puts $f "int main() {"
+ puts $f "#ifdef __MACH__"
+ puts $f " asm volatile (\"extsw r0,r0\");"
+ puts $f "#else"
+ puts $f " asm volatile (\"extsw 0,0\");"
+ puts $f "#endif"
+ puts $f " return 0; }"
+ close $f
+
+ set opts "additional_flags=-mcpu=G5"
+
+ verbose "check_effective_target_powerpc64 compiling testfile $src" 2
+ set lines [${tool}_target_compile $src $exe executable "$opts"]
+ file delete $src
+
+ if [string match "" $lines] then {
+ # No error message, compilation succeeded.
+ set result [${tool}_load "./$exe" "" ""]
+ set status [lindex $result 0]
+ remote_file build delete $exe
+ verbose "check_effective_target_powerpc64 testfile status is <$status>" 2
+
+ if { $status == "pass" } then {
+ set powerpc64_available_saved 1
+ }
+ } else {
+ verbose "check_effective_target_powerpc64 testfile compilation failed" 2
+ }
+ }
+
+ return $powerpc64_available_saved
+}
+
# GCC 3.4.0 for powerpc64-*-linux* included an ABI fix for passing
# complex float arguments. This affects gfortran tests that call cabsf
# in libm built by an earlier compiler. Return 1 if libm uses the same
@@ -1419,6 +1535,23 @@ proc check_effective_target_powerpc_spu { } {
}
}
+# Return 1 if this is a PowerPC SPE target. The check includes options
+# specified by dg-options for this test, so don't cache the result.
+
+proc check_effective_target_powerpc_spe_nocache { } {
+ if { [istarget powerpc*-*-*] } {
+ return [check_no_compiler_messages_nocache powerpc_spe object {
+ #ifndef __SPE__
+ #error not SPE
+ #else
+ int dummy;
+ #endif
+ } [current_compiler_flags]]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is a PowerPC target with SPE enabled.
proc check_effective_target_powerpc_spe { } {
@@ -1451,6 +1584,23 @@ proc check_effective_target_powerpc_altivec { } {
}
}
+# Return 1 if this is a PowerPC 405 target. The check includes options
+# specified by dg-options for this test, so don't cache the result.
+
+proc check_effective_target_powerpc_405_nocache { } {
+ if { [istarget powerpc*-*-*] || [istarget rs6000-*-*] } {
+ return [check_no_compiler_messages_nocache powerpc_405 object {
+ #ifdef __PPC405__
+ int dummy;
+ #else
+ #error not a PPC405
+ #endif
+ } [current_compiler_flags]]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is a SPU target with a toolchain that
# supports automatic overlay generation.
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-1.mm b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
index 087a13ff7ad..d9b65a4f453 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-1.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
@@ -5,10 +5,10 @@
superclasses should be removed). */
/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-do run } */
-/* { dg-xfail-if "PR31032" { *-*-* } { "*" } { "" } } */
-/* { dg-prune-output ".*internal compiler error.*" } */
/* { dg-options "-Wpadded -Wabi" } */
+/* Leave blank lines here to keep warnings on the same lines. */
+
#include <objc/objc.h>
#include <objc/Object.h>
#include <stdlib.h>
diff --git a/gcc/testsuite/objc/execute/forward-1.m b/gcc/testsuite/objc/execute/forward-1.m
new file mode 100644
index 00000000000..9306dea7b27
--- /dev/null
+++ b/gcc/testsuite/objc/execute/forward-1.m
@@ -0,0 +1,85 @@
+/* See if -forward::/-performv:: is able to work. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <objc/Object.h>
+#include <objc/objc-api.h>
+
+#define VALUETOUSE 1234567890
+
+#ifdef __NEXT_RUNTIME__
+/* Does not run with the next runtime. */
+int main(void)
+{
+ return 0;
+}
+
+#else
+
+id forwarder, receiver;
+
+@interface Forwarder: Object
+{
+ id receiver;
+}
+
+-initWithReceiver:theReceiver;
+
+@end
+
+@interface Receiver:Object
+{
+ int foo;
+}
+-display;
+-initWithFoo:(int)theFoo;
+@end
+@implementation Receiver
+
+-initWithFoo: (int)theFoo
+{
+ foo = theFoo;
+ return self;
+}
+
+-display
+{
+ /* Check to see if we are really the reciever. */
+ if (self != receiver)
+ abort ();
+ /* And the value of foo is set correctly. */
+ if (foo != VALUETOUSE)
+ abort ();
+ return self;
+}
+
+@end
+
+@implementation Forwarder
+-initWithReceiver: theReceiver
+{
+ [super init];
+ receiver = theReceiver;
+ return self;
+}
+-(retval_t) forward: (SEL)theSel: (arglist_t)theArgFrame
+{
+ /* If we have a reciever try to perform on that object */
+ if (receiver)
+ return [receiver performv: theSel: theArgFrame];
+ return [self doesNotRecognize:theSel];
+}
+@end
+int main()
+{
+ /* Init the reciever. */
+ receiver = [[Receiver alloc] initWithFoo: VALUETOUSE];
+ /* Init the fowarder. */
+ forwarder = [[Forwarder alloc] initWithReceiver: receiver];
+ /* Call display on the forwarder which in turns calls display on
+ the reciever. */
+ [forwarder display];
+ exit(0);
+}
+
+#endif
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 28ee8ef40c4..875d123244d 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2072,14 +2072,9 @@ struct gimple_opt_pass pass_remove_useless_stmts =
static void
remove_phi_nodes_and_edges_for_unreachable_block (basic_block bb)
{
- gimple_stmt_iterator gsi;
-
/* Since this block is no longer reachable, we can just delete all
of its PHI nodes. */
- for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); )
- remove_phi_node (&gsi, true);
-
- set_phi_nodes (bb, NULL);
+ remove_phi_nodes (bb);
/* Remove edges to BB's successors. */
while (EDGE_COUNT (bb->succs) > 0)
@@ -2810,6 +2805,15 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
}
break;
+ case INDIRECT_REF:
+ x = TREE_OPERAND (t, 0);
+ if (!is_gimple_reg (x) && !is_gimple_min_invariant (x))
+ {
+ error ("Indirect reference's operand is not a register or a constant.");
+ return x;
+ }
+ break;
+
case ASSERT_EXPR:
x = fold (ASSERT_EXPR_COND (t));
if (x == boolean_false_node)
@@ -2820,14 +2824,8 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
break;
case MODIFY_EXPR:
- x = TREE_OPERAND (t, 0);
- if (TREE_CODE (x) == BIT_FIELD_REF
- && is_gimple_reg (TREE_OPERAND (x, 0)))
- {
- error ("GIMPLE register modified with BIT_FIELD_REF");
- return t;
- }
- break;
+ error ("MODIFY_EXPR not expected while having tuples.");
+ return *tp;
case ADDR_EXPR:
{
@@ -3476,6 +3474,12 @@ verify_gimple_assign_binary (gimple stmt)
case LSHIFT_EXPR:
case RSHIFT_EXPR:
+ if (FIXED_POINT_TYPE_P (rhs1_type)
+ && INTEGRAL_TYPE_P (rhs2_type)
+ && useless_type_conversion_p (lhs_type, rhs1_type))
+ return false;
+ /* Fall through. */
+
case LROTATE_EXPR:
case RROTATE_EXPR:
{
@@ -3497,7 +3501,8 @@ verify_gimple_assign_binary (gimple stmt)
case VEC_RSHIFT_EXPR:
{
if (TREE_CODE (rhs1_type) != VECTOR_TYPE
- || !INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))
+ || !(INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))
+ || FIXED_POINT_TYPE_P (TREE_TYPE (rhs1_type)))
|| (!INTEGRAL_TYPE_P (rhs2_type)
&& (TREE_CODE (rhs2_type) != VECTOR_TYPE
|| !INTEGRAL_TYPE_P (TREE_TYPE (rhs2_type))))
@@ -4154,7 +4159,7 @@ verify_eh_throw_stmt_node (void **slot, void *data)
debug_gimple_stmt (node->stmt);
eh_error_found = true;
}
- return 0;
+ return 1;
}
@@ -5840,6 +5845,8 @@ replace_block_vars_by_duplicates (tree block, struct pointer_map_t *vars_map,
for (tp = &BLOCK_VARS (block); *tp; tp = &TREE_CHAIN (*tp))
{
t = *tp;
+ if (TREE_CODE (t) != VAR_DECL && TREE_CODE (t) != CONST_DECL)
+ continue;
replace_by_duplicate_decl (&t, vars_map, to_context);
if (t != *tp)
{
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c
index 26ae9b408a7..7a065b6b8b0 100644
--- a/gcc/tree-chrec.c
+++ b/gcc/tree-chrec.c
@@ -1430,3 +1430,64 @@ for_each_scev_op (tree *scev, bool (*cbck) (tree *, void *), void *data)
}
}
+/* Returns true when the operation can be part of a linear
+ expression. */
+
+static inline bool
+operator_is_linear (tree scev)
+{
+ switch (TREE_CODE (scev))
+ {
+ case INTEGER_CST:
+ case POLYNOMIAL_CHREC:
+ case PLUS_EXPR:
+ case POINTER_PLUS_EXPR:
+ case MULT_EXPR:
+ case MINUS_EXPR:
+ case NEGATE_EXPR:
+ case SSA_NAME:
+ case NON_LVALUE_EXPR:
+ CASE_CONVERT:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
+/* Return true when SCEV is a linear expression. Linear expressions
+ can contain additions, substractions and multiplications.
+ Multiplications are restricted to constant scaling: "cst * x". */
+
+bool
+scev_is_linear_expression (tree scev)
+{
+ if (scev == NULL
+ || !operator_is_linear (scev))
+ return false;
+
+ if (TREE_CODE (scev) == MULT_EXPR)
+ return !(tree_contains_chrecs (TREE_OPERAND (scev, 0), NULL)
+ && tree_contains_chrecs (TREE_OPERAND (scev, 1), NULL));
+
+ switch (TREE_CODE_LENGTH (TREE_CODE (scev)))
+ {
+ case 3:
+ return scev_is_linear_expression (TREE_OPERAND (scev, 0))
+ && scev_is_linear_expression (TREE_OPERAND (scev, 1))
+ && scev_is_linear_expression (TREE_OPERAND (scev, 2));
+
+ case 2:
+ return scev_is_linear_expression (TREE_OPERAND (scev, 0))
+ && scev_is_linear_expression (TREE_OPERAND (scev, 1));
+
+ case 1:
+ return scev_is_linear_expression (TREE_OPERAND (scev, 0));
+
+ case 0:
+ return true;
+
+ default:
+ return false;
+ }
+}
diff --git a/gcc/tree-chrec.h b/gcc/tree-chrec.h
index d35dcd3064c..fa372a2450b 100644
--- a/gcc/tree-chrec.h
+++ b/gcc/tree-chrec.h
@@ -84,6 +84,7 @@ extern bool evolution_function_is_affine_multivariate_p (const_tree, int);
extern bool evolution_function_is_univariate_p (const_tree);
extern unsigned nb_vars_in_chrec (tree);
extern bool evolution_function_is_invariant_p (tree, int);
+extern bool scev_is_linear_expression (tree);
/* Determines whether CHREC is equal to zero. */
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 939bd6f1a63..c7a7ad48f6e 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -953,10 +953,10 @@ expand_complex_libcall (gimple_stmt_iterator *gsi, tree ar, tree ai,
enum machine_mode mode;
enum built_in_function bcode;
tree fn, type, lhs;
- gimple stmt;
+ gimple old_stmt, stmt;
- stmt = gsi_stmt (*gsi);
- lhs = gimple_assign_lhs (stmt);
+ old_stmt = gsi_stmt (*gsi);
+ lhs = gimple_assign_lhs (old_stmt);
type = TREE_TYPE (lhs);
mode = TYPE_MODE (type);
@@ -973,7 +973,10 @@ expand_complex_libcall (gimple_stmt_iterator *gsi, tree ar, tree ai,
stmt = gimple_build_call (fn, 4, ar, ai, br, bi);
gimple_call_set_lhs (stmt, lhs);
update_stmt (stmt);
- gsi_replace (gsi, stmt, true);
+ gsi_replace (gsi, stmt, false);
+
+ if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt))
+ gimple_purge_dead_eh_edges (gsi_bb (*gsi));
if (gimple_in_ssa_p (cfun))
{
diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h
index 3c2f1b28836..6477542879d 100644
--- a/gcc/tree-data-ref.h
+++ b/gcc/tree-data-ref.h
@@ -1,5 +1,6 @@
/* Data references and dependences detectors.
- Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Sebastian Pop <pop@cri.ensmp.fr>
This file is part of GCC.
@@ -131,7 +132,7 @@ struct access_matrix
VEC (loop_p, heap) *loop_nest;
int nb_induction_vars;
VEC (tree, heap) *parameters;
- VEC (lambda_vector, heap) *matrix;
+ VEC (lambda_vector, gc) *matrix;
};
#define AM_LOOP_NEST(M) (M)->loop_nest
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 6004978416b..46578629673 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -1,5 +1,5 @@
/* Data and Control Flow Analysis for Trees.
- Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Diego Novillo <dnovillo@redhat.com>
@@ -752,6 +752,8 @@ extern bool cleanup_tree_cfg (void);
/* In tree-pretty-print.c. */
extern void dump_generic_bb (FILE *, basic_block, int, int);
+extern int op_code_prio (enum tree_code);
+extern int op_prio (const_tree);
extern const char *op_symbol_code (enum tree_code);
/* In tree-dfa.c */
@@ -787,6 +789,7 @@ extern gimple create_phi_node (tree, basic_block);
extern void add_phi_arg (gimple, tree, edge);
extern void remove_phi_args (edge);
extern void remove_phi_node (gimple_stmt_iterator *, bool);
+extern void remove_phi_nodes (basic_block);
extern void init_phinodes (void);
extern void fini_phinodes (void);
extern void release_phi_node (gimple);
@@ -988,6 +991,7 @@ unsigned int tree_ssa_prefetch_arrays (void);
unsigned int remove_empty_loops (void);
void tree_ssa_iv_optimize (void);
unsigned tree_predictive_commoning (void);
+tree canonicalize_loop_ivs (struct loop *, htab_t, tree);
bool parallelize_loops (void);
bool loop_only_exit_p (const struct loop *, const_edge);
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 062ab48ee7e..745957fcea2 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -331,6 +331,38 @@ generate_memset_zero (gimple stmt, tree op0, tree nb_iter,
return res;
}
+/* Propagate phis in BB b to their uses and remove them. */
+
+static void
+prop_phis (basic_block b)
+{
+ gimple_stmt_iterator psi;
+ gimple_seq phis = phi_nodes (b);
+
+ for (psi = gsi_start (phis); !gsi_end_p (psi); )
+ {
+ gimple phi = gsi_stmt (psi);
+ tree def = gimple_phi_result (phi), use = gimple_phi_arg_def (phi, 0);
+
+ gcc_assert (gimple_phi_num_args (phi) == 1);
+
+ if (!is_gimple_reg (def))
+ {
+ imm_use_iterator iter;
+ use_operand_p use_p;
+ gimple stmt;
+
+ FOR_EACH_IMM_USE_STMT (stmt, iter, def)
+ FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
+ SET_USE (use_p, use);
+ }
+ else
+ replace_uses_by (def, use);
+
+ remove_phi_node (&psi, true);
+ }
+}
+
/* Tries to generate a builtin function for the instructions of LOOP
pointed to by the bits set in PARTITION. Returns true when the
operation succeeded. */
@@ -400,6 +432,7 @@ generate_builtin (struct loop *loop, bitmap partition, bool copy_p)
unsigned nbbs = loop->num_nodes;
basic_block src = loop_preheader_edge (loop)->src;
basic_block dest = single_exit (loop)->dest;
+ prop_phis (dest);
make_edge (src, dest, EDGE_FALLTHRU);
set_immediate_dominator (CDI_DOMINATORS, dest, src);
cancel_loop_tree (loop);
diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c
index 8b57e2acf10..cc2440dd41f 100644
--- a/gcc/tree-loop-linear.c
+++ b/gcc/tree-loop-linear.c
@@ -1,5 +1,6 @@
/* Linear Loop transforms
- Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Daniel Berlin <dberlin@dberlin.org>.
This file is part of GCC.
@@ -334,12 +335,13 @@ linear_transform_loops (void)
lambda_trans_matrix trans;
struct obstack lambda_obstack;
struct loop *loop;
- VEC(loop_p,heap) *nest = VEC_alloc (loop_p, heap, 3);
+ VEC(loop_p,heap) *nest;
depth = perfect_loop_nest_depth (loop_nest);
if (depth == 0)
continue;
+ nest = VEC_alloc (loop_p, heap, 3);
for (loop = loop_nest; loop; loop = loop->inner)
VEC_safe_push (loop_p, heap, nest, loop);
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index d6e94b3c6a5..91ce890755f 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1325,9 +1325,10 @@ create_loop_fn (void)
/* Bases all the induction variables in LOOP on a single induction variable
(unsigned with base 0 and step 1), whose final value is compared with
NIT. The induction variable is incremented in the loop latch.
- REDUCTION_LIST describes the reductions in LOOP. */
+ REDUCTION_LIST describes the reductions in LOOP. Return the induction
+ variable that was created. */
-static void
+tree
canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
{
unsigned precision = TYPE_PRECISION (TREE_TYPE (nit));
@@ -1368,7 +1369,12 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
}
ok = simple_iv (loop, phi, res, &iv, true);
- red = reduction_phi (reduction_list, phi);
+
+ if (reduction_list)
+ red = reduction_phi (reduction_list, phi);
+ else
+ red = NULL;
+
/* We preserve the reduction phi nodes. */
if (!ok && red)
{
@@ -1406,6 +1412,9 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
gimple_cond_set_code (stmt, LT_EXPR);
gimple_cond_set_lhs (stmt, var_before);
gimple_cond_set_rhs (stmt, nit);
+ update_stmt (stmt);
+
+ return var_before;
}
/* Moves the exit condition of LOOP to the beginning of its header, and
diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c
index 7fd5a8f30cc..fd6ac3a511b 100644
--- a/gcc/tree-phinodes.c
+++ b/gcc/tree-phinodes.c
@@ -474,4 +474,17 @@ remove_phi_node (gimple_stmt_iterator *gsi, bool release_lhs_p)
release_ssa_name (gimple_phi_result (phi));
}
+/* Remove all the phi nodes from BB. */
+
+void
+remove_phi_nodes (basic_block bb)
+{
+ gimple_stmt_iterator gsi;
+
+ for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); )
+ remove_phi_node (&gsi, true);
+
+ set_phi_nodes (bb, NULL);
+}
+
#include "gt-tree-phinodes.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 5708eedf3b2..ff45ecc635d 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -1,5 +1,5 @@
/* Pretty formatting of GENERIC trees in C syntax.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Adapted from c-pretty-print.c by Diego Novillo <dnovillo@redhat.com>
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3. If not see
#include "predict.h"
/* Local functions, macros and variables. */
-static int op_prio (const_tree);
static const char *op_symbol (const_tree);
static void pretty_print_string (pretty_printer *, const char*);
static void print_call_name (pretty_printer *, const_tree);
@@ -2223,7 +2222,7 @@ print_struct_decl (pretty_printer *buffer, const_tree node, int spc, int flags)
pp_character (buffer, '}');
}
-/* Return the priority of the operator OP.
+/* Return the priority of the operator CODE.
From lowest to highest precedence with either left-to-right (L-R)
or right-to-left (R-L) associativity]:
@@ -2247,13 +2246,10 @@ print_struct_decl (pretty_printer *buffer, const_tree node, int spc, int flags)
unary +, - and * have higher precedence than the corresponding binary
operators. */
-static int
-op_prio (const_tree op)
+int
+op_code_prio (enum tree_code code)
{
- if (op == NULL)
- return 9999;
-
- switch (TREE_CODE (op))
+ switch (code)
{
case TREE_LIST:
case COMPOUND_EXPR:
@@ -2374,10 +2370,6 @@ op_prio (const_tree op)
case VEC_PACK_SAT_EXPR:
return 16;
- case SAVE_EXPR:
- case NON_LVALUE_EXPR:
- return op_prio (TREE_OPERAND (op, 0));
-
default:
/* Return an arbitrarily high precedence to avoid surrounding single
VAR_DECLs in ()s. */
@@ -2385,6 +2377,22 @@ op_prio (const_tree op)
}
}
+/* Return the priority of the operator OP. */
+
+int
+op_prio (const_tree op)
+{
+ enum tree_code code;
+
+ if (op == NULL)
+ return 9999;
+
+ code = TREE_CODE (op);
+ if (code == SAVE_EXPR || code == NON_LVALUE_EXPR)
+ return op_prio (TREE_OPERAND (op, 0));
+
+ return op_code_prio (code);
+}
/* Return the symbol associated with operator CODE. */
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index e3d60e98b2e..f306ab8277c 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -2805,6 +2805,50 @@ scev_finalize (void)
scalar_evolution_info = NULL;
}
+/* Returns true if the expression EXPR is considered to be too expensive
+ for scev_const_prop. */
+
+bool
+expression_expensive_p (tree expr)
+{
+ enum tree_code code;
+
+ if (is_gimple_val (expr))
+ return false;
+
+ code = TREE_CODE (expr);
+ if (code == TRUNC_DIV_EXPR
+ || code == CEIL_DIV_EXPR
+ || code == FLOOR_DIV_EXPR
+ || code == ROUND_DIV_EXPR
+ || code == TRUNC_MOD_EXPR
+ || code == CEIL_MOD_EXPR
+ || code == FLOOR_MOD_EXPR
+ || code == ROUND_MOD_EXPR
+ || code == EXACT_DIV_EXPR)
+ {
+ /* Division by power of two is usually cheap, so we allow it.
+ Forbid anything else. */
+ if (!integer_pow2p (TREE_OPERAND (expr, 1)))
+ return true;
+ }
+
+ switch (TREE_CODE_CLASS (code))
+ {
+ case tcc_binary:
+ case tcc_comparison:
+ if (expression_expensive_p (TREE_OPERAND (expr, 1)))
+ return true;
+
+ /* Fallthru. */
+ case tcc_unary:
+ return expression_expensive_p (TREE_OPERAND (expr, 0));
+
+ default:
+ return true;
+ }
+}
+
/* Replace ssa names for that scev can prove they are constant by the
appropriate constants. Also perform final value replacement in loops,
in case the replacement expressions are cheap.
@@ -2896,12 +2940,6 @@ scev_const_prop (void)
continue;
niter = number_of_latch_executions (loop);
- /* We used to check here whether the computation of NITER is expensive,
- and avoided final value elimination if that is the case. The problem
- is that it is hard to evaluate whether the expression is too
- expensive, as we do not know what optimization opportunities the
- elimination of the final value may reveal. Therefore, we now
- eliminate the final values of induction variables unconditionally. */
if (niter == chrec_dont_know)
continue;
@@ -2938,7 +2976,15 @@ scev_const_prop (void)
/* Moving the computation from the loop may prolong life range
of some ssa names, which may cause problems if they appear
on abnormal edges. */
- || contains_abnormal_ssa_name_p (def))
+ || contains_abnormal_ssa_name_p (def)
+ /* Do not emit expensive expressions. The rationale is that
+ when someone writes a code like
+
+ while (n > 45) n -= 45;
+
+ he probably knows that n is not large, and does not want it
+ to be turned into n %= 45. */
+ || expression_expensive_p (def))
{
gsi_next (&psi);
continue;
diff --git a/gcc/tree-scalar-evolution.h b/gcc/tree-scalar-evolution.h
index 7ba0708354f..0aa8837cbbc 100644
--- a/gcc/tree-scalar-evolution.h
+++ b/gcc/tree-scalar-evolution.h
@@ -35,6 +35,7 @@ extern void gather_stats_on_scev_database (void);
extern void scev_analysis (void);
unsigned int scev_const_prop (void);
+bool expression_expensive_p (tree);
extern bool simple_iv (struct loop *, gimple, tree, affine_iv *, bool);
/* Returns the basic block preceding LOOP or ENTRY_BLOCK_PTR when the
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index aa161936410..01c0e121e00 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2354,14 +2354,17 @@ sra_build_bf_assignment (tree dst, tree src)
tmp = var;
if (!is_gimple_variable (tmp))
tmp = unshare_expr (var);
+ else
+ TREE_NO_WARNING (var) = true;
tmp2 = make_rename_temp (utype, "SR");
if (INTEGRAL_TYPE_P (TREE_TYPE (var)))
- stmt = gimple_build_assign (tmp2, fold_convert (utype, tmp));
+ tmp = fold_convert (utype, tmp);
else
- stmt = gimple_build_assign (tmp2, fold_build1 (VIEW_CONVERT_EXPR,
- utype, tmp));
+ tmp = fold_build1 (VIEW_CONVERT_EXPR, utype, tmp);
+
+ stmt = gimple_build_assign (tmp2, tmp);
gimple_seq_add_stmt (&seq, stmt);
}
else
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 0908d546f00..d0fcf3937a7 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -860,6 +860,10 @@ may_propagate_address_into_dereference (tree addr, tree deref)
gcc_assert (INDIRECT_REF_P (deref)
&& TREE_CODE (addr) == ADDR_EXPR);
+ /* Don't propagate if ADDR's operand has incomplete type. */
+ if (!COMPLETE_TYPE_P (TREE_TYPE (TREE_OPERAND (addr, 0))))
+ return false;
+
/* If the address is invariant then we do not need to preserve restrict
qualifications. But we do need to preserve volatile qualifiers until
we can annotate the folded dereference itself properly. */
@@ -2720,10 +2724,19 @@ fold_gimple_assign (gimple_stmt_iterator *si)
case GIMPLE_BINARY_RHS:
/* Try to fold pointer addition. */
if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
- result = maybe_fold_stmt_addition (
- TREE_TYPE (gimple_assign_lhs (stmt)),
- gimple_assign_rhs1 (stmt),
- gimple_assign_rhs2 (stmt));
+ {
+ tree type = TREE_TYPE (gimple_assign_rhs1 (stmt));
+ if (TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE)
+ {
+ type = build_pointer_type (TREE_TYPE (TREE_TYPE (type)));
+ if (!useless_type_conversion_p
+ (TREE_TYPE (gimple_assign_lhs (stmt)), type))
+ type = TREE_TYPE (gimple_assign_rhs1 (stmt));
+ }
+ result = maybe_fold_stmt_addition (type,
+ gimple_assign_rhs1 (stmt),
+ gimple_assign_rhs2 (stmt));
+ }
if (!result)
result = fold_binary (subcode,
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index bf2049eb8d8..6d6d02bc305 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -2045,8 +2045,6 @@ cprop_operand (gimple stmt, use_operand_p op_p)
val = SSA_NAME_VALUE (op);
if (val && val != op)
{
- tree op_type, val_type;
-
/* Do not change the base variable in the virtual operand
tables. That would make it impossible to reconstruct
the renamed virtual operand if we later modify this
@@ -2063,38 +2061,20 @@ cprop_operand (gimple stmt, use_operand_p op_p)
&& !may_propagate_copy_into_asm (op))
return false;
- /* Get the toplevel type of each operand. */
- op_type = TREE_TYPE (op);
- val_type = TREE_TYPE (val);
-
- /* While both types are pointers, get the type of the object
- pointed to. */
- while (POINTER_TYPE_P (op_type) && POINTER_TYPE_P (val_type))
- {
- op_type = TREE_TYPE (op_type);
- val_type = TREE_TYPE (val_type);
- }
-
- /* Make sure underlying types match before propagating a constant by
- converting the constant to the proper type. Note that convert may
- return a non-gimple expression, in which case we ignore this
- propagation opportunity. */
- if (TREE_CODE (val) != SSA_NAME)
- {
- if (!useless_type_conversion_p (op_type, val_type))
- {
- val = fold_convert (TREE_TYPE (op), val);
- if (!is_gimple_min_invariant (val))
- return false;
- }
- }
-
/* Certain operands are not allowed to be copy propagated due
to their interaction with exception handling and some GCC
extensions. */
- else if (!may_propagate_copy (op, val))
+ if (!may_propagate_copy (op, val))
return false;
-
+
+ /* Do not propagate addresses that point to volatiles into memory
+ stmts without volatile operands. */
+ if (POINTER_TYPE_P (TREE_TYPE (val))
+ && TYPE_VOLATILE (TREE_TYPE (TREE_TYPE (val)))
+ && gimple_has_mem_ops (stmt)
+ && !gimple_has_volatile_ops (stmt))
+ return false;
+
/* Do not propagate copies if the propagated value is at a deeper loop
depth than the propagatee. Otherwise, this may move loop variant
variables outside of their loops and prevent coalescing
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 683d7d4b5fa..ca1ab98b85a 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -3844,7 +3844,12 @@ may_eliminate_iv (struct ivopts_data *data,
return false;
cand_value_at (loop, cand, use->stmt, nit, &bnd);
+
*bound = aff_combination_to_tree (&bnd);
+ /* It is unlikely that computing the number of iterations using division
+ would be more profitable than keeping the original induction variable. */
+ if (expression_expensive_p (*bound))
+ return false;
return true;
}
@@ -4355,8 +4360,8 @@ iv_ca_add_use (struct ivopts_data *data, struct iv_ca *ivs,
static comp_cost
iv_ca_cost (struct iv_ca *ivs)
{
- /* This was a conditional expression but it triggered a bug in the
- Solaris 8 compiler. */
+ /* This was a conditional expression but it triggered a bug in
+ Sun C 5.5. */
if (ivs->bad_uses)
return infinite_cost;
else
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 7773fe96b6f..0a4fb6ddc10 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -2394,7 +2394,7 @@ compute_antic (void)
fprintf (dump_file, "Starting iteration %d\n", num_iterations);
num_iterations++;
changed = false;
- for (i = 0; i < last_basic_block - NUM_FIXED_BLOCKS; i++)
+ for (i = 0; i < n_basic_blocks - NUM_FIXED_BLOCKS; i++)
{
if (TEST_BIT (changed_blocks, postorder[i]))
{
@@ -2425,7 +2425,7 @@ compute_antic (void)
fprintf (dump_file, "Starting iteration %d\n", num_iterations);
num_iterations++;
changed = false;
- for (i = 0; i < last_basic_block - NUM_FIXED_BLOCKS; i++)
+ for (i = 0; i < n_basic_blocks - NUM_FIXED_BLOCKS; i++)
{
if (TEST_BIT (changed_blocks, postorder[i]))
{
@@ -3644,10 +3644,7 @@ compute_avail (void)
add_to_value (get_expr_value_id (e), e);
if (!in_fre)
- {
- bitmap_insert_into_set (TMP_GEN (block), e);
- bitmap_value_insert_into_set (maximal_set, e);
- }
+ bitmap_insert_into_set (TMP_GEN (block), e);
bitmap_value_insert_into_set (AVAIL_OUT (block), e);
}
@@ -3716,6 +3713,7 @@ compute_avail (void)
if (is_exception_related (stmt))
continue;
case tcc_binary:
+ case tcc_comparison:
{
vn_nary_op_t nary;
unsigned int i;
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index c71680aae24..d28e1b620ff 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -1,5 +1,5 @@
/* Reassociation for trees.
- Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Daniel Berlin <dan@dberlin.org>
This file is part of GCC.
@@ -1265,13 +1265,37 @@ is_phi_for_stmt (gimple stmt, tree operand)
return false;
}
+/* Remove def stmt of VAR if VAR has zero uses and recurse
+ on rhs1 operand if so. */
+
+static void
+remove_visited_stmt_chain (tree var)
+{
+ gimple stmt;
+ gimple_stmt_iterator gsi;
+
+ while (1)
+ {
+ if (TREE_CODE (var) != SSA_NAME || !has_zero_uses (var))
+ return;
+ stmt = SSA_NAME_DEF_STMT (var);
+ if (!is_gimple_assign (stmt)
+ || !gimple_visited_p (stmt))
+ return;
+ var = gimple_assign_rhs1 (stmt);
+ gsi = gsi_for_stmt (stmt);
+ gsi_remove (&gsi, true);
+ release_defs (stmt);
+ }
+}
+
/* Recursively rewrite our linearized statements so that the operators
match those in OPS[OPINDEX], putting the computation in rank
order. */
static void
rewrite_expr_tree (gimple stmt, unsigned int opindex,
- VEC(operand_entry_t, heap) * ops)
+ VEC(operand_entry_t, heap) * ops, bool moved)
{
tree rhs1 = gimple_assign_rhs1 (stmt);
tree rhs2 = gimple_assign_rhs2 (stmt);
@@ -1348,6 +1372,8 @@ rewrite_expr_tree (gimple stmt, unsigned int opindex,
gimple_assign_set_rhs1 (stmt, oe1->op);
gimple_assign_set_rhs2 (stmt, oe2->op);
update_stmt (stmt);
+ if (rhs1 != oe1->op && rhs1 != oe2->op)
+ remove_visited_stmt_chain (rhs1);
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -1367,6 +1393,24 @@ rewrite_expr_tree (gimple stmt, unsigned int opindex,
if (oe->op != rhs2)
{
+ if (!moved)
+ {
+ gimple_stmt_iterator gsinow, gsirhs1;
+ gimple stmt1 = stmt, stmt2;
+ unsigned int count;
+
+ gsinow = gsi_for_stmt (stmt);
+ count = VEC_length (operand_entry_t, ops) - opindex - 2;
+ while (count-- != 0)
+ {
+ stmt2 = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt1));
+ gsirhs1 = gsi_for_stmt (stmt2);
+ gsi_move_before (&gsirhs1, &gsinow);
+ gsi_prev (&gsinow);
+ stmt1 = stmt2;
+ }
+ moved = true;
+ }
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -1385,7 +1429,7 @@ rewrite_expr_tree (gimple stmt, unsigned int opindex,
}
/* Recurse on the LHS of the binary operator, which is guaranteed to
be the non-leaf side. */
- rewrite_expr_tree (SSA_NAME_DEF_STMT (rhs1), opindex + 1, ops);
+ rewrite_expr_tree (SSA_NAME_DEF_STMT (rhs1), opindex + 1, ops, moved);
}
/* Transform STMT, which is really (A +B) + (C + D) into the left
@@ -1561,7 +1605,6 @@ static void
linearize_expr_tree (VEC(operand_entry_t, heap) **ops, gimple stmt,
bool is_associative, bool set_visited)
{
- gimple_stmt_iterator gsinow, gsilhs;
tree binlhs = gimple_assign_rhs1 (stmt);
tree binrhs = gimple_assign_rhs2 (stmt);
gimple binlhsdef, binrhsdef;
@@ -1642,9 +1685,6 @@ linearize_expr_tree (VEC(operand_entry_t, heap) **ops, gimple stmt,
gcc_assert (TREE_CODE (binrhs) != SSA_NAME
|| !is_reassociable_op (SSA_NAME_DEF_STMT (binrhs),
rhscode, loop));
- gsinow = gsi_for_stmt (stmt);
- gsilhs = gsi_for_stmt (SSA_NAME_DEF_STMT (binlhs));
- gsi_move_before (&gsilhs, &gsinow);
linearize_expr_tree (ops, SSA_NAME_DEF_STMT (binlhs),
is_associative, set_visited);
add_to_ops_vec (ops, binrhs);
@@ -1862,11 +1902,13 @@ reassociate_bb (basic_block bb)
fprintf (dump_file, "Transforming ");
print_gimple_stmt (dump_file, stmt, 0, 0);
}
-
+
+ rhs1 = gimple_assign_rhs1 (stmt);
gimple_assign_set_rhs_from_tree (&gsi,
VEC_last (operand_entry_t,
ops)->op);
update_stmt (stmt);
+ remove_visited_stmt_chain (rhs1);
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -1875,9 +1917,7 @@ reassociate_bb (basic_block bb)
}
}
else
- {
- rewrite_expr_tree (stmt, 0, ops);
- }
+ rewrite_expr_tree (stmt, 0, ops, false);
VEC_free (operand_entry_t, heap, ops);
}
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 3d64c1cbd33..8b49556b3c0 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -1129,6 +1129,8 @@ build_pred_graph (void)
}
else if (rhs.type == ADDRESSOF)
{
+ varinfo_t v;
+
/* x = &y */
if (graph->points_to[lhsvar] == NULL)
graph->points_to[lhsvar] = BITMAP_ALLOC (&predbitmap_obstack);
@@ -1141,7 +1143,19 @@ build_pred_graph (void)
/* Implicitly, *x = y */
add_implicit_graph_edge (graph, FIRST_REF_NODE + lhsvar, rhsvar);
+ /* All related variables are no longer direct nodes. */
RESET_BIT (graph->direct_nodes, rhsvar);
+ v = get_varinfo (rhsvar);
+ if (!v->is_full_var)
+ {
+ v = lookup_vi_for_tree (v->decl);
+ do
+ {
+ RESET_BIT (graph->direct_nodes, v->id);
+ v = v->next;
+ }
+ while (v != NULL);
+ }
bitmap_set_bit (graph->address_taken, rhsvar);
}
else if (lhsvar > anything_id
@@ -4561,6 +4575,16 @@ intra_create_variable_infos (void)
}
}
+ /* Add a constraint for a result decl that is passed by reference. */
+ if (DECL_RESULT (cfun->decl)
+ && DECL_BY_REFERENCE (DECL_RESULT (cfun->decl)))
+ {
+ varinfo_t p, result_vi = get_vi_for_tree (DECL_RESULT (cfun->decl));
+
+ for (p = result_vi; p; p = p->next)
+ make_constraint_from (p, nonlocal_id);
+ }
+
/* Add a constraint for the incoming static chain parameter. */
if (cfun->static_chain_decl != NULL_TREE)
{
@@ -4735,7 +4759,7 @@ emit_alias_warning (tree ptr)
{
gimple use;
imm_use_iterator ui;
- unsigned warned = 0;
+ bool warned = false;
FOR_EACH_IMM_USE_STMT (use, ui, ptr)
{
@@ -4773,13 +4797,12 @@ emit_alias_warning (tree ptr)
&& !TREE_NO_WARNING (deref))
{
TREE_NO_WARNING (deref) = 1;
- warning_at (gimple_location (use), OPT_Wstrict_aliasing,
- "dereferencing pointer %qD does break strict-aliasing "
- "rules", SSA_NAME_VAR (ptr));
- ++warned;
+ warned |= warning_at (gimple_location (use), OPT_Wstrict_aliasing,
+ "dereferencing pointer %qD does break "
+ "strict-aliasing rules", SSA_NAME_VAR (ptr));
}
}
- if (warned > 0)
+ if (warned)
{
bitmap visited = BITMAP_ALLOC (NULL);
emit_pointer_definition (ptr, visited);
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 798cf161569..dba0c6f3de3 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -440,9 +440,10 @@ build_constructors (gimple swtch)
{
gimple phi = gsi_stmt (gsi);
tree val = PHI_ARG_DEF_FROM_EDGE (phi, e);
+ tree low = CASE_LOW (cs);
pos = CASE_LOW (cs);
- while (!tree_int_cst_lt (high, pos))
+ do
{
constructor_elt *elt;
@@ -452,7 +453,7 @@ build_constructors (gimple swtch)
elt->value = val;
pos = int_const_binop (PLUS_EXPR, pos, integer_one_node, 0);
- }
+ } while (!tree_int_cst_lt (high, pos) && tree_int_cst_lt (low, pos));
j++;
}
}
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 18c22e7eac7..5b3344ad730 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -122,7 +122,6 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo)
int vec_outside_cost = 0;
int scalar_single_iter_cost = 0;
int scalar_outside_cost = 0;
- bool runtime_test = false;
int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
@@ -141,15 +140,7 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo)
return 0;
}
- /* If the number of iterations is unknown, or the
- peeling-for-misalignment amount is unknown, we will have to generate
- a runtime test to test the loop count against the threshold. */
- if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- || (byte_misalign < 0))
- runtime_test = true;
-
/* Requires loop versioning tests to handle misalignment. */
-
if (VEC_length (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo)))
{
/* FIXME: Make cost depend on complexity of individual check. */
@@ -240,12 +231,11 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo)
"peeling for alignment is unknown .");
/* If peeled iterations are unknown, count a taken branch and a not taken
- branch per peeled loop. Even if scalar loop iterations are known,
- vector iterations are not known since peeled prologue iterations are
- not known. Hence guards remain the same. */
+ branch per peeled loop. Even if scalar loop iterations are known,
+ vector iterations are not known since peeled prologue iterations are
+ not known. Hence guards remain the same. */
peel_guard_costs += 2 * (TARG_COND_TAKEN_BRANCH_COST
- + TARG_COND_NOT_TAKEN_BRANCH_COST);
-
+ + TARG_COND_NOT_TAKEN_BRANCH_COST);
}
else
{
@@ -337,7 +327,12 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo)
conditions/branch directions. Change the estimates below to
something more reasonable. */
- if (runtime_test)
+ /* If the number of iterations is known and we do not do versioning, we can
+ decide whether to vectorize at compile time. Hence the scalar version
+ do not carry cost model guard costs. */
+ if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ || VEC_length (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo))
+ || VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)))
{
/* Cost model check occurs at versioning. */
if (VEC_length (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo))
@@ -345,8 +340,8 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo)
scalar_outside_cost += TARG_COND_NOT_TAKEN_BRANCH_COST;
else
{
- /* Cost model occurs at prologue generation. */
- if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo))
+ /* Cost model check occurs at prologue generation. */
+ if (LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0)
scalar_outside_cost += 2 * TARG_COND_TAKEN_BRANCH_COST
+ TARG_COND_NOT_TAKEN_BRANCH_COST;
/* Cost model check occurs at epilogue generation. */
@@ -7047,6 +7042,8 @@ vect_transform_stmt (gimple stmt, gimple_stmt_iterator *gsi,
stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
gimple orig_stmt_in_pattern;
bool done;
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
switch (STMT_VINFO_TYPE (stmt_info))
{
@@ -7130,6 +7127,43 @@ vect_transform_stmt (gimple stmt, gimple_stmt_iterator *gsi,
}
}
+ /* Handle inner-loop stmts whose DEF is used in the loop-nest that
+ is being vectorized, but outside the immediately enclosing loop. */
+ if (vec_stmt
+ && nested_in_vect_loop_p (loop, stmt)
+ && STMT_VINFO_TYPE (stmt_info) != reduc_vec_info_type
+ && (STMT_VINFO_RELEVANT (stmt_info) == vect_used_in_outer
+ || STMT_VINFO_RELEVANT (stmt_info) == vect_used_in_outer_by_reduction))
+ {
+ struct loop *innerloop = loop->inner;
+ imm_use_iterator imm_iter;
+ use_operand_p use_p;
+ tree scalar_dest;
+ gimple exit_phi;
+
+ if (vect_print_dump_info (REPORT_DETAILS))
+ fprintf (vect_dump, "Record the vdef for outer-loop vectorization.");
+
+ /* Find the relevant loop-exit phi-node, and reord the vec_stmt there
+ (to be used when vectorizing outer-loop stmts that use the DEF of
+ STMT). */
+ if (gimple_code (stmt) == GIMPLE_PHI)
+ scalar_dest = PHI_RESULT (stmt);
+ else
+ scalar_dest = gimple_assign_lhs (stmt);
+
+ FOR_EACH_IMM_USE_FAST (use_p, imm_iter, scalar_dest)
+ {
+ if (!flow_bb_inside_loop_p (innerloop, gimple_bb (USE_STMT (use_p))))
+ {
+ exit_phi = USE_STMT (use_p);
+ STMT_VINFO_VEC_STMT (vinfo_for_stmt (exit_phi)) = vec_stmt;
+ }
+ }
+ }
+
+ /* Handle stmts whose DEF is used outside the loop-nest that is
+ being vectorized. */
if (STMT_VINFO_LIVE_P (stmt_info)
&& STMT_VINFO_TYPE (stmt_info) != reduc_vec_info_type)
{
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index a69b216b796..4b6caca1c37 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -2557,11 +2557,11 @@ extract_range_from_binary_expr (value_range_t *vr,
ior_max.high = vr0_max.high | vr1_max.high;
if (ior_max.high != 0)
{
- ior_max.low = ~0u;
+ ior_max.low = ~(unsigned HOST_WIDE_INT)0u;
ior_max.high |= ((HOST_WIDE_INT) 1
<< floor_log2 (ior_max.high)) - 1;
}
- else
+ else if (ior_max.low != 0)
ior_max.low |= ((unsigned HOST_WIDE_INT) 1u
<< floor_log2 (ior_max.low)) - 1;
@@ -6361,9 +6361,12 @@ vrp_visit_phi_node (gimple phi)
minimums. */
if (cmp_min > 0 || cmp_min < 0)
{
- /* If we will end up with a (-INF, +INF) range, set it
- to VARYING. */
- if (vrp_val_is_max (vr_result.max))
+ /* If we will end up with a (-INF, +INF) range, set it to
+ VARYING. Same if the previous max value was invalid for
+ the type and we'd end up with vr_result.min > vr_result.max. */
+ if (vrp_val_is_max (vr_result.max)
+ || compare_values (TYPE_MIN_VALUE (TREE_TYPE (vr_result.min)),
+ vr_result.max) > 0)
goto varying;
if (!needs_overflow_infinity (TREE_TYPE (vr_result.min))
@@ -6380,9 +6383,12 @@ vrp_visit_phi_node (gimple phi)
the previous one, go all the way to +INF. */
if (cmp_max < 0 || cmp_max > 0)
{
- /* If we will end up with a (-INF, +INF) range, set it
- to VARYING. */
- if (vrp_val_is_min (vr_result.min))
+ /* If we will end up with a (-INF, +INF) range, set it to
+ VARYING. Same if the previous min value was invalid for
+ the type and we'd end up with vr_result.max < vr_result.min. */
+ if (vrp_val_is_min (vr_result.min)
+ || compare_values (TYPE_MAX_VALUE (TREE_TYPE (vr_result.max)),
+ vr_result.min) < 0)
goto varying;
if (!needs_overflow_infinity (TREE_TYPE (vr_result.max))
diff --git a/gcc/tree.def b/gcc/tree.def
index 3e077cc2cd7..19a502952ef 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -691,7 +691,13 @@ DEFTREECODE (ABS_EXPR, "abs_expr", tcc_unary, 1)
The second operand is the number of bits to
shift by; it need not be the same type as the first operand and result.
Note that the result is undefined if the second operand is larger
- than or equal to the first operand's type size. */
+ than or equal to the first operand's type size.
+
+ The first operand of a shift can have either an integer or a
+ (non-integer) fixed-point type. We follow the ISO/IEC TR 18037:2004
+ semantics for the latter.
+
+ Rotates are defined for integer types only. */
DEFTREECODE (LSHIFT_EXPR, "lshift_expr", tcc_binary, 2)
DEFTREECODE (RSHIFT_EXPR, "rshift_expr", tcc_binary, 2)
DEFTREECODE (LROTATE_EXPR, "lrotate_expr", tcc_binary, 2)
diff --git a/include/ChangeLog b/include/ChangeLog
index 768fb440033..a07e075f713 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-10 Jason Merrill <jason@redhat.com>
+
+ * demangle.h (enum demangle_component_type): Add
+ DEMANGLE_COMPONENT_FIXED_TYPE.
+
2008-11-19 Bob Wilson <bob.wilson@acm.org>
* xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32)
diff --git a/include/demangle.h b/include/demangle.h
index 0ea639d62ba..28c69f5e78c 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -319,6 +319,8 @@ enum demangle_component_type
and the right subtree is the member type. CV-qualifiers appear
on the latter. */
DEMANGLE_COMPONENT_PTRMEM_TYPE,
+ /* A fixed-point type. */
+ DEMANGLE_COMPONENT_FIXED_TYPE,
/* An argument list. The left subtree is the current argument, and
the right subtree is either NULL or another ARGLIST node. */
DEMANGLE_COMPONENT_ARGLIST,
@@ -419,6 +421,17 @@ struct demangle_component
struct demangle_component *name;
} s_extended_operator;
+ /* For DEMANGLE_COMPONENT_FIXED_TYPE. */
+ struct
+ {
+ /* The length, indicated by a C integer type name. */
+ struct demangle_component *length;
+ /* _Accum or _Fract? */
+ short accum;
+ /* Saturating or not? */
+ short sat;
+ } s_fixed;
+
/* For DEMANGLE_COMPONENT_CTOR. */
struct
{
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 9f6148edc13..9786f72b463 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,15 @@
+2009-01-05 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
+ (.po.pox): Likewise.
+ (po/$(PACKAGE).pot): Likewise.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/37033
+ * pch.c (cpp_valid_state): Improve message for poisoned symbols.
+ Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
+
2008-11-29 Joseph Myers <joseph@codesourcery.com>
* lex.c (cpp_token_len): Use 6 as default length.
diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in
index 74877bbd982..2d82ebdd8b3 100644
--- a/libcpp/Makefile.in
+++ b/libcpp/Makefile.in
@@ -220,7 +220,7 @@ endif
# N.B. We do not attempt to copy these into $(srcdir).
.po.gmo:
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(GMSGFMT) --statistics -o $@ $<
# The new .po has to be gone over by hand, so we deposit it into
@@ -228,7 +228,7 @@ endif
# If build/po/$(PACKAGE).pot exists, use it (it was just created),
# else use the one in srcdir.
.po.pox:
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \
then echo po/$(PACKAGE).pot; \
else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@
@@ -236,7 +236,7 @@ endif
# Rule for regenerating the message template.
$(PACKAGE).pot: po/$(PACKAGE).pot
po/$(PACKAGE).pot: $(libcpp_a_SOURCES)
- -test -d $(srcdir)/po || mkdir $(srcdir)/po
+ mkinstalldirs $(srcdir)/po
$(XGETTEXT) --default-domain=$(PACKAGE) \
--keyword=_ --keyword=N_ \
--keyword=cpp_error:3 --keyword=cpp_errno:3 \
diff --git a/libcpp/pch.c b/libcpp/pch.c
index bf7b9bea36d..f459d2cb906 100644
--- a/libcpp/pch.c
+++ b/libcpp/pch.c
@@ -1,5 +1,5 @@
/* Part of CPP library. (Precompiled header reading/writing.)
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2008
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
@@ -477,11 +477,32 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd)
h = cpp_lookup (r, namebuf, m.name_length);
if (m.flags & NODE_POISONED
- || h->type != NT_MACRO
|| h->flags & NODE_POISONED)
{
if (CPP_OPTION (r, warn_invalid_pch))
cpp_error (r, CPP_DL_WARNING_SYSHDR,
+ "%s: not used because `%.*s' is poisoned",
+ name, m.name_length, namebuf);
+ goto fail;
+ }
+
+ if (h->type != NT_MACRO)
+ {
+ /* It's ok if __GCC_HAVE_DWARF2_CFI_ASM becomes undefined,
+ as in, when the PCH file is created with -g and we're
+ attempting to use it without -g. Restoring the PCH file
+ is supposed to bring in this definition *and* enable the
+ generation of call frame information, so that precompiled
+ definitions that take this macro into accout, to decide
+ what asm to emit, won't issue .cfi directives when the
+ compiler doesn't. */
+ if (!(h->flags & NODE_USED)
+ && m.name_length == sizeof ("__GCC_HAVE_DWARF2_CFI_ASM") - 1
+ && !memcmp (namebuf, "__GCC_HAVE_DWARF2_CFI_ASM", m.name_length))
+ continue;
+
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_error (r, CPP_DL_WARNING_SYSHDR,
"%s: not used because `%.*s' not defined",
name, m.name_length, namebuf);
goto fail;
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 10dd1ebeb3d..52ab411bda7 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,21 @@
+2008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR libffi/26048
+ * configure.ac (HAVE_AS_X86_PCREL): New test.
+ * configure: Regenerate.
+ * fficonfig.h.in: Regenerate.
+ * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
+ RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
+ RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
+ (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
+ * src/x86/unix64.S (.Lstore_table): Move to .text section.
+ (.Lload_table): Likewise.
+ (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
* src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
diff --git a/libffi/configure b/libffi/configure
index 8a9e37bbc95..c40a859ddd5 100755
--- a/libffi/configure
+++ b/libffi/configure
@@ -8342,44 +8342,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -8959,12 +8965,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat >conftest.$ac_ext <<_ACEOF
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -9002,7 +9013,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9012,8 +9023,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -9973,7 +9988,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 9976 "configure"
+#line 9991 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10069,7 +10084,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10072 "configure"
+#line 10087 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13248,6 +13263,31 @@ _ACEOF
fi
fi
+if test x$TARGET = xX86 || test x$TARGET = xX86_64; then
+ echo "$as_me:$LINENO: checking assembler supports pc related relocs" >&5
+echo $ECHO_N "checking assembler supports pc related relocs... $ECHO_C" >&6
+if test "${libffi_cv_as_x86_pcrel+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ libffi_cv_as_x86_pcrel=yes
+ echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
+ libffi_cv_as_x86_pcrel=no
+ fi
+
+fi
+echo "$as_me:$LINENO: result: $libffi_cv_as_x86_pcrel" >&5
+echo "${ECHO_T}$libffi_cv_as_x86_pcrel" >&6
+ if test "x$libffi_cv_as_x86_pcrel" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_X86_PCREL 1
+_ACEOF
+
+ fi
+fi
+
echo "$as_me:$LINENO: checking whether .eh_frame section should be read-only" >&5
echo $ECHO_N "checking whether .eh_frame section should be read-only... $ECHO_C" >&6
if test "${libffi_cv_ro_eh_frame+set}" = set; then
diff --git a/libffi/configure.ac b/libffi/configure.ac
index b99ebd7db65..2dff35c060f 100644
--- a/libffi/configure.ac
+++ b/libffi/configure.ac
@@ -240,6 +240,21 @@ if test x$TARGET = xSPARC; then
fi
fi
+if test x$TARGET = xX86 || test x$TARGET = xX86_64; then
+ AC_CACHE_CHECK([assembler supports pc related relocs],
+ libffi_cv_as_x86_pcrel, [
+ libffi_cv_as_x86_pcrel=yes
+ echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
+ libffi_cv_as_x86_pcrel=no
+ fi
+ ])
+ if test "x$libffi_cv_as_x86_pcrel" = xyes; then
+ AC_DEFINE(HAVE_AS_X86_PCREL, 1,
+ [Define if your assembler supports PC relative relocs.])
+ fi
+fi
+
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
libffi_cv_ro_eh_frame, [
libffi_cv_ro_eh_frame=no
diff --git a/libffi/fficonfig.h.in b/libffi/fficonfig.h.in
index e93cf8ae77b..90c8990eb19 100644
--- a/libffi/fficonfig.h.in
+++ b/libffi/fficonfig.h.in
@@ -37,6 +37,9 @@
*/
#undef HAVE_AS_SPARC_UA_PCREL
+/* Define if your assembler supports PC relative relocs. */
+#undef HAVE_AS_X86_PCREL
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
diff --git a/libffi/src/x86/sysv.S b/libffi/src/x86/sysv.S
index 4e652207edf..04564db9caa 100644
--- a/libffi/src/x86/sysv.S
+++ b/libffi/src/x86/sysv.S
@@ -1,5 +1,6 @@
/* -----------------------------------------------------------------------
- sysv.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005 Red Hat, Inc.
+ sysv.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005, 2008
+ Red Hat, Inc.
X86 Foreign Function Interface
@@ -241,9 +242,20 @@ ffi_closure_SYSV:
#if !FFI_NO_RAW_API
+/* Precalculate for e.g. the Solaris 10/x86 assembler. */
+#if FFI_TRAMPOLINE_SIZE == 10
+#define RAW_CLOSURE_CIF_OFFSET 12
+#define RAW_CLOSURE_FUN_OFFSET 16
+#define RAW_CLOSURE_USER_DATA_OFFSET 20
+#elif FFI_TRAMPOLINE_SIZE == 24
+#define RAW_CLOSURE_CIF_OFFSET 24
+#define RAW_CLOSURE_FUN_OFFSET 28
+#define RAW_CLOSURE_USER_DATA_OFFSET 32
+#else
#define RAW_CLOSURE_CIF_OFFSET ((FFI_TRAMPOLINE_SIZE + 3) & ~3)
#define RAW_CLOSURE_FUN_OFFSET (RAW_CLOSURE_CIF_OFFSET + 4)
#define RAW_CLOSURE_USER_DATA_OFFSET (RAW_CLOSURE_FUN_OFFSET + 4)
+#endif
#define CIF_FLAGS_OFFSET 20
.align 4
@@ -342,10 +354,12 @@ ffi_closure_raw_SYSV:
.long .LEFDE1-.LASFDE1 /* FDE Length */
.LASFDE1:
.long .LASFDE1-.Lframe1 /* FDE CIE offset */
-#ifdef __PIC__
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
.long .LFB1-. /* FDE initial location */
+#elif defined __PIC__
+ .long .LFB1@rel
#else
- .long .LFB1 /* FDE initial location */
+ .long .LFB1
#endif
.long .LFE1-.LFB1 /* FDE address range */
#ifdef __PIC__
@@ -367,8 +381,10 @@ ffi_closure_raw_SYSV:
.long .LEFDE2-.LASFDE2 /* FDE Length */
.LASFDE2:
.long .LASFDE2-.Lframe1 /* FDE CIE offset */
-#ifdef __PIC__
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
.long .LFB2-. /* FDE initial location */
+#elif defined __PIC__
+ .long .LFB2@rel
#else
.long .LFB2
#endif
@@ -401,8 +417,10 @@ ffi_closure_raw_SYSV:
.long .LEFDE3-.LASFDE3 /* FDE Length */
.LASFDE3:
.long .LASFDE3-.Lframe1 /* FDE CIE offset */
-#ifdef __PIC__
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
.long .LFB3-. /* FDE initial location */
+#elif defined __PIC__
+ .long .LFB3@rel
#else
.long .LFB3
#endif
diff --git a/libffi/src/x86/unix64.S b/libffi/src/x86/unix64.S
index a33888180bd..ec6030484ea 100644
--- a/libffi/src/x86/unix64.S
+++ b/libffi/src/x86/unix64.S
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- unix64.S - Copyright (c) 2002 Bo Thorsen <bo@suse.de>
+ unix64.S - Copyright (c) 2002, 2008 Bo Thorsen <bo@suse.de>
x86-64 Foreign Function Interface
@@ -87,7 +87,6 @@ ffi_call_unix64:
addq %r11, %r10
jmp *%r10
- .section .rodata
.Lstore_table:
.long .Lst_void-.Lstore_table /* FFI_TYPE_VOID */
.long .Lst_sint32-.Lstore_table /* FFI_TYPE_INT */
@@ -105,7 +104,6 @@ ffi_call_unix64:
.long .Lst_struct-.Lstore_table /* FFI_TYPE_STRUCT */
.long .Lst_int64-.Lstore_table /* FFI_TYPE_POINTER */
- .text
.align 2
.Lst_void:
ret
@@ -238,7 +236,6 @@ ffi_closure_unix64:
addq %r11, %r10
jmp *%r10
- .section .rodata
.Lload_table:
.long .Lld_void-.Lload_table /* FFI_TYPE_VOID */
.long .Lld_int32-.Lload_table /* FFI_TYPE_INT */
@@ -256,7 +253,6 @@ ffi_closure_unix64:
.long .Lld_struct-.Lload_table /* FFI_TYPE_STRUCT */
.long .Lld_int64-.Lload_table /* FFI_TYPE_POINTER */
- .text
.align 2
.Lld_void:
ret
@@ -349,7 +345,11 @@ ffi_closure_unix64:
.long .LEFDE1-.LASFDE1 /* FDE Length */
.LASFDE1:
.long .LASFDE1-.Lframe1 /* FDE CIE offset */
+#if HAVE_AS_X86_PCREL
.long .LUW0-. /* FDE initial location */
+#else
+ .long .LUW0@rel
+#endif
.long .LUW4-.LUW0 /* FDE address range */
.uleb128 0x0 /* Augmentation size */
@@ -387,7 +387,11 @@ ffi_closure_unix64:
.long .LEFDE3-.LASFDE3 /* FDE Length */
.LASFDE3:
.long .LASFDE3-.Lframe1 /* FDE CIE offset */
+#if HAVE_AS_X86_PCREL
.long .LUW5-. /* FDE initial location */
+#else
+ .long .LUW5@rel
+#endif
.long .LUW9-.LUW5 /* FDE address range */
.uleb128 0x0 /* Augmentation size */
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index b5427d32495..4986c34789a 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,13 @@
+2009-01-13 Ben Elliston <bje@au.ibm.com>
+
+ * config/t-softfp: New file.
+ * config.host (powerpc64-*-linux*, powerpc64-*-gnu*): Add t-softfp.
+ (powerpc-*-linux*spe*, powerpc-*-linux*): Likewise.
+
+2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * config.host: Add m32r*-*-rtems*.
+
2008-12-01 Joel Sherrill <joel.sherrill@oarcorp.com>
* config.host: Add m32c*-*-rtems*.
diff --git a/libgcc/config.host b/libgcc/config.host
index 0711410cf6a..c7c7e990554 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -356,7 +356,7 @@ ia64*-*-hpux*)
;;
iq2000*-*-elf*)
;;
-m32r-*-elf*)
+m32r-*-elf*|m32r-*-rtems*)
;;
m32rle-*-elf*)
;;
@@ -437,10 +437,10 @@ pdp11-*-*)
picochip-*-*)
;;
powerpc64-*-linux*)
- tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128"
+ tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
;;
powerpc64-*-gnu*)
- tmake_file="${tmake_file} rs6000/t-ldbl128"
+ tmake_file="${tmake_file} rs6000/t-ldbl128 t-softfp"
;;
powerpc-*-darwin*)
;;
@@ -468,10 +468,10 @@ powerpc-*-linux*altivec*)
tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128"
;;
powerpc-*-linux*spe*)
- tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128"
+ tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
;;
powerpc-*-linux*)
- tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128"
+ tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
;;
powerpc-*-gnu-gnualtivec*)
tmake_file="${tmake_file} rs6000/t-ldbl128"
diff --git a/libgcc/config/t-softfp b/libgcc/config/t-softfp
new file mode 100644
index 00000000000..5d67da01780
--- /dev/null
+++ b/libgcc/config/t-softfp
@@ -0,0 +1,14 @@
+# Disable missing prototype and type limit warnings. The prototypes
+# for the functions in the soft-fp files have not been brought across
+# from glibc.
+
+# cfr. srcdirify in gcc/Makefile.in
+soft-fp-files = $(filter $(gcc_srcdir)/config/soft-fp/%, $(LIB2ADD)) \
+ $(filter $(gcc_objdir)/config/soft-fp/%, $(LIB2ADD))
+
+soft-fp-objects-base = $(basename $(notdir $(soft-fp-files)))
+
+soft-fp-objects = $(addsuffix $(objext), $(soft-fp-objects-base)) \
+ $(addsuffix _s$(objext), $(soft-fp-objects-base))
+
+$(soft-fp-objects) : INTERNAL_CFLAGS += -Wno-missing-prototypes -Wno-type-limits
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index dcc4867882e..7b1241d5fee 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,56 @@
+2009-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38772
+ * io/read.c (read_f): Clean up loop conditions for BZ/BN,
+ allowing proper digit testing. White space fix.
+
+2009-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38735
+ * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
+ internal units.
+
+2008-12-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR fortran/31832
+ * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
+ broken powf.
+ * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
+ * intrinsics/c99_functions.c: Use internal powf implementation if
+ HAVE_BROKEN_POWF is defined.
+ * configure: Rebuilt.
+ * config.h.in: Rebuilt.
+
+2008-12-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/37472
+ * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
+ to avoid sensitivity to round-off.
+
+2008-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38398
+ * io/io.h (st_parameter_dt): Add new bit to keep track of when to
+ suppress blanks for g0 formatting.
+ * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
+ for g0 formatting.
+ * io.c (write.c): Do not use ES formatting and use new bit to suppress
+ blanks.
+ * io/write_float.def (output_float): Adjust the location of setting the
+ width so that it can be adjusted when suppressing blanks. Set number of
+ blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
+ clean-up and add some white space for readability.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/38504
+ io/write.c (write_decimal): Skip extra sign '-' at beginning of string
+ returned by gfc_itoa.
+
2008-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/38430
diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4
index 9f8ae54fab6..33552871001 100644
--- a/libgfortran/acinclude.m4
+++ b/libgfortran/acinclude.m4
@@ -376,3 +376,15 @@ __mingw_snprintf (NULL, 0, "%d\n", 1);
AC_DEFINE(HAVE_MINGW_SNPRINTF, 1, [Define if you have __mingw_snprintf.])
fi
])
+
+dnl Check whether we have a broken powf implementation
+AC_DEFUN([LIBGFOR_CHECK_FOR_BROKEN_POWF], [
+ AC_CACHE_CHECK([whether powf is broken], libgfor_cv_have_broken_powf, [
+case "${target}" in
+ hppa*64*-*-hpux*) libgfor_cv_have_broken_powf=yes ;;
+ *) libgfor_cv_have_broken_powf=no;;
+esac])
+ if test x"$libgfor_cv_have_broken_powf" = xyes; then
+ AC_DEFINE(HAVE_BROKEN_POWF, 1, [Define if powf is broken.])
+ fi
+])
diff --git a/libgfortran/config.h.in b/libgfortran/config.h.in
index 1f291a48e27..3542638b0cd 100644
--- a/libgfortran/config.h.in
+++ b/libgfortran/config.h.in
@@ -96,6 +96,9 @@
/* Define if isnan is broken. */
#undef HAVE_BROKEN_ISNAN
+/* Define if powf is broken. */
+#undef HAVE_BROKEN_POWF
+
/* libm includes cabs */
#undef HAVE_CABS
diff --git a/libgfortran/configure b/libgfortran/configure
index 992ff530ab0..2d12f9661af 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -8919,44 +8919,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -9536,12 +9542,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -9584,7 +9595,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9594,8 +9605,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -10590,7 +10605,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10593 "configure"
+#line 10608 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10686,7 +10701,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10689 "configure"
+#line 10704 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11012,7 +11027,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:11015:" \
+echo "$as_me:11030:" \
"checking for Fortran compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -11248,7 +11263,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:11251:" \
+echo "$as_me:11266:" \
"checking for Fortran compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -11988,11 +12003,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11991: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12006: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11995: \$? = $ac_status" >&5
+ echo "$as_me:12010: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -12087,11 +12102,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:12090: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12105: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:12094: \$? = $ac_status" >&5
+ echo "$as_me:12109: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12139,11 +12154,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:12142: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12157: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:12146: \$? = $ac_status" >&5
+ echo "$as_me:12161: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13288,44 +13303,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_FC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_FC
- pic_flag=$lt_prog_compiler_pic_FC
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_FC
- allow_undefined_flag_FC=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_FC
+ pic_flag=$lt_prog_compiler_pic_FC
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_FC
+ allow_undefined_flag_FC=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_FC=no
- else
- archive_cmds_need_lc_FC=yes
- fi
- allow_undefined_flag_FC=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_FC" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_FC" >&6
+ then
+ lt_cv_archive_cmds_need_lc_FC=no
+ else
+ lt_cv_archive_cmds_need_lc_FC=yes
+ fi
+ allow_undefined_flag_FC=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_FC" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_FC" >&6
+ archive_cmds_need_lc_FC=$lt_cv_archive_cmds_need_lc_FC
;;
esac
fi
@@ -13760,12 +13781,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -13798,7 +13824,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -13808,8 +13834,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -33213,6 +33243,30 @@ _ACEOF
fi
+# Check for a broken powf implementation
+
+ echo "$as_me:$LINENO: checking whether powf is broken" >&5
+echo $ECHO_N "checking whether powf is broken... $ECHO_C" >&6
+if test "${libgfor_cv_have_broken_powf+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+case "${target}" in
+ hppa*64*-*-hpux*) libgfor_cv_have_broken_powf=yes ;;
+ *) libgfor_cv_have_broken_powf=no;;
+esac
+fi
+echo "$as_me:$LINENO: result: $libgfor_cv_have_broken_powf" >&5
+echo "${ECHO_T}$libgfor_cv_have_broken_powf" >&6
+ if test x"$libgfor_cv_have_broken_powf" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BROKEN_POWF 1
+_ACEOF
+
+ fi
+
+
# Check for GNU libc feenableexcept
echo "$as_me:$LINENO: checking for feenableexcept in -lm" >&5
echo $ECHO_N "checking for feenableexcept in -lm... $ECHO_C" >&6
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
index 47d453aaf57..0e0b5a7e31f 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
@@ -405,6 +405,9 @@ LIBGFOR_CHECK_WORKING_STAT
# Check whether __mingw_snprintf() is present
LIBGFOR_CHECK_MINGW_SNPRINTF
+# Check for a broken powf implementation
+LIBGFOR_CHECK_FOR_BROKEN_POWF
+
# Check for GNU libc feenableexcept
AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes feenableexcept])])
diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c
index 13d55036ac9..ce96c8cb54b 100644
--- a/libgfortran/intrinsics/c99_functions.c
+++ b/libgfortran/intrinsics/c99_functions.c
@@ -491,8 +491,10 @@ nextafterf(float x, float y)
#endif
+#if !defined(HAVE_POWF) || defined(HAVE_BROKEN_POWF)
#ifndef HAVE_POWF
#define HAVE_POWF 1
+#endif
float
powf(float x, float y)
{
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index 1f363914866..1993158ef58 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -444,7 +444,9 @@ typedef struct st_parameter_dt
/* An internal unit specific flag to signify an EOF condition for list
directed read. */
unsigned at_eof : 1;
- /* 16 unused bits. */
+ /* Used for g0 floating point output. */
+ unsigned g0_no_blanks : 1;
+ /* 15 unused bits. */
char last_char;
char nml_delim;
diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c
index fb39877012c..a8ae3d73f53 100644
--- a/libgfortran/io/read.c
+++ b/libgfortran/io/read.c
@@ -972,14 +972,14 @@ read_f (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
while (w > 0)
{
if (*p != ' ')
- goto bad_float;
+ goto bad_float;
p++;
w--;
}
}
else /* BZ or BN status is enabled */
{
- while (w > 0 && (isdigit (*p) || *p == ' '))
+ while (w > 0)
{
if (*p == ' ')
{
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index ea63a0daffc..d50641bcce5 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -1221,12 +1221,7 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int kind,
break;
case BT_REAL:
if (f->u.real.w == 0)
- {
- if (f->u.real.d == 0)
- write_real (dtp, p, kind);
- else
- write_real_g0 (dtp, p, kind, f->u.real.d);
- }
+ write_real_g0 (dtp, p, kind, f->u.real.d);
else
write_d (dtp, f, p, kind);
break;
diff --git a/libgfortran/io/unit.c b/libgfortran/io/unit.c
index a5d660c392d..0af002d1a95 100644
--- a/libgfortran/io/unit.c
+++ b/libgfortran/io/unit.c
@@ -437,7 +437,7 @@ get_internal_unit (st_parameter_dt *dtp)
iunit->flags.access = ACCESS_SEQUENTIAL;
iunit->flags.action = ACTION_READWRITE;
- iunit->flags.blank = BLANK_UNSPECIFIED;
+ iunit->flags.blank = BLANK_NULL;
iunit->flags.form = FORM_FORMATTED;
iunit->flags.pad = PAD_YES;
iunit->flags.status = STATUS_UNSPECIFIED;
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 32c58471bb8..e3d38e638e8 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -600,9 +600,16 @@ write_decimal (st_parameter_dt *dtp, const fnode *f, const char *source,
sign = calculate_sign (dtp, n < 0);
if (n < 0)
n = -n;
-
nsign = sign == S_NONE ? 0 : 1;
+
+ /* conv calls gfc_itoa which sets the negative sign needed
+ by write_integer. The sign '+' or '-' is set below based on sign
+ calculated above, so we just point past the sign in the string
+ before proceeding to avoid double signs in corner cases.
+ (see PR38504) */
q = conv (n, itoa_buf, sizeof (itoa_buf));
+ if (*q == '-')
+ q++;
digits = strlen (q);
@@ -1003,13 +1010,12 @@ void
write_real_g0 (st_parameter_dt *dtp, const char *source, int length, int d)
{
fnode f ;
- int org_scale = dtp->u.p.scale_factor;
- dtp->u.p.scale_factor = 1;
set_fnode_default (dtp, &f, length);
- f.format = FMT_ES;
- f.u.real.d = d;
+ if (d > 0)
+ f.u.real.d = d;
+ dtp->u.p.g0_no_blanks = 1;
write_float (dtp, &f, source , length);
- dtp->u.p.scale_factor = org_scale;
+ dtp->u.p.g0_no_blanks = 0;
}
diff --git a/libgfortran/io/write_float.def b/libgfortran/io/write_float.def
index d8799f2ae03..f94fde30b70 100644
--- a/libgfortran/io/write_float.def
+++ b/libgfortran/io/write_float.def
@@ -333,15 +333,6 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
else
edigits = 0;
- /* Pick a field size if none was specified. */
- if (w <= 0)
- w = nbefore + nzero + nafter + (sign != S_NONE ? 2 : 1);
-
- /* Create the ouput buffer. */
- out = write_block (dtp, w);
- if (out == NULL)
- return;
-
/* Zero values always output as positive, even if the value was negative
before rounding. */
for (i = 0; i < ndigits; i++)
@@ -359,11 +350,26 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
sign = calculate_sign (dtp, 0);
}
+ /* Pick a field size if none was specified. */
+ if (w <= 0)
+ w = nbefore + nzero + nafter + (sign != S_NONE ? 2 : 1);
+
/* Work out how much padding is needed. */
nblanks = w - (nbefore + nzero + nafter + edigits + 1);
if (sign != S_NONE)
nblanks--;
+ if (dtp->u.p.g0_no_blanks)
+ {
+ w -= nblanks;
+ nblanks = 0;
+ }
+
+ /* Create the ouput buffer. */
+ out = write_block (dtp, w);
+ if (out == NULL)
+ return;
+
/* Check the value fits in the specified field width. */
if (nblanks < 0 || edigits == -1)
{
@@ -419,6 +425,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
digits += i;
out += nbefore;
}
+
/* Output the decimal point. */
*(out++) = dtp->u.p.current_unit->decimal_status == DECIMAL_POINT ? '.' : ',';
@@ -461,12 +468,14 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
#endif
memcpy (out, buffer, edigits);
}
+
if (dtp->u.p.no_leading_blank)
{
out += edigits;
memset( out , ' ' , nblanks );
dtp->u.p.no_leading_blank = 0;
}
+
#undef STR
#undef STR1
#undef MIN_FIELD_WIDTH
@@ -606,7 +615,7 @@ output_float_FMT_G_ ## x (st_parameter_dt *dtp, const fnode *f, \
int save_scale_factor, nb = 0;\
\
save_scale_factor = dtp->u.p.scale_factor;\
- newf = get_mem (sizeof (fnode));\
+ newf = (fnode *) get_mem (sizeof (fnode));\
\
exp_d = calculate_exp_ ## x (d);\
if ((m > 0.0 && m < 0.1 - 0.05 / exp_d) || (m >= exp_d - 0.5 ) ||\
@@ -631,8 +640,8 @@ output_float_FMT_G_ ## x (st_parameter_dt *dtp, const fnode *f, \
GFC_REAL_ ## x temp;\
mid = (low + high) / 2;\
\
- temp = 0.1 * calculate_exp_ ## x (mid) - 0.5\
- * calculate_exp_ ## x (mid - d - 1);\
+ temp = (calculate_exp_ ## x (mid) - \
+ 5 * calculate_exp_ ## x (mid - d - 1)) / 10;\
\
if (m < temp)\
{ \
@@ -680,7 +689,7 @@ output_float_FMT_G_ ## x (st_parameter_dt *dtp, const fnode *f, \
\
free_mem(newf);\
\
- if (nb > 0)\
+ if (nb > 0 && !dtp->u.p.g0_no_blanks)\
{ \
p = write_block (dtp, nb);\
if (p == NULL)\
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 98a307314a9..9428394f629 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,30 @@
+2009-01-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/38086
+ * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
+ * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
+ HAVE_AS_SYMVER_DIRECTIVE is not defined.
+ * configure: Regenerated.
+ * config.h.in: Likewise.
+
+2008-12-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/38650
+ * testsuite/libgomp.c/pr38650.c: New test.
+ * testsuite/libgomp.c++/pr38650.C: New test.
+
+2008-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
+
+2008-12-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-12-08 Jakub Jelinek <jakub@redhat.com>
PR middle-end/36802
diff --git a/libgomp/acinclude.m4 b/libgomp/acinclude.m4
index f3cd089e537..c6d9c308d9a 100644
--- a/libgomp/acinclude.m4
+++ b/libgomp/acinclude.m4
@@ -298,6 +298,16 @@ if test $enable_symvers = yes; then
fi
fi
+AC_CACHE_CHECK([whether the target supports .symver directive],
+ libgomp_cv_have_as_symver_directive, [
+ AC_TRY_COMPILE([void foo (void); __asm (".symver foo, bar@SYMVER");],
+ [], libgomp_cv_have_as_symver_directive=yes,
+ libgomp_cv_have_as_symver_directive=no)])
+if test $libgomp_cv_have_as_symver_directive = yes; then
+ AC_DEFINE(HAVE_AS_SYMVER_DIRECTIVE, 1,
+ [Define to 1 if the target assembler supports .symver directive.])
+fi
+
AM_CONDITIONAL(LIBGOMP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers)
])
diff --git a/libgomp/config.h.in b/libgomp/config.h.in
index 5f0dcc7570b..88bae83fab3 100644
--- a/libgomp/config.h.in
+++ b/libgomp/config.h.in
@@ -1,5 +1,8 @@
/* config.h.in. Generated from configure.ac by autoheader. */
+/* Define to 1 if the target assembler supports .symver directive. */
+#undef HAVE_AS_SYMVER_DIRECTIVE
+
/* Define to 1 if the target supports __attribute__((alias(...))). */
#undef HAVE_ATTRIBUTE_ALIAS
diff --git a/libgomp/configure b/libgomp/configure
index e5b6275633e..432543b2795 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -8766,44 +8766,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -9383,12 +9389,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat >conftest.$ac_ext <<_ACEOF
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -9426,7 +9437,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9436,8 +9447,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -10397,7 +10412,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10400 "configure"
+#line 10415 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10493,7 +10508,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10496 "configure"
+#line 10511 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10844,7 +10859,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:10847:" \
+echo "$as_me:10862:" \
"checking for Fortran compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -11080,7 +11095,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:11083:" \
+echo "$as_me:11098:" \
"checking for Fortran compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -11820,11 +11835,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11823: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11838: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11827: \$? = $ac_status" >&5
+ echo "$as_me:11842: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11919,11 +11934,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11922: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11937: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11926: \$? = $ac_status" >&5
+ echo "$as_me:11941: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11971,11 +11986,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11974: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11989: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11978: \$? = $ac_status" >&5
+ echo "$as_me:11993: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13105,44 +13120,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_FC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_FC
- pic_flag=$lt_prog_compiler_pic_FC
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_FC
- allow_undefined_flag_FC=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_FC
+ pic_flag=$lt_prog_compiler_pic_FC
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_FC
+ allow_undefined_flag_FC=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_FC=no
- else
- archive_cmds_need_lc_FC=yes
- fi
- allow_undefined_flag_FC=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_FC" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_FC" >&6
+ then
+ lt_cv_archive_cmds_need_lc_FC=no
+ else
+ lt_cv_archive_cmds_need_lc_FC=yes
+ fi
+ allow_undefined_flag_FC=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_FC" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_FC" >&6
+ archive_cmds_need_lc_FC=$lt_cv_archive_cmds_need_lc_FC
;;
esac
fi
@@ -13577,12 +13598,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
- cat >conftest.$ac_ext <<_ACEOF
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
+ cat >conftest.$ac_ext <<_ACEOF
program main
end
@@ -13610,7 +13636,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -13620,8 +13646,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -18731,6 +18761,68 @@ echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
fi
fi
+echo "$as_me:$LINENO: checking whether the target supports .symver directive" >&5
+echo $ECHO_N "checking whether the target supports .symver directive... $ECHO_C" >&6
+if test "${libgomp_cv_have_as_symver_directive+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+void foo (void); __asm (".symver foo, bar@SYMVER");
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ libgomp_cv_have_as_symver_directive=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+libgomp_cv_have_as_symver_directive=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $libgomp_cv_have_as_symver_directive" >&5
+echo "${ECHO_T}$libgomp_cv_have_as_symver_directive" >&6
+if test $libgomp_cv_have_as_symver_directive = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_SYMVER_DIRECTIVE 1
+_ACEOF
+
+fi
+
if test $enable_symvers != no; then
diff --git a/libgomp/libgomp.h b/libgomp/libgomp.h
index 7292358b9aa..5acee09f4d5 100644
--- a/libgomp/libgomp.h
+++ b/libgomp/libgomp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@redhat.com>.
This file is part of the GNU OpenMP Library (libgomp).
@@ -516,6 +516,7 @@ gomp_work_share_init_done (void)
#if !defined (HAVE_ATTRIBUTE_VISIBILITY) \
|| !defined (HAVE_ATTRIBUTE_ALIAS) \
+ || !defined (HAVE_AS_SYMVER_DIRECTIVE) \
|| !defined (PIC)
# undef LIBGOMP_GNU_SYMBOL_VERSIONING
#endif
diff --git a/libgomp/testsuite/libgomp.c++/pr38650.C b/libgomp/testsuite/libgomp.c++/pr38650.C
new file mode 100644
index 00000000000..ebe221adcd5
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/pr38650.C
@@ -0,0 +1,49 @@
+// PR c++/38650
+// { dg-do run }
+
+#include <cstdlib>
+
+int e;
+
+int
+main ()
+{
+ volatile int i, j = 10;
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; i += 1)
+ e++;
+ if (e != 10)
+ std::abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; ++i)
+ e++;
+ if (e != 10)
+ std::abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; i++)
+ e++;
+ if (e != 10)
+ std::abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; i += 1)
+ e++;
+ if (e != 10)
+ std::abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; ++i)
+ e++;
+ if (e != 10)
+ std::abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; i++)
+ e++;
+ if (e != 10)
+ std::abort ();
+ return 0;
+}
diff --git a/libgomp/testsuite/libgomp.c/atomic-6.c b/libgomp/testsuite/libgomp.c/atomic-6.c
index 949fc3d73da..8e7fca59600 100644
--- a/libgomp/testsuite/libgomp.c/atomic-6.c
+++ b/libgomp/testsuite/libgomp.c/atomic-6.c
@@ -1,5 +1,6 @@
/* PR middle-end/36106 */
/* { dg-options "-O2" } */
+/* { dg-options "-O2 -mieee" { target alpha*-*-* } } */
/* { dg-options "-O2 -march=i586" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
#ifdef __i386__
diff --git a/libgomp/testsuite/libgomp.c/collapse-1.c b/libgomp/testsuite/libgomp.c/collapse-1.c
index 82becfa7952..84277ff554d 100644
--- a/libgomp/testsuite/libgomp.c/collapse-1.c
+++ b/libgomp/testsuite/libgomp.c/collapse-1.c
@@ -17,7 +17,7 @@ main (void)
a[i][j][k] = i + j * 4 + k * 16;
#pragma omp parallel
{
- #pragma omp for collapse(2) reduction(|:l)
+ #pragma omp for collapse(2) reduction(|:l) private(k)
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
diff --git a/libgomp/testsuite/libgomp.c/pr38650.c b/libgomp/testsuite/libgomp.c/pr38650.c
new file mode 100644
index 00000000000..7066239b070
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/pr38650.c
@@ -0,0 +1,49 @@
+/* PR c++/38650 */
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int e;
+
+int
+main ()
+{
+ volatile int i, j = 10;
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; i += 1)
+ e++;
+ if (e != 10)
+ abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; ++i)
+ e++;
+ if (e != 10)
+ abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < j; i++)
+ e++;
+ if (e != 10)
+ abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; i += 1)
+ e++;
+ if (e != 10)
+ abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; ++i)
+ e++;
+ if (e != 10)
+ abort ();
+ e = 0;
+#pragma omp parallel for reduction(+:e)
+ for (i = 0; i < 10; i++)
+ e++;
+ if (e != 10)
+ abort ();
+ return 0;
+}
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index fd9d3000217..b9cb1999177 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,30 @@
+2009-01-07 Jason Merrill <jason@redhat.com>
+
+ * cp-demangle.c (d_expression): Remove mangling for zero-op casts.
+
+2009-01-06 Ben Elliston <bje@au.ibm.com>
+
+ * cp-demangle.c (cplus_demangle_type): Return NULL if the
+ character following a 'D' cannot be recognised.
+
+2008-12-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/38561
+ * cp-demangle.c (d_expression, d_print_comp): Revert
+ cast changes.
+
+2008-12-17 Jason Merrill <jason@redhat.com>
+
+ * cp-demangle.c (d_expression): Handle rvalue stubs too.
+ [DEMANGLE_COMPONENT_CAST]: Update mangling.
+ (d_print_comp): Avoid extra ", " with empty template argument packs.
+ Remove handling for obsolete T() mangling.
+
+2008-12-10 Jason Merrill <jason@redhat.com>
+
+ * cp-demangle.c (cplus_demangle_type): Support fixed-point types.
+ (d_print_comp, d_dump): Likewise.
+
2008-10-22 Daniel Jacobowitz <dan@codesourcery.com>
* Makefile.in (CPPFLAGS): Define.
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 3fa5f1f21d3..0b4e05c6e5c 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -621,6 +621,9 @@ d_dump (struct demangle_component *dc, int indent)
case DEMANGLE_COMPONENT_PTRMEM_TYPE:
printf ("pointer to member type\n");
break;
+ case DEMANGLE_COMPONENT_FIXED_TYPE:
+ printf ("fixed-point type\n");
+ break;
case DEMANGLE_COMPONENT_ARGLIST:
printf ("argument list\n");
break;
@@ -2115,6 +2118,22 @@ cplus_demangle_type (struct d_info *di)
ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[31]);
di->expansion += ret->u.s_builtin.type->len;
break;
+
+ case 'F':
+ /* Fixed point types. DF<int bits><length><fract bits><sat> */
+ ret = d_make_empty (di);
+ ret->type = DEMANGLE_COMPONENT_FIXED_TYPE;
+ if ((ret->u.s_fixed.accum = IS_DIGIT (d_peek_char (di))))
+ /* For demangling we don't care about the bits. */
+ d_number (di);
+ ret->u.s_fixed.length = cplus_demangle_type (di);
+ d_number (di);
+ peek = d_next_char (di);
+ ret->u.s_fixed.sat = (peek == 's');
+ break;
+
+ default:
+ return NULL;
}
break;
@@ -2545,7 +2564,8 @@ d_expression (struct d_info *di)
d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, name,
d_template_args (di)));
}
- else if (peek == 's' && d_peek_next_char (di) == 'T')
+ else if (peek == 's'
+ && (d_peek_next_char (di) == 'T' || d_peek_next_char (di) == 'R'))
{
/* Just demangle a parameter placeholder as its type. */
d_advance (di, 2);
@@ -2592,12 +2612,7 @@ d_expression (struct d_info *di)
args = op->u.s_extended_operator.args;
break;
case DEMANGLE_COMPONENT_CAST:
- if (d_peek_char (di) == 'v')
- /* T() encoded as an operand of void. */
- return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
- cplus_demangle_type (di));
- else
- args = 1;
+ args = 1;
break;
}
@@ -3725,14 +3740,36 @@ d_print_comp (struct d_print_info *dpi,
return;
}
+ case DEMANGLE_COMPONENT_FIXED_TYPE:
+ if (dc->u.s_fixed.sat)
+ d_append_string (dpi, "_Sat ");
+ /* Don't print "int _Accum". */
+ if (dc->u.s_fixed.length->u.s_builtin.type
+ != &cplus_demangle_builtin_types['i'-'a'])
+ {
+ d_print_comp (dpi, dc->u.s_fixed.length);
+ d_append_char (dpi, ' ');
+ }
+ if (dc->u.s_fixed.accum)
+ d_append_string (dpi, "_Accum");
+ else
+ d_append_string (dpi, "_Fract");
+ return;
+
case DEMANGLE_COMPONENT_ARGLIST:
case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
if (d_left (dc) != NULL)
d_print_comp (dpi, d_left (dc));
if (d_right (dc) != NULL)
{
+ size_t len;
d_append_string (dpi, ", ");
+ len = dpi->len;
d_print_comp (dpi, d_right (dc));
+ /* If that didn't print anything (which can happen with empty
+ template argument packs), remove the comma and space. */
+ if (dpi->len == len)
+ dpi->len -= 2;
}
return;
@@ -3768,12 +3805,7 @@ d_print_comp (struct d_print_info *dpi,
d_print_cast (dpi, d_left (dc));
d_append_char (dpi, ')');
}
- if (d_left (dc)->type == DEMANGLE_COMPONENT_CAST
- && d_right (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE)
- /* type() -- FIXME what about type(multiple,args) */
- d_append_string (dpi, "()");
- else
- d_print_subexpr (dpi, d_right (dc));
+ d_print_subexpr (dpi, d_right (dc));
return;
case DEMANGLE_COMPONENT_BINARY:
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 005ef71715c..ebef09f23ef 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,1081 +1,33 @@
-2008-12-04 Jack Howarth <howarth@bromo.med.uc.edu>
+2009-01-12 Andrew Haley <aph@redhat.com>
- * configure.ac: Add double brackets on darwin[912].
- * configure: Regenerate.
+ * sun/misc/natUnsafe.cc (spinlock contructor): Call sched_yield().
-2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
+2009-01-11 Matthias Klose <doko@ubuntu.com>
- * configure.ac: Expand to darwin10 and later.
- * configure: Regenerate.
- * testsuite/lib/libjava.exp: Expand to darwin10 and later.
-
-2008-11-12 Steve Ellcey <sje@cup.hp.com>
-
- * configure: Regenerate to get new GCC_CHECK_UNWIND_GETIPINFO.
-
-2008-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR libgcj/33764
- * configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
- * Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
- instead of bin_PROGRAMS for binaries.
- * configure: Regenerated.
- * Makefile.in: Regenerated.
-
-2008-11-04 David Edelsohn <edelsohn@gnu.org>
-
- * configure.ac: Fix typo.
- * configure: Rebuild.
-
-2008-10-31 Andrew Haley <aph@redhat.com>
-
- * Makefile.am (install-data-local): Correct symlink paths for
- SDK-style installed JARs.
- Correct symlinks for headers when DESTDIR is set.
-
-2008-10-23 David Edelsohn <edelsohn@gnu.org>
-
- PR target/35485
- * configure.ac: AIX threads are Posix threads.
- Set signal handler to aix-signal.h
- * configure: Regenerate.
- * classpath/native/fdlibm/fdlibm.h: Undef hz.
- * include/aix-signal.h: New file.
- * sysdep/powerpc/locks.h: Avoid GNU Assembler syntax.
-
-2008-10-22 Matthias Klose <doko@ubuntu.com>
-
- Import GNU Classpath (libgcj-import-20081021).
-
- * Regenerate class and header files.
- * Regenerate auto* files.
-
-2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * sources.am, Makfile.in: Regenerate.
-
-2008-10-17 Matthias Klose <doko@ubuntu.com>
-
- * configure.ac: Fix bashisms.
- * configure: Regenerate.
-
-2008-10-15 Matthias Klose <doko@ubuntu.com>
-
- * configure.ac: Disable build of gjdoc, if configured without
- --with-antlr-jar or if no antlr.jar found.
- * configure: Regenerate.
-
-2008-10-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * classpath/configure.ac,
- * classpath/m4/ac_prog_antlr.m4,
- * classpath/m4/ac_prog_java.m4,
- * classpath/tools/Makefile.am:
- Ported --regen-gjdoc-parser patch and
- cantlr support from GNU Classpath.
-
-2008-10-06 Andrew Haley <aph@redhat.com>
-
- * java/lang/Thread.java (Thread): Always create the ThreadLocalMap
- when creating a thread.
- (getThreadLocals) Don't lazily create the ThreadLocalMap.
-
-2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * classpath/java/lang/ThreadLocalMap.java,
- * java/lang/ThreadLocalMap$Entry.h,
- * java/lang/ThreadLocalMap.h,
- * lib/java/lang/ThreadLocalMap.class,
- * lib/java/lang/ThreadLocalMap$Entry.class:
- Add the new files for the ThreadLocal patch.
-
-2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * classpath/ChangeLog,
- * classpath/java/lang/InheritableThreadLocal.java,
- * classpath/java/lang/Thread.java,
- * classpath/java/lang/ThreadLocal.java:
- Merge Daniel Frampton's ThreadLocal patch.
- * gcj/javaprims.h: Updated.
- * java/lang/Thread.h: Regenerated.
- * java/lang/Thread.java:
- Replace WeakIdentityHashMap with ThreadLocalMap.
- (getThreadLocals()): Likewise.
- * java/lang/ThreadLocal.h: Regenerated.
- * java/lang/ThreadLocal.java:
- (computeNextHash()): New method.
- (ThreadLocal()): Initialise fastHash.
- (internalGet()): Updated to match Classpath's get().
- (internalSet(Object)): Likewise for set(Object).
- (internalRemove()): Likewise for remove().
-
-2008-09-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * classpath/configure,
- * classpath/configure.ac:
- Resynchronise with Classpath's configure.
- * classpath/examples/Makefile.in:
- Add equivalent support for building as in
- tools/Makefile.in.
- * classpath/java/nio/Buffer.java,
- * classpath/java/nio/ByteBuffer.java,
- * classpath/java/nio/ByteBufferImpl.java,
- * classpath/java/nio/CharBuffer.java,
- * classpath/java/nio/CharBufferImpl.java,
- * classpath/java/nio/CharSequenceBuffer.java,
- * classpath/java/nio/CharViewBufferImpl.java,
- * classpath/java/nio/DirectByteBufferImpl.java,
- * classpath/java/nio/DoubleBuffer.java,
- * classpath/java/nio/DoubleBufferImpl.java,
- * classpath/java/nio/DoubleViewBufferImpl.java,
- * classpath/java/nio/FloatBuffer.java,
- * classpath/java/nio/FloatBufferImpl.java,
- * classpath/java/nio/FloatViewBufferImpl.java,
- * classpath/java/nio/IntBuffer.java,
- * classpath/java/nio/IntBufferImpl.java,
- * classpath/java/nio/IntViewBufferImpl.java,
- * classpath/java/nio/LongBuffer.java,
- * classpath/java/nio/LongBufferImpl.java,
- * classpath/java/nio/LongViewBufferImpl.java,
- * classpath/java/nio/MappedByteBuffer.java,
- * classpath/java/nio/MappedByteBufferImpl.java,
- * classpath/java/nio/ShortBuffer.java,
- * classpath/java/nio/ShortBufferImpl.java,
- * classpath/java/nio/ShortViewBufferImpl.java:
- Replace use of gnu.classpath.Pointer with gnu.gcj.RawData,
- and fix some formatting issues.
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap,
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap,
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
- * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt:
- Regenerated (later version of antlr).
- * java/nio/Buffer.h: Regenerated.
- * java/nio/Buffer.java: Ported changes from Classpath.
- * java/nio/ByteBuffer.h,
- * java/nio/CharBuffer.h: Regenerated.
- * java/nio/DirectByteBufferImpl.java: Ported changes from
- Classpath.
- * java/nio/DoubleBuffer.h,
- * java/nio/FloatBuffer.h,
- * java/nio/IntBuffer.h,
- * java/nio/LongBuffer.h,
- * java/nio/MappedByteBuffer.h,
- * java/nio/MappedByteBufferImpl.h: Regenerated.
- * java/nio/MappedByteBufferImpl.java: Ported changes from
- Classpath.
- * java/nio/ShortBuffer.h: Regenerated.
-
-2008-09-24 Matthias Klose <doko@ubuntu.com>
-
- * configure.ac: Search for antlr.jar, if not configured.
- * configure: Regenerate.
-
-2008-09-24 Matthias Klose <doko@ubuntu.com>
-
- * Makefile.am: Build a gjdoc binary, if enabled.
- * configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file.
- * Makefile.in, */Makefile.in, configure: Regenerate.
-
-2008-09-22 Andrew Haley <aph@redhat.com>
-
- * java/lang/String.java (toString(char[], int, int)): New method.
-
-2008-09-14 Matthias Klose <doko@ubuntu.com>
-
- Import GNU Classpath (libgcj-import-20080914).
-
- * Regenerate class and header files.
- * Regenerate auto* files.
- * configure.ac: Don't pass --disable-gjdoc to classpath.
- * sources.am: Regenerated.
- * HACKING: Mention to build gjdoc in maintainer builds.
- * gnu/classpath/Configuration.java: Update classpath version.
- * gcj/javaprims.h: Update.
-
-2008-09-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.am: Replace natStringBuffer.cc
- and natStringBuilder.cc with natAbstractStringBuffer.cc.
- * Makefile.in: Regenerated.
- * java/lang/AbstractStringBuffer.java:
- (append(int)): Made native.
- (regionMatches(int,String)): Likewise.
- * java/lang/StringBuffer.h: Regenerated.
- * java/lang/StringBuffer.java: Remerged with GNU Classpath.
- * java/lang/StringBuilder.h: Regenerated.
- * java/lang/StringBuilder.java: Remerged with GNU Classpath.
- * java/lang/natAbstractStringBuffer.cc: Provide common
- native methods for StringBuffer and StringBuilder.
- * java/lang/natStringBuffer.cc,
- * java/lang/natStringBuilder.cc: Removed.
-
-2008-09-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.in,
- * classpath/configure: Regenerated.
- * gnu/gcj/util/natDebug.cc,
- * gnu/gcj/xlib/natColormap.cc,
- * gnu/gcj/xlib/natDisplay.cc,
- * gnu/gcj/xlib/natDrawable.cc,
- * gnu/gcj/xlib/natFont.cc,
- * gnu/gcj/xlib/natWMSizeHints.cc,
- * gnu/gcj/xlib/natWindow.cc,
- * gnu/gcj/xlib/natXImage.cc:
- Add :: prefix to namespaces.
- * java/io/CharArrayWriter.h,
- * java/lang/StringBuffer.h:
- Regenerated using patched gjavah.
- * java/lang/natStringBuffer.cc:
- Fix naming of append(jint).
- * java/sql/Timestamp.h: Regenerated
- using patched gjavah.
- * jni.cc: Rename p to functions
- to match change in GNU Classpath.
- * scripts/makemake.tcl: Switch
- gnu.java.math to BC compilation.
- * sources.am: Regenerated.
-
-2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.in: Updated location of Configuration.java.
- * classpath/lib/gnu/java/locale/LocaleData.class: Regenerated.
-
-2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.in: Updated with new Java files.
- * classpath/configure: Regenerated.
- * classpath/tools/Makefile.am: Add missing
- use of GJDOC_EX so --disable-gjdoc works.
- * classpath/tools/Makefile.in: Regenerated.
-
-2008-08-15 Matthias Klose <doko@ubuntu.com>
-
- Import GNU Classpath (libgcj-import-20080811).
-
- * Regenerate class and header files.
- * Regenerate auto* files.
- * configure.ac: Don't pass --with-fastjar to classpath, substitute new
- dummy value in classpath/gnu/classpath/Configuration.java.in, pass
- --disable-gjdoc to classpath.
- * scripts/makemake.tcl:
- * sources.am: Regenerated.
- * java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java:
- New, copied from classpath, use System instead of VMSystem.
- * java/lang/StringBuffer.java: Merge from classpath.
- * java/lang/ClassLoader.java: Merge from classpath.
- * gcj/javaprims.h: Update class definitions,
- remove _Jv_jobjectRefType, jobjectRefType definitions.
-
-2008-09-30 Andreas Tobler <a.tobler@schweiz.org>
-
- * testsuite/lib/libjava.exp (libjava_arguments): Do not append
- "no-install" to additional_flags for *-*-darwin.
-
-2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
- Steve Ellcey <sje@cup.hp.com>
-
- * configure: Regenerate for new libtool.
- * Makefile.in: Ditto.
- * aclocal.m4: Ditto.
- * classpath/configure: Ditto.
- * classpath/Makefile.in: Ditto.
- * classpath/native/jni/Makefile.in: Ditto.
- * classpath/native/jni/classpath/Makefile.in: Ditto.
- * classpath/native/jni/midi-dssi/Makefile.in: Ditto.
- * classpath/native/jni/gstreamer-peer/Makefile.in: Ditto.
- * classpath/native/jni/gconf-peer/Makefile.in: Ditto.
- * classpath/native/jni/java-io/Makefile.in: Ditto.
- * classpath/native/jni/native-lib/Makefile.in: Ditto.
- * classpath/native/jni/java-util/Makefile.in: Ditto.
- * classpath/native/jni/java-lang/Makefile.in: Ditto.
- * classpath/native/jni/midi-alsa/Makefile.in: Ditto.
- * classpath/native/jni/java-nio/Makefile.in: Ditto.
- * classpath/native/jni/java-net/Makefile.in: Ditto.
- * classpath/native/jni/xmlj/Makefile.in: Ditto.
- * classpath/native/jni/qt-peer/Makefile.in: Ditto.
- * classpath/native/jni/gtk-peer/Makefile.in: Ditto.
- * classpath/native/Makefile.in: Ditto.
- * classpath/native/jawt/Makefile.in: Ditto.
- * classpath/native/fdlibm/Makefile.in: Ditto.
- * classpath/native/plugin/Makefile.in: Ditto.
- * classpath/resource/Makefile.in: Ditto.
- * classpath/scripts/Makefile.in: Ditto.
- * classpath/tools/Makefile.in: Ditto.
- * classpath/doc/Makefile.in: Ditto.
- * classpath/doc/api/Makefile.in: Ditto.
- * classpath/lib/Makefile.in: Ditto.
- * classpath/external/Makefile.in: Ditto.
- * classpath/external/jsr166/Makefile.in: Ditto.
- * classpath/external/sax/Makefile.in: Ditto.
- * classpath/external/w3c_dom/Makefile.in: Ditto.
- * classpath/external/relaxngDatatype/Makefile.in: Ditto.
- * classpath/include/Makefile.in: Ditto.
- * classpath/aclocal.m4: Ditto.
- * classpath/examples/Makefile.in: Ditto.
- * include/Makefile.in: Ditto.
- * testsuite/Makefile.in: Ditto.
- * gcj/Makefile.in: Ditto.
-
-2008-09-17 Andrew Haley <aph@redhat.com>
-
- PR libgcj/8995:
-
- * defineclass.cc (_Jv_ClassReader::handleCodeAttribute):
- Initialize thread_count.
- * include/java-interp.h (_Jv_InterpMethod::thread_count): New
- field.
- (_Jv_InterpMethod::rewrite_insn_mutex): New mutex.
- (_Jv_InterpFrame:: _Jv_InterpFrame): Pass frame_type.
- * interpret.cc
- (ThreadCountAdjuster): New class.
- (_Jv_InterpMethod::thread_count): New field.
- (_Jv_InitInterpreter): Initialize rewrite_insn_mutex.
- Increment and decrement thread_count field in methods.
- * interpret-run.cc (REWRITE_INSN): Check thread_count <= 1.
- (REWRITE_INSN): Likewise.
- Declare a ThreadCountAdjuster.
- * java/lang/reflect/natVMProxy.cc (run_proxy): Initialize frame
- type as frame_proxy.
-
-2008-09-05 David Daney <ddaney@avtrex.com>
-
- * configure.ac (reduced-reflection): New AC_ARG_ENABLE.
- (build_libgcj_reduced_reflection): New variable.
- (BUILD_LIBGCJ_REDUCED_REFLECTION): New AM_CONDITIONAL.
- * Makefile.am (LIBGCJ_REDUCED_REFLECTION_FLAGS): New variable.
- (%.lo: %.list): Add LIBGCJ_REDUCED_REFLECTION_FLAGS to compile
- command.
- (java/util/concurrent.lo, java/util/concurrent/atomic.lo,
- java/util/concurrent/locks.lo): Override
- LIBGCJ_REDUCED_REFLECTION_FLAGS.
- * Makefile.in, include/Makefile.in, testsuite/Makefile.in,
- gcj/Makefile.in, configure: Regenerate.
-
-2008-08-22 Andrew Haley <aph@redhat.com>
-
- PR libgcj/8995:
-
- * interpret-run.cc (REWRITE_INSN): Null this macro.
-
- * include/jvm.h (class _Jv_Linker): Declare resolve_mutex, init.
- (read_cpool_entry, write_cpool_entry): New functions.
- * link.cc (_Jv_Linker::resolve_mutex): new.
- (_Jv_Linker::init): New function.
- (_Jv_Linker::resolve_pool_entry): Use {read,write}_cpool_entry
- to ensure atomic access to constant pool entries.
-
-2008-08-07 Andrew Haley <aph@redhat.com>
-
- * testsuite/libjava.lang/StackTrace2.java: Rewrite to prevent
- spurious failure when some methods are inlined.
-
-2008-08-05 Matthias Klose <doko@ubuntu.com>
-
- * HACKING: Update instructions how to build gcj/javaprims.h.
-
-2008-08-04 Tom Tromey <tromey@redhat.com>
-
- PR libgcj/31890:
- * gcj/javaprims.h: Regenerate class list.
-
-2008-07-16 Roger Sayle <roger@eyesopen.com>
- Paolo Bonzini <bonzini@gnu.org>
-
- * scripts/jar.in: Fix portability problems with Solaris /bin/sh.
-
-2008-07-08 Matthias Klose <doko@ubuntu.com>
-
- * libtool-version: Bump soversion.
-
-2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * gnu/gcj/convert/make-trie.h: New.
- * gnu/gcj/convert/gen-from-JIS.c: Include it.
- * gnu/gcj/convert/make-trie.c: Likewise.
- Fix typos and compiler warnings, diagnose a missing argument.
- * Makefile.am (gen_from_JIS_SOURCES): Add gnu/gcj/convert/make-trie.h.
- * Makefile.in: Regenerate.
-
-2008-06-30 Joshua Sumali <jsumali@redhat.com>
- Andrew Haley <aph@redhat.com>
-
- * configure.ac (java-home): new AC_ARG_ENABLE.
- (aot-compile-rpm): Likewise.
- (CREATE_JAVA_HOME): new AM_CONDITIONAL.
- (INSTALL_AOT_RPM): Likewise.
- (gcc-suffix): new AC_ARG_WITH.
- (arch-directory): Likewise.
- (os-directory): Likewise.
- (origin-name): Likewise.
- (arch-suffix): Likewise.
- (jvm-root-dir): Likewise.
- (jvm-jar-dir): Likewise.
- (python-dir): Likewise.
- (AC_CONFIG_FILES): Add contrib/aotcompile.py, contrib/aot-compile,
- contrib/aot-compile-rpm, contrib/rebuild-gcj-db.
- (gcjsubdir): New AC_SUBST.
- * Makefile.am (install-data-local): Install Python modules for
- aot-compile. Also install an sdk style directory if
- --enable-java-home is passed to configure.
- (bin_SCRIPTS): Add
- contrib/rebuild-gcj-db and contrib/aot-compile.
- (gcjsubdir): Add.
- (db_pathtail): Redefine in terms of gcjsubdir.
- * contrib/aot-compile.in: New file.
- * contrib/aotcompile.py.in: Likewise.
- * contrib/aot-compile-rpm.in: Likewise.
- * contrib/classfile.py: Likewise.
- * contrib/rebuild-gcj-db.in: Likewise.
- * configure: Regenerate.
- * Makefile.in: Regenerate.
-
-2008-06-28 Matthias Klose <doko@ubuntu.com>
-
- Import GNU Classpath (classpath-0_97_2-release).
-
- * Regenerate class and header files.
- * Regenerate auto* files.
- * gcj/javaprims.h: Define jobjectRefType.
- * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
- (_Jv_JNIFunctions): Initialize GetObjectRefType.
- * gnu/classpath/jdwp/VMVirtualMachine.java,
- java/security/VMSecureRandom.java: Merge from classpath.
- * HACKING: Fix typo.
- * ChangeLog-2007: New file.
- * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.
-
-2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure: Regenerate.
- * gcj/Makefile.in: Regenerate.
- * include/Makefile.in: Regenerate.
- * testsuite/Makefile.in: Regenerate.
-
-2008-06-07 Joseph Myers <joseph@codesourcery.com>
-
- * configure.host (strongarm*-elf, xscale*-elf): Remove.
-
-2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.am (mostlyclean-local): Use libtool --mode=clean.
- * Makefile.in: Regenerate.
-
-2008-05-28 Andrew Haley <aph@redhat.com>
-
- * java/lang/Class.java (getSimpleName): Use getEnclosingClass().
- * testsuite/libjava.lang/PR35020.java: New cases.
- * testsuite/libjava.lang/PR35020.out: New cases.
-
-2008-05-22 Andrew Haley <aph@redhat.com>
-
- PR libgcj/35020
- * java/lang/Class.java (getSimpleName): Replace incorrect use of
- String.lastIndexOf(String, int) with String.substring.
- * testsuite/libjava.lang/PR35020.java: New file.
- * testsuite/libjava.lang/PR35020.out: New file.
-
-2008-05-22 Andrew Haley <aph@redhat.com>
-
- PR libgcj/35020
- * java/lang/Class.java (getSimpleName): Import from GNU Classpath.
-
-2008-05-20 David Daney <ddaney@avtrex.com>
-
- PR libgcj/36252
- * java/lang/natString.ccn: Add
- #include <java/io/CharConversionException.h>.
- (init (byte[], int, int, String)): Catch and ignore
- CharConversionException. Break out of conversion loop
- on incomplete input.
- * testsuite/libjava.lang/PR36252.java: New test.
- * testsuite/libjava.lang/PR36252.out: New file, its expected output.
- * testsuite/libjava.lang/PR36252.jar: New file, its pre-compiled
- jar file.
-
-2008-04-19 Tom Tromey <tromey@redhat.com>
-
- PR libgcj/35979:
- * jni.cc (_Jv_JNI_NewStringUTF): Return NULL if bytes==NULL.
-
-2008-04-18 Paolo Bonzini <bonzini@gnu.org>
-
- PR bootstrap/35457
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2008-04-16 Andrew Haley <aph@littlepinkcloud.com>
-
- * libgcj_bc.c: (_Jv_LookupInterfaceMethod, _Jv_MonitorExit,
- _Jv_RegisterResource, _Jv_JNI_PopSystemFrame): Add.
-
-2008-04-16 Andrew Haley <aph@redhat.com>
-
- * libgcj_bc.c: Sort lines.
-
-2008-04-02 Peter O'Gorman <pogma@thewrittenword.com>
-
- PR bootstrap/35216
- * scripts/makemake.tcl: Replace org/omg build with build of all
- its subpackages.
- * sources.am: Regenerate.
+ * Makefile.am (ecjx_LDADD): Add $(extra_ldflags).
* Makefile.in: Regenerate.
-2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * Makefile.am (install-data-local): Rewrite to be more efficient,
- using awk, and `install' with multiple files at once. Do not gather
- more than 50 files in one go to avoid hitting command line limits.
- (install_data_local_split): New variable.
- * aclocal.m4: Regenerate.
- * configure: Likewise.
- * Makefile.in: Likewise.
- * gcj/Makefile.in: Likewise.
- * include/Makefile.in: Likewise.
- * testsuite/Makefile.in: Likewise.
-
- * Makefile.am (write_entries_to_file_split): New variable.
- (write_entries_to_file): Write out that many entries at once,
- for speed.
- * Makefile.in: Regenerate.
-
-2008-03-13 Tom Tromey <tromey@redhat.com>
-
- * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
- Check loading constraints.
- (_Jv_CheckOrCreateLoadingConstraint): New function.
- * java/lang/ClassLoader.java (loadingConstraints): New field.
- * link.cc (_Jv_Linker::find_field): Use
- _Jv_CheckOrCreateLoadingConstraint.
- (_Jv_Linker::check_loading_constraints): New function.
- (_Jv_Linker::resolve_method_entry): Use
- check_loading_constraints.
- (_Jv_Linker::append_partial_itable): Likewise.
- (_Jv_Linker::layout_vtable_methods): Likewise.
- * include/jvm.h (_Jv_Linker::check_loading_constraints): Declare.
- (_Jv_CheckOrCreateLoadingConstraint): Declare.
-
-2008-03-10 Jim Meyering <meyering@redhat.com>
-
- Don't leak upon failed realloc.
- * gnu/classpath/natSystemProperties.cc
- (SystemProperties::insertSystemProperties):
-
-2008-03-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * HACKING: Fix grep patterns.
-
-2008-03-04 David Daney <ddaney@avtrex.com>
-
- * scripts/makemake.tcl (properties_map): Don't exclude
- gnu/java/locale.
- * gnu/java/lang/MainThread.java (Klocale, Kcalendar): Remove.
- * java/text/Collator.java: Organize imports.
- (getAvailableLocales): Merge from classpath.
- (getInstance): Same.
- * sources.am: Regenerate.
- * Makefile.in: Regenerate.
- * classpath/lib/java/text/DecimalFormatSymbols.class,
- classpath/lib/java/text/DateFormatSymbols.class,
- classpath/lib/java/util/Currency.class,
- classpath/lib/java/util/Calendar.class,
- classpath/lib/gnu/java/lang/MainThread.class,
- classpath/lib/java/text/Collator.class,
- gnu/java/lang/MainThread.h,
- java/text/DateFormatSymbols.h,
- java/text/DecimalFormatSymbols.h,
- java/util/Calendar.h,
- java/util/Currency.h: Regenerate.
- * classpath/lib/gnu/java/locale/LocaleInformation_en_PH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_AR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_BW.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de_BE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_te_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en.class,
- classpath/lib/gnu/java/locale/LocaleInformation_iw_IL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fr_LU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_AE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sk_SK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fr_CA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_MX.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_EG.class,
- classpath/lib/gnu/java/locale/LocaleInformation_lt_LT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_ZW.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_QA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_gv_GB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_yi_US.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_SD.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_IQ.class,
- classpath/lib/gnu/java/locale/Calendar_de.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_HN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_YE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de_CH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_PR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_BH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_mi_NZ.class,
- classpath/lib/gnu/java/locale/Calendar_nl.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fr_BE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_EC.class,
- classpath/lib/gnu/java/locale/LocaleInformation_mt_MT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_HK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_CL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_kw_GB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_mk_MK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_ES.class,
- classpath/lib/gnu/java/locale/LocaleInformation_cs_CZ.class,
- classpath/lib/gnu/java/locale/LocaleInformation_nl_NL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_CA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_bs_BA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ru_UA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_US.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fr_CH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ja_JP.class,
- classpath/lib/gnu/java/locale/LocaleInformation_it_CH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_PA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_kl_GL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de.class,
- classpath/lib/gnu/java/locale/LocaleInformation_el_GR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_DO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_tr_TR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_PE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_zh_TW.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_OM.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_KW.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ga_IE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_hu_HU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_nl.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ca_ES.class,
- classpath/lib/gnu/java/locale/LocaleInformation_zh_SG.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de_AT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_LB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_PY.class,
- classpath/lib/gnu/java/locale/LocaleInformation_nl_BE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_af_ZA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_he_IL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ro_RO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_vi_VN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_cy_GB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_hi_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_CO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_JO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_br_FR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ta_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_ZA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fr_FR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_DZ.class,
- classpath/lib/gnu/java/locale/LocaleInformation_eu_ES.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_TN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_tl_PH.class,
- classpath/lib/gnu/java/locale/LocaleInformation_pl_PL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sv_FI.class,
- classpath/lib/gnu/java/locale/LocaleInformation_id_ID.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_GB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_uz_UZ.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fi_FI.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_IE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_MA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_be_BY.class,
- classpath/lib/gnu/java/locale/LocaleInformation_bn_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_pt_PT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_BO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_AU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_NI.class,
- classpath/lib/gnu/java/locale/LocaleInformation_zh_CN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_VE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ka_GE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_it_IT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_US.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sl_SI.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_DK.class,
- classpath/lib/gnu/java/locale/LocaleInformation.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_CR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ru_RU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sq_AL.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de_DE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_GT.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sr_YU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_da_DK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_gd_GB.class,
- classpath/lib/gnu/java/locale/LocaleInformation_hr_HR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_zh_HK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_uk_UA.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ko_KR.class,
- classpath/lib/gnu/java/locale/Calendar_en.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_LY.class,
- classpath/lib/gnu/java/locale/LocaleInformation_pt_BR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_nn_NO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_NZ.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_SV.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ur_PK.class,
- classpath/lib/gnu/java/locale/LocaleInformation_et_EE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_lv_LV.class,
- classpath/lib/gnu/java/locale/LocaleInformation_es_UY.class,
- classpath/lib/gnu/java/locale/LocaleInformation_oc_FR.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fo_FO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_de_LU.class,
- classpath/lib/gnu/java/locale/LocaleInformation_gl_ES.class,
- classpath/lib/gnu/java/locale/LocaleInformation_en_SG.class,
- classpath/lib/gnu/java/locale/LocaleInformation_se_NO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_mr_IN.class,
- classpath/lib/gnu/java/locale/LocaleInformation_tg_TJ.class,
- classpath/lib/gnu/java/locale/LocaleInformation_no_NO.class,
- classpath/lib/gnu/java/locale/LocaleInformation_ar_SY.class,
- classpath/lib/gnu/java/locale/LocaleInformation_sv_SE.class,
- classpath/lib/gnu/java/locale/LocaleInformation_fa_IR.class,
- classpath/lib/gnu/java/locale/Calendar.class,
- gnu/java/locale/LocaleInformation_fr_CA.java,
- gnu/java/locale/LocaleInformation_sk_SK.java,
- gnu/java/locale/LocaleInformation_ar_BH.java,
- gnu/java/locale/LocaleInformation_ko_KR.h,
- gnu/java/locale/LocaleInformation_bs_BA.h,
- gnu/java/locale/LocaleInformation_nn_NO.h,
- gnu/java/locale/LocaleInformation_en_NZ.h,
- gnu/java/locale/LocaleInformation_en_ZW.java,
- gnu/java/locale/LocaleInformation_es_US.h,
- gnu/java/locale/LocaleInformation_es_SV.h,
- gnu/java/locale/LocaleInformation_de_LU.java,
- gnu/java/locale/LocaleInformation_fo_FO.java,
- gnu/java/locale/LocaleInformation_oc_FR.java,
- gnu/java/locale/LocaleInformation_it_CH.h,
- gnu/java/locale/LocaleInformation_de.h,
- gnu/java/locale/LocaleInformation_el_GR.h,
- gnu/java/locale/LocaleInformation_tr_TR.h,
- gnu/java/locale/LocaleInformation_ka_GE.java,
- gnu/java/locale/LocaleInformation_nn_NO.java,
- gnu/java/locale/LocaleInformation_se_NO.h,
- gnu/java/locale/LocaleInformation_ga_IE.h,
- gnu/java/locale/LocaleInformation_ru_UA.java,
- gnu/java/locale/LocaleInformation_fa_IR.java,
- gnu/java/locale/LocaleInformation_ja_JP.java,
- gnu/java/locale/LocaleInformation_sv_SE.h,
- gnu/java/locale/LocaleInformation_bn_IN.java,
- gnu/java/locale/LocaleInformation_af_ZA.h,
- gnu/java/locale/LocaleInformation_es_PE.java,
- gnu/java/locale/LocaleInformation_hi_IN.h,
- gnu/java/locale/LocaleInformation_en_ZA.java,
- gnu/java/locale/LocaleInformation_es_CO.h,
- gnu/java/locale/LocaleInformation_es_AR.h,
- gnu/java/locale/LocaleInformation_en_PH.h,
- gnu/java/locale/LocaleInformation_ta_IN.h,
- gnu/java/locale/LocaleInformation_en_ZA.h,
- gnu/java/locale/LocaleInformation_nl_NL.java,
- gnu/java/locale/LocaleInformation_ar_KW.java,
- gnu/java/locale/LocaleInformation_fr_FR.h,
- gnu/java/locale/LocaleInformation_ar_LY.java,
- gnu/java/locale/LocaleInformation_uz_UZ.java,
- gnu/java/locale/LocaleInformation_tl_PH.h,
- gnu/java/locale/LocaleInformation_fi_FI.java,
- gnu/java/locale/LocaleInformation_pl_PL.h,
- gnu/java/locale/LocaleInformation_sv_FI.h,
- gnu/java/locale/LocaleInformation_es_MX.h,
- gnu/java/locale/LocaleInformation_uz_UZ.h,
- gnu/java/locale/LocaleInformation_fi_FI.h,
- gnu/java/locale/LocaleInformation_ar_SD.java,
- gnu/java/locale/LocaleInformation_ar_QA.h,
- gnu/java/locale/LocaleInformation_kw_GB.java,
- gnu/java/locale/LocaleInformation_ar_YE.h,
- gnu/java/locale/LocaleInformation_es_PR.java,
- gnu/java/locale/LocaleInformation_zh_SG.java,
- gnu/java/locale/LocaleInformation_ca_ES.java,
- gnu/java/locale/LocaleInformation_ka_GE.h,
- gnu/java/locale/LocaleInformation_ar_BH.h,
- gnu/java/locale/LocaleInformation_fr_CH.java,
- gnu/java/locale/Calendar_nl.h,
- gnu/java/locale/LocaleInformation_en_DK.h,
- gnu/java/locale/LocaleInformation.h,
- gnu/java/locale/LocaleInformation_ar_JO.java,
- gnu/java/locale/LocaleInformation_br_FR.java,
- gnu/java/locale/LocaleInformation_ru_RU.java,
- gnu/java/locale/LocaleInformation_de_BE.java,
- gnu/java/locale/LocaleInformation_ru_RU.h,
- gnu/java/locale/LocaleInformation_de_DE.h,
- gnu/java/locale/LocaleInformation_hr_HR.h,
- gnu/java/locale/LocaleInformation_gd_GB.h,
- gnu/java/locale/LocaleInformation_nl.java,
- gnu/java/locale/LocaleInformation_en_GB.java,
- gnu/java/locale/LocaleInformation_uk_UA.h,
- gnu/java/locale/LocaleInformation_ar_LY.h,
- gnu/java/locale/LocaleInformation_ru_UA.h,
- gnu/java/locale/LocaleInformation_es_UY.java,
- gnu/java/locale/LocaleInformation_fr_CH.h,
- gnu/java/locale/LocaleInformation_lv_LV.h,
- gnu/java/locale/LocaleInformation_de.java,
- gnu/java/locale/LocaleInformation_el_GR.java,
- gnu/java/locale/LocaleInformation_es_CR.java,
- gnu/java/locale/LocaleInformation_ar_IN.h,
- gnu/java/locale/LocaleInformation_es_DO.h,
- gnu/java/locale/LocaleInformation_es_PE.h,
- gnu/java/locale/LocaleInformation_ar_OM.h,
- gnu/java/locale/LocaleInformation_zh_HK.java,
- gnu/java/locale/LocaleInformation_mr_IN.java,
- gnu/java/locale/LocaleInformation_no_NO.h,
- gnu/java/locale/LocaleInformation_es_EC.java,
- gnu/java/locale/LocaleInformation_ro_RO.java,
- gnu/java/locale/LocaleInformation_he_IL.java,
- gnu/java/locale/Calendar.java,
- gnu/java/locale/LocaleInformation_ar_LB.h,
- gnu/java/locale/LocaleInformation_fa_IR.h,
- gnu/java/locale/LocaleInformation_es_CO.java,
- gnu/java/locale/LocaleInformation_cy_GB.h,
- gnu/java/locale/LocaleInformation_en_SG.java,
- gnu/java/locale/LocaleInformation_mk_MK.java,
- gnu/java/locale/LocaleInformation_es_ES.java,
- gnu/java/locale/LocaleInformation_eu_ES.java,
- gnu/java/locale/LocaleInformation_en_BW.h,
- gnu/java/locale/LocaleInformation_es_VE.java,
- gnu/java/locale/LocaleInformation_zh_CN.java,
- gnu/java/locale/LocaleInformation_hr_HR.java,
- gnu/java/locale/LocaleInformation_gd_GB.java,
- gnu/java/locale/LocaleInformation_se_NO.java,
- gnu/java/locale/LocaleInformation_te_IN.h,
- gnu/java/locale/LocaleInformation_en.h,
- gnu/java/locale/LocaleInformation_ar_TN.h,
- gnu/java/locale/Calendar_nl.java,
- gnu/java/locale/LocaleInformation_es_US.java,
- gnu/java/locale/LocaleInformation_nl_BE.java,
- gnu/java/locale/LocaleInformation_es_PY.java,
- gnu/java/locale/LocaleInformation_sk_SK.h,
- gnu/java/locale/LocaleInformation_fr_CA.h,
- gnu/java/locale/LocaleInformation_be_BY.java,
- gnu/java/locale/LocaleInformation_lv_LV.java,
- gnu/java/locale/LocaleInformation_lt_LT.h,
- gnu/java/locale/LocaleInformation_gv_GB.java,
- gnu/java/locale/LocaleInformation_ar_MA.h,
- gnu/java/locale/LocaleInformation_en_IE.h,
- gnu/java/locale/LocaleInformation_es_CL.java,
- gnu/java/locale/LocaleInformation_bn_IN.h,
- gnu/java/locale/Calendar_de.java,
- gnu/java/locale/LocaleInformation_yi_US.h,
- gnu/java/locale/LocaleInformation_ar_DZ.java,
- gnu/java/locale/LocaleInformation_es_GT.java,
- gnu/java/locale/Calendar_de.h,
- gnu/java/locale/LocaleInformation_es_NI.h,
- gnu/java/locale/LocaleInformation_en_CA.java,
- gnu/java/locale/LocaleInformation_zh_CN.h,
- gnu/java/locale/LocaleInformation_es_VE.h,
- gnu/java/locale/LocaleInformation_de_CH.h,
- gnu/java/locale/LocaleInformation_en_NZ.java,
- gnu/java/locale/LocaleInformation_mi_NZ.java,
- gnu/java/locale/LocaleInformation_en_US.h,
- gnu/java/locale/LocaleInformation_sl_SI.h,
- gnu/java/locale/LocaleInformation_et_EE.java,
- gnu/java/locale/LocaleInformation_mi_NZ.h,
- gnu/java/locale/LocaleInformation_ar_QA.java,
- gnu/java/locale/LocaleInformation_en_HK.java,
- gnu/java/locale/LocaleInformation_ar_IQ.java,
- gnu/java/locale/LocaleInformation_ar_OM.java,
- gnu/java/locale/LocaleInformation_fr_FR.java,
- gnu/java/locale/LocaleInformation_es_CR.h,
- gnu/java/locale/LocaleInformation_en.java,
- gnu/java/locale/LocaleInformation_es_GT.h,
- gnu/java/locale/LocaleInformation_ur_PK.java,
- gnu/java/locale/LocaleInformation_pt_PT.java,
- gnu/java/locale/LocaleInformation_et_EE.h,
- gnu/java/locale/LocaleInformation_ar_IN.java,
- gnu/java/locale/LocaleInformation_es_AR.java,
- gnu/java/locale/LocaleInformation_en_PH.java,
- gnu/java/locale/LocaleInformation_en_IN.h,
- gnu/java/locale/LocaleInformation_kl_GL.h,
- gnu/java/locale/LocaleInformation_gl_ES.h,
- gnu/java/locale/LocaleInformation_sq_AL.java,
- gnu/java/locale/LocaleInformation_en_SG.h,
- gnu/java/locale/LocaleInformation_de_CH.java,
- gnu/java/locale/LocaleInformation_ga_IE.java,
- gnu/java/locale/LocaleInformation_no_NO.java,
- gnu/java/locale/LocaleInformation_de_AT.java,
- gnu/java/locale/LocaleInformation_tg_TJ.h,
- gnu/java/locale/LocaleInformation_hu_HU.h,
- gnu/java/locale/LocaleInformation_es_SV.java,
- gnu/java/locale/LocaleInformation_zh_SG.h,
- gnu/java/locale/LocaleInformation_ca_ES.h,
- gnu/java/locale/LocaleInformation_de_AT.h,
- gnu/java/locale/LocaleInformation_ar_SY.h,
- gnu/java/locale/LocaleInformation_he_IL.h,
- gnu/java/locale/LocaleInformation_ro_RO.h,
- gnu/java/locale/LocaleInformation_zh_TW.java,
- gnu/java/locale/LocaleInformation_es_NI.java,
- gnu/java/locale/LocaleInformation_ar_JO.h,
- gnu/java/locale/LocaleInformation_br_FR.h,
- gnu/java/locale/Calendar_en.java,
- gnu/java/locale/LocaleInformation_eu_ES.h,
- gnu/java/locale/LocaleInformation_pt_BR.java,
- gnu/java/locale/LocaleInformation_tg_TJ.java,
- gnu/java/locale/LocaleInformation_iw_IL.h,
- gnu/java/locale/LocaleInformation_ar_AE.h,
- gnu/java/locale/LocaleInformation_fr_LU.h,
- gnu/java/locale/LocaleInformation_id_ID.h,
- gnu/java/locale/LocaleInformation_sv_SE.java,
- gnu/java/locale/LocaleInformation_en_GB.h,
- gnu/java/locale/LocaleInformation_ar_EG.h,
- gnu/java/locale/LocaleInformation_cy_GB.java,
- gnu/java/locale/LocaleInformation_be_BY.h,
- gnu/java/locale/LocaleInformation_yi_US.java,
- gnu/java/locale/LocaleInformation_tr_TR.java,
- gnu/java/locale/LocaleInformation_pt_PT.h,
- gnu/java/locale/LocaleInformation_ar_IQ.h,
- gnu/java/locale/LocaleInformation_cs_CZ.java,
- gnu/java/locale/LocaleInformation_ar_TN.java,
- gnu/java/locale/LocaleInformation_ko_KR.java,
- gnu/java/locale/LocaleInformation_ar_AE.java,
- gnu/java/locale/LocaleInformation_fr_LU.java,
- gnu/java/locale/LocaleInformation_it_IT.h,
- gnu/java/locale/LocaleInformation_mt_MT.java,
- gnu/java/locale/LocaleInformation_fr_BE.h,
- gnu/java/locale/LocaleInformation_es_DO.java,
- gnu/java/locale/LocaleInformation_ta_IN.java,
- gnu/java/locale/LocaleInformation_es_CL.h,
- gnu/java/locale/LocaleInformation_te_IN.java,
- gnu/java/locale/LocaleInformation_ar_YE.java,
- gnu/java/locale/LocaleInformation_kw_GB.h,
- gnu/java/locale/LocaleInformation_uk_UA.java,
- gnu/java/locale/LocaleInformation_cs_CZ.h,
- gnu/java/locale/LocaleInformation_da_DK.h,
- gnu/java/locale/LocaleInformation_en_CA.h,
- gnu/java/locale/Calendar_en.h,
- gnu/java/locale/LocaleInformation_pt_BR.h,
- gnu/java/locale/LocaleInformation_ar_SY.java,
- gnu/java/locale/LocaleInformation_lt_LT.java,
- gnu/java/locale/LocaleInformation_vi_VN.java,
- gnu/java/locale/LocaleInformation_ur_PK.h,
- gnu/java/locale/LocaleInformation_en_IN.java,
- gnu/java/locale/LocaleInformation_kl_GL.java,
- gnu/java/locale/LocaleInformation_ja_JP.h,
- gnu/java/locale/LocaleInformation_es_UY.h,
- gnu/java/locale/LocaleInformation_es_PA.h,
- gnu/java/locale/LocaleInformation_de_LU.h,
- gnu/java/locale/LocaleInformation_fo_FO.h,
- gnu/java/locale/LocaleInformation_oc_FR.h,
- gnu/java/locale/LocaleInformation_zh_TW.h,
- gnu/java/locale/LocaleInformation_hu_HU.java,
- gnu/java/locale/LocaleInformation_ar_KW.h,
- gnu/java/locale/LocaleInformation_mr_IN.h,
- gnu/java/locale/LocaleInformation_ar_EG.java,
- gnu/java/locale/LocaleInformation_nl.h,
- gnu/java/locale/LocaleInformation_af_ZA.java,
- gnu/java/locale/LocaleInformation_es_PY.h,
- gnu/java/locale/LocaleInformation_nl_BE.h,
- gnu/java/locale/LocaleInformation_vi_VN.h,
- gnu/java/locale/LocaleInformation_es_PA.java,
- gnu/java/locale/Calendar.h,
- gnu/java/locale/LocaleInformation_da_DK.java,
- gnu/java/locale/LocaleInformation_de_BE.h,
- gnu/java/locale/LocaleInformation_ar_DZ.h,
- gnu/java/locale/LocaleInformation_bs_BA.java,
- gnu/java/locale/LocaleInformation_id_ID.java,
- gnu/java/locale/LocaleInformation_en_US.java,
- gnu/java/locale/LocaleInformation_sl_SI.java,
- gnu/java/locale/LocaleInformation_fr_BE.java,
- gnu/java/locale/LocaleInformation_ar_LB.java,
- gnu/java/locale/LocaleInformation_it_CH.java,
- gnu/java/locale/LocaleInformation_en_ZW.h,
- gnu/java/locale/LocaleInformation_gv_GB.h,
- gnu/java/locale/LocaleInformation_es_HN.java,
- gnu/java/locale/LocaleInformation_es_BO.h,
- gnu/java/locale/LocaleInformation_en_AU.h,
- gnu/java/locale/LocaleInformation_ar_SD.h,
- gnu/java/locale/LocaleInformation_sr_YU.java,
- gnu/java/locale/LocaleInformation_es_HN.h,
- gnu/java/locale/LocaleInformation_iw_IL.java,
- gnu/java/locale/LocaleInformation_it_IT.java,
- gnu/java/locale/LocaleInformation_es_MX.java,
- gnu/java/locale/LocaleInformation_es_PR.h,
- gnu/java/locale/LocaleInformation_ar_MA.java,
- gnu/java/locale/LocaleInformation_en_IE.java,
- gnu/java/locale/LocaleInformation.java,
- gnu/java/locale/LocaleInformation_en_DK.java,
- gnu/java/locale/LocaleInformation_es_EC.h,
- gnu/java/locale/LocaleInformation_mt_MT.h,
- gnu/java/locale/LocaleInformation_hi_IN.java,
- gnu/java/locale/LocaleInformation_en_AU.java,
- gnu/java/locale/LocaleInformation_es_BO.java,
- gnu/java/locale/LocaleInformation_gl_ES.java,
- gnu/java/locale/LocaleInformation_en_BW.java,
- gnu/java/locale/LocaleInformation_en_HK.h,
- gnu/java/locale/LocaleInformation_de_DE.java,
- gnu/java/locale/LocaleInformation_mk_MK.h,
- gnu/java/locale/LocaleInformation_es_ES.h,
- gnu/java/locale/LocaleInformation_sq_AL.h,
- gnu/java/locale/LocaleInformation_sv_FI.java,
- gnu/java/locale/LocaleInformation_pl_PL.java,
- gnu/java/locale/LocaleInformation_tl_PH.java,
- gnu/java/locale/LocaleInformation_sr_YU.h,
- gnu/java/locale/LocaleInformation_nl_NL.h,
- gnu/java/locale/LocaleInformation_zh_HK.h,
- java/text/DateFormatSymbols.java,
- java/text/DecimalFormatSymbols.java,
- java/util/Currency.java,
- java/util/Calendar.java: Remove
-
-2008-03-03 Andrew Haley <aph@littlepinkcloud.com>
-
- * testsuite/lib/libjava.exp (libjava_arguments): Use regexp
- instead of string match when checking for linux targets.
-
-2008-03-03 Matthias Klose <doko@ubuntu.com>
-
- * classpath/tools/classes/gnu/classpath/tools/orbd/Main.class,
- classpath/lib/gnu/java/locale/LocaleData.class
- classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
- classpath/lib/gnu/gcj/convert/Convert.class
- classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class: Regenerate.
-
-2008-03-02 Jakub Jelinek <jakub@redhat.com>
-
- * gnu/gcj/convert/Convert.java (version): Update copyright notice
- dates.
- * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
-
-2008-02-27 David Daney <ddaney@avtrex.com>
-
- * HACKING: Correct typo in find command.
-
-2008-02-27 David Daney <ddaney@avtrex.com>
-
- * gnu/java/net/natPlainSocketImplPosix.cc (bind): Remove check for
- null host.
-
-2008-02-20 Tom Tromey <tromey@redhat.com>
-
- PR libgcj/24170:
- * java/io/natFilePosix.cc (File::performList): Don't use
- readdir_r.
- * configure, include/config.h.in: Rebuilt.
- * configure.ac: Don't check for readdir_r.
-
-2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- PR libgcj/33085
- * configure: Regenerate.
-
-2008-02-15 Andreas Tobler <a.tobler@schweiz.org>
-
- PR testsuite/35208
- * testsuite/libjava.jvmti/interp/natgetstacktrace.cc
- (Java_getstacktrace_natRunner): Increase the usleep time to a value
- which prevents OS-X to get into a deadlock.
-
-2008-02-06 Andreas Tobler <a.tobler@schweiz.org>
-
- PR libgcj/30071
- * Makefile.am (install-exec-hook): Add install-binPROGRAMS.
- * Makefile.in: Regenerate.
-
-2008-01-24 David Edelsohn <edelsohn@gnu.org>
-
- * shlibpath.m4: Add AIX 6 support.
- * configure: Regenerate.
-
-2008-01-18 Alexandre Oliva <aoliva@redhat.com>
-
- PR c++/33887
- * link.cc (_Jv_Linker::prepare_constant_time_tables):
- has_interfaces is boolean, treat it as such.
-
-2008-01-04 Andrew Haley <aph@redhat.com>
+2009-01-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Import GNU Classpath (libgcj-snapshot-20090102).
+
+ * libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class,
+ * libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class,
+ * libjava/classpath/lib/java/text/MessageFormat.class,
+ * libjava/classpath/lib/java/text/SimpleDateFormat.class,
+ * libjava/classpath/lib/java/text/NumberFormat.class,
+ * libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class,
+ * libjava/classpath/lib/java/text/MessageFormat$Field.class,
+ * libjava/classpath/lib/java/text/RuleBasedCollator.class,
+ * libjava/classpath/lib/java/text/NumberFormat$Field.class,
+ * libjava/classpath/lib/gnu/xml/transform/Bindings.class,
+ * libjava/classpath/lib/gnu/java/locale/LocaleData.class,
+ * libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class,
+ * libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class,
+ * libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h,
+ * libjava/java/text/MessageFormat.h,
+ * libjava/java/text/RuleBasedCollator$CollationSorter.h,
+ * libjava/java/text/RuleBasedCollator.h,
+ * libjava/java/text/SimpleDateFormat.h:
+ Regenerated.
- PR libgcj/34444
- * java/lang/natClass.cc (Class::getEnclosingClass): Call
- getDeclaringClass().
diff --git a/libjava/ChangeLog-2008 b/libjava/ChangeLog-2008
new file mode 100644
index 00000000000..451c8716261
--- /dev/null
+++ b/libjava/ChangeLog-2008
@@ -0,0 +1,1109 @@
+2008-12-21 Andrew Pinski <pinskia@gmail.com>
+
+ PR target/38300
+ * configure: Regenerate.
+
+2008-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgcj/38396
+ * configure.ac (use_libgcj_bc): Set to no if not enable_shared.
+ (LIBGCJ_SPEC): Use -lgcj instead of -lgcj_bc even for -static
+ or -static-libgcj.
+ * Makefile.am (ecjx_SOURCES): Add ecjx.cc.
+ (ecjx_LDADD): Don't add libgcj.la when
+ NATIVE && USE_LIBBGCJ_BC.
+ * ecjx.cc: New file.
+ * Makefile.in: Regenerated.
+ * configure: Regenerated.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR libgcj/38006
+ * classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png:
+ Set svn:mime-type to application/octet-stream.
+
+2008-12-04 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * configure.ac: Add double brackets on darwin[912].
+ * configure: Regenerate.
+
+2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * configure.ac: Expand to darwin10 and later.
+ * configure: Regenerate.
+ * testsuite/lib/libjava.exp: Expand to darwin10 and later.
+
+2008-11-12 Steve Ellcey <sje@cup.hp.com>
+
+ * configure: Regenerate to get new GCC_CHECK_UNWIND_GETIPINFO.
+
+2008-11-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgcj/33764
+ * configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
+ * Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
+ instead of bin_PROGRAMS for binaries.
+ * configure: Regenerated.
+ * Makefile.in: Regenerated.
+
+2008-11-04 David Edelsohn <edelsohn@gnu.org>
+
+ * configure.ac: Fix typo.
+ * configure: Rebuild.
+
+2008-10-31 Andrew Haley <aph@redhat.com>
+
+ * Makefile.am (install-data-local): Correct symlink paths for
+ SDK-style installed JARs.
+ Correct symlinks for headers when DESTDIR is set.
+
+2008-10-23 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/35485
+ * configure.ac: AIX threads are Posix threads.
+ Set signal handler to aix-signal.h
+ * configure: Regenerate.
+ * classpath/native/fdlibm/fdlibm.h: Undef hz.
+ * include/aix-signal.h: New file.
+ * sysdep/powerpc/locks.h: Avoid GNU Assembler syntax.
+
+2008-10-22 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20081021).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+
+2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * sources.am, Makfile.in: Regenerate.
+
+2008-10-17 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Fix bashisms.
+ * configure: Regenerate.
+
+2008-10-15 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Disable build of gjdoc, if configured without
+ --with-antlr-jar or if no antlr.jar found.
+ * configure: Regenerate.
+
+2008-10-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/configure.ac,
+ * classpath/m4/ac_prog_antlr.m4,
+ * classpath/m4/ac_prog_java.m4,
+ * classpath/tools/Makefile.am:
+ Ported --regen-gjdoc-parser patch and
+ cantlr support from GNU Classpath.
+
+2008-10-06 Andrew Haley <aph@redhat.com>
+
+ * java/lang/Thread.java (Thread): Always create the ThreadLocalMap
+ when creating a thread.
+ (getThreadLocals) Don't lazily create the ThreadLocalMap.
+
+2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/java/lang/ThreadLocalMap.java,
+ * java/lang/ThreadLocalMap$Entry.h,
+ * java/lang/ThreadLocalMap.h,
+ * lib/java/lang/ThreadLocalMap.class,
+ * lib/java/lang/ThreadLocalMap$Entry.class:
+ Add the new files for the ThreadLocal patch.
+
+2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/ChangeLog,
+ * classpath/java/lang/InheritableThreadLocal.java,
+ * classpath/java/lang/Thread.java,
+ * classpath/java/lang/ThreadLocal.java:
+ Merge Daniel Frampton's ThreadLocal patch.
+ * gcj/javaprims.h: Updated.
+ * java/lang/Thread.h: Regenerated.
+ * java/lang/Thread.java:
+ Replace WeakIdentityHashMap with ThreadLocalMap.
+ (getThreadLocals()): Likewise.
+ * java/lang/ThreadLocal.h: Regenerated.
+ * java/lang/ThreadLocal.java:
+ (computeNextHash()): New method.
+ (ThreadLocal()): Initialise fastHash.
+ (internalGet()): Updated to match Classpath's get().
+ (internalSet(Object)): Likewise for set(Object).
+ (internalRemove()): Likewise for remove().
+
+2008-09-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/configure,
+ * classpath/configure.ac:
+ Resynchronise with Classpath's configure.
+ * classpath/examples/Makefile.in:
+ Add equivalent support for building as in
+ tools/Makefile.in.
+ * classpath/java/nio/Buffer.java,
+ * classpath/java/nio/ByteBuffer.java,
+ * classpath/java/nio/ByteBufferImpl.java,
+ * classpath/java/nio/CharBuffer.java,
+ * classpath/java/nio/CharBufferImpl.java,
+ * classpath/java/nio/CharSequenceBuffer.java,
+ * classpath/java/nio/CharViewBufferImpl.java,
+ * classpath/java/nio/DirectByteBufferImpl.java,
+ * classpath/java/nio/DoubleBuffer.java,
+ * classpath/java/nio/DoubleBufferImpl.java,
+ * classpath/java/nio/DoubleViewBufferImpl.java,
+ * classpath/java/nio/FloatBuffer.java,
+ * classpath/java/nio/FloatBufferImpl.java,
+ * classpath/java/nio/FloatViewBufferImpl.java,
+ * classpath/java/nio/IntBuffer.java,
+ * classpath/java/nio/IntBufferImpl.java,
+ * classpath/java/nio/IntViewBufferImpl.java,
+ * classpath/java/nio/LongBuffer.java,
+ * classpath/java/nio/LongBufferImpl.java,
+ * classpath/java/nio/LongViewBufferImpl.java,
+ * classpath/java/nio/MappedByteBuffer.java,
+ * classpath/java/nio/MappedByteBufferImpl.java,
+ * classpath/java/nio/ShortBuffer.java,
+ * classpath/java/nio/ShortBufferImpl.java,
+ * classpath/java/nio/ShortViewBufferImpl.java:
+ Replace use of gnu.classpath.Pointer with gnu.gcj.RawData,
+ and fix some formatting issues.
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt:
+ Regenerated (later version of antlr).
+ * java/nio/Buffer.h: Regenerated.
+ * java/nio/Buffer.java: Ported changes from Classpath.
+ * java/nio/ByteBuffer.h,
+ * java/nio/CharBuffer.h: Regenerated.
+ * java/nio/DirectByteBufferImpl.java: Ported changes from
+ Classpath.
+ * java/nio/DoubleBuffer.h,
+ * java/nio/FloatBuffer.h,
+ * java/nio/IntBuffer.h,
+ * java/nio/LongBuffer.h,
+ * java/nio/MappedByteBuffer.h,
+ * java/nio/MappedByteBufferImpl.h: Regenerated.
+ * java/nio/MappedByteBufferImpl.java: Ported changes from
+ Classpath.
+ * java/nio/ShortBuffer.h: Regenerated.
+
+2008-09-24 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Search for antlr.jar, if not configured.
+ * configure: Regenerate.
+
+2008-09-24 Matthias Klose <doko@ubuntu.com>
+
+ * Makefile.am: Build a gjdoc binary, if enabled.
+ * configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file.
+ * Makefile.in, */Makefile.in, configure: Regenerate.
+
+2008-09-22 Andrew Haley <aph@redhat.com>
+
+ * java/lang/String.java (toString(char[], int, int)): New method.
+
+2008-09-14 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20080914).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+ * configure.ac: Don't pass --disable-gjdoc to classpath.
+ * sources.am: Regenerated.
+ * HACKING: Mention to build gjdoc in maintainer builds.
+ * gnu/classpath/Configuration.java: Update classpath version.
+ * gcj/javaprims.h: Update.
+
+2008-09-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Replace natStringBuffer.cc
+ and natStringBuilder.cc with natAbstractStringBuffer.cc.
+ * Makefile.in: Regenerated.
+ * java/lang/AbstractStringBuffer.java:
+ (append(int)): Made native.
+ (regionMatches(int,String)): Likewise.
+ * java/lang/StringBuffer.h: Regenerated.
+ * java/lang/StringBuffer.java: Remerged with GNU Classpath.
+ * java/lang/StringBuilder.h: Regenerated.
+ * java/lang/StringBuilder.java: Remerged with GNU Classpath.
+ * java/lang/natAbstractStringBuffer.cc: Provide common
+ native methods for StringBuffer and StringBuilder.
+ * java/lang/natStringBuffer.cc,
+ * java/lang/natStringBuilder.cc: Removed.
+
+2008-09-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in,
+ * classpath/configure: Regenerated.
+ * gnu/gcj/util/natDebug.cc,
+ * gnu/gcj/xlib/natColormap.cc,
+ * gnu/gcj/xlib/natDisplay.cc,
+ * gnu/gcj/xlib/natDrawable.cc,
+ * gnu/gcj/xlib/natFont.cc,
+ * gnu/gcj/xlib/natWMSizeHints.cc,
+ * gnu/gcj/xlib/natWindow.cc,
+ * gnu/gcj/xlib/natXImage.cc:
+ Add :: prefix to namespaces.
+ * java/io/CharArrayWriter.h,
+ * java/lang/StringBuffer.h:
+ Regenerated using patched gjavah.
+ * java/lang/natStringBuffer.cc:
+ Fix naming of append(jint).
+ * java/sql/Timestamp.h: Regenerated
+ using patched gjavah.
+ * jni.cc: Rename p to functions
+ to match change in GNU Classpath.
+ * scripts/makemake.tcl: Switch
+ gnu.java.math to BC compilation.
+ * sources.am: Regenerated.
+
+2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in: Updated location of Configuration.java.
+ * classpath/lib/gnu/java/locale/LocaleData.class: Regenerated.
+
+2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in: Updated with new Java files.
+ * classpath/configure: Regenerated.
+ * classpath/tools/Makefile.am: Add missing
+ use of GJDOC_EX so --disable-gjdoc works.
+ * classpath/tools/Makefile.in: Regenerated.
+
+2008-08-15 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20080811).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+ * configure.ac: Don't pass --with-fastjar to classpath, substitute new
+ dummy value in classpath/gnu/classpath/Configuration.java.in, pass
+ --disable-gjdoc to classpath.
+ * scripts/makemake.tcl:
+ * sources.am: Regenerated.
+ * java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java:
+ New, copied from classpath, use System instead of VMSystem.
+ * java/lang/StringBuffer.java: Merge from classpath.
+ * java/lang/ClassLoader.java: Merge from classpath.
+ * gcj/javaprims.h: Update class definitions,
+ remove _Jv_jobjectRefType, jobjectRefType definitions.
+
+2008-09-30 Andreas Tobler <a.tobler@schweiz.org>
+
+ * testsuite/lib/libjava.exp (libjava_arguments): Do not append
+ "no-install" to additional_flags for *-*-darwin.
+
+2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
+ Steve Ellcey <sje@cup.hp.com>
+
+ * configure: Regenerate for new libtool.
+ * Makefile.in: Ditto.
+ * aclocal.m4: Ditto.
+ * classpath/configure: Ditto.
+ * classpath/Makefile.in: Ditto.
+ * classpath/native/jni/Makefile.in: Ditto.
+ * classpath/native/jni/classpath/Makefile.in: Ditto.
+ * classpath/native/jni/midi-dssi/Makefile.in: Ditto.
+ * classpath/native/jni/gstreamer-peer/Makefile.in: Ditto.
+ * classpath/native/jni/gconf-peer/Makefile.in: Ditto.
+ * classpath/native/jni/java-io/Makefile.in: Ditto.
+ * classpath/native/jni/native-lib/Makefile.in: Ditto.
+ * classpath/native/jni/java-util/Makefile.in: Ditto.
+ * classpath/native/jni/java-lang/Makefile.in: Ditto.
+ * classpath/native/jni/midi-alsa/Makefile.in: Ditto.
+ * classpath/native/jni/java-nio/Makefile.in: Ditto.
+ * classpath/native/jni/java-net/Makefile.in: Ditto.
+ * classpath/native/jni/xmlj/Makefile.in: Ditto.
+ * classpath/native/jni/qt-peer/Makefile.in: Ditto.
+ * classpath/native/jni/gtk-peer/Makefile.in: Ditto.
+ * classpath/native/Makefile.in: Ditto.
+ * classpath/native/jawt/Makefile.in: Ditto.
+ * classpath/native/fdlibm/Makefile.in: Ditto.
+ * classpath/native/plugin/Makefile.in: Ditto.
+ * classpath/resource/Makefile.in: Ditto.
+ * classpath/scripts/Makefile.in: Ditto.
+ * classpath/tools/Makefile.in: Ditto.
+ * classpath/doc/Makefile.in: Ditto.
+ * classpath/doc/api/Makefile.in: Ditto.
+ * classpath/lib/Makefile.in: Ditto.
+ * classpath/external/Makefile.in: Ditto.
+ * classpath/external/jsr166/Makefile.in: Ditto.
+ * classpath/external/sax/Makefile.in: Ditto.
+ * classpath/external/w3c_dom/Makefile.in: Ditto.
+ * classpath/external/relaxngDatatype/Makefile.in: Ditto.
+ * classpath/include/Makefile.in: Ditto.
+ * classpath/aclocal.m4: Ditto.
+ * classpath/examples/Makefile.in: Ditto.
+ * include/Makefile.in: Ditto.
+ * testsuite/Makefile.in: Ditto.
+ * gcj/Makefile.in: Ditto.
+
+2008-09-17 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/8995:
+
+ * defineclass.cc (_Jv_ClassReader::handleCodeAttribute):
+ Initialize thread_count.
+ * include/java-interp.h (_Jv_InterpMethod::thread_count): New
+ field.
+ (_Jv_InterpMethod::rewrite_insn_mutex): New mutex.
+ (_Jv_InterpFrame:: _Jv_InterpFrame): Pass frame_type.
+ * interpret.cc
+ (ThreadCountAdjuster): New class.
+ (_Jv_InterpMethod::thread_count): New field.
+ (_Jv_InitInterpreter): Initialize rewrite_insn_mutex.
+ Increment and decrement thread_count field in methods.
+ * interpret-run.cc (REWRITE_INSN): Check thread_count <= 1.
+ (REWRITE_INSN): Likewise.
+ Declare a ThreadCountAdjuster.
+ * java/lang/reflect/natVMProxy.cc (run_proxy): Initialize frame
+ type as frame_proxy.
+
+2008-09-05 David Daney <ddaney@avtrex.com>
+
+ * configure.ac (reduced-reflection): New AC_ARG_ENABLE.
+ (build_libgcj_reduced_reflection): New variable.
+ (BUILD_LIBGCJ_REDUCED_REFLECTION): New AM_CONDITIONAL.
+ * Makefile.am (LIBGCJ_REDUCED_REFLECTION_FLAGS): New variable.
+ (%.lo: %.list): Add LIBGCJ_REDUCED_REFLECTION_FLAGS to compile
+ command.
+ (java/util/concurrent.lo, java/util/concurrent/atomic.lo,
+ java/util/concurrent/locks.lo): Override
+ LIBGCJ_REDUCED_REFLECTION_FLAGS.
+ * Makefile.in, include/Makefile.in, testsuite/Makefile.in,
+ gcj/Makefile.in, configure: Regenerate.
+
+2008-08-22 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/8995:
+
+ * interpret-run.cc (REWRITE_INSN): Null this macro.
+
+ * include/jvm.h (class _Jv_Linker): Declare resolve_mutex, init.
+ (read_cpool_entry, write_cpool_entry): New functions.
+ * link.cc (_Jv_Linker::resolve_mutex): new.
+ (_Jv_Linker::init): New function.
+ (_Jv_Linker::resolve_pool_entry): Use {read,write}_cpool_entry
+ to ensure atomic access to constant pool entries.
+
+2008-08-07 Andrew Haley <aph@redhat.com>
+
+ * testsuite/libjava.lang/StackTrace2.java: Rewrite to prevent
+ spurious failure when some methods are inlined.
+
+2008-08-05 Matthias Klose <doko@ubuntu.com>
+
+ * HACKING: Update instructions how to build gcj/javaprims.h.
+
+2008-08-04 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/31890:
+ * gcj/javaprims.h: Regenerate class list.
+
+2008-07-16 Roger Sayle <roger@eyesopen.com>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ * scripts/jar.in: Fix portability problems with Solaris /bin/sh.
+
+2008-07-08 Matthias Klose <doko@ubuntu.com>
+
+ * libtool-version: Bump soversion.
+
+2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * gnu/gcj/convert/make-trie.h: New.
+ * gnu/gcj/convert/gen-from-JIS.c: Include it.
+ * gnu/gcj/convert/make-trie.c: Likewise.
+ Fix typos and compiler warnings, diagnose a missing argument.
+ * Makefile.am (gen_from_JIS_SOURCES): Add gnu/gcj/convert/make-trie.h.
+ * Makefile.in: Regenerate.
+
+2008-06-30 Joshua Sumali <jsumali@redhat.com>
+ Andrew Haley <aph@redhat.com>
+
+ * configure.ac (java-home): new AC_ARG_ENABLE.
+ (aot-compile-rpm): Likewise.
+ (CREATE_JAVA_HOME): new AM_CONDITIONAL.
+ (INSTALL_AOT_RPM): Likewise.
+ (gcc-suffix): new AC_ARG_WITH.
+ (arch-directory): Likewise.
+ (os-directory): Likewise.
+ (origin-name): Likewise.
+ (arch-suffix): Likewise.
+ (jvm-root-dir): Likewise.
+ (jvm-jar-dir): Likewise.
+ (python-dir): Likewise.
+ (AC_CONFIG_FILES): Add contrib/aotcompile.py, contrib/aot-compile,
+ contrib/aot-compile-rpm, contrib/rebuild-gcj-db.
+ (gcjsubdir): New AC_SUBST.
+ * Makefile.am (install-data-local): Install Python modules for
+ aot-compile. Also install an sdk style directory if
+ --enable-java-home is passed to configure.
+ (bin_SCRIPTS): Add
+ contrib/rebuild-gcj-db and contrib/aot-compile.
+ (gcjsubdir): Add.
+ (db_pathtail): Redefine in terms of gcjsubdir.
+ * contrib/aot-compile.in: New file.
+ * contrib/aotcompile.py.in: Likewise.
+ * contrib/aot-compile-rpm.in: Likewise.
+ * contrib/classfile.py: Likewise.
+ * contrib/rebuild-gcj-db.in: Likewise.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+
+2008-06-28 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (classpath-0_97_2-release).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+ * gcj/javaprims.h: Define jobjectRefType.
+ * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
+ (_Jv_JNIFunctions): Initialize GetObjectRefType.
+ * gnu/classpath/jdwp/VMVirtualMachine.java,
+ java/security/VMSecureRandom.java: Merge from classpath.
+ * HACKING: Fix typo.
+ * ChangeLog-2007: New file.
+ * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+ * gcj/Makefile.in: Regenerate.
+ * include/Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+2008-06-07 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.host (strongarm*-elf, xscale*-elf): Remove.
+
+2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.am (mostlyclean-local): Use libtool --mode=clean.
+ * Makefile.in: Regenerate.
+
+2008-05-28 Andrew Haley <aph@redhat.com>
+
+ * java/lang/Class.java (getSimpleName): Use getEnclosingClass().
+ * testsuite/libjava.lang/PR35020.java: New cases.
+ * testsuite/libjava.lang/PR35020.out: New cases.
+
+2008-05-22 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/35020
+ * java/lang/Class.java (getSimpleName): Replace incorrect use of
+ String.lastIndexOf(String, int) with String.substring.
+ * testsuite/libjava.lang/PR35020.java: New file.
+ * testsuite/libjava.lang/PR35020.out: New file.
+
+2008-05-22 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/35020
+ * java/lang/Class.java (getSimpleName): Import from GNU Classpath.
+
+2008-05-20 David Daney <ddaney@avtrex.com>
+
+ PR libgcj/36252
+ * java/lang/natString.ccn: Add
+ #include <java/io/CharConversionException.h>.
+ (init (byte[], int, int, String)): Catch and ignore
+ CharConversionException. Break out of conversion loop
+ on incomplete input.
+ * testsuite/libjava.lang/PR36252.java: New test.
+ * testsuite/libjava.lang/PR36252.out: New file, its expected output.
+ * testsuite/libjava.lang/PR36252.jar: New file, its pre-compiled
+ jar file.
+
+2008-04-19 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/35979:
+ * jni.cc (_Jv_JNI_NewStringUTF): Return NULL if bytes==NULL.
+
+2008-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35457
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-16 Andrew Haley <aph@littlepinkcloud.com>
+
+ * libgcj_bc.c: (_Jv_LookupInterfaceMethod, _Jv_MonitorExit,
+ _Jv_RegisterResource, _Jv_JNI_PopSystemFrame): Add.
+
+2008-04-16 Andrew Haley <aph@redhat.com>
+
+ * libgcj_bc.c: Sort lines.
+
+2008-04-02 Peter O'Gorman <pogma@thewrittenword.com>
+
+ PR bootstrap/35216
+ * scripts/makemake.tcl: Replace org/omg build with build of all
+ its subpackages.
+ * sources.am: Regenerate.
+ * Makefile.in: Regenerate.
+
+2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.am (install-data-local): Rewrite to be more efficient,
+ using awk, and `install' with multiple files at once. Do not gather
+ more than 50 files in one go to avoid hitting command line limits.
+ (install_data_local_split): New variable.
+ * aclocal.m4: Regenerate.
+ * configure: Likewise.
+ * Makefile.in: Likewise.
+ * gcj/Makefile.in: Likewise.
+ * include/Makefile.in: Likewise.
+ * testsuite/Makefile.in: Likewise.
+
+ * Makefile.am (write_entries_to_file_split): New variable.
+ (write_entries_to_file): Write out that many entries at once,
+ for speed.
+ * Makefile.in: Regenerate.
+
+2008-03-13 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
+ Check loading constraints.
+ (_Jv_CheckOrCreateLoadingConstraint): New function.
+ * java/lang/ClassLoader.java (loadingConstraints): New field.
+ * link.cc (_Jv_Linker::find_field): Use
+ _Jv_CheckOrCreateLoadingConstraint.
+ (_Jv_Linker::check_loading_constraints): New function.
+ (_Jv_Linker::resolve_method_entry): Use
+ check_loading_constraints.
+ (_Jv_Linker::append_partial_itable): Likewise.
+ (_Jv_Linker::layout_vtable_methods): Likewise.
+ * include/jvm.h (_Jv_Linker::check_loading_constraints): Declare.
+ (_Jv_CheckOrCreateLoadingConstraint): Declare.
+
+2008-03-10 Jim Meyering <meyering@redhat.com>
+
+ Don't leak upon failed realloc.
+ * gnu/classpath/natSystemProperties.cc
+ (SystemProperties::insertSystemProperties):
+
+2008-03-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * HACKING: Fix grep patterns.
+
+2008-03-04 David Daney <ddaney@avtrex.com>
+
+ * scripts/makemake.tcl (properties_map): Don't exclude
+ gnu/java/locale.
+ * gnu/java/lang/MainThread.java (Klocale, Kcalendar): Remove.
+ * java/text/Collator.java: Organize imports.
+ (getAvailableLocales): Merge from classpath.
+ (getInstance): Same.
+ * sources.am: Regenerate.
+ * Makefile.in: Regenerate.
+ * classpath/lib/java/text/DecimalFormatSymbols.class,
+ classpath/lib/java/text/DateFormatSymbols.class,
+ classpath/lib/java/util/Currency.class,
+ classpath/lib/java/util/Calendar.class,
+ classpath/lib/gnu/java/lang/MainThread.class,
+ classpath/lib/java/text/Collator.class,
+ gnu/java/lang/MainThread.h,
+ java/text/DateFormatSymbols.h,
+ java/text/DecimalFormatSymbols.h,
+ java/util/Calendar.h,
+ java/util/Currency.h: Regenerate.
+ * classpath/lib/gnu/java/locale/LocaleInformation_en_PH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_AR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_BW.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de_BE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_te_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_iw_IL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fr_LU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_AE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sk_SK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fr_CA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_MX.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_EG.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_lt_LT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_ZW.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_QA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_gv_GB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_yi_US.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_SD.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_IQ.class,
+ classpath/lib/gnu/java/locale/Calendar_de.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_HN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_YE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de_CH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_PR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_BH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_mi_NZ.class,
+ classpath/lib/gnu/java/locale/Calendar_nl.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fr_BE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_EC.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_mt_MT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_HK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_CL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_kw_GB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_mk_MK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_ES.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_cs_CZ.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_nl_NL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_CA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_bs_BA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ru_UA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_US.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fr_CH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ja_JP.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_it_CH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_PA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_kl_GL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_el_GR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_DO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_tr_TR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_PE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_zh_TW.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_OM.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_KW.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ga_IE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_hu_HU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_nl.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ca_ES.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_zh_SG.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de_AT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_LB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_PY.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_nl_BE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_af_ZA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_he_IL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ro_RO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_vi_VN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_cy_GB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_hi_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_CO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_JO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_br_FR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ta_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_ZA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fr_FR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_DZ.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_eu_ES.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_TN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_tl_PH.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_pl_PL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sv_FI.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_id_ID.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_GB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_uz_UZ.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fi_FI.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_IE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_MA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_be_BY.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_bn_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_pt_PT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_BO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_AU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_NI.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_zh_CN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_VE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ka_GE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_it_IT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_US.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sl_SI.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_DK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_CR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ru_RU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sq_AL.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de_DE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_GT.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sr_YU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_da_DK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_gd_GB.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_hr_HR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_zh_HK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_uk_UA.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ko_KR.class,
+ classpath/lib/gnu/java/locale/Calendar_en.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_LY.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_pt_BR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_nn_NO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_NZ.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_SV.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ur_PK.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_et_EE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_lv_LV.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_es_UY.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_oc_FR.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fo_FO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_de_LU.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_gl_ES.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_en_SG.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_se_NO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_mr_IN.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_tg_TJ.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_no_NO.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_ar_SY.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_sv_SE.class,
+ classpath/lib/gnu/java/locale/LocaleInformation_fa_IR.class,
+ classpath/lib/gnu/java/locale/Calendar.class,
+ gnu/java/locale/LocaleInformation_fr_CA.java,
+ gnu/java/locale/LocaleInformation_sk_SK.java,
+ gnu/java/locale/LocaleInformation_ar_BH.java,
+ gnu/java/locale/LocaleInformation_ko_KR.h,
+ gnu/java/locale/LocaleInformation_bs_BA.h,
+ gnu/java/locale/LocaleInformation_nn_NO.h,
+ gnu/java/locale/LocaleInformation_en_NZ.h,
+ gnu/java/locale/LocaleInformation_en_ZW.java,
+ gnu/java/locale/LocaleInformation_es_US.h,
+ gnu/java/locale/LocaleInformation_es_SV.h,
+ gnu/java/locale/LocaleInformation_de_LU.java,
+ gnu/java/locale/LocaleInformation_fo_FO.java,
+ gnu/java/locale/LocaleInformation_oc_FR.java,
+ gnu/java/locale/LocaleInformation_it_CH.h,
+ gnu/java/locale/LocaleInformation_de.h,
+ gnu/java/locale/LocaleInformation_el_GR.h,
+ gnu/java/locale/LocaleInformation_tr_TR.h,
+ gnu/java/locale/LocaleInformation_ka_GE.java,
+ gnu/java/locale/LocaleInformation_nn_NO.java,
+ gnu/java/locale/LocaleInformation_se_NO.h,
+ gnu/java/locale/LocaleInformation_ga_IE.h,
+ gnu/java/locale/LocaleInformation_ru_UA.java,
+ gnu/java/locale/LocaleInformation_fa_IR.java,
+ gnu/java/locale/LocaleInformation_ja_JP.java,
+ gnu/java/locale/LocaleInformation_sv_SE.h,
+ gnu/java/locale/LocaleInformation_bn_IN.java,
+ gnu/java/locale/LocaleInformation_af_ZA.h,
+ gnu/java/locale/LocaleInformation_es_PE.java,
+ gnu/java/locale/LocaleInformation_hi_IN.h,
+ gnu/java/locale/LocaleInformation_en_ZA.java,
+ gnu/java/locale/LocaleInformation_es_CO.h,
+ gnu/java/locale/LocaleInformation_es_AR.h,
+ gnu/java/locale/LocaleInformation_en_PH.h,
+ gnu/java/locale/LocaleInformation_ta_IN.h,
+ gnu/java/locale/LocaleInformation_en_ZA.h,
+ gnu/java/locale/LocaleInformation_nl_NL.java,
+ gnu/java/locale/LocaleInformation_ar_KW.java,
+ gnu/java/locale/LocaleInformation_fr_FR.h,
+ gnu/java/locale/LocaleInformation_ar_LY.java,
+ gnu/java/locale/LocaleInformation_uz_UZ.java,
+ gnu/java/locale/LocaleInformation_tl_PH.h,
+ gnu/java/locale/LocaleInformation_fi_FI.java,
+ gnu/java/locale/LocaleInformation_pl_PL.h,
+ gnu/java/locale/LocaleInformation_sv_FI.h,
+ gnu/java/locale/LocaleInformation_es_MX.h,
+ gnu/java/locale/LocaleInformation_uz_UZ.h,
+ gnu/java/locale/LocaleInformation_fi_FI.h,
+ gnu/java/locale/LocaleInformation_ar_SD.java,
+ gnu/java/locale/LocaleInformation_ar_QA.h,
+ gnu/java/locale/LocaleInformation_kw_GB.java,
+ gnu/java/locale/LocaleInformation_ar_YE.h,
+ gnu/java/locale/LocaleInformation_es_PR.java,
+ gnu/java/locale/LocaleInformation_zh_SG.java,
+ gnu/java/locale/LocaleInformation_ca_ES.java,
+ gnu/java/locale/LocaleInformation_ka_GE.h,
+ gnu/java/locale/LocaleInformation_ar_BH.h,
+ gnu/java/locale/LocaleInformation_fr_CH.java,
+ gnu/java/locale/Calendar_nl.h,
+ gnu/java/locale/LocaleInformation_en_DK.h,
+ gnu/java/locale/LocaleInformation.h,
+ gnu/java/locale/LocaleInformation_ar_JO.java,
+ gnu/java/locale/LocaleInformation_br_FR.java,
+ gnu/java/locale/LocaleInformation_ru_RU.java,
+ gnu/java/locale/LocaleInformation_de_BE.java,
+ gnu/java/locale/LocaleInformation_ru_RU.h,
+ gnu/java/locale/LocaleInformation_de_DE.h,
+ gnu/java/locale/LocaleInformation_hr_HR.h,
+ gnu/java/locale/LocaleInformation_gd_GB.h,
+ gnu/java/locale/LocaleInformation_nl.java,
+ gnu/java/locale/LocaleInformation_en_GB.java,
+ gnu/java/locale/LocaleInformation_uk_UA.h,
+ gnu/java/locale/LocaleInformation_ar_LY.h,
+ gnu/java/locale/LocaleInformation_ru_UA.h,
+ gnu/java/locale/LocaleInformation_es_UY.java,
+ gnu/java/locale/LocaleInformation_fr_CH.h,
+ gnu/java/locale/LocaleInformation_lv_LV.h,
+ gnu/java/locale/LocaleInformation_de.java,
+ gnu/java/locale/LocaleInformation_el_GR.java,
+ gnu/java/locale/LocaleInformation_es_CR.java,
+ gnu/java/locale/LocaleInformation_ar_IN.h,
+ gnu/java/locale/LocaleInformation_es_DO.h,
+ gnu/java/locale/LocaleInformation_es_PE.h,
+ gnu/java/locale/LocaleInformation_ar_OM.h,
+ gnu/java/locale/LocaleInformation_zh_HK.java,
+ gnu/java/locale/LocaleInformation_mr_IN.java,
+ gnu/java/locale/LocaleInformation_no_NO.h,
+ gnu/java/locale/LocaleInformation_es_EC.java,
+ gnu/java/locale/LocaleInformation_ro_RO.java,
+ gnu/java/locale/LocaleInformation_he_IL.java,
+ gnu/java/locale/Calendar.java,
+ gnu/java/locale/LocaleInformation_ar_LB.h,
+ gnu/java/locale/LocaleInformation_fa_IR.h,
+ gnu/java/locale/LocaleInformation_es_CO.java,
+ gnu/java/locale/LocaleInformation_cy_GB.h,
+ gnu/java/locale/LocaleInformation_en_SG.java,
+ gnu/java/locale/LocaleInformation_mk_MK.java,
+ gnu/java/locale/LocaleInformation_es_ES.java,
+ gnu/java/locale/LocaleInformation_eu_ES.java,
+ gnu/java/locale/LocaleInformation_en_BW.h,
+ gnu/java/locale/LocaleInformation_es_VE.java,
+ gnu/java/locale/LocaleInformation_zh_CN.java,
+ gnu/java/locale/LocaleInformation_hr_HR.java,
+ gnu/java/locale/LocaleInformation_gd_GB.java,
+ gnu/java/locale/LocaleInformation_se_NO.java,
+ gnu/java/locale/LocaleInformation_te_IN.h,
+ gnu/java/locale/LocaleInformation_en.h,
+ gnu/java/locale/LocaleInformation_ar_TN.h,
+ gnu/java/locale/Calendar_nl.java,
+ gnu/java/locale/LocaleInformation_es_US.java,
+ gnu/java/locale/LocaleInformation_nl_BE.java,
+ gnu/java/locale/LocaleInformation_es_PY.java,
+ gnu/java/locale/LocaleInformation_sk_SK.h,
+ gnu/java/locale/LocaleInformation_fr_CA.h,
+ gnu/java/locale/LocaleInformation_be_BY.java,
+ gnu/java/locale/LocaleInformation_lv_LV.java,
+ gnu/java/locale/LocaleInformation_lt_LT.h,
+ gnu/java/locale/LocaleInformation_gv_GB.java,
+ gnu/java/locale/LocaleInformation_ar_MA.h,
+ gnu/java/locale/LocaleInformation_en_IE.h,
+ gnu/java/locale/LocaleInformation_es_CL.java,
+ gnu/java/locale/LocaleInformation_bn_IN.h,
+ gnu/java/locale/Calendar_de.java,
+ gnu/java/locale/LocaleInformation_yi_US.h,
+ gnu/java/locale/LocaleInformation_ar_DZ.java,
+ gnu/java/locale/LocaleInformation_es_GT.java,
+ gnu/java/locale/Calendar_de.h,
+ gnu/java/locale/LocaleInformation_es_NI.h,
+ gnu/java/locale/LocaleInformation_en_CA.java,
+ gnu/java/locale/LocaleInformation_zh_CN.h,
+ gnu/java/locale/LocaleInformation_es_VE.h,
+ gnu/java/locale/LocaleInformation_de_CH.h,
+ gnu/java/locale/LocaleInformation_en_NZ.java,
+ gnu/java/locale/LocaleInformation_mi_NZ.java,
+ gnu/java/locale/LocaleInformation_en_US.h,
+ gnu/java/locale/LocaleInformation_sl_SI.h,
+ gnu/java/locale/LocaleInformation_et_EE.java,
+ gnu/java/locale/LocaleInformation_mi_NZ.h,
+ gnu/java/locale/LocaleInformation_ar_QA.java,
+ gnu/java/locale/LocaleInformation_en_HK.java,
+ gnu/java/locale/LocaleInformation_ar_IQ.java,
+ gnu/java/locale/LocaleInformation_ar_OM.java,
+ gnu/java/locale/LocaleInformation_fr_FR.java,
+ gnu/java/locale/LocaleInformation_es_CR.h,
+ gnu/java/locale/LocaleInformation_en.java,
+ gnu/java/locale/LocaleInformation_es_GT.h,
+ gnu/java/locale/LocaleInformation_ur_PK.java,
+ gnu/java/locale/LocaleInformation_pt_PT.java,
+ gnu/java/locale/LocaleInformation_et_EE.h,
+ gnu/java/locale/LocaleInformation_ar_IN.java,
+ gnu/java/locale/LocaleInformation_es_AR.java,
+ gnu/java/locale/LocaleInformation_en_PH.java,
+ gnu/java/locale/LocaleInformation_en_IN.h,
+ gnu/java/locale/LocaleInformation_kl_GL.h,
+ gnu/java/locale/LocaleInformation_gl_ES.h,
+ gnu/java/locale/LocaleInformation_sq_AL.java,
+ gnu/java/locale/LocaleInformation_en_SG.h,
+ gnu/java/locale/LocaleInformation_de_CH.java,
+ gnu/java/locale/LocaleInformation_ga_IE.java,
+ gnu/java/locale/LocaleInformation_no_NO.java,
+ gnu/java/locale/LocaleInformation_de_AT.java,
+ gnu/java/locale/LocaleInformation_tg_TJ.h,
+ gnu/java/locale/LocaleInformation_hu_HU.h,
+ gnu/java/locale/LocaleInformation_es_SV.java,
+ gnu/java/locale/LocaleInformation_zh_SG.h,
+ gnu/java/locale/LocaleInformation_ca_ES.h,
+ gnu/java/locale/LocaleInformation_de_AT.h,
+ gnu/java/locale/LocaleInformation_ar_SY.h,
+ gnu/java/locale/LocaleInformation_he_IL.h,
+ gnu/java/locale/LocaleInformation_ro_RO.h,
+ gnu/java/locale/LocaleInformation_zh_TW.java,
+ gnu/java/locale/LocaleInformation_es_NI.java,
+ gnu/java/locale/LocaleInformation_ar_JO.h,
+ gnu/java/locale/LocaleInformation_br_FR.h,
+ gnu/java/locale/Calendar_en.java,
+ gnu/java/locale/LocaleInformation_eu_ES.h,
+ gnu/java/locale/LocaleInformation_pt_BR.java,
+ gnu/java/locale/LocaleInformation_tg_TJ.java,
+ gnu/java/locale/LocaleInformation_iw_IL.h,
+ gnu/java/locale/LocaleInformation_ar_AE.h,
+ gnu/java/locale/LocaleInformation_fr_LU.h,
+ gnu/java/locale/LocaleInformation_id_ID.h,
+ gnu/java/locale/LocaleInformation_sv_SE.java,
+ gnu/java/locale/LocaleInformation_en_GB.h,
+ gnu/java/locale/LocaleInformation_ar_EG.h,
+ gnu/java/locale/LocaleInformation_cy_GB.java,
+ gnu/java/locale/LocaleInformation_be_BY.h,
+ gnu/java/locale/LocaleInformation_yi_US.java,
+ gnu/java/locale/LocaleInformation_tr_TR.java,
+ gnu/java/locale/LocaleInformation_pt_PT.h,
+ gnu/java/locale/LocaleInformation_ar_IQ.h,
+ gnu/java/locale/LocaleInformation_cs_CZ.java,
+ gnu/java/locale/LocaleInformation_ar_TN.java,
+ gnu/java/locale/LocaleInformation_ko_KR.java,
+ gnu/java/locale/LocaleInformation_ar_AE.java,
+ gnu/java/locale/LocaleInformation_fr_LU.java,
+ gnu/java/locale/LocaleInformation_it_IT.h,
+ gnu/java/locale/LocaleInformation_mt_MT.java,
+ gnu/java/locale/LocaleInformation_fr_BE.h,
+ gnu/java/locale/LocaleInformation_es_DO.java,
+ gnu/java/locale/LocaleInformation_ta_IN.java,
+ gnu/java/locale/LocaleInformation_es_CL.h,
+ gnu/java/locale/LocaleInformation_te_IN.java,
+ gnu/java/locale/LocaleInformation_ar_YE.java,
+ gnu/java/locale/LocaleInformation_kw_GB.h,
+ gnu/java/locale/LocaleInformation_uk_UA.java,
+ gnu/java/locale/LocaleInformation_cs_CZ.h,
+ gnu/java/locale/LocaleInformation_da_DK.h,
+ gnu/java/locale/LocaleInformation_en_CA.h,
+ gnu/java/locale/Calendar_en.h,
+ gnu/java/locale/LocaleInformation_pt_BR.h,
+ gnu/java/locale/LocaleInformation_ar_SY.java,
+ gnu/java/locale/LocaleInformation_lt_LT.java,
+ gnu/java/locale/LocaleInformation_vi_VN.java,
+ gnu/java/locale/LocaleInformation_ur_PK.h,
+ gnu/java/locale/LocaleInformation_en_IN.java,
+ gnu/java/locale/LocaleInformation_kl_GL.java,
+ gnu/java/locale/LocaleInformation_ja_JP.h,
+ gnu/java/locale/LocaleInformation_es_UY.h,
+ gnu/java/locale/LocaleInformation_es_PA.h,
+ gnu/java/locale/LocaleInformation_de_LU.h,
+ gnu/java/locale/LocaleInformation_fo_FO.h,
+ gnu/java/locale/LocaleInformation_oc_FR.h,
+ gnu/java/locale/LocaleInformation_zh_TW.h,
+ gnu/java/locale/LocaleInformation_hu_HU.java,
+ gnu/java/locale/LocaleInformation_ar_KW.h,
+ gnu/java/locale/LocaleInformation_mr_IN.h,
+ gnu/java/locale/LocaleInformation_ar_EG.java,
+ gnu/java/locale/LocaleInformation_nl.h,
+ gnu/java/locale/LocaleInformation_af_ZA.java,
+ gnu/java/locale/LocaleInformation_es_PY.h,
+ gnu/java/locale/LocaleInformation_nl_BE.h,
+ gnu/java/locale/LocaleInformation_vi_VN.h,
+ gnu/java/locale/LocaleInformation_es_PA.java,
+ gnu/java/locale/Calendar.h,
+ gnu/java/locale/LocaleInformation_da_DK.java,
+ gnu/java/locale/LocaleInformation_de_BE.h,
+ gnu/java/locale/LocaleInformation_ar_DZ.h,
+ gnu/java/locale/LocaleInformation_bs_BA.java,
+ gnu/java/locale/LocaleInformation_id_ID.java,
+ gnu/java/locale/LocaleInformation_en_US.java,
+ gnu/java/locale/LocaleInformation_sl_SI.java,
+ gnu/java/locale/LocaleInformation_fr_BE.java,
+ gnu/java/locale/LocaleInformation_ar_LB.java,
+ gnu/java/locale/LocaleInformation_it_CH.java,
+ gnu/java/locale/LocaleInformation_en_ZW.h,
+ gnu/java/locale/LocaleInformation_gv_GB.h,
+ gnu/java/locale/LocaleInformation_es_HN.java,
+ gnu/java/locale/LocaleInformation_es_BO.h,
+ gnu/java/locale/LocaleInformation_en_AU.h,
+ gnu/java/locale/LocaleInformation_ar_SD.h,
+ gnu/java/locale/LocaleInformation_sr_YU.java,
+ gnu/java/locale/LocaleInformation_es_HN.h,
+ gnu/java/locale/LocaleInformation_iw_IL.java,
+ gnu/java/locale/LocaleInformation_it_IT.java,
+ gnu/java/locale/LocaleInformation_es_MX.java,
+ gnu/java/locale/LocaleInformation_es_PR.h,
+ gnu/java/locale/LocaleInformation_ar_MA.java,
+ gnu/java/locale/LocaleInformation_en_IE.java,
+ gnu/java/locale/LocaleInformation.java,
+ gnu/java/locale/LocaleInformation_en_DK.java,
+ gnu/java/locale/LocaleInformation_es_EC.h,
+ gnu/java/locale/LocaleInformation_mt_MT.h,
+ gnu/java/locale/LocaleInformation_hi_IN.java,
+ gnu/java/locale/LocaleInformation_en_AU.java,
+ gnu/java/locale/LocaleInformation_es_BO.java,
+ gnu/java/locale/LocaleInformation_gl_ES.java,
+ gnu/java/locale/LocaleInformation_en_BW.java,
+ gnu/java/locale/LocaleInformation_en_HK.h,
+ gnu/java/locale/LocaleInformation_de_DE.java,
+ gnu/java/locale/LocaleInformation_mk_MK.h,
+ gnu/java/locale/LocaleInformation_es_ES.h,
+ gnu/java/locale/LocaleInformation_sq_AL.h,
+ gnu/java/locale/LocaleInformation_sv_FI.java,
+ gnu/java/locale/LocaleInformation_pl_PL.java,
+ gnu/java/locale/LocaleInformation_tl_PH.java,
+ gnu/java/locale/LocaleInformation_sr_YU.h,
+ gnu/java/locale/LocaleInformation_nl_NL.h,
+ gnu/java/locale/LocaleInformation_zh_HK.h,
+ java/text/DateFormatSymbols.java,
+ java/text/DecimalFormatSymbols.java,
+ java/util/Currency.java,
+ java/util/Calendar.java: Remove
+
+2008-03-03 Andrew Haley <aph@littlepinkcloud.com>
+
+ * testsuite/lib/libjava.exp (libjava_arguments): Use regexp
+ instead of string match when checking for linux targets.
+
+2008-03-03 Matthias Klose <doko@ubuntu.com>
+
+ * classpath/tools/classes/gnu/classpath/tools/orbd/Main.class,
+ classpath/lib/gnu/java/locale/LocaleData.class
+ classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
+ classpath/lib/gnu/gcj/convert/Convert.class
+ classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class: Regenerate.
+
+2008-03-02 Jakub Jelinek <jakub@redhat.com>
+
+ * gnu/gcj/convert/Convert.java (version): Update copyright notice
+ dates.
+ * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
+
+2008-02-27 David Daney <ddaney@avtrex.com>
+
+ * HACKING: Correct typo in find command.
+
+2008-02-27 David Daney <ddaney@avtrex.com>
+
+ * gnu/java/net/natPlainSocketImplPosix.cc (bind): Remove check for
+ null host.
+
+2008-02-20 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/24170:
+ * java/io/natFilePosix.cc (File::performList): Don't use
+ readdir_r.
+ * configure, include/config.h.in: Rebuilt.
+ * configure.ac: Don't check for readdir_r.
+
+2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR libgcj/33085
+ * configure: Regenerate.
+
+2008-02-15 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR testsuite/35208
+ * testsuite/libjava.jvmti/interp/natgetstacktrace.cc
+ (Java_getstacktrace_natRunner): Increase the usleep time to a value
+ which prevents OS-X to get into a deadlock.
+
+2008-02-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR libgcj/30071
+ * Makefile.am (install-exec-hook): Add install-binPROGRAMS.
+ * Makefile.in: Regenerate.
+
+2008-01-24 David Edelsohn <edelsohn@gnu.org>
+
+ * shlibpath.m4: Add AIX 6 support.
+ * configure: Regenerate.
+
+2008-01-18 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/33887
+ * link.cc (_Jv_Linker::prepare_constant_time_tables):
+ has_interfaces is boolean, treat it as such.
+
+2008-01-04 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/34444
+ * java/lang/natClass.cc (Class::getEnclosingClass): Call
+ getDeclaringClass().
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index e3ed9b9b24a..1964ec56b20 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -868,7 +868,7 @@ gij_LDADD = -L$(here)/.libs libgij.la
gij_DEPENDENCIES = libgij.la
## Build an ecjx from a .jar.
-ecjx_SOURCES =
+ecjx_SOURCES = ecjx.cc
## We use the BC ABI here so that we don't need to compile ecj.jar.
## Hopefully the user has compiled it into his system .db.
## However, even if not it will run reasonably quickly.
@@ -888,10 +888,12 @@ else !ENABLE_SHARED
ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
endif !ENABLE_SHARED
-ecjx_LDADD = -L$(here)/.libs libgcj.la
+ecjx_LDADD = -L$(here)/.libs $(extra_ldflags)
ecjx_DEPENDENCIES = libgcj.la libgcj.spec
if USE_LIBGCJ_BC
ecjx_DEPENDENCIES += libgcj_bc.la
+else
+ecjx_LDADD += libgcj.la
endif
else !NATIVE
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 0a248409649..bc6f16ed663 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -76,7 +76,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_19 = gen-from-JIS
@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_20 = libgcj_bc.la
-@XLIB_AWT_TRUE@am__append_21 = $(xlib_nat_headers)
+@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_21 = libgcj.la
+@XLIB_AWT_TRUE@am__append_22 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
@@ -467,8 +468,9 @@ libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__EXEEXT_4 = \
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS)
-am_ecjx_OBJECTS =
+am_ecjx_OBJECTS = ecjx.$(OBJEXT)
ecjx_OBJECTS = $(am_ecjx_OBJECTS)
+@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__DEPENDENCIES_6 = libgcj.la
am_gappletviewer_OBJECTS =
gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS)
am_gc_analyze_OBJECTS =
@@ -8343,7 +8345,7 @@ gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
gij_LINK = $(GCJLINK)
gij_LDADD = -L$(here)/.libs libgij.la
gij_DEPENDENCIES = libgij.la
-ecjx_SOURCES =
+ecjx_SOURCES = ecjx.cc
ECJX_BASE_FLAGS = -findirect-dispatch \
--main=org.eclipse.jdt.internal.compiler.batch.GCCMain
@@ -8353,7 +8355,8 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
@ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
@NATIVE_FALSE@ecjx_LDADD =
-@NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la
+@NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \
+@NATIVE_TRUE@ $(am__append_21)
@NATIVE_FALSE@ecjx_DEPENDENCIES =
@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
@NATIVE_TRUE@ $(am__append_20)
@@ -8572,7 +8575,7 @@ gnu/gcj/xlib/natXImage.cc \
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_21)
+headers_to_make = $(nat_headers) $(am__append_22)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
@@ -9554,6 +9557,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boehm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/darwin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defineclass.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecjx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index 76da60511ab..9416782db32 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,4365 +1,15 @@
-2008-11-10 Andrew Haley <aph@redhat.com>
+2009-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
- (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector):
- Remove bogus gdk_threads_leave ();
-
-2008-11-05 Andrew Haley <aph@redhat.com>
-
- * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java (getKerning):
- Return result in a float[], not a Point2D.
- (performDefaultLayout): Call getKerning with a float[].
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
- (getKerning): Return result in a float[], not a Point2D.
-
-2008-11-05 Andrew Haley <aph@redhat.com>
-
- * tools/Makefile.am (UPDATE_TOOLS_ZIP, CREATE_TOOLS_ZIP): Exclude
- .svn directories.
-
-2008-10-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/ac_prog_antlr.m4:
- Remove redundant checks.
- * tools/Makefile.am:
- Use gjdoc_gendir when calling antlr.
-
-2008-10-17 Robert Lougher <rob.lougher@gmail.com>
-
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
- (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector):
- Release 'fonts'.
-
-2008-10-16 Tom Tromey <tromey@redhat.com>
-
- * tools/gnu/classpath/tools/jar/WorkSet.java (initSet): Use
- foreach. Change argument type.
- (WorkSet): Change argument type.
- * tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use
- foreach.
- * tools/gnu/classpath/tools/jar/Creator.java
- (writeCommandLineEntries): Use foreach.
- (getAllEntries): Likewise.
-
-2008-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Remove superfluous AC_PROG_JAVA call.
-
-2008-10-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/ac_prog_antlr:
- Check for cantlr as well.
- * tools/Makefile.am:
- Only build GJDoc parser when both
- CREATE_GJDOC and CREATE_GJDOC_PARSER
- are on.
-
-2008-10-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Add regen-gjdoc-parser option,
- and separate antlr tests.
- * m4/ac_prog_antlr.m4:
- Turn single test into AC_LIB_ANTLR
- and AC_PROG_ANTLR.
- * m4/ac_prog_java.m4:
- Quote tests.
- * tools/Makefile.am:
- Support CREATE_GJDOC_PARSER option.
-
-2008-09-29 Matthias Klose <doko@ubuntu.com>
-
- * m4/ac_prog_antlr.m4:
- Check for antlr binary as well.
-
-2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Always check for JAVA prior to ANTLR check.
- * java/lang/ThreadLocal.java,
- * java/lang/ThreadLocalMap.java:
- Rename notFound back to sentinel to avoid
- potential issues with use of the old name.
- Cleanup formatting.
- * java/nio/Buffer.java,
- * java/nio/ByteBuffer.java,
- * java/nio/ByteBufferImpl.java,
- * java/nio/CharBuffer.java,
- * java/nio/CharViewBufferImpl.java,
- * java/nio/DirectByteBufferImpl.java,
- * java/nio/DoubleBuffer.java,
- * java/nio/DoubleBufferImpl.java,
- * java/nio/FloatBuffer.java,
- * java/nio/FloatBufferImpl.java,
- * java/nio/IntBuffer.java,
- * java/nio/LongBuffer.java,
- * java/nio/LongBufferImpl.java,
- * java/nio/MappedByteBuffer.java,
- * java/nio/ShortBuffer.java,
- * java/nio/ShortBufferImpl.java,
- * java/nio/ShortViewBufferImpl.java:
- Cleanup formatting.
-
-2008-09-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/System.java (getenv): Reinstate
- use of EnvironmentMap as opposed to raw
- HashMap.
-
-2008-09-16 Mario Torre <neugens@aicas.com>
-
- * java/lang/System.java (getenv): Fix env entries of the form
- key=value=value=value not parsed correctly.
-
-2008-09-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- Reported by: Matthias Klose
- * tools/Makefile.am:
- Simplify the addition of the ANTLR
- JAR file to the classpath.
-
-2008-09-14 Matthias Klose <doko@ubuntu.com>
-
- * m4/ac_prog_antlr.m4:
- Allow use of runantlr on systems
- which have it (Debian/Ubuntu).
-
-2008-09-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * examples/Makefile.am:
- Check lib directly as well as glibj.zip
- for boot classes.
- * m4/acinclude.m4:
- Only require the class files to be built
- to allow the tools and examples to be built,
- not the installation of glibj.zip.
- * tools/Makefile.am:
- Check lib directly as well as glibj.zip
- for boot classes.
-
-2008-09-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * examples/Makefile.am,
- * lib/Makefile.am:
- Add GCJ rules.
- * m4/ac_prog_javac.m4:
- Check whether JAVAC is gcj.
- * m4/ac_prog_javac_works.m4:
- Add GCJ rules.
- * m4/acinclude.m4:
- Don't bother checking for -J
- if using GCJ.
- * tools/Makefile.am:
- Add GCJ rules.
-
-2007-08-23 Daniel Frampton <zyridium@zyridium.net>
-
- * AUTHORS: Added.
- * java/lang/InheritableThreadLocal.java,
- * java/lang/Thread.java,
- * java/lang/ThreadLocal.java:
- Modified to use java.lang.ThreadLocalMap.
- * java/lang/ThreadLocalMap.java:
- New cheaper ThreadLocal-specific WeakHashMap.
-
-2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * java/util/zip/ZipEntry.java:
- Use byte fields instead of integer fields,
- store the time as well as the DOS time and
- don't retain a global Calendar instance.
- (setDOSTime(int)): Set KNOWN_DOSTIME instead
- of KNOWN_TIME, and unset KNOWN_TIME.
- (getDOSTime()): Compute DOS time from UNIX time
- only when needed.
- (clone()): Provide cloning via the ZipEntry constructor
- where possible.
- (setTime(long)): Don't compute DOS time at this point.
- (getCalendar()): Removed.
-
-2008-09-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/getopt/Parser.java:
- (setHeader(String)): Make synchronized.
- (setFooter(String)): Likewise.
- * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
- (reset()): Make synchronized.
- (name(Class)): Likewise.
-
-2008-09-04 Robert Schuster <robertschuster@fsfe.org>
-
- * gnu/java/nio/charset/ByteDecodeLoopHelper:
- (arrayDecodeLoop): Added new break label, escape to that label.
- * gnu/java/nio/charset/ByteEncodeLoopHelper:
- (arrayDecodeLoop): Added new break label, escape to that label.
-
-2008-09-04 Robert Schuster <robertschuster@fsfe.org>
-
- * java/text/DecimalFormat.java:
- (scanFix): Use 'i + 1' when looking at following character.
- (scanNegativePattern): Dito.
-
-2008-09-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/javah/ClassWrapper.java:
- (makeVtable()): Populate methodNameMap.
- (printMethods(CniPrintStream)): Always use pre-populated
- methodNameMap for bridge targets.
-
-2008-09-01 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override
- annotation to allow compilation on javac < 1.6 and ecj < 3.4.
-
-2008-09-01 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support
- new Escher API.
- * gnu/java/awt/peer/x/XImage.java (getSource): method implemented.
- * gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer
- for getSource.
-
-2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/regex/BacktrackStack.java,
- * gnu/java/util/regex/CharIndexed.java,
- * gnu/java/util/regex/CharIndexedCharArray.java,
- * gnu/java/util/regex/CharIndexedCharSequence.java,
- * gnu/java/util/regex/CharIndexedInputStream.java,
- * gnu/java/util/regex/CharIndexedString.java,
- * gnu/java/util/regex/CharIndexedStringBuffer.java,
- * gnu/java/util/regex/RE.java,
- * gnu/java/util/regex/REException.java,
- * gnu/java/util/regex/REFilterInputStream.java,
- * gnu/java/util/regex/REMatch.java,
- * gnu/java/util/regex/REMatchEnumeration.java,
- * gnu/java/util/regex/RESyntax.java,
- * gnu/java/util/regex/REToken.java,
- * gnu/java/util/regex/RETokenAny.java,
- * gnu/java/util/regex/RETokenBackRef.java,
- * gnu/java/util/regex/RETokenChar.java,
- * gnu/java/util/regex/RETokenEnd.java,
- * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
- * gnu/java/util/regex/RETokenEndSub.java,
- * gnu/java/util/regex/RETokenIndependent.java,
- * gnu/java/util/regex/RETokenLookAhead.java,
- * gnu/java/util/regex/RETokenLookBehind.java,
- * gnu/java/util/regex/RETokenNamedProperty.java,
- * gnu/java/util/regex/RETokenOneOf.java,
- * gnu/java/util/regex/RETokenPOSIX.java,
- * gnu/java/util/regex/RETokenRange.java,
- * gnu/java/util/regex/RETokenRepeated.java,
- * gnu/java/util/regex/RETokenStart.java,
- * gnu/java/util/regex/RETokenWordBoundary.java,
- * gnu/java/util/regex/UncheckedRE.java:
- Fix indentation.
-
-2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/regex/RETokenStart.java:
- (getMaximumLength()): Add Override annotation.
- (matchThis(CharIndexed, REMatch)): Likewise.
- (returnsFixedLengthMatches()): Renamed from
- returnsFixedLengthmatches and added Override
- annotation.
- (findFixedLengthMatches(CharIndexed,REMatch,int)):
- Add Override annotation.
- (dump(CPStringBuilder)): Likewise.
- * gnu/javax/print/ipp/IppRequest.java:
- (RequestWriter.writeOperationAttributes(AttributeSet)):
- Throw exception, don't just create and drop it.
- * javax/management/MBeanServerPermission.java:
- (MBeanServerPermissionCollection.add(Permission)): Compare
- against individual Strings not the entire array, and
- store the result of replace.
- * javax/swing/text/html/StyleSheet.java:
- (setBaseFontSize(size)): Store result of trim().
-
-2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/tools/FileObject.java:
- (openReader(boolean)): Document new parameter.
-
-2008-03-27 Michael Franz <mvfranz@gmail.com>
-
- PR classpath/35690:
- * javax/tools/FileObject.java:
- (toUri()): Fix case from toURI.
- (openReader(boolean)): Add missing boolean argument.
-
-2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35487:
- * gnu/javax/management/Server.java:
- (beans): Change to ConcurrentHashMap.
- (defaultDomain): Make final.
- (outer): Likewise.
- (LazyListenersHolder): Added to wrap
- listeners, also now a ConcurrentHashMap,
- providing lazy initialisation safely.
- (sequenceNumber): Documented.
- (getBean(ObjectName)): Remove redundant cast.
- (addNotificationListener(ObjectName,NotificationListener,
- NotificationFilter,Object)): Remove map initialisation
- and use holder.
- (getObjectInstance(ObjectName)): Remove redundant cast.
- (registerMBean(Object,ObjectName)): Add bean atomically.
- (removeNotificationListener(ObjectName,NotificationListener)):
- Simplified.
- (removeNotificationListener(ObjectName,NotificationListener,
- NotificationFilter,Object)): Likewise.
- (notify(ObjectName,String)): Documented.
-
-2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/javax/management/Server.java:
- Genericised.
-
-2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/javax/management/Translator.java:
- Genericised.
-
-2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/DefaultLoaderRepository.java,
- * javax/management/JMX.java,
- * javax/management/MBeanAttributeInfo.java,
- * javax/management/MBeanConstructorInfo.java,
- * javax/management/MBeanOperationInfo.java,
- * javax/management/MBeanServerDelegate.java:
- Fix warnings due to generics.
-
-2008-08-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/MBeanPermission.java,
- * javax/management/MBeanServerDelegate.java,
- * javax/management/MBeanServerFactory.java,
- * javax/management/MBeanServerInvocationHandler.java,
- * javax/management/MBeanServerPermission.java:
- Fix warnings due to use of non-generic collections.
-
-2008-08-25 Mario Torre <neugens@aicas.com>
-
- * gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is
- null to avoid NPE.
-
-2008-08-22 Mario Torre <neugens@aicas.com>
-
- * gnu/CORBA/OrbFunctional.java (set_parameters): Fix
- NullPointerException checking when param is null.
-
-2008-08-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/regex/Matcher.java:
- (reset()): Reset append position so
- we don't try and append to the end of
- the old input.
-
-2008-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/32028:
- * m4/acinclude.m4:
- Also allow versions of GJDoc from 0.8* on, as
- CVS is 0.8.0-pre.
-
-2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/32028:
- * m4/acinclude.m4:
- (CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is
- being used.
-
-2008-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/Makefile.am:
- Add taglets subdirectory to list of excluded
- paths when GJDoc is not compiled.
-
-2008-08-19 David P Grove <groved@us.ibm.com>
-
- * scripts/check_jni_methods.sh.in:
- Fix build issue on AIX by splitting generation
- of method list.
-
-2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * native/jni/gstreamer-peer/gst_native_pipeline.c:
- (get_free_space(int)): Use #else not #elif when
- there is no condition.
-
-2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/31895:
- * java/text/DecimalFormat.java:
- (setCurrency(Currency)): Update prefixes and
- suffixes when currency changes.
- * java/text/DecimalFormatSymbols.java:
- (DecimalFormatSymbols(Locale)): Set locale earlier
- so it can be used by setCurrency(Currency).
- (setCurrency(Currency)): Set the symbol correctly using
- the locale of the instance.
- * java/util/Currency.java:
- Throw error instead of just printing a message.
-
-2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/activation/ActivationDataFlavor.java:
- Suppress warnings from public API.
- (mimeType): Made final.
- (representationClass): Added generic type and
- made final.
- (normalizeMimeTypeParameter(String,String)):
- Use CPStringBuilder.
- * javax/activation/CommandInfo.java:
- (verb): Made final.
- (className): Made final.
- * javax/activation/DataHandler.java:
- (dataSource): Made final.
- * javax/activation/FileDataSource.java:
- (file): Made final.
- * javax/activation/MailcapCommandMap.java:
- Use generics on collections and CPStringBuilder
- instead of StringBuffer.
- * javax/activation/MimeType.java:
- (toString()): Use CPStringBuilder.
- (getBaseType()): Likewise.
- * javax/activation/MimeTypeParameterList.java:
- Use generics on collections and CPStringBuilder
- instead of StringBuffer.
- * javax/activation/MimeTypeParseException.java:
- (MimeTypeParseException(String,String)): Use
- CPStringBuilder.
- * javax/activation/MimetypesFileTypeMap.java:
- Use generics on collections and CPStringBuilder
- instead of StringBuffer.
- * javax/activation/URLDataSource.java:
- (url): Made final.
-
-2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/javax/activation/viewers/ImageViewer.java,
- * gnu/javax/activation/viewers/TextEditor.java,
- * gnu/javax/activation/viewers/TextViewer.java,
- * javax/activation/ActivationDataFlavor.java,
- * javax/activation/CommandInfo.java,
- * javax/activation/CommandMap.java,
- * javax/activation/CommandObject.java,
- * javax/activation/DataContentHandler.java,
- * javax/activation/DataContentHandlerFactory.java,
- * javax/activation/DataHandler.java,
- * javax/activation/DataHandlerDataSource.java,
- * javax/activation/DataSource.java,
- * javax/activation/DataSourceDataContentHandler.java,
- * javax/activation/FileDataSource.java,
- * javax/activation/FileTypeMap.java,
- * javax/activation/MailcapCommandMap.java,
- * javax/activation/MimeType.java,
- * javax/activation/MimeTypeParameterList.java,
- * javax/activation/MimeTypeParseException.java,
- * javax/activation/MimetypesFileTypeMap.java,
- * javax/activation/ObjectDataContentHandler.java,
- * javax/activation/URLDataSource.java,
- * javax/activation/UnsupportedDataTypeException.java,
- * javax/activation/package.html,
- * resource/META-INF/mailcap.default,
- * resource/META-INF/mimetypes.default:
- Import GNU JAF CVS as of 17/08/2008.
-
-2006-04-25 Archit Shah <ashah@redhat.com>
-
- * javax/activation/MimeTypeParameterList.java:
- Insert ';' separator before parameter list.
-
-2005-06-29 Xavier Poinsard <xpoinsard@openpricer.com>
-
- * javax/activation/ObjectDataContentHandler.java:
- Fixed typo.
-
-2005-05-28 Chris Burdess <dog@bluezoo.org>
-
- * javax/activation/CommandMap.java,
- * javax/activation/MailcapCommandMap.java:
- Updated to JAF 1.1.
-
-2004-06-09 Chris Burdess <dog@bluezoo.org>
-
- * javax/activation/MailcapCommandMap.java:
- Fixed bug whereby x-java prefix was not
- attempted.
-
-2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * AUTHORS: Added Laszlo.
-
-2008-04-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/30436:
- * java/util/Scanner.java:
- Fix package to be java.util and correct
- indentation.
-
-2007-07-25 Laszlo Andras Hernadi <e0327023@student.tuwien.ac.at>
-
- PR classpath/30436:
- * java/util/Scanner.java:
- Initial implementation.
-
-2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/regex/Matcher.java:
- (toMatchResult()): Implemented.
-
-2008-08-13 Joshua Sumali <jsumali@redhat.com>
-
- * doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo
- instead of invoke.texi. Remove invoke.texi from EXTRA_DIST.
- * doc/invoke.texi: Removed and merged into ...
- * doc/cp-tools.texinfo: Here
-
-2008-08-12 Robert Schuster <robertschuster@fsfe.org>
-
- * native/jni/java-net/local.c
- (local_bind): Removed fprintf call, fixed access outside
- of array bounds.
-
-2008-07-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * m4/acinclude.m4 (CLASSPATH_COND_IF): New macro.
- * configure.ac: Use it.
- * tools/Makefile.am (!CREATE_WRAPPERS): Update comment.
-
-2008-07-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * resource/gnu/java/locale/LocaleInformation.properties,
- * resource/gnu/java/locale/LocaleInformation_aa.properties,
- * resource/gnu/java/locale/LocaleInformation_af.properties,
- * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
- * resource/gnu/java/locale/LocaleInformation_ak.properties,
- * resource/gnu/java/locale/LocaleInformation_am.properties,
- * resource/gnu/java/locale/LocaleInformation_ar.properties,
- * resource/gnu/java/locale/LocaleInformation_as.properties,
- * resource/gnu/java/locale/LocaleInformation_az.properties,
- * resource/gnu/java/locale/LocaleInformation_be.properties,
- * resource/gnu/java/locale/LocaleInformation_bg.properties,
- * resource/gnu/java/locale/LocaleInformation_bn.properties,
- * resource/gnu/java/locale/LocaleInformation_bs.properties,
- * resource/gnu/java/locale/LocaleInformation_byn.properties,
- * resource/gnu/java/locale/LocaleInformation_ca.properties,
- * resource/gnu/java/locale/LocaleInformation_cch.properties,
- * resource/gnu/java/locale/LocaleInformation_cop.properties,
- * resource/gnu/java/locale/LocaleInformation_cs.properties,
- * resource/gnu/java/locale/LocaleInformation_cy.properties,
- * resource/gnu/java/locale/LocaleInformation_da.properties,
- * resource/gnu/java/locale/LocaleInformation_de.properties,
- * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_dv.properties,
- * resource/gnu/java/locale/LocaleInformation_dz.properties,
- * resource/gnu/java/locale/LocaleInformation_ee.properties,
- * resource/gnu/java/locale/LocaleInformation_el.properties,
- * resource/gnu/java/locale/LocaleInformation_en.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
- * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
- * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
- * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
- * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
- * resource/gnu/java/locale/LocaleInformation_eo.properties,
- * resource/gnu/java/locale/LocaleInformation_es.properties,
- * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
- * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
- * resource/gnu/java/locale/LocaleInformation_es_US.properties,
- * resource/gnu/java/locale/LocaleInformation_et.properties,
- * resource/gnu/java/locale/LocaleInformation_eu.properties,
- * resource/gnu/java/locale/LocaleInformation_fa.properties,
- * resource/gnu/java/locale/LocaleInformation_fi.properties,
- * resource/gnu/java/locale/LocaleInformation_fil.properties,
- * resource/gnu/java/locale/LocaleInformation_fo.properties,
- * resource/gnu/java/locale/LocaleInformation_fr.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_fur.properties,
- * resource/gnu/java/locale/LocaleInformation_ga.properties,
- * resource/gnu/java/locale/LocaleInformation_gaa.properties,
- * resource/gnu/java/locale/LocaleInformation_gez.properties,
- * resource/gnu/java/locale/LocaleInformation_gl.properties,
- * resource/gnu/java/locale/LocaleInformation_gu.properties,
- * resource/gnu/java/locale/LocaleInformation_gv.properties,
- * resource/gnu/java/locale/LocaleInformation_ha.properties,
- * resource/gnu/java/locale/LocaleInformation_haw.properties,
- * resource/gnu/java/locale/LocaleInformation_he.properties,
- * resource/gnu/java/locale/LocaleInformation_hi.properties,
- * resource/gnu/java/locale/LocaleInformation_hr.properties,
- * resource/gnu/java/locale/LocaleInformation_hu.properties,
- * resource/gnu/java/locale/LocaleInformation_hy.properties,
- * resource/gnu/java/locale/LocaleInformation_ia.properties,
- * resource/gnu/java/locale/LocaleInformation_id.properties,
- * resource/gnu/java/locale/LocaleInformation_ig.properties,
- * resource/gnu/java/locale/LocaleInformation_is.properties,
- * resource/gnu/java/locale/LocaleInformation_it.properties,
- * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_iu.properties,
- * resource/gnu/java/locale/LocaleInformation_ja.properties,
- * resource/gnu/java/locale/LocaleInformation_ka.properties,
- * resource/gnu/java/locale/LocaleInformation_kaj.properties,
- * resource/gnu/java/locale/LocaleInformation_kam.properties,
- * resource/gnu/java/locale/LocaleInformation_kcg.properties,
- * resource/gnu/java/locale/LocaleInformation_kfo.properties,
- * resource/gnu/java/locale/LocaleInformation_kk.properties,
- * resource/gnu/java/locale/LocaleInformation_kl.properties,
- * resource/gnu/java/locale/LocaleInformation_km.properties,
- * resource/gnu/java/locale/LocaleInformation_kn.properties,
- * resource/gnu/java/locale/LocaleInformation_ko.properties,
- * resource/gnu/java/locale/LocaleInformation_kok.properties,
- * resource/gnu/java/locale/LocaleInformation_kpe.properties,
- * resource/gnu/java/locale/LocaleInformation_kw.properties,
- * resource/gnu/java/locale/LocaleInformation_ky.properties,
- * resource/gnu/java/locale/LocaleInformation_ln.properties,
- * resource/gnu/java/locale/LocaleInformation_lo.properties,
- * resource/gnu/java/locale/LocaleInformation_lt.properties,
- * resource/gnu/java/locale/LocaleInformation_lv.properties,
- * resource/gnu/java/locale/LocaleInformation_mk.properties,
- * resource/gnu/java/locale/LocaleInformation_ml.properties,
- * resource/gnu/java/locale/LocaleInformation_mn.properties,
- * resource/gnu/java/locale/LocaleInformation_mr.properties,
- * resource/gnu/java/locale/LocaleInformation_ms.properties,
- * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
- * resource/gnu/java/locale/LocaleInformation_mt.properties,
- * resource/gnu/java/locale/LocaleInformation_my.properties,
- * resource/gnu/java/locale/LocaleInformation_nb.properties,
- * resource/gnu/java/locale/LocaleInformation_ne.properties,
- * resource/gnu/java/locale/LocaleInformation_nl.properties,
- * resource/gnu/java/locale/LocaleInformation_nn.properties,
- * resource/gnu/java/locale/LocaleInformation_nr.properties,
- * resource/gnu/java/locale/LocaleInformation_nso.properties,
- * resource/gnu/java/locale/LocaleInformation_ny.properties,
- * resource/gnu/java/locale/LocaleInformation_om.properties,
- * resource/gnu/java/locale/LocaleInformation_or.properties,
- * resource/gnu/java/locale/LocaleInformation_pa.properties,
- * resource/gnu/java/locale/LocaleInformation_pl.properties,
- * resource/gnu/java/locale/LocaleInformation_ps.properties,
- * resource/gnu/java/locale/LocaleInformation_pt.properties,
- * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
- * resource/gnu/java/locale/LocaleInformation_ro.properties,
- * resource/gnu/java/locale/LocaleInformation_ru.properties,
- * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
- * resource/gnu/java/locale/LocaleInformation_rw.properties,
- * resource/gnu/java/locale/LocaleInformation_sa.properties,
- * resource/gnu/java/locale/LocaleInformation_se.properties,
- * resource/gnu/java/locale/LocaleInformation_si.properties,
- * resource/gnu/java/locale/LocaleInformation_sid.properties,
- * resource/gnu/java/locale/LocaleInformation_sk.properties,
- * resource/gnu/java/locale/LocaleInformation_sl.properties,
- * resource/gnu/java/locale/LocaleInformation_so.properties,
- * resource/gnu/java/locale/LocaleInformation_sq.properties,
- * resource/gnu/java/locale/LocaleInformation_sr.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ss.properties,
- * resource/gnu/java/locale/LocaleInformation_st.properties,
- * resource/gnu/java/locale/LocaleInformation_sv.properties,
- * resource/gnu/java/locale/LocaleInformation_sw.properties,
- * resource/gnu/java/locale/LocaleInformation_syr.properties,
- * resource/gnu/java/locale/LocaleInformation_ta.properties,
- * resource/gnu/java/locale/LocaleInformation_te.properties,
- * resource/gnu/java/locale/LocaleInformation_tg.properties,
- * resource/gnu/java/locale/LocaleInformation_th.properties,
- * resource/gnu/java/locale/LocaleInformation_ti.properties,
- * resource/gnu/java/locale/LocaleInformation_tig.properties,
- * resource/gnu/java/locale/LocaleInformation_tn.properties,
- * resource/gnu/java/locale/LocaleInformation_to.properties,
- * resource/gnu/java/locale/LocaleInformation_tr.properties,
- * resource/gnu/java/locale/LocaleInformation_trv.properties,
- * resource/gnu/java/locale/LocaleInformation_ts.properties,
- * resource/gnu/java/locale/LocaleInformation_tt.properties,
- * resource/gnu/java/locale/LocaleInformation_ug.properties,
- * resource/gnu/java/locale/LocaleInformation_uk.properties,
- * resource/gnu/java/locale/LocaleInformation_ur.properties,
- * resource/gnu/java/locale/LocaleInformation_uz.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_ve.properties,
- * resource/gnu/java/locale/LocaleInformation_vi.properties,
- * resource/gnu/java/locale/LocaleInformation_wal.properties,
- * resource/gnu/java/locale/LocaleInformation_wo.properties,
- * resource/gnu/java/locale/LocaleInformation_xh.properties,
- * resource/gnu/java/locale/LocaleInformation_yo.properties,
- * resource/gnu/java/locale/LocaleInformation_zh.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zu.properties:
- Correct use of 'v' with 'z' in locale data as Java does not
- support this new pattern character.
-
-2008-07-12 David Daney <ddaney@avtrex.com>
-
- * gnu/java/net/protocol/http/LimitedLengthInputStream.java: Clean up
- white space in entire file.
- (handleClose): Remove redundant braces from if statement.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/text/DateFormatSymbols.java:
- (getZoneStrings(ResourceBundle,Locale)):
- Handle missing standard zone names.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/text/DateFormatSymbols.java:
- (getZoneStrings(ResourceBundle,Locale)):
- Fallback on to parent locales.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/text/DateFormatSymbols.java:
- (getZoneStrings(ResourceBundle,Locale)):
- Use metazones to convert metazone names to standard
- Continent/City form. Also add hack to include GMT
- as a short name.
- * resource/java/text/metazones.properties:
- New properties file for mapping metazones to standard
- zone names.
-
-2008-07-07 Christian Thalinger <twisti@complang.tuwien.ac.at>
-
- * configure.ac (AC_CHECK_HEADERS): Added sys/sockio.h, required
- for Solaris.
- (AC_CHECK_LIB): Check for socket.
- * native/jni/java-net/java_net_VMNetworkInterface.c (unistd.h):
- Added.
- [HAVE_SYS_SOCKIO_H] (sys/sockio.h): Likewise.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * THANKYOU: Added Byeogncheol.
-
-2008-07-07 Byeogncheol Lee <lineonking@gmail.com>
-
- PR classpath/36677:
- * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
- (executeTopLevelThreadGroups(ByteBuffer,DataOutputStream)):
- Add missing write.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/text/DateFormatSymbols.java:
- (getZoneStrings(ResourceBundle,Locale)):
- Pad arrays smaller than 5 with empty strings.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/Calendar.java:
- (Calendar(TimeZone,Locale)): Use weeks.properties
- instead of LocaleInformation bundles.
- * resource/java/util/iso4217.properties:
- Updated with new supplementgen header.
- * resource/java/util/weeks.properties:
- New resource file.
-
-2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * resource/gnu/java/locale/LocaleInformation.properties,
- * resource/gnu/java/locale/LocaleInformation_aa.properties,
- * resource/gnu/java/locale/LocaleInformation_af.properties,
- * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
- * resource/gnu/java/locale/LocaleInformation_ak.properties,
- * resource/gnu/java/locale/LocaleInformation_am.properties,
- * resource/gnu/java/locale/LocaleInformation_ar.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
- * resource/gnu/java/locale/LocaleInformation_as.properties,
- * resource/gnu/java/locale/LocaleInformation_az.properties,
- * resource/gnu/java/locale/LocaleInformation_be.properties,
- * resource/gnu/java/locale/LocaleInformation_bg.properties,
- * resource/gnu/java/locale/LocaleInformation_bn.properties,
- * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
- * resource/gnu/java/locale/LocaleInformation_bs.properties,
- * resource/gnu/java/locale/LocaleInformation_byn.properties,
- * resource/gnu/java/locale/LocaleInformation_ca.properties,
- * resource/gnu/java/locale/LocaleInformation_cs.properties,
- * resource/gnu/java/locale/LocaleInformation_cy.properties,
- * resource/gnu/java/locale/LocaleInformation_da.properties,
- * resource/gnu/java/locale/LocaleInformation_de.properties,
- * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
- * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
- * resource/gnu/java/locale/LocaleInformation_dv.properties,
- * resource/gnu/java/locale/LocaleInformation_dz.properties,
- * resource/gnu/java/locale/LocaleInformation_el.properties,
- * resource/gnu/java/locale/LocaleInformation_en.properties,
- * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
- * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
- * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
- * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
- * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
- * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
- * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
- * resource/gnu/java/locale/LocaleInformation_en_PK.properties,
- * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
- * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
- * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
- * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
- * resource/gnu/java/locale/LocaleInformation_eo.properties,
- * resource/gnu/java/locale/LocaleInformation_es.properties,
- * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CR.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
- * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
- * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
- * resource/gnu/java/locale/LocaleInformation_et.properties,
- * resource/gnu/java/locale/LocaleInformation_eu.properties,
- * resource/gnu/java/locale/LocaleInformation_fa.properties,
- * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
- * resource/gnu/java/locale/LocaleInformation_fi.properties,
- * resource/gnu/java/locale/LocaleInformation_fil.properties,
- * resource/gnu/java/locale/LocaleInformation_fo.properties,
- * resource/gnu/java/locale/LocaleInformation_fr.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_fur.properties,
- * resource/gnu/java/locale/LocaleInformation_ga.properties,
- * resource/gnu/java/locale/LocaleInformation_gez.properties,
- * resource/gnu/java/locale/LocaleInformation_gl.properties,
- * resource/gnu/java/locale/LocaleInformation_gu.properties,
- * resource/gnu/java/locale/LocaleInformation_gv.properties,
- * resource/gnu/java/locale/LocaleInformation_ha.properties,
- * resource/gnu/java/locale/LocaleInformation_haw.properties,
- * resource/gnu/java/locale/LocaleInformation_he.properties,
- * resource/gnu/java/locale/LocaleInformation_hi.properties,
- * resource/gnu/java/locale/LocaleInformation_hr.properties,
- * resource/gnu/java/locale/LocaleInformation_hu.properties,
- * resource/gnu/java/locale/LocaleInformation_hy.properties,
- * resource/gnu/java/locale/LocaleInformation_id.properties,
- * resource/gnu/java/locale/LocaleInformation_is.properties,
- * resource/gnu/java/locale/LocaleInformation_it.properties,
- * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_ja.properties,
- * resource/gnu/java/locale/LocaleInformation_ka.properties,
- * resource/gnu/java/locale/LocaleInformation_kk.properties,
- * resource/gnu/java/locale/LocaleInformation_kl.properties,
- * resource/gnu/java/locale/LocaleInformation_km.properties,
- * resource/gnu/java/locale/LocaleInformation_kn.properties,
- * resource/gnu/java/locale/LocaleInformation_ko.properties,
- * resource/gnu/java/locale/LocaleInformation_kok.properties,
- * resource/gnu/java/locale/LocaleInformation_ku.properties,
- * resource/gnu/java/locale/LocaleInformation_kw.properties,
- * resource/gnu/java/locale/LocaleInformation_ky.properties,
- * resource/gnu/java/locale/LocaleInformation_ln.properties,
- * resource/gnu/java/locale/LocaleInformation_lo.properties,
- * resource/gnu/java/locale/LocaleInformation_lt.properties,
- * resource/gnu/java/locale/LocaleInformation_lv.properties,
- * resource/gnu/java/locale/LocaleInformation_mk.properties,
- * resource/gnu/java/locale/LocaleInformation_ml.properties,
- * resource/gnu/java/locale/LocaleInformation_mn.properties,
- * resource/gnu/java/locale/LocaleInformation_mr.properties,
- * resource/gnu/java/locale/LocaleInformation_ms.properties,
- * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
- * resource/gnu/java/locale/LocaleInformation_mt.properties,
- * resource/gnu/java/locale/LocaleInformation_my.properties,
- * resource/gnu/java/locale/LocaleInformation_nb.properties,
- * resource/gnu/java/locale/LocaleInformation_ne.properties,
- * resource/gnu/java/locale/LocaleInformation_nl.properties,
- * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_nn.properties,
- * resource/gnu/java/locale/LocaleInformation_nr.properties,
- * resource/gnu/java/locale/LocaleInformation_nso.properties,
- * resource/gnu/java/locale/LocaleInformation_om.properties,
- * resource/gnu/java/locale/LocaleInformation_or.properties,
- * resource/gnu/java/locale/LocaleInformation_pa.properties,
- * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_pl.properties,
- * resource/gnu/java/locale/LocaleInformation_ps.properties,
- * resource/gnu/java/locale/LocaleInformation_pt.properties,
- * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
- * resource/gnu/java/locale/LocaleInformation_ro.properties,
- * resource/gnu/java/locale/LocaleInformation_ru.properties,
- * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
- * resource/gnu/java/locale/LocaleInformation_sa.properties,
- * resource/gnu/java/locale/LocaleInformation_se.properties,
- * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
- * resource/gnu/java/locale/LocaleInformation_sk.properties,
- * resource/gnu/java/locale/LocaleInformation_sl.properties,
- * resource/gnu/java/locale/LocaleInformation_so.properties,
- * resource/gnu/java/locale/LocaleInformation_sq.properties,
- * resource/gnu/java/locale/LocaleInformation_sr.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ss.properties,
- * resource/gnu/java/locale/LocaleInformation_st.properties,
- * resource/gnu/java/locale/LocaleInformation_sv.properties,
- * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
- * resource/gnu/java/locale/LocaleInformation_sw.properties,
- * resource/gnu/java/locale/LocaleInformation_syr.properties,
- * resource/gnu/java/locale/LocaleInformation_ta.properties,
- * resource/gnu/java/locale/LocaleInformation_te.properties,
- * resource/gnu/java/locale/LocaleInformation_tg.properties,
- * resource/gnu/java/locale/LocaleInformation_th.properties,
- * resource/gnu/java/locale/LocaleInformation_ti.properties,
- * resource/gnu/java/locale/LocaleInformation_tig.properties,
- * resource/gnu/java/locale/LocaleInformation_tn.properties,
- * resource/gnu/java/locale/LocaleInformation_to.properties,
- * resource/gnu/java/locale/LocaleInformation_tr.properties,
- * resource/gnu/java/locale/LocaleInformation_ts.properties,
- * resource/gnu/java/locale/LocaleInformation_tt.properties,
- * resource/gnu/java/locale/LocaleInformation_uk.properties,
- * resource/gnu/java/locale/LocaleInformation_ur.properties,
- * resource/gnu/java/locale/LocaleInformation_uz.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ve.properties,
- * resource/gnu/java/locale/LocaleInformation_vi.properties,
- * resource/gnu/java/locale/LocaleInformation_wal.properties,
- * resource/gnu/java/locale/LocaleInformation_xh.properties,
- * resource/gnu/java/locale/LocaleInformation_yo.properties,
- * resource/gnu/java/locale/LocaleInformation_zh.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties,
- * resource/gnu/java/locale/LocaleInformation_zu.properties,
- * resource/java/util/iso4217.properties:
- Regenerated from CLDR 1.6.0.
- * resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties,
- * resource/gnu/java/locale/LocaleInformation_en_Shaw.properties,
- * resource/gnu/java/locale/LocaleInformation_ku_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_trv.properties,
- * resource/gnu/java/locale/LocaleInformation_si.properties,
- * resource/gnu/java/locale/LocaleInformation_ur_IN.properties:
- New files from CLDR 1.6.0.
-
-2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * resource/gnu/java/locale/LocaleInformation.properties,
- * resource/gnu/java/locale/LocaleInformation_aa.properties,
- * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
- * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
- * resource/gnu/java/locale/LocaleInformation_af.properties,
- * resource/gnu/java/locale/LocaleInformation_ak.properties,
- * resource/gnu/java/locale/LocaleInformation_am.properties,
- * resource/gnu/java/locale/LocaleInformation_ar.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
- * resource/gnu/java/locale/LocaleInformation_as.properties,
- * resource/gnu/java/locale/LocaleInformation_az.properties,
- * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
- * resource/gnu/java/locale/LocaleInformation_be.properties,
- * resource/gnu/java/locale/LocaleInformation_bg.properties,
- * resource/gnu/java/locale/LocaleInformation_bn.properties,
- * resource/gnu/java/locale/LocaleInformation_bo.properties,
- * resource/gnu/java/locale/LocaleInformation_bs.properties,
- * resource/gnu/java/locale/LocaleInformation_byn.properties,
- * resource/gnu/java/locale/LocaleInformation_ca.properties,
- * resource/gnu/java/locale/LocaleInformation_cch.properties,
- * resource/gnu/java/locale/LocaleInformation_cop.properties,
- * resource/gnu/java/locale/LocaleInformation_cs.properties,
- * resource/gnu/java/locale/LocaleInformation_cy.properties,
- * resource/gnu/java/locale/LocaleInformation_da.properties,
- * resource/gnu/java/locale/LocaleInformation_de.properties,
- * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
- * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_dv.properties,
- * resource/gnu/java/locale/LocaleInformation_dz.properties,
- * resource/gnu/java/locale/LocaleInformation_ee.properties,
- * resource/gnu/java/locale/LocaleInformation_el.properties,
- * resource/gnu/java/locale/LocaleInformation_en.properties,
- * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
- * resource/gnu/java/locale/LocaleInformation_eo.properties,
- * resource/gnu/java/locale/LocaleInformation_es.properties,
- * resource/gnu/java/locale/LocaleInformation_et.properties,
- * resource/gnu/java/locale/LocaleInformation_eu.properties,
- * resource/gnu/java/locale/LocaleInformation_fa.properties,
- * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
- * resource/gnu/java/locale/LocaleInformation_fi.properties,
- * resource/gnu/java/locale/LocaleInformation_fil.properties,
- * resource/gnu/java/locale/LocaleInformation_fo.properties,
- * resource/gnu/java/locale/LocaleInformation_fr.properties,
- * resource/gnu/java/locale/LocaleInformation_fur.properties,
- * resource/gnu/java/locale/LocaleInformation_ga.properties,
- * resource/gnu/java/locale/LocaleInformation_gaa.properties,
- * resource/gnu/java/locale/LocaleInformation_gez.properties,
- * resource/gnu/java/locale/LocaleInformation_gl.properties,
- * resource/gnu/java/locale/LocaleInformation_gu.properties,
- * resource/gnu/java/locale/LocaleInformation_gv.properties,
- * resource/gnu/java/locale/LocaleInformation_ha.properties,
- * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_haw.properties,
- * resource/gnu/java/locale/LocaleInformation_he.properties,
- * resource/gnu/java/locale/LocaleInformation_hi.properties,
- * resource/gnu/java/locale/LocaleInformation_hr.properties,
- * resource/gnu/java/locale/LocaleInformation_hu.properties,
- * resource/gnu/java/locale/LocaleInformation_hy.properties,
- * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
- * resource/gnu/java/locale/LocaleInformation_ia.properties,
- * resource/gnu/java/locale/LocaleInformation_id.properties,
- * resource/gnu/java/locale/LocaleInformation_ig.properties,
- * resource/gnu/java/locale/LocaleInformation_ii.properties,
- * resource/gnu/java/locale/LocaleInformation_is.properties,
- * resource/gnu/java/locale/LocaleInformation_it.properties,
- * resource/gnu/java/locale/LocaleInformation_iu.properties,
- * resource/gnu/java/locale/LocaleInformation_ja.properties,
- * resource/gnu/java/locale/LocaleInformation_ka.properties,
- * resource/gnu/java/locale/LocaleInformation_kaj.properties,
- * resource/gnu/java/locale/LocaleInformation_kam.properties,
- * resource/gnu/java/locale/LocaleInformation_kcg.properties,
- * resource/gnu/java/locale/LocaleInformation_kfo.properties,
- * resource/gnu/java/locale/LocaleInformation_kk.properties,
- * resource/gnu/java/locale/LocaleInformation_kl.properties,
- * resource/gnu/java/locale/LocaleInformation_km.properties,
- * resource/gnu/java/locale/LocaleInformation_kn.properties,
- * resource/gnu/java/locale/LocaleInformation_ko.properties,
- * resource/gnu/java/locale/LocaleInformation_kok.properties,
- * resource/gnu/java/locale/LocaleInformation_kpe.properties,
- * resource/gnu/java/locale/LocaleInformation_ku.properties,
- * resource/gnu/java/locale/LocaleInformation_kw.properties,
- * resource/gnu/java/locale/LocaleInformation_ky.properties,
- * resource/gnu/java/locale/LocaleInformation_ln.properties,
- * resource/gnu/java/locale/LocaleInformation_lo.properties,
- * resource/gnu/java/locale/LocaleInformation_lt.properties,
- * resource/gnu/java/locale/LocaleInformation_lv.properties,
- * resource/gnu/java/locale/LocaleInformation_mk.properties,
- * resource/gnu/java/locale/LocaleInformation_ml.properties,
- * resource/gnu/java/locale/LocaleInformation_mn.properties,
- * resource/gnu/java/locale/LocaleInformation_mr.properties,
- * resource/gnu/java/locale/LocaleInformation_ms.properties,
- * resource/gnu/java/locale/LocaleInformation_mt.properties,
- * resource/gnu/java/locale/LocaleInformation_my.properties,
- * resource/gnu/java/locale/LocaleInformation_nb.properties,
- * resource/gnu/java/locale/LocaleInformation_ne.properties,
- * resource/gnu/java/locale/LocaleInformation_nl.properties,
- * resource/gnu/java/locale/LocaleInformation_nn.properties,
- * resource/gnu/java/locale/LocaleInformation_nr.properties,
- * resource/gnu/java/locale/LocaleInformation_nso.properties,
- * resource/gnu/java/locale/LocaleInformation_ny.properties,
- * resource/gnu/java/locale/LocaleInformation_om.properties,
- * resource/gnu/java/locale/LocaleInformation_or.properties,
- * resource/gnu/java/locale/LocaleInformation_pa.properties,
- * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_pl.properties,
- * resource/gnu/java/locale/LocaleInformation_ps.properties,
- * resource/gnu/java/locale/LocaleInformation_pt.properties,
- * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
- * resource/gnu/java/locale/LocaleInformation_ro.properties,
- * resource/gnu/java/locale/LocaleInformation_ru.properties,
- * resource/gnu/java/locale/LocaleInformation_rw.properties,
- * resource/gnu/java/locale/LocaleInformation_sa.properties,
- * resource/gnu/java/locale/LocaleInformation_se.properties,
- * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
- * resource/gnu/java/locale/LocaleInformation_sid.properties,
- * resource/gnu/java/locale/LocaleInformation_sk.properties,
- * resource/gnu/java/locale/LocaleInformation_sl.properties,
- * resource/gnu/java/locale/LocaleInformation_so.properties,
- * resource/gnu/java/locale/LocaleInformation_sq.properties,
- * resource/gnu/java/locale/LocaleInformation_sr.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ss.properties,
- * resource/gnu/java/locale/LocaleInformation_ssy.properties,
- * resource/gnu/java/locale/LocaleInformation_st.properties,
- * resource/gnu/java/locale/LocaleInformation_sv.properties,
- * resource/gnu/java/locale/LocaleInformation_sw.properties,
- * resource/gnu/java/locale/LocaleInformation_syr.properties,
- * resource/gnu/java/locale/LocaleInformation_ta.properties,
- * resource/gnu/java/locale/LocaleInformation_te.properties,
- * resource/gnu/java/locale/LocaleInformation_tg.properties,
- * resource/gnu/java/locale/LocaleInformation_th.properties,
- * resource/gnu/java/locale/LocaleInformation_ti.properties,
- * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
- * resource/gnu/java/locale/LocaleInformation_tig.properties,
- * resource/gnu/java/locale/LocaleInformation_tn.properties,
- * resource/gnu/java/locale/LocaleInformation_to.properties,
- * resource/gnu/java/locale/LocaleInformation_tr.properties,
- * resource/gnu/java/locale/LocaleInformation_ts.properties,
- * resource/gnu/java/locale/LocaleInformation_tt.properties,
- * resource/gnu/java/locale/LocaleInformation_ug.properties,
- * resource/gnu/java/locale/LocaleInformation_uk.properties,
- * resource/gnu/java/locale/LocaleInformation_ur.properties,
- * resource/gnu/java/locale/LocaleInformation_uz.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ve.properties,
- * resource/gnu/java/locale/LocaleInformation_vi.properties,
- * resource/gnu/java/locale/LocaleInformation_wal.properties,
- * resource/gnu/java/locale/LocaleInformation_wo.properties,
- * resource/gnu/java/locale/LocaleInformation_xh.properties,
- * resource/gnu/java/locale/LocaleInformation_yo.properties,
- * resource/gnu/java/locale/LocaleInformation_zh.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zu.properties:
- Regenerated with Unicode delimiters escaped.
-
-2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36653:
- * doc/www.gnu.org/downloads/downloads.wml:
- Add 0.97.2 to download list.
-
-2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/ResourceBundle.java,
- (BundleKey.toString()): Implemented.
- (clearCache()): Implemented.
- (clearCache(ClassLoader)): Implemented.
-
-2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/ResourceBundle.java:
- Fix generic warnings.
-
-2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/Properties.java:
- (load(Reader)): Implemented.
- (load(InputStream)): Fixed to use load(Reader).
- * java/util/PropertyResourceBundle.java:
- (PropertyResourceBundle(Reader)): Implemented.
-
-2008-07-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * resource/gnu/java/locale/LocaleInformation.properties,
- * resource/gnu/java/locale/LocaleInformation_aa.properties,
- * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
- * resource/gnu/java/locale/LocaleInformation_aa_ER.properties,
- * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
- * resource/gnu/java/locale/LocaleInformation_af.properties,
- * resource/gnu/java/locale/LocaleInformation_am.properties,
- * resource/gnu/java/locale/LocaleInformation_ar.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
- * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
- * resource/gnu/java/locale/LocaleInformation_as.properties,
- * resource/gnu/java/locale/LocaleInformation_az.properties,
- * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
- * resource/gnu/java/locale/LocaleInformation_be.properties,
- * resource/gnu/java/locale/LocaleInformation_bg.properties,
- * resource/gnu/java/locale/LocaleInformation_bn.properties,
- * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
- * resource/gnu/java/locale/LocaleInformation_bs.properties,
- * resource/gnu/java/locale/LocaleInformation_byn.properties,
- * resource/gnu/java/locale/LocaleInformation_ca.properties,
- * resource/gnu/java/locale/LocaleInformation_cs.properties,
- * resource/gnu/java/locale/LocaleInformation_cy.properties,
- * resource/gnu/java/locale/LocaleInformation_da.properties,
- * resource/gnu/java/locale/LocaleInformation_de.properties,
- * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
- * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
- * resource/gnu/java/locale/LocaleInformation_de_LU.properties,
- * resource/gnu/java/locale/LocaleInformation_dv.properties,
- * resource/gnu/java/locale/LocaleInformation_dz.properties,
- * resource/gnu/java/locale/LocaleInformation_el.properties,
- * resource/gnu/java/locale/LocaleInformation_en.properties,
- * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
- * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
- * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
- * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
- * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
- * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
- * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
- * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
- * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
- * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
- * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
- * resource/gnu/java/locale/LocaleInformation_en_TT.properties,
- * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
- * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
- * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
- * resource/gnu/java/locale/LocaleInformation_eo.properties,
- * resource/gnu/java/locale/LocaleInformation_es.properties,
- * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
- * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
- * resource/gnu/java/locale/LocaleInformation_es_DO.properties,
- * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
- * resource/gnu/java/locale/LocaleInformation_es_ES.properties,
- * resource/gnu/java/locale/LocaleInformation_es_GT.properties,
- * resource/gnu/java/locale/LocaleInformation_es_HN.properties,
- * resource/gnu/java/locale/LocaleInformation_es_MX.properties,
- * resource/gnu/java/locale/LocaleInformation_es_NI.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PA.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PR.properties,
- * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
- * resource/gnu/java/locale/LocaleInformation_es_SV.properties,
- * resource/gnu/java/locale/LocaleInformation_es_US.properties,
- * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
- * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
- * resource/gnu/java/locale/LocaleInformation_et.properties,
- * resource/gnu/java/locale/LocaleInformation_eu.properties,
- * resource/gnu/java/locale/LocaleInformation_fa.properties,
- * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
- * resource/gnu/java/locale/LocaleInformation_fi.properties,
- * resource/gnu/java/locale/LocaleInformation_fo.properties,
- * resource/gnu/java/locale/LocaleInformation_fr.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
- * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_ga.properties,
- * resource/gnu/java/locale/LocaleInformation_gez.properties,
- * resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
- * resource/gnu/java/locale/LocaleInformation_gl.properties,
- * resource/gnu/java/locale/LocaleInformation_gu.properties,
- * resource/gnu/java/locale/LocaleInformation_gv.properties,
- * resource/gnu/java/locale/LocaleInformation_haw.properties,
- * resource/gnu/java/locale/LocaleInformation_he.properties,
- * resource/gnu/java/locale/LocaleInformation_hi.properties,
- * resource/gnu/java/locale/LocaleInformation_hr.properties,
- * resource/gnu/java/locale/LocaleInformation_hu.properties,
- * resource/gnu/java/locale/LocaleInformation_hy.properties,
- * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
- * resource/gnu/java/locale/LocaleInformation_id.properties,
- * resource/gnu/java/locale/LocaleInformation_is.properties,
- * resource/gnu/java/locale/LocaleInformation_it.properties,
- * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
- * resource/gnu/java/locale/LocaleInformation_iu.properties,
- * resource/gnu/java/locale/LocaleInformation_ja.properties,
- * resource/gnu/java/locale/LocaleInformation_ka.properties,
- * resource/gnu/java/locale/LocaleInformation_kk.properties,
- * resource/gnu/java/locale/LocaleInformation_kl.properties,
- * resource/gnu/java/locale/LocaleInformation_km.properties,
- * resource/gnu/java/locale/LocaleInformation_kn.properties,
- * resource/gnu/java/locale/LocaleInformation_ko.properties,
- * resource/gnu/java/locale/LocaleInformation_kok.properties,
- * resource/gnu/java/locale/LocaleInformation_kw.properties,
- * resource/gnu/java/locale/LocaleInformation_ky.properties,
- * resource/gnu/java/locale/LocaleInformation_lo.properties,
- * resource/gnu/java/locale/LocaleInformation_lt.properties,
- * resource/gnu/java/locale/LocaleInformation_lv.properties,
- * resource/gnu/java/locale/LocaleInformation_mk.properties,
- * resource/gnu/java/locale/LocaleInformation_ml.properties,
- * resource/gnu/java/locale/LocaleInformation_mn.properties,
- * resource/gnu/java/locale/LocaleInformation_mr.properties,
- * resource/gnu/java/locale/LocaleInformation_ms.properties,
- * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
- * resource/gnu/java/locale/LocaleInformation_mt.properties,
- * resource/gnu/java/locale/LocaleInformation_nb.properties,
- * resource/gnu/java/locale/LocaleInformation_nl.properties,
- * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
- * resource/gnu/java/locale/LocaleInformation_nn.properties,
- * resource/gnu/java/locale/LocaleInformation_om.properties,
- * resource/gnu/java/locale/LocaleInformation_om_KE.properties,
- * resource/gnu/java/locale/LocaleInformation_or.properties,
- * resource/gnu/java/locale/LocaleInformation_pa.properties,
- * resource/gnu/java/locale/LocaleInformation_pl.properties,
- * resource/gnu/java/locale/LocaleInformation_ps.properties,
- * resource/gnu/java/locale/LocaleInformation_pt.properties,
- * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
- * resource/gnu/java/locale/LocaleInformation_ro.properties,
- * resource/gnu/java/locale/LocaleInformation_ru.properties,
- * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
- * resource/gnu/java/locale/LocaleInformation_sa.properties,
- * resource/gnu/java/locale/LocaleInformation_sid.properties,
- * resource/gnu/java/locale/LocaleInformation_sk.properties,
- * resource/gnu/java/locale/LocaleInformation_sl.properties,
- * resource/gnu/java/locale/LocaleInformation_so.properties,
- * resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
- * resource/gnu/java/locale/LocaleInformation_so_ET.properties,
- * resource/gnu/java/locale/LocaleInformation_so_KE.properties,
- * resource/gnu/java/locale/LocaleInformation_sq.properties,
- * resource/gnu/java/locale/LocaleInformation_sr.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_sv.properties,
- * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
- * resource/gnu/java/locale/LocaleInformation_sw.properties,
- * resource/gnu/java/locale/LocaleInformation_syr.properties,
- * resource/gnu/java/locale/LocaleInformation_ta.properties,
- * resource/gnu/java/locale/LocaleInformation_te.properties,
- * resource/gnu/java/locale/LocaleInformation_th.properties,
- * resource/gnu/java/locale/LocaleInformation_ti.properties,
- * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
- * resource/gnu/java/locale/LocaleInformation_tig.properties,
- * resource/gnu/java/locale/LocaleInformation_tr.properties,
- * resource/gnu/java/locale/LocaleInformation_tt.properties,
- * resource/gnu/java/locale/LocaleInformation_uk.properties,
- * resource/gnu/java/locale/LocaleInformation_ur.properties,
- * resource/gnu/java/locale/LocaleInformation_uz.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_vi.properties,
- * resource/gnu/java/locale/LocaleInformation_wal.properties,
- * resource/gnu/java/locale/LocaleInformation_zh.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
- * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties:
- Regenerated from CLDR 1.5.1 data.
- * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
- * resource/gnu/java/locale/LocaleInformation_ak.properties,
- * resource/gnu/java/locale/LocaleInformation_bo.properties,
- * resource/gnu/java/locale/LocaleInformation_cch.properties,
- * resource/gnu/java/locale/LocaleInformation_cop.properties,
- * resource/gnu/java/locale/LocaleInformation_ee.properties,
- * resource/gnu/java/locale/LocaleInformation_en_JM.properties,
- * resource/gnu/java/locale/LocaleInformation_en_NA.properties,
- * resource/gnu/java/locale/LocaleInformation_fil.properties,
- * resource/gnu/java/locale/LocaleInformation_fur.properties,
- * resource/gnu/java/locale/LocaleInformation_gaa.properties,
- * resource/gnu/java/locale/LocaleInformation_ha.properties,
- * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_ia.properties,
- * resource/gnu/java/locale/LocaleInformation_ig.properties,
- * resource/gnu/java/locale/LocaleInformation_ii.properties,
- * resource/gnu/java/locale/LocaleInformation_kaj.properties,
- * resource/gnu/java/locale/LocaleInformation_kam.properties
- * resource/gnu/java/locale/LocaleInformation_kcg.properties,
- * resource/gnu/java/locale/LocaleInformation_kfo.properties,
- * resource/gnu/java/locale/LocaleInformation_kpe.properties,
- * resource/gnu/java/locale/LocaleInformation_ku.properties,
- * resource/gnu/java/locale/LocaleInformation_ku_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_ln.properties,
- * resource/gnu/java/locale/LocaleInformation_my.properties,
- * resource/gnu/java/locale/LocaleInformation_ne.properties,
- * resource/gnu/java/locale/LocaleInformation_nr.properties,
- * resource/gnu/java/locale/LocaleInformation_nso.properties,
- * resource/gnu/java/locale/LocaleInformation_ny.properties,
- * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
- * resource/gnu/java/locale/LocaleInformation_rw.properties,
- * resource/gnu/java/locale/LocaleInformation_se.properties,
- * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties,
- * resource/gnu/java/locale/LocaleInformation_ss.properties,
- * resource/gnu/java/locale/LocaleInformation_ssy.properties,
- * resource/gnu/java/locale/LocaleInformation_st.properties,
- * resource/gnu/java/locale/LocaleInformation_tg.properties,
- * resource/gnu/java/locale/LocaleInformation_tn.properties,
- * resource/gnu/java/locale/LocaleInformation_to.properties
- * resource/gnu/java/locale/LocaleInformation_ts.properties,
- * resource/gnu/java/locale/LocaleInformation_ug.properties,
- * resource/gnu/java/locale/LocaleInformation_ve.properties,
- * resource/gnu/java/locale/LocaleInformation_wo.properties,
- * resource/gnu/java/locale/LocaleInformation_xh.properties,
- * resource/gnu/java/locale/LocaleInformation_yo.properties,
- * resource/gnu/java/locale/LocaleInformation_zu.properties:
- New files from CLDR 1.5.1.
-
-2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
-
- * java/lang/Integer.java (signum): Implemented properly as
- described in Hacker's Delight Section 2-7, plus Andrew Haley's
- explanation.
-
-2008-07-01 Andrew Haley <aph@redhat.com>
-
- * java/lang/Long.java: Comment change only.
-
-2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
-
- * java/lang/Long.java (signum): Implemented properly as described
- in Hacker's Delight Section 2-7.
-
-2008-06-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35237:
- * resource/java/util/iso4217.properties:
- Regenerated from CLDR 1.5.1 data.
-
-2008-06-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36636:
- * tools/gnu/classpath/tools/jar/Updater.java:
- (run(Main)): Check return value of renameTo, and
- create temporary file in same directory (as suggested
- by Tom Tromey).
- (copyFile(File,File)): Removed.
-
-2008-06-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36637:
- * examples/Makefile.am,
- * lib/Makefile.am:
- Use new conditional and $(JAR).
- * m4/acinclude.m4:
- Replace --with-fastjar with a general
- --with-jar check that can be turned off.
- * tools/Makefile.am:
- Use new conditional and $(JAR).
-
-2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36636:
- * tools/gnu/classpath/tools/jar/Updater.java:
- (run(Main)): Check return value of renameTo, and
- copy file instead if necessary.
- (copyFile(File,File)): New method to copy a file.
-
-2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac: Remove AC_PROG_MKDIR_P.
- * examples/Makefile.am,
- * lib/Makefile.am,
- * tools/Makefile.am:
- Use mkdir_p instead of MKDIR_P.
-
-2008-06-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36221:
- * gnu/xml/dom/DomAttr.java:
- (DomAttr(DomDocument,String,String,String,String)):
- New constructor.
- * gnu/xml/dom/DomDocument.java:
- (createElement(String)): Use new constructor rather than
- setting variable directly.
- (createAttribute(String)): Likewise.
- * gnu/xml/dom/DomElement.java:
- (DomElement(DomDocument,String,String,String,String)):
- New constructor.
- * gnu/xml/dom/DomNsNode.java:
- (localName): Make private.
- (DomNsNode(short,DomDocument,String,String,String,String)):
- New constructor.
- * gnu/xml/dom/ls/DomLSParser.java:
- (doParse(LSInput)): Set namespace awareness using a method,
- not directly.
- * gnu/xml/dom/ls/SAXEventSink.java:
- (namespaceAware): Make private.
- (setNamespaceAware(boolean)): New method.
- * gnu/xml/transform/XSLURIResolver.java:
- (parse(InputSource,XMLReader)): Parse with namespace awareness on.
-
-2008-06-24 Tom Tromey <tromey@redhat.com>
-
- PR libgcj/32198:
- * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
- (compile): Reverse isAssignableFrom test.
-
-2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36219:
- * gnu/xml/transform/ForEachNode.java:
- Genericised.
- * gnu/xml/transform/SortKey.java:
- Documented.
- (clone(Stylesheet)): Implemented.
- (cloneAttributeValueTemplate(TemplateNode,Stylesheet)):
- Implemented.
- * gnu/xml/transform/Stylesheet.java:
- (parseSortKeys(Node)): Return empty list not null.
- * gnu/xml/transform/TemplateNode.java:
- Genericise documentOrderComparator.
-
-2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/xml/xpath/CountFunction.java,
- * gnu/xml/xpath/EqualityExpr.java,
- * gnu/xml/xpath/Expr.java,
- * gnu/xml/xpath/IdFunction.java,
- * gnu/xml/xpath/LocalNameFunction.java,
- * gnu/xml/xpath/NameFunction.java,
- * gnu/xml/xpath/NamespaceUriFunction.java,
- * gnu/xml/xpath/ParenthesizedExpr.java,
- * gnu/xml/xpath/Steps.java,
- * gnu/xml/xpath/SumFunction.java,
- * gnu/xml/xpath/UnionExpr.java,
- * gnu/xml/xpath/XPathParser.java,
- * gnu/xml/xpath/XPathParser.y,
- * java/lang/Enum.java,
- * java/lang/reflect/Constructor.java,
- * java/lang/reflect/Field.java,
- * java/lang/reflect/Method.java:
- Reduce scope of unchecked warning suppression,
- and remove unneeded uses.
-
-2008-06-23 Christian Thalinger <twisti@complang.tuwien.ac.at>
-
- * include/jni.h [__cplusplus] (_Jv_JNIEnv): Renamed member p to
- functions to be compatible with OpenJDK.
-
-2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36220:
- * gnu/xml/transform/CallTemplateNode.java:
- (doApply(Stylesheet,QName,Node,int,int,Node,Node)):
- Check for withParams being empty not null.
- (references(QName)): Remove special-casing for null.
- * gnu/xml/transform/Stylesheet.java:
- (parseWithParams(Node)): Just return the list if empty,
- don't return null instead.
-
-2008-06-23 Andrew Haley <aph@redhat.com>
-
- * native/jawt/Makefile.am,
- native/fdlibm/Makefile.am,
- native/jni/java-util/Makefile.am,
- native/jni/gstreamer-peer/Makefile.am,
- native/jni/native-lib/Makefile.am,
- native/jni/gconf-peer/Makefile.am,
- native/jni/gtk-peer/Makefile.am,
- native/jni/xmlj/Makefile.am,
- native/jni/midi-alsa/Makefile.am,
- native/jni/java-nio/Makefile.am,
- native/jni/midi-dssi/Makefile.am,
- native/jni/classpath/Makefile.am,
- native/jni/java-io/Makefile.am,
- native/jni/java-lang/Makefile.am,
- native/jni/java-net/Makefile.am (AM_CFLAGS): Add @EXTRA_CFLAGS@.
- * configure.ac (EXTRA_CFLAGS): New macro.
-
- * lib/Makefile.am (resources): Add .svn.
-
-2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/xml/transform/ParameterNode.java,
- * gnu/xml/transform/Stylesheet.java,
- * gnu/xml/transform/UnparsedEntityUriFunction.java,
- * gnu/xml/transform/ValueOfNode.java,
- * gnu/xml/transform/XSLComparator.java,
- * gnu/xml/transform/XSLURIResolver.java:
- Genericised.
-
-2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/xml/xpath/ContainsFunction.java,
- * gnu/xml/xpath/CountFunction.java,
- * gnu/xml/xpath/EqualityExpr.java,
- * gnu/xml/xpath/Expr.java,
- * gnu/xml/xpath/IdFunction.java,
- * gnu/xml/xpath/LocalNameFunction.java,
- * gnu/xml/xpath/NameFunction.java,
- * gnu/xml/xpath/ParenthesizedExpr.java:
- Genericised.
-
-2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/xml/xpath/Expr.java,
- * gnu/xml/xpath/FloorFunction.java,
- * gnu/xml/xpath/Function.java,
- * gnu/xml/xpath/FunctionCall.java,
- * gnu/xml/xpath/NamespaceUriFunction.java,
- * gnu/xml/xpath/ParenthesizedExpr.java,
- * gnu/xml/xpath/Root.java,
- * gnu/xml/xpath/Selector.java,
- * gnu/xml/xpath/Steps.java:
- Genericised.
-
-2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/xml/xpath/BooleanFunction.java,
- * gnu/xml/xpath/CeilingFunction.java,
- * gnu/xml/xpath/ConcatFunction.java,
- * gnu/xml/xpath/DocumentOrderComparator.java,
- * gnu/xml/xpath/Expr.java,
- * gnu/xml/xpath/IdFunction.java,
- * gnu/xml/xpath/LangFunction.java,
- * gnu/xml/xpath/LocalNameFunction.java,
- * gnu/xml/xpath/NameFunction.java,
- * gnu/xml/xpath/NormalizeSpaceFunction.java,
- * gnu/xml/xpath/NotFunction.java,
- * gnu/xml/xpath/NumberFunction.java,
- * gnu/xml/xpath/Path.java,
- * gnu/xml/xpath/RoundFunction.java,
- * gnu/xml/xpath/Selector.java,
- * gnu/xml/xpath/StartsWithFunction.java,
- * gnu/xml/xpath/Steps.java,
- * gnu/xml/xpath/StringFunction.java,
- * gnu/xml/xpath/StringLengthFunction.java,
- * gnu/xml/xpath/SubstringAfterFunction.java,
- * gnu/xml/xpath/SubstringBeforeFunction.java,
- * gnu/xml/xpath/SubstringFunction.java,
- * gnu/xml/xpath/SumFunction.java,
- * gnu/xml/xpath/TranslateFunction.java,
- * gnu/xml/xpath/UnionExpr.java,
- * gnu/xml/xpath/XPathParser.java,
- * gnu/xml/xpath/XPathParser.y,
- * gnu/xml/xpath/XPathTokenizer.java:
- Genericised.
- * javax/xml/datatype/DatatypeFactory.java:
- Use new java.util.ServiceLoader framework.
- * javax/xml/namespace/NamespaceContext.java,
- * javax/xml/parsers/DocumentBuilderFactory.java,
- * javax/xml/parsers/SAXParserFactory.java,
- * javax/xml/stream/XMLEventFactory.java,
- * javax/xml/stream/XMLEventReader.java,
- * javax/xml/stream/XMLInputFactory.java,
- * javax/xml/stream/XMLOutputFactory.java:
- Genericised.
- * javax/xml/stream/events/DTD.java,
- * javax/xml/stream/events/EndElement.java,
- * javax/xml/stream/events/StartElement.java:
- Ignore unchecked errors due to API not using generics.
- * javax/xml/transform/TransformerFactory.java,
- * javax/xml/validation/SchemaFactory.java,
- * javax/xml/xpath/XPathFactory.java:
- Genericised.
- * javax/xml/xpath/XPathFunction.java:
- Ignore unchecked errors due to API not using generics.
-
-2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36220:
- * gnu/xml/transform/ParameterNode.java:
- (clone()): Only clone select if not null.
- (toString()): Always include value of select.
- * gnu/xml/transform/Stylesheet.java:
- (toString()): Implemented.
- * gnu/xml/transform/Template.java:
- (toString()): Add value of node.
- * gnu/xml/transform/TemplatesImpl.java:
- (toString()): Implemented.
-
-2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/28664:
- * gnu/java/math/GMP.java:
- Renamed from VMBigInteger.java and fixed to use
- GMP instances directly.
- * include/Makefile.am:
- Generate GMP.h not VMBigInteger.h.
- * java/math/BigInteger.java:
- Send instances of GMP in calls to GMP rather than
- the wrapping BigInteger class.
- * native/jni/java-math/Makefile.am:
- Fix filename of source code file.
- * native/jni/java-math/gnu_java_math_GMP.c:
- Renamed from java_math_VMBigInteger.c.
- * native/jni/java-math/java_math_VMBigInteger.c,
- * vm/reference/java/math/VMBigInteger.java:
- Removed.
-
-2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Remove --with-vm option, instead relying
- on AC_PROG_JAVA. Only call this if tools
- are enabled.
- * tools/gappletviewer.in,
- * tools/gjar.in,
- * tools/gjarsigner.in,
- * tools/gjavah.in,
- * tools/gjdoc.in,
- * tools/gkeytool.in,
- * tools/gnative2ascii.in,
- * tools/gorbd.in,
- * tools/grmic.in,
- * tools/grmid.in,
- * tools/grmiregistry.in,
- * tools/gserialver.in,
- * tools/gtnameserv.in:
- Regenerated with @JAVA@ and -classpath option.
-
-2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/ac_prog_java.m4:
- Add CACAO and JamVM.
- * m4/ac_prog_javac.m4:
- Use variables to store warning options.
-
-2008-06-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/ObjectName.java,
- * javax/management/StandardMBean.java:
- Fix warnings due to use of generics.
-
-2008-06-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/openmbean/ArrayType.java,
- * javax/management/openmbean/CompositeDataSupport.java,
- * javax/management/openmbean/CompositeType.java,
- * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
- * javax/management/openmbean/OpenMBeanInfoSupport.java,
- * javax/management/openmbean/OpenMBeanParameterInfoSupport.java,
- * javax/management/openmbean/SimpleType.java,
- * javax/management/openmbean/TabularDataSupport.java:
- Fix warnings due to use of generics.
- * javax/management/remote/rmi/RMIConnection.java:
- Suppress warnings due to API's use of MarshalledObject.
-
-2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/openmbean/TabularDataSupport.java,
- * javax/management/openmbean/TabularType.java:
- Fix warnings due to use of generics.
-
-2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36522:
- * gnu/java/security/PolicyFile.java:
- Correct typo changing seperator to separator.
-
-2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36477:
- * gnu/java/lang/CPStringBuilder.java,
- (setLength(int)): Don't ensure capacity when
- new length is 0.
- (ensureCapacity(int)): Allocate double the minimum
- capacity rather than double the array length when
- allocating a new array after a write.
-
-2008-06-15 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/java2d/RasterGraphics.java: remove unused import that cause
- compilation to fail when xpeers are not enabled.
-
-2008-06-15 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): delegate to
- setPaint.
- (setPaint): fix to set paint context and foreground color.
- (imageCache): new field.
- (drawImage): new codepath for scaling images.
- (prepareImage): new method.
- (getPaintContext): set paintContext appropriately.
- * gnu/java/awt/java2d/RasterGraphics.java (renderScanline): new method,
- override from superclass to detect correct value of y while rendering
- the scanline.
- * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): revert previous
- patch.
- * gnu/java/awt/peer/x/XEventPump.java (findMouseEventTarget): new method.
- (handleButtonPress): use of findMouseEventTarget to detect the correct
- target.
- (handleButtonRelease): likewise.
- * gnu/java/awt/peer/x/XGraphics2D.java (rawDrawImage): clip the target image
- so that it is completely contained in the destination pixmaps, as per X11
- specification.
- * gnu/java/awt/peer/x/XToolkit.java (createTextField): method implemented.
- (createButton): likewise.
- (prepareImage): likewise.
- (createLabel): likewise.
- (checkImage): likewise.
- (createTextArea): likewise.
- (createCheckbox): likewise.
- (checkHeadLess): new method.
- * gnu/javax/imageio/bmp/BMPImageWriter.java (write):
- don't close the stream.
- * gnu/javax/imageio/bmp/BMPImageWriterSpi.java (names): added new names to
- the list of known names for BMP.
- * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
- * javax/imageio/ImageIO.java (write): call dispose on ImageWriter after
- writing of the image.
-
-2008-06-15 Tom Tromey <tromey@redhat.com>
-
- * include/jni.h (_jobjectRefType, jobjectRefType): Always
- declare.
-
-2008-06-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Add --enable-gjdoc option and check
- for mkdir -p.
- * examples/Makefile.am,
- * lib/Makefile.am,
- * lib/copy-vmresources.sh.in:
- Use @MKDIR_P@.
- * tools/Makefile.am:
- Allow building GJDoc to be disabled
- and use @MKDIR_P@.
-
-2008-06-13 Mark Wielaard <mark@klomp.org>
-
- * tools/Makefile.am (USE_JAVAC_FLAGS): Use relative generated dir.
- (TOOLS_ZIP): Generate antlr output in relative dir.
-
-2008-06-13 Mark Wielaard <mark@klomp.org>
-
- * tools/Makefile.am (USE_JAVAC_FLAGS): Use generated in builddir.
- (TOOLS_JAVA_FILES): Include all .java files in all subdirs.
- (ALL_TOOLS_FILES): Include gjdoc_resources and antlr input file.
- (TOOLS_ZIP): Generate antlr output in builddir.
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png:
- New file from gjdoc.
-
-2008-06-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Check for --with-glibj too when disabling
- the javac check.
-
-2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * include/Makefile.am: Don't delete headers
- when not rebuilding them.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac: Only regenerate headers by
- default if the headers aren't in the source tree.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac: Only run javac check
- if examples, tools and/or class library are
- being built.
- * scripts/check_jni_methods.sh.in:
- Remove duplicates in the list of JNI methods
- for when builddir==srcdir.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * lib/Makefile.am:
- Replace explicit mkinstalldirs with $(mkinstalldirs).
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * scripts/check_jni_methods.sh.in:
- Search the source directory as well for
- when headers are in the tarball.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.am: Replace tools with
- $(TOOLSDIR).
- * m4/acinclude.m4: Include option
- to disable building the tools.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * Makefile.am: Use default makedistcheck
- flags that test all optional dependencies.
- * include/Makefile.am: Add header files to dist.
- * lib/Makefile.am: Trick class files into being
- built for dist, so headers can be generated.
-
-2008-06-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/announce/20080606.wml,
- * doc/www.gnu.org/newsitems.txt:
- Add 0.97.2 annoncement.
- * NEWS: Add 0.97.1 and 0.97.2 updates.
-
-2008-06-09 Mark Wielaard <mark@klomp.org>
-
- * Makefile.am (EXTRA_DIST): Add ChangeLog-2007.
- * doc/Makefile.am (EXTRA_DIST): Add invoke.texi.
-
-2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/Integer.java:
- (parseInt(String, int, boolean)): Disallow "-+".
-
-2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
- Fixed indentation and changed to use OptionException.
- * tools/gnu/classpath/tools/getopt/OptionException.java:
- (OptionException(String,Throwable)): Added.
-
-2008-06-03 Robert Schuster <robertschuster@fsfe.org>
-
- * tools/gnu/classpath/tools/jar/Main.java:
- (run): Call different ClasspathToolParser.parse() variant.
- (getParser): Changed return type to ClasspathToolParser.
- * tools/gnu/classpath/tools/javah/GcjhMain.java:
- (getParser): Changed return type to ClasspathToolParser.
- * tools/gnu/classpath/tools/javah/Main.java:
- (getParser): Changed return type to ClasspathToolParser.
- * tools/gnu/classpath/tools/getopt/Parser.java: Make 'programName'
- protected.
- * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
- (parse(String[], FileArgumentCallback,boolean): New method.
- (parse(String[], boolean): New method.
- (parseFileList): New method.
- (parseLine): New method.
- (AtFileArgumentCallback): New inner class.
-
-2008-06-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/getopt/OptionException.java,
- * tools/gnu/classpath/tools/jar/Main.java:
- Revert previous changes to allow Schuster's patch to
- do the same.
-
-2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/getopt/OptionException.java:
- (OptionException(String,Throwable)): New constructor.
- * tools/gnu/classpath/tools/jar/Main.java:
- (fileLists): New queue for streams containing lists of files.
- (HandleFile.NotifyFile(String)): Check for '@' arguments
- and add to stream queue.
- (parsed(String)): Add stdin to queue instead of setting flag.
- (readNames()): Work with the queue rather than just stdin.
- (run(String[])): Always execute readNames().
-
-2008-06-01 Mark Wielaard <mark@klomp.org>
-
- * gnu/java/awt/java2d/AbstractGraphics2D.java: Removed XDialogPeer
- import.
-
-2008-05-29 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): now set directly
- the foreground color the application wants to use to draw. On null, behave
- like OpenJDK, drawing black.
- (renderScanline): fixed NPE, paintContext never initialized. Correctely
- retrieve destination raster
- (getColor): Return the correct type.
- (static initializer): HashMap now typed.
- (background): now defaults to black and not null.
- (getPaintContext): new method. Initialize lazily the PaintContext.
- (foreground): new field.
- (isForegroundColorNull): likewise.
- (getDeviceBounds): made abstract.
- * gnu/java/awt/java2d/RasterGraphics.java (getDeviceBounds): new method.
- * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): pass correct
- value of Y to doScanline.
- * gnu/java/awt/peer/x/GLGraphics.java (getDeviceBounds): new method.
- (setBackground): synch with new Escher 2.0 API.
- * gnu/java/awt/peer/x/XGraphicsConfiguration.java (getDefaultTransform):
- implemented.
- (getBounds): new method.
- * java/awt/AlphaComposite.java (derive(int) and derive(float)):
- new methods.
- * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
- now call createWritableChild.
- (createWritableChild): reformatted.
-
-2008-05-27 Joshua Sumali <jsumali@redhat.com>
-
- * NEWS: Added building of gjdoc into tools.
-
-2008-05-27 Joshua Sumali <jsumali@redhat.com>
-
- * AUTHORS: Added Joshua Sumali.
-
-2008-05-27 Joshua Sumali <jsumali@redhat.com>
-
- * configure.ac: Add support for Antlr. This is used for building gjdoc.
- Also generate tools/gjdoc wrapper with gjdoc.in.
- * doc/gjdoc.texi: New file.
- * doc/invoke.texi: New file.
- * doc/Makefile.am: Generate gjdoc documentation.
- * m4/ac_prog_antlr.m4: New file.
- * m4/ac_prog_java.m4: New file.
- * m4/ac_prog_java_works.m4: New file.
- * tools/Makefile.am: Build gjdoc as part of tools.
- * tools/com/sun/tools/javadoc/Main.java,
- * tools/gjdoc.in,
- * tools/gnu/classpath/tools/doclets/AbstractDoclet.java,
- * tools/gnu/classpath/tools/doclets/.cvsignore,
- * tools/gnu/classpath/tools/doclets/debugdoclet/.cvsignore,
- * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java,
- * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java,
- * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java,
- * tools/gnu/classpath/tools/doclets/DocletOptionFile.java,
- * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java,
- * tools/gnu/classpath/tools/doclets/DocletOption.java,
- * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java,
- * tools/gnu/classpath/tools/doclets/DocletOptionString.java,
- * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
- * tools/gnu/classpath/tools/doclets/htmldoclet/.cvsignore,
- * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
- * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
- * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java,
- * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java,
- * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java,
- * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java,
- * tools/gnu/classpath/tools/doclets/PackageGroup.java,
- * tools/gnu/classpath/tools/doclets/PackageMatcher.java,
- * tools/gnu/classpath/tools/doclets/StandardTaglet.java,
- * tools/gnu/classpath/tools/doclets/TagletPrinter.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/.cvsignore,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.cvsignore,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/package.html,
- * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java,
- * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java,
- * tools/gnu/classpath/tools/FileSystemClassLoader.java,
- * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java,
- * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
- * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/.cvsignore,
- * tools/gnu/classpath/tools/gjdoc/Debug.java,
- * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java,
- * tools/gnu/classpath/tools/gjdoc/DocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java,
- * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java,
- * tools/gnu/classpath/tools/gjdoc/expr/Context.java,
- * tools/gnu/classpath/tools/gjdoc/expr/.cvsignore,
- * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java,
- * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/Expression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java,
- * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/java-expression.g,
- * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/Type.java,
- * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java,
- * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java,
- * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java,
- * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java,
- * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java,
- * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/Main.java,
- * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ParseException.java,
- * tools/gnu/classpath/tools/gjdoc/Parser.java,
- * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java,
- * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java,
- * tools/gnu/classpath/tools/gjdoc/TagContainer.java,
- * tools/gnu/classpath/tools/gjdoc/TagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java,
- * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java,
- * tools/gnu/classpath/tools/gjdoc/Timer.java,
- * tools/gnu/classpath/tools/gjdoc/TypeImpl.java,
- * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java,
- * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java,
- * tools/gnu/classpath/tools/gjdoc/WritableType.java,
- * tools/gnu/classpath/tools/IOToolkit.java,
- * tools/gnu/classpath/tools/java2xhtml/.cvsignore,
- * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java,
- * tools/gnu/classpath/tools/MalformedInputEvent.java,
- * tools/gnu/classpath/tools/MalformedInputListener.java,
- * tools/gnu/classpath/tools/NotifyingInputStreamReader.java,
- * tools/gnu/classpath/tools/StringToolkit.java,
- * tools/gnu/classpath/tools/taglets/AuthorTaglet.java,
- * tools/gnu/classpath/tools/taglets/CodeTaglet.java,
- * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java,
- * tools/gnu/classpath/tools/taglets/.cvsignore,
- * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java,
- * tools/gnu/classpath/tools/taglets/GenericTaglet.java,
- * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java,
- * tools/gnu/classpath/tools/taglets/SinceTaglet.java,
- * tools/gnu/classpath/tools/taglets/TagletContext.java,
- * tools/gnu/classpath/tools/taglets/ValueTaglet.java,
- * tools/gnu/classpath/tools/taglets/VersionTaglet.java,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js,
- * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/serialized.xsl,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd,
- * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties,
- * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd,
- * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt,
- * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt,
- * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt,
- * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt,
- * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng,
- * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng,
- * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng,
- * tools/resource/gnu/classpath/tools/gjdoc/version.properties,
- * tools/resource/gnu/classpath/tools/gjdoc/version.properties.in:
- New files, taken from gjdoc source tree.
-
-
-2008-05-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/gnu/classpath/tools/jar/Creator.java:
- (writeCommandLineEntries(Main,OutputStream)):
- Add default value for manifest version and
- include Created-By property.
-
-2008-05-19 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/peer/x/XEventPump.java (handleExpose): new method.
- (handleDestroyNotify): likewise.
- (handleClientMessage): likewise.
- (handleButtonRelease): likewise.
- (handleMotionNotify): likewise.
- (handleKeyEvent): likewise.
- (handleButtonPress): likewise.
- (handleEvent): refactored to use new methods instead of a big switch
- block. Fixed resizing of windows.
- * gnu/java/awt/peer/x/XWindowPeer.java (standardSelect): update list
- of flags for X11 events handling.
- (callback): removed now unused flag.
-
-2008-05-16 Mario Torre <neugens@aicas.com>
-
- * native/jni/java-math/java_math_VMBigInteger.c
- (Java_java_math_VMBigInteger_natModInverse): fix variable res not
- initialized.
-
-2008-05-15 Robert Schuster <robertschuster@fsfe.org>
-
- * java/net/NetworkInterface.java:
- (isUp): New method.
- (isPointToPoint): Dito.
- (isLoopback): Dito.
- (supportsMulticast): Dito.
- * vm/reference/java/net/VMNetworkInterface.java:
- (isUp): New method.
- (isPointToPoint): Dito.
- (isLoopback): Dito.
- (supportsMulticast): Dito.
- * native/jni/java-net/java_net_VMNetworkInterface.c:
- (isUp): New method.
- (isPointToPoint): Dito.
- (isLoopback): Dito.
- (supportsMulticast): Dito.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
- * java/lang/Integer.java:
- (parseInt(String,int,boolean)): Parse +x
- as x, not -x.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/regex/Matcher.java:
- (regionStart): New variable.
- (regionEnd): Likewise.
- (transparentBounds): Likewise.
- (anchoringBounds): Likewise.
- (Matcher()): Initialise new variables.
- (find()): Alter to use new settings.
- (find(int)): Likewise.
- (lookingAt()): Likewise.
- (matches()): Likewise.
- (reset()): Reset region.
- (reset(CharSequence)): Documented.
- (toString()): Include new variables.
- (region(int,int)): Implemented.
- (regionStart()): Likewise.
- (regionEnd()): Likewise.
- (hasTransparentBounds()): Likewise.
- (useTransparentBounds(boolean)): Likewise.
- (hasAnchoringBounds()): Likewise.
- (useAnchoringBounds(boolean)): Likewise.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/lang/CPStringBuilder.java:
- (toString()): Fix comments to reflect copying changes.
- * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
- (toString()): Likewise.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * NEWS:
- Mention GMP and CPStringBuilder.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/36147
- * gnu/java/lang/CPStringBuilder.java:
- (allocated): New flag to mark whether or
- not the array has been allocated to a String object.
- (ensureCapacity(int)): Removed.
- (ensureCapacity_unsynchronized(int)): Renamed to
- ensureCapacity, and creates an array when allocated
- is true.
- (allocateArray(int)): Added.
- (trimToSize()): Use allocateArray method.
- (toString()): Set allocated to true;
- (substring(int,int)): Likewise.
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/lang/CPStringBuilder.java:
- Make default capacity configurable.
-
-2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * vm/reference/gnu/java/lang/VMCPStringBuilder.java,
- * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
- * vm/reference/java/net/VMNetworkInterface.java:
- Remove use of 1.5 language constructs.
-
-2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/regex/RE.java:
- Switch to use generic ArrayLists.
- * gnu/java/util/regex/REMatchEnumeration.java:
- Make the enumeration implementation generic.
- * gnu/java/util/regex/RETokenLookBehind.java:
- Remove unused variables.
-
-2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- Add generics to these classes.
- * gnu/java/util/regex/RETokenOneOf.java:
- Use an ArrayList and a Deque instead of
- a Vector and a Stack to remove unnecessary
- synchronisation.
- * gnu/java/util/regex/RETokenRepeated.java:
- Replace custom FindMatchControlStack class
- with a generic Deque.
- * java/util/regex/Pattern.java:
- Use a generic ArrayList instance.
-
-2008-05-07 Mario Torre <neugens@limasoftware.net>
-
- * gnu/java/awt/peer/x/XEventPump.java (handleEvent):
- Fixed mouse dragging and movement in XEventPump. Patch from Roman Kennke.
-
-2008-05-07 Mario Torre <neugens@aicas.com>
-
- * gnu/java/awt/peer/x/XEventPump.java (handleEvent): xEvent.code is now
- masked to identify and react to syntetic events.
- Added UnmapNotify, DestroyNotify and ClientMessage to the list of event
- handled.
- * gnu/java/awt/peer/x/XFramePeer.java (getState): initial implementation.
- * gnu/java/awt/peer/x/XGraphics2D.java (setPaint): fix NPE, this is a
- workaround, the code have to be fixed in a better way.
- * gnu/java/awt/peer/x/XWindowPeer.java (getXwindow): new method to allow
- access to the underling xwindow.
- (standardSelect): add more events for notification.
- (XWindowPeer): call set_wm_delete_window to ask the WM to notify us
- when a delete event occur.
-
-2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * tools/gnu/classpath/tools/jar/Indexer.java,
- * tools/gnu/classpath/tools/javah/JniHelper.java,
- * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java,
- * tools/gnu/classpath/tools/orbd/PersistentMap.java,
- * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
- * tools/gnu/classpath/tools/rmic/Generator.java,
- * tools/gnu/classpath/tools/rmic/MethodGenerator.java,
- * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java,
- * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
- * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java:
- Swap use of StringBuffer for StringBuilder.
-
-2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * javax/swing/AbstractButton.java,
- * javax/swing/JButton.java,
- * javax/swing/JComboBox.java,
- * javax/swing/JComponent.java,
- * javax/swing/JDesktopPane.java,
- * javax/swing/JFileChooser.java,
- * javax/swing/JFrame.java,
- * javax/swing/JLabel.java,
- * javax/swing/JList.java,
- * javax/swing/JMenuBar.java,
- * javax/swing/JPopupMenu.java,
- * javax/swing/JProgressBar.java,
- * javax/swing/JScrollBar.java,
- * javax/swing/JSlider.java,
- * javax/swing/JSplitPane.java,
- * javax/swing/JTabbedPane.java,
- * javax/swing/JToolBar.java,
- * javax/swing/JToolTip.java,
- * javax/swing/UIManager.java,
- * javax/swing/event/EventListenerList.java,
- * javax/swing/table/AbstractTableModel.java,
- * javax/swing/text/AbstractDocument.java,
- * javax/swing/text/DefaultEditorKit.java,
- * javax/swing/text/DefaultStyledDocument.java,
- * javax/swing/text/JTextComponent.java,
- * javax/swing/text/MaskFormatter.java,
- * javax/swing/text/TabSet.java,
- * javax/swing/text/html/CSSParser.java,
- * javax/swing/text/html/HTMLWriter.java,
- * javax/swing/tree/DefaultTreeSelectionModel.java,
- * javax/xml/namespace/QName.java,
- * javax/xml/transform/TransformerException.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * javax/accessibility/AccessibleRelationSet.java,
- * javax/accessibility/AccessibleStateSet.java,
- * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java,
- * javax/imageio/plugins/jpeg/JPEGQTable.java,
- * javax/imageio/stream/ImageInputStreamImpl.java,
- * javax/management/ObjectName.java,
- * javax/naming/BinaryRefAddr.java,
- * javax/naming/CompositeName.java,
- * javax/naming/CompoundName.java,
- * javax/naming/NamingException.java,
- * javax/naming/spi/NamingManager.java,
- * javax/security/auth/x500/X500Principal.java,
- * javax/security/sasl/SaslException.java,
- * javax/sound/sampled/AudioFormat.java,
- * javax/sound/sampled/CompoundControl.java,
- * javax/sound/sampled/DataLine.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/util/AbstractCollection.java,
- * java/util/BitSet.java,
- * java/util/Collections.java,
- * java/util/Locale.java,
- * java/util/ResourceBundle.java,
- * java/util/TimeZone.java,
- * java/util/logging/FileHandler.java,
- * java/util/logging/Logger.java,
- * java/util/logging/SimpleFormatter.java,
- * java/util/logging/XMLFormatter.java,
- * java/util/prefs/AbstractPreferences.java,
- * java/util/regex/PatternSyntaxException.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/text/AttributedString.java,
- * java/text/ChoiceFormat.java,
- * java/text/CollationElementIterator.java,
- * java/text/Collator.java,
- * java/text/DecimalFormat.java,
- * java/text/MessageFormat.java,
- * java/text/RuleBasedCollator.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/security/CodeSource.java,
- * java/security/MessageDigest.java,
- * java/security/Permission.java,
- * java/security/PermissionCollection.java,
- * java/security/ProtectionDomain.java,
- * java/security/cert/CertPath.java,
- * java/security/cert/PKIXBuilderParameters.java,
- * java/security/cert/PKIXCertPathBuilderResult.java,
- * java/security/cert/X509CRLSelector.java,
- * java/security/cert/X509CertSelector.java,
- * org/ietf/jgss/Oid.java,
- * org/omg/CORBA/portable/Delegate.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/beans/Statement.java,
- * java/io/File.java,
- * java/io/StreamTokenizer.java,
- * java/lang/Throwable.java,
- * java/math/BigDecimal.java,
- * java/math/BigInteger.java,
- * java/net/Inet4Address.java,
- * java/net/Inet6Address.java,
- * java/net/NetworkInterface.java,
- * java/net/SocketPermission.java,
- * java/net/URLDecoder.java,
- * java/net/URLStreamHandler.java,
- * java/nio/channels/FileLock.java,
- * java/rmi/dgc/VMID.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/awt/Component.java,
- * java/awt/Container.java,
- * java/awt/JobAttributes.java,
- * java/awt/event/ActionEvent.java,
- * java/awt/event/ComponentEvent.java,
- * java/awt/event/HierarchyEvent.java,
- * java/awt/event/InputEvent.java,
- * java/awt/event/InputMethodEvent.java,
- * java/awt/event/KeyEvent.java,
- * java/awt/event/MouseEvent.java,
- * java/awt/event/WindowEvent.java,
- * java/awt/font/TextLayout.java,
- * java/awt/image/BandedSampleModel.java,
- * java/awt/image/BufferedImage.java,
- * java/awt/image/MultiPixelPackedSampleModel.java,
- * java/awt/image/Raster.java,
- * java/awt/image/SinglePixelPackedSampleModel.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35482
- * java/lang/String.java:
- (toLowerCase()): Fix calculation of number
- of characters to copy.
- (toLowerCaseTurkish()): Likewise.
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/xml/stream/XMLEventImpl.java,
- * gnu/xml/stream/XMLParser.java,
- * gnu/xml/validation/datatype/EntitiesType.java,
- * gnu/xml/validation/datatype/NMTokensType.java:
- Swap use of StringBuffer for CPStringBuilder,
-
-2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/javax/swing/text/html/parser/htmlValidator.java,
- * gnu/javax/swing/text/html/parser/models/list.java,
- * gnu/javax/swing/text/html/parser/models/node.java,
- * gnu/javax/swing/text/html/parser/support/Parser.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/lang/CPStringBuilder.java:
- (substring(int)): Added.
- * gnu/javax/naming/giop/CorbalocParser.java,
- * gnu/javax/naming/giop/GiopNamingServiceFactory.java,
- * gnu/javax/naming/giop/ListBindingsEnumeration.java,
- * gnu/javax/naming/giop/ListEnumeration.java,
- * gnu/javax/naming/ictxImpl/trans/GnuName.java,
- * gnu/javax/net/ssl/PrivateCredentials.java,
- * gnu/javax/net/ssl/Session.java,
- * gnu/javax/net/ssl/provider/HelloRequest.java,
- * gnu/javax/net/ssl/provider/Util.java,
- * gnu/javax/print/ipp/attribute/RequestedAttributes.java,
- * gnu/javax/rmi/CORBA/RmiUtilities.java,
- * gnu/javax/security/auth/callback/AWTCallbackHandler.java,
- * gnu/javax/security/auth/login/ConfigFileTokenizer.java,
- * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java:
- Swap use of StringBuffer for CPStringBuilder,
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/javax/crypto/assembly/TransformerException.java,
- * gnu/javax/crypto/cipher/BaseCipher.java,
- * gnu/javax/crypto/jce/sig/DHParameters.java,
- * gnu/javax/crypto/key/KeyAgreementException.java,
- * gnu/javax/crypto/mode/BaseMode.java,
- * gnu/javax/crypto/pad/BasePad.java,
- * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
- * gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
- * gnu/javax/crypto/sasl/plain/PasswordFile.java,
- * gnu/javax/crypto/sasl/plain/PlainClient.java,
- * gnu/javax/crypto/sasl/srp/PasswordFile.java,
- * gnu/javax/crypto/sasl/srp/SRPClient.java,
- * gnu/javax/crypto/sasl/srp/SRPServer.java,
- * gnu/javax/crypto/sasl/srp/ServerStore.java:
- Swap use of StringBuffer for CPStringBuilder,
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/util/Base64.java,
- * gnu/java/util/prefs/NodeWriter.java,
- * gnu/java/util/regex/RE.java,
- * gnu/java/util/regex/REException.java,
- * gnu/java/util/regex/REMatch.java,
- * gnu/java/util/regex/REMatchEnumeration.java,
- * gnu/java/util/regex/REToken.java,
- * gnu/java/util/regex/RETokenAny.java,
- * gnu/java/util/regex/RETokenBackRef.java,
- * gnu/java/util/regex/RETokenChar.java,
- * gnu/java/util/regex/RETokenEnd.java,
- * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
- * gnu/java/util/regex/RETokenEndSub.java,
- * gnu/java/util/regex/RETokenIndependent.java,
- * gnu/java/util/regex/RETokenLookAhead.java,
- * gnu/java/util/regex/RETokenLookBehind.java,
- * gnu/java/util/regex/RETokenNamedProperty.java,
- * gnu/java/util/regex/RETokenOneOf.java,
- * gnu/java/util/regex/RETokenPOSIX.java,
- * gnu/java/util/regex/RETokenRange.java,
- * gnu/java/util/regex/RETokenRepeated.java,
- * gnu/java/util/regex/RETokenStart.java,
- * gnu/java/util/regex/RETokenWordBoundary.java:
- Swap use of StringBuffer for CPStringBuilder,
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/lang/CPStringBuilder.java:
- (CPStringBuilder(StringBuffer)): Added.
- (CPStringBuulder(StringBuilder)): Likewise.
- * gnu/java/text/AttributedFormatBuffer.java:
- Swap use of StringBuffer for CPStringBuilder,
- and make fields final.
- * gnu/java/text/StringFormatBuffer.java:
- Make fields final.
- * java/text/SimpleDateFormat.java:
- Add thread safety warning.
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/security/OID.java,
- * gnu/java/security/PolicyFile.java,
- * gnu/java/security/der/BitString.java,
- * gnu/java/security/der/DERReader.java,
- * gnu/java/security/jce/sig/DSSParameters.java,
- * gnu/java/security/provider/X509CertificateFactory.java,
- * gnu/java/security/util/ByteArray.java,
- * gnu/java/security/util/Util.java,
- * gnu/java/security/x509/PolicyNodeImpl.java,
- * gnu/java/security/x509/Util.java,
- * gnu/java/security/x509/X500DistinguishedName.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/net/protocol/ftp/FTPConnection.java,
- * gnu/java/net/protocol/jar/Handler.java,
- * gnu/java/rmi/server/RMIClassLoaderImpl.java,
- * gnu/java/rmi/server/RMIHashes.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/classpath/jdwp/util/Signature.java,
- * gnu/java/awt/font/opentype/GlyphNamer.java,
- * gnu/java/awt/font/opentype/truetype/Fixed.java,
- * gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
- * gnu/java/awt/peer/gtk/GdkFontPeer.java,
- * gnu/java/awt/peer/gtk/GtkClipboard.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/CORBA/BigDecimalHelper.java,
- * gnu/CORBA/CDR/LittleEndianInputStream.java,
- * gnu/CORBA/CDR/Vio.java,
- * gnu/CORBA/CDR/gnuRuntime.java,
- * gnu/CORBA/GIOP/MessageHeader.java,
- * gnu/CORBA/GIOP/RequestHeader.java,
- * gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
- * gnu/CORBA/GIOP/v1_0/RequestHeader.java,
- * gnu/CORBA/IOR.java,
- * gnu/CORBA/NamingService/NameParser.java,
- * gnu/CORBA/NamingService/NameTransformer.java,
- * gnu/CORBA/Poa/gnuPOA.java,
- * gnu/CORBA/Poa/gnuServantObject.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java,
- * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java,
- * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
- * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
- * examples/gnu/classpath/examples/html/Demo.java:
- Swap use of StringBuffer for StringBuilder.
-
-2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/xml/libxmlj/dom/GnomeAttr.java,
- * gnu/xml/libxmlj/dom/GnomeCharacterData.java,
- * gnu/xml/libxmlj/dom/GnomeDocument.java,
- * gnu/xml/libxmlj/dom/GnomeDocumentType.java,
- * gnu/xml/libxmlj/dom/GnomeElement.java,
- * gnu/xml/libxmlj/dom/GnomeEntity.java,
- * gnu/xml/libxmlj/dom/GnomeNode.java,
- * gnu/xml/libxmlj/dom/GnomeNotation.java,
- * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java,
- * gnu/xml/libxmlj/dom/GnomeText.java,
- * gnu/xml/libxmlj/dom/GnomeXPathResult.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-04-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/xml/util/XMLWriter.java,
- * gnu/xml/xpath/ArithmeticExpr.java,
- * gnu/xml/xpath/ConcatFunction.java,
- * gnu/xml/xpath/Expr.java,
- * gnu/xml/xpath/FunctionCall.java,
- * gnu/xml/xpath/NormalizeSpaceFunction.java,
- * gnu/xml/xpath/Selector.java,
- * gnu/xml/xpath/Steps.java,
- * gnu/xml/xpath/TranslateFunction.java,
- * gnu/xml/xpath/VariableReference.java,
- * gnu/xml/xpath/XPathTokenizer.java:
- Swap use of StringBuffer for CPStringBuilder.
-
-2008-04-26 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * java/util/ArrayList (raiseBoundsError): new method to raise bound
- exceptions in uncommon case.
- (checkBoundInclusive): use raiseBoundsError.
- (checkBoundExclusive): likewise.
- * java/util/ArrayList (raiseBoundsError): new method to raise bound
- exceptions in uncommon case.
- (checkBoundInclusive): use raiseBoundsError.
- (checkBoundExclusive): likewise.
-
-2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/Byte.java:
- Use int instead of short as a loop counter
- for efficiency.
-
-2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/Byte.java:
- (static): Use a short as the loop counter, not
- a byte as this can't exceed MAX_VALUE.
-
-2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * java/nio/Buffer.java (cap): make field private and final.
- (address): make field final.
- (Buffer): add address argument to package protected constructor thereby
- allowing it to be made final.
- * java/nio/ByteBuffer.java (backing_buffer): make field final.
- (array_offset): make field final.
- (ByteBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/ByteBufferImpl.java (readOnly): make field final.
- (ByteBufferImpl): modify call to super class constructor to pass
- backing_buffer and array_offset.
- * java/nio/CharBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (CharBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/CharBufferImpl.java (readOnly): make field final.
- (CharBufferImpl): modify call to super class constructor to pass
- backing_buffer and array_offset.
- (CharBufferImpl(CharBufferImpl)): likewise.
- * java/nio/CharSequenceBuffer.java (charSequence): make field final.
- (CharSequenceBuffer): modify call to super class constructor, allowing
- fields to be made final.
- (duplicate): use capacity call rather than cap, to allow better
- encapsulation.
- * java/nio/CharViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (CharViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/DirectByteBufferImpl.java: modify calls to super class
- constructors, allowing fields to be made final.
- * java/nio/DoubleBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (DoubleBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/DoubleBufferImpl.java (readOnly): make field final.
- (DoubleBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/DoubleViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (DoubleViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/FloatBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (FloatBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/FloatBufferImpl.java (readOnly): make field final.
- (FloatBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/FloatViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (FloatViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/IntBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (IntBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/IntBufferImpl.java (readOnly): make field final.
- (IntBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/IntViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (IntViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/LongBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (LongBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/LongBufferImpl.java (readOnly): make field final.
- (LongBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/LongViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (LongViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/MappedByteBuffer.java (MappedByteBuffer): modify arguments
- add call to constructor, allowing fields to be final.
- * java/nio/MappedByteBufferImpl.java (readOnly): make field final.
- (MappedByteBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/ShortBuffer.java (array_offset): make field final.
- (backing_buffer): make field final.
- (ShortBuffer): add address, backing_buffer and array_offset to
- constructor, allowing fields to be made final.
- * java/nio/ShortBufferImpl.java (readOnly): make field final.
- (ShortBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
- * java/nio/ShortViewBufferImpl.java (offset): make field final.
- (bb): likewise.
- (readOnly): likewise.
- (endian): likewise.
- (ShortViewBufferImpl): modify call to super class constructor, allowing
- fields to be made final.
-
-2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * java/lang/Byte.java (static): initialize byteCache.
- (valueOf(String,int)): use valueOf(byte) rather than new.
- (valueOf(String)): likewise.
- (valueOf(byte)): Switch from lazy initialization of cached values to
- initialization at class initialization time. This removes the need for
- synchronization in the common case.
- (decode): use valueOf(byte) rather than new.
- * java/lang/Character.java (static): initialize charCache.
- (valueOf): Switch from lazy initialization of cached values to
- initialization at class initialization time. This removes the need for
- synchronization in the common case.
- * java/lang/Double.java (ZERO): new private field.
- (ONE): likewise.
- (valueOf(double)): don't create new doubles for the case of 0 and 1.
- (valueOf(String)): use valueOf(double) rather than new.
- (equals): use raw bits for comparison to avoid division.
- * java/lang/Float.java (ZERO): new private field.
- (ONE): likewise.
- (valueOf(float)): don't create new floats for the case of 0 and 1.
- (valueOf(String)): use valueOf(float) rather than new.
- (equals): use raw bits for comparison to avoid division.
- * java/lang/Integer.java (static): initialize intCache.
- (stringSize): new private method to estimate size of string for an int.
- (toString): reuse digits for single character strings, for multiple
- character strings estimate their length using string size method.
- (valueOf(String,int)): use valueOf(int) rather than new.
- (valueOf(String)): likewise.
- (valueOf(int)): Switch from lazy initialization of cached values to
- initialization at class initialization time. This removes the need for
- synchronization in the common case.
- (getInteger): use valueOf(int) rather than new.
- (decode): use valueOf(int) rather than new.
- (signum): use shift and subtract to compute value.
- (toUnsignedString): calculate string size rather than using 32 chars.
- * java/lang/Long.java (longCache): new private field.
- (stringSize): new private method to estimate size of string for a long.
- (toString): reuse digits for single character strings, for multiple
- character strings estimate their length using string size method.
- (valueOf(String,int)): use valueOf(long) rather than new.
- (valueOf(String)): likewise.
- (valueOf(long)): use cache of values.
- (decode): use valueOf(long) rather than new.
- (getLong): likewise.
- (signum): use shift and subtract to compute value.
- (toUnsignedString): calculate string size rather than using 64 chars.
- * java/lang/Short.java (static): initialize shortCache.
- (valueOf(String,int)): use valueOf(short) rather than new.
- (valueOf(String)): likewise.
- (valueOf(short)): Switch from lazy initialization of cached values to
- initialization at class initialization time. This removes the need for
- synchronization in the common case.
- (decode): use valueOf(short) rather than new.
-
-2008-04-18 Mario Torre <neugens@aicas.com>
-
- PR classpath/35974
- * java/util/logging/Logger.java: fix a deadlock and reformat code.
- Now all the methods of the class get a lock on a static lock, this
- avoids a lock when getLogger and log are used concurrently.
-
-2008-04-18 Tom Tromey <tromey@redhat.com>
-
- * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
- found.
-
-2008-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/gen-classlist.sh.in: Avoid grepping each omission, by
- building an awk script with a hash for literal files, and
- awk regular expressions for the rest.
- * configure.ac: Call AC_PROG_AWK.
-
-2008-04-16 Tom Tromey <tromey@redhat.com>
-
- * tools/gnu/classpath/tools/orbd/Main.java: Bump copyright year.
- * tools/resource/gnu/classpath/tools/common/Messages.properties
- (ClasspathToolParser.VersionFormat): Bump copyright year.
-
-2008-04-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
- * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar)
- (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv)
- (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies
- for these scripts, to trick automake into hiding the respective
- rules for the programs below the CREATE_WRAPPERS conditional.
-
-2008-04-09 Mario Torre <neugens@aicas.com>
-
- * java/io/File.java (canWrite): use canWriteDirectory(String).
- * vm/reference/java/io/VMFile.java (canWriteDirectory): new native method.
- * native/jni/java-io/java_io_VMFile.c: correct indentation, sync function
- names with header file definition.
- (Java_java_io_VMFile_canRead): use cpio_checkAccess to get access
- permission. Removed unused variable.
- (Java_java_io_VMFile_canWrite): likewise.
- (Java_java_io_VMFile_canWriteDirectory): new function.
-
-
-2008-03-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/events/events.wml:
- Correct layout and fix GSoC link.
-
-2008-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/external.wml:
- Corrected Jalopy tag name.
- * doc/www.gnu.org/home.wml:
- Update link to tasks.
- * doc/www.gnu.org/announce/20080222.wml:
- Correct IcedTea and builder links.
- * doc/www.gnu.org/downloads/downloads.wml:
- Add 0.97 and 0.97.1.
- * doc/www.gnu.org/events/events.wml:
- Fix links and add FOSDEMs/GSoC.
-
-2008-03-27 Mario Torre <neugens@aicas.com>
-
- * gnu/xml/stream/SAXParser.java (getProperty): throw
- SAXNotRecognizedException instead of SAXNotSupportedException
- after fall through all known properties.
- * javax/xml/namespace/QName.java (valueOf): throw
- IllegalArgumentException if string is null.
- * java/util/concurrent/CopyOnWriteArrayList.java (lastIndexOf):
- fixed indentation.
- (indexOf): likewise.
-
-2008-03-26 Mario Torre <neugens@aicas.com>
-
- * java/util/concurrent/CopyOnWriteArrayList.java (SubList.set):
- (SubList.clear): new method.
- (SubList.checkMod): fix indentation.
- (SubList.checkBoundsInclusive): likewise.
- (SubList.checkBoundsExclusive): likewise.
- (SubList): added synchronization. Now throw
- IndexOutOfBoundsException instead of IllegalArgumentException
- when index are out of range.
- (SubList.size): added synchronization.
- (SubList.get): likewise.
- (SubList.listIterator): fixed indentation.
- (SubList.set): added synchronization. Update the state of the storage
- after modification.
- (SubList.add): likewise.
- (SubList.remove): likewise.
- (SubList.addAll): likewise.
-
-2008-03-26 Mario Torre <neugens@aicas.com>
-
- * java/util/concurrent/CopyOnWriteArrayList.java (equals): removed
- useless local variable.
- (hashCode): new method.
-
-2008-03-25 Mario Torre <neugens@aicas.com>
-
- * java/util/concurrent/CopyOnWriteArrayList.java (clone): clone method
- in CopyOnWriteArrayList should just do a shallow copy. Fixed.
- (equals): new method, override from base class.
- (toString): likewise.
-
-2008-03-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/awt/image/ColorModel.java:
- (coerceDataWorker(WritableRaster,boolean)):
- Make package-private, not protected.
- * java/awt/image/ComponentColorModel.java:
- Call coerceDataWorker directly.
- * java/awt/image/DirectColorModel.java:
- Likewise.
- (coerceData(WritableRaster,boolean)): Made final.
-
-2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/22883
- * doc/www.gnu.org/home.wml:
- Fix a typo.
- * doc/www.gnu.org/docs/docs.wml:
- Fix links to point to current versions of
- vmintegration and hacking, and add links to
- tools.
-
-2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/22883
- * doc/www.gnu.org/home.wml:
- Update home page to reflect current state of
- affairs.
-
-2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/text/SimpleDateFormat.java:
- (standardChars): Corrected.
- (RFC822_TIMEZONE_FIELD): Added.
- (formatWithAttribute(Date,FormatBuffer,FieldPosition)):
- Support RFC822 timezone field ('Z').
-
-2008-03-20 Tom Tromey <tromey@redhat.com>
-
- * tools/gnu/classpath/tools/getopt/Parser.java (options): Don't
- initialize.
- (add, addFinal): Don't update options.
- (requireOptions): New method.
- (printHelp): Synchronize. Call requireOptions.
- (parse): Call requireOptions.
-
-2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/lang/CPStringBuilder.java:
- (indexOf(String,int)): Use regionMatches from String.
- (lastIndexOf(String,int)): Likewise.
- (regionMatches(int,String)): Removed broken code.
- (substring(int,int)): Rearrange index computation so
- it is only computed if valid.
-
-2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/xml/transform/AbstractNumberNode.java,
- * gnu/xml/transform/ApplyTemplatesNode.java,
- * gnu/xml/transform/AttributeNode.java,
- * gnu/xml/transform/Bindings.java,
- * gnu/xml/transform/CallTemplateNode.java,
- * gnu/xml/transform/ChooseNode.java,
- * gnu/xml/transform/CopyNode.java,
- * gnu/xml/transform/CopyOfNode.java,
- * gnu/xml/transform/ElementNode.java,
- * gnu/xml/transform/ForEachNode.java,
- * gnu/xml/transform/IfNode.java,
- * gnu/xml/transform/MessageNode.java,
- * gnu/xml/transform/ParameterNode.java,
- * gnu/xml/transform/ProcessingInstructionNode.java,
- * gnu/xml/transform/StreamSerializer.java,
- * gnu/xml/transform/Template.java,
- * gnu/xml/transform/TextNode.java,
- * gnu/xml/transform/TransformerImpl.java,
- * gnu/xml/transform/TransformerOutputProperties.java,
- * gnu/xml/transform/ValueOfNode.java,
- * gnu/xml/transform/WhenNode.java:
- Use CPStringBuilder in preference to StringBuffer.
-
-2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/lang/CPStringBuilder.java:
- Replace reflection code with calls to
- VMCPStringBuilder.
- * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
- Default implementation of constructor call
- using reflection.
-
-2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/xml/dom/DomAttr.java,
- * gnu/xml/dom/DomEvent.java,
- * gnu/xml/dom/DomNode.java,
- * gnu/xml/dom/DomText.java,
- * gnu/xml/dom/ls/DomLSInput.java,
- * gnu/xml/util/DoParse.java,
- * gnu/xml/util/XCat.java:
- Use CPStringBuilder in preference to StringBuffer.
-
-2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * java/security/AlgorithmParameterGenerator.java,
- * java/security/AlgorithmParameters.java,
- * java/security/KeyFactory.java,
- * java/security/KeyPairGenerator.java,
- * java/security/MessageDigest.java,
- * java/security/SecureRandom.java,
- * java/security/Signature.java,
- * java/security/cert/CertPathBuilder.java,
- * java/security/cert/CertPathValidator.java,
- * java/security/cert/CertStore.java,
- * java/text/SimpleDateFormat.java,
- * java/util/AbstractMap.java,
- * java/util/Arrays.java,
- * java/util/Calendar.java,
- * java/util/Date.java,
- * java/util/Formatter.java,
- * java/util/Hashtable.java,
- * java/util/Properties.java,
- * java/util/TreeMap.java,
- * java/util/regex/Matcher.java:
- Use CPStringBuilder in preference to StringBuilder.
-
-2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/java/security/Engine.java,
- * gnu/java/security/hash/Whirlpool.java,
- * gnu/java/security/key/dss/DSSKey.java,
- * gnu/java/security/key/dss/DSSPrivateKey.java,
- * gnu/java/security/key/dss/DSSPublicKey.java,
- * gnu/java/security/key/rsa/GnuRSAKey.java,
- * gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
- * gnu/java/security/key/rsa/GnuRSAPublicKey.java,
- * java/awt/datatransfer/MimeType.java,
- * java/io/BufferedReader.java,
- * java/io/DataInputStream.java,
- * java/lang/Double.java,
- * java/lang/Float.java,
- * java/lang/String.java,
- * java/lang/reflect/Proxy.java,
- * java/math/BigDecimal.java,
- * java/net/URI.java,
- * java/net/URLClassLoader.java,
- * java/net/URLEncoder.java:
- Use CPStringBuilder in preference to StringBuilder.
-
-2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * vm/reference/java/lang/reflect/VMField.java:
- Consistently use 'clazz' as the name of the variable
- containing the declaring class.
- * vm/reference/java/lang/reflect/VMMethod.java:
- Likewise.
-
-2008-03-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/34840
- * java/lang/AbstractStringBuffer.java:
- (append(CharSequence,int,int)): Just set
- sequence to "null" don't append it.
-
-2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/newsitems.txt:
- Add new announcement.
- * doc/www.gnu.org/announce/20080311.wml:
- Added.
- * doc/www.gnu.org/cp-tools/.cvsignore:
- Ignore generated HTML files.
-
-2008-03-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/beans/beancontext/BeanContextServicesSupport.java:
- (BCSSProxyServiceProvider(BeanContextServiceProvider)):
- Add package-private constructor.
- * java/lang/StringBuffer.java:
- (ensureCapacity_unsynchronized(int)): Make package-private.
- * java/rmi/activation/Activatable.java:
- (export(ActivationID, Remote, int, RMIServerSocketFactory)):
- Make private.
- (makeId(ActivationID)): Likewise.
- * java/security/MessageDigest.java:
- (update(ByteBuffer)): Make final.
- * java/security/cert/PolicyQualifierInfo.java:
- (getPolicyQualifierId()): Likewise.
- (getEncoded()): Likewise.
- (getPolicyQualifier()): Likewise.
- * java/text/DateFormat.java:
- (ISO_YEAR_FIELD): Removed.
- (LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
- (EXTENDED_YEAR_FIELD): Likewise.
- (MODIFIED_JULIAN_DAY_FIELD): Likewise.
- (MILLISECOND_IN_DAY_FIELD): Likewise.
- (RFC822_TIMEZONE_FIELD): Likewise.
- (Field.ISO_YEAR_FIELD): Likewise.
- (Field.LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
- (Field.EXTENDED_YEAR_FIELD): Likewise.
- (Field.MODIFIED_JULIAN_DAY_FIELD): Likewise.
- (Field.MILLISECOND_IN_DAY_FIELD): Likewise.
- (Field.RFC822_TIMEZONE_FIELD): Likewise.
- * java/text/DecimalFormat.java:
- (format(Object,StringBuffer,FieldPosition)): Make final.
- * java/text/Format.java:
- (Format()): Make protected.
- * java/text/NumberFormat.java:
- (NumberFormat()): Likewise.
- * java/text/SimpleDateFormat.java:
- Remove code using RFC822_TIMEZONE_FIELD.
- * java/util/Stack.java:
- Use array of Objects rather than instances of T.
- * java/util/Vector.java:
- Likewise.
- * java/util/concurrent/CopyOnWriteArrayList.java:
- Don't extend AbstractList.
- (containsAll(Collection)): Implemented.
- (listIterator()): Likewise.
- (subList(int,int)): Likewise.
- * java/util/zip/Deflater.java:
- (getTotalIn()): Remove deprecation.
- (getTotalOut()): Likewise.
- * java/util/zip/Inflater.java,
- (getTotalIn()): Likewise.
- (getTotalOut()): Likewise.
-
-2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/awt/MouseInfo.java:
- (MouseInfo()): Private constructor to prevent
- instance creation.
- * java/lang/AbstractStringBuilder.java:
- (ensureCapacity_unsynchronized(int)): Make
- package-private, not protected.
-
-2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/28664
- * native/jni/java-math/Makefile.am: Add
- AM_LDFLAGS to the local LDFLAGS definition
- so gmp is linked.
-
-2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35422
- * doc/api/Makefile.am: Include external/jsr166.
-
-2008-03-10 Jim Meyering <meyering@redhat.com>
-
- Don't leak upon failed realloc.
- * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
- free the original buffer before throwing the exception.
-
-2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/cp-hacking.texinfo: Fix some typos.
- * doc/cp-tools.texinfo: Likewise.
- * doc/cp-vmintegration.texinfo: Likewise.
-
-2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/cp-hacking.texinfo: Fix spacing after periods.
- * doc/cp-tools.texinfo: Likewise.
- * doc/cp-vmintegration.texinfo: Likewise.
-
-2008-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/reflect/Constructor.java:
- (cons): Make package-private.
- (Constructor(VMConstructor)): Set cons in
- VM interface.
- * java/lang/reflect/Field.java:
- (f): Make package-private.
- (Field(VMField)): Set f in VM interface.
- * java/lang/reflect/Method.java:
- (m): Make package-private.
- (Method(VMMethod)): Set m in VM interface.
- * vm/reference/java/lang/reflect/VMConstructor.java:
- (cons): Added reference to Constructor instance.
- * vm/reference/java/lang/reflect/VMField.java:
- (f): Added reference to Field instance.
- * vm/reference/java/lang/reflect/VMMethod.java,
- (m): Added reference to Method instance.
-
-2008-03-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/reflect/AccessibleObject.java:
- (getAnnotation(Class)): Documented.
- (getAnnotations()): Likewise.
- (getDeclaredAnnotations()): Likewise.
- (isAnnotationPresent(Class)): Likewise.
- * java/lang/reflect/Constructor.java,
- * java/lang/reflect/Field.java,
- * java/lang/reflect/Method.java,
- * vm/reference/java/lang/reflect/VMConstructor.java,
- * vm/reference/java/lang/reflect/VMField.java,
- * vm/reference/java/lang/reflect/VMMethod.java:
- (getAnnotation(Class)): Added.
- (getDeclaredAnnotations()): Likewise.
-
-2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * tools/Makefile.am:
- Distribute property files.
+ * ChangeLog-2008: New file.
-2008-03-04 Robert Schuster <robertschuster@fsfe.org>
+2009-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
- (getDTDType): Changed return type to String.
- * gnu/xml/stream/XMLEventAllocatorImpl.java:
- (allocate): Removed wrapping of string in QName object.
- * gnu/xml/stream/XMLEventFactoryImpl.java:
- (createAttribute(String, String)): Removed wrapping of string in
- QName object.
- (createAttribute(QName, String)): Ditto.
- (createAttribute(String, String, String, String)): Ditto.
- * javax/xml/stream/events/Attribute.java:
- (getDTDType): Changed return type to String.
-
-2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/reflect/Constructor.java,
- * java/lang/reflect/Field.java,
- * java/lang/reflect/Method.java,
- * vm/reference/java/lang/reflect/VMConstructor.java:
- (equals(Object)): Added.
- * vm/reference/java/lang/reflect/VMField.java:
- (equals(Object)): Added.
- * vm/reference/java/lang/reflect/VMMethod.java:
- (equals(Object)): Added.
- Move variables from Classpath classes to VM classes
- and make class methods into instance methods.
-
-2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/reflect/Constructor.java,
- * java/lang/reflect/Field.java,
- * java/lang/reflect/Method.java:
- New classes within GNU Classpath that provide
- common reflection functionality.
- * vm/reference/java/lang/reflect/Constructor.java,
- * vm/reference/java/lang/reflect/Field.java,
- * vm/reference/java/lang/reflect/Method.java:
- Removed.
- * vm/reference/java/lang/reflect/VMConstructor.java,
- * vm/reference/java/lang/reflect/VMField.java,
- * vm/reference/java/lang/reflect/VMMethod.java:
- New VM interface for reflection.
-
-2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/28664
- * native/jni/Makefile.am: Check CREATE_GMPBI_LIBRARY
- and only compile GMP libraries if set.
-
-2008-03-02 Mark Wielaard <mark@klomp.org>
-
- * native/jni/Makefile.am (DIST_SUBDIRS): Add java-math.
-
-2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/classpath/CPStringBuilder.java:
- Make the constructor accessible.
-
-2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/classpath/CPStringBuilder.java:
- Removed.
- * gnu/java/awt/font/OpenTypeFontPeer.java,
- * gnu/java/awt/font/autofit/Edge.java,
- * gnu/java/awt/font/autofit/LatinBlue.java,
- * gnu/java/awt/font/autofit/Segment.java,
- * gnu/java/awt/font/autofit/Width.java,
- * gnu/java/awt/font/opentype/truetype/Point.java,
- * gnu/java/awt/java2d/ActiveEdges.java,
- * gnu/java/awt/peer/GnomeDesktopPeer.java,
- * gnu/java/awt/peer/KDEDesktopPeer.java,
- * gnu/java/awt/peer/x/XFontPeer.java:
- Use CPStringBuilder.
- * gnu/java/lang/CPStringBuilder.java:
- Moved from gnu.classpath.
- * gnu/java/lang/ClassHelper.java,
- * gnu/java/lang/reflect/GenericSignatureParser.java,
- * gnu/java/lang/reflect/TypeSignature.java,
- * gnu/java/net/protocol/http/ChunkedInputStream.java,
- * gnu/java/net/protocol/http/Cookie.java,
- * gnu/java/net/protocol/http/HTTPConnection.java,
- * gnu/java/net/protocol/http/Headers.java,
- * gnu/java/net/protocol/http/Request.java:
- Use CPStringBuilder.
- * java/lang/reflect/Modifier.java:
- Corrected import to point to correct package.
- * java/util/Formatter.java:
- Use CPStringBuilder.
- * vm/reference/java/lang/reflect/Constructor.java,
- * vm/reference/java/lang/reflect/Field.java,
- * vm/reference/java/lang/reflect/Method.java:
- Corrected import to point to correct package.
-
-2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869
- * gnu/classpath/CPStringBuffer.java,
- * gnu/classpath/CPStringBuilder.java:
- Rename class to CPStringBuilder.
- * java/lang/reflect/Modifier.java,
- * vm/reference/java/lang/reflect/Constructor.java,
- * vm/reference/java/lang/reflect/Field.java,
- * vm/reference/java/lang/reflect/Method.java:
- Use CPStringBuilder.
-
-2008-02-29 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/classpath/CPStringBuffer.java:
- New non-copying string buffer.
- * java/lang/AbstractStringBuffer.java:
- Add note about CPStringBuffer.
-
-2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/EmptyEnumeration.java:
- Add generic type parameter.
- * java/lang/ClassLoader.java:
- Use EmptyEnumeration with type parameter.
- * java/util/zip/ZipFile.java:
- Likewise.
- * javax/swing/text/html/StyleSheet.java,
- * javax/swing/text/html/ViewAttributeSet.java:
- Add generics.
- * javax/swing/tree/DefaultMutableTreeNode.java:
- Use EmptyEnumeration with type parameter.
-
-2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/28664
- * include/Makefile.am:
- Add generation of header file java_math_VMBigInteger.h
- * java/math/BigInteger.java: Separate NativeMPI into
- VMBigInteger.
- * native/jni/Makefile.am: Add java-math.
- * native/jni/java-math/java_math_VMBigInteger.c:
- Renamed from java_math_BigInteger.c.
- * vm/reference/java/math/VMBigInteger.java:
- Former NativeMPI class from java.math.BigInteger.
-
-2006-11-28 Raif S. Naffah <classpath@naffah-raif.name>
- Jeroen Frijters <jeroen@sumatra.nl>
-
- PR classpath/28664
- * configure.ac: Add support for configuring GNU MP.
- * native/jni/Makefile.am: Include java-math directory if required.
- * native/jni/java-math/.cvsignore: New file.
- * native/jni/java-math/Makefile.am: Likewise.
- * native/jni/java-math/java_math_BigInteger.c: Likewise.
- * java/math/BigInteger.java: Added support for native methods.
- * gnu/classpath/Configuration.java.in (WANT_NATIVE_BIG_INTEGER): New field.
-
-2008-02-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Check for sys/loadavg.h.
- * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
- Include sys/loadavg.h if found.
-
-2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/21869:
- * java/lang/AbstractStringBuffer.java: New class.
- * java/lang/StringBuffer.java,
- * java/lang/StringBuilder.java:
- Changed to use AbstractStringBuffer.
-
-2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/prefs/EventDispatcher.java:
- Removed again.
- * gnu/java/util/prefs/GConfBasedPreferences.java,
- * gnu/java/util/prefs/gconf/GConfNativePeer.java,
- * java/util/prefs/AbstractPreferences.java,
- * native/jni/gconf-peer/GConfNativePeer.c:
- Revert to pre-release versions.
-
-2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/newsitems.txt:
- Add 20080222 announcement.
- * doc/www.gnu.org/announce/20080222.wml:
- Add announcement of 0.97.
-
-2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * NEWS: Add 0.98.
- * configure.ac: Set version to 0.98-pre.
-
-2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * NEWS: Set date for 0.97.
- * configure.ac: Set version to 0.97
-
-2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/33751:
- * configure.ac:
- Don't check for readdir_r.
- * native/jni/native-lib/cpio.c:
- (cpio_readDir): Remove use of readdir_r, zero errno
- before starting and always leave a \0 at the end after
- strncpy.
- * vm/reference/java/io/VMFile.java:
- (list(String)): Make synchronized.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/prefs/EventDispatcher.java:
- Re-added.
- * gnu/java/util/prefs/GConfBasedPreferences.java,
- * gnu/java/util/prefs/gconf/GConfNativePeer.java,
- * java/util/prefs/AbstractPreferences.java,
- * native/jni/gconf-peer/GConfNativePeer.c:
- Regress to 0.96 versions.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/net/URI.java:
- (compareTo(URI)): Change comparison sign so it
- operates in the correct direction.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/acinclude.m4:
- Remove check for gcjh.
- * m4/ac_prog_javac.m4:
- Check for ecj-3.2 and ecj-3.3, and add
- -Xlint:unchecked for javac.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/javax/management/Translator.java:
- (fromJava(Object[],Method)): Don't cast to Class<?>.
- (fromJava(Object,Type)): Use ParameterizedType
- and don't assume that List will work for Sets.
-
-2008-02-21 David Walluck <david@jpackage.org>
-
- PR classpath/27204:
- * m4/acinclude.m4:
- (REGEN_WITH_JAY): Handle 'yes' as a default,
- not a directory and give more user-friendly output.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/java/util/regex/REException.java:
- (REException(String,Throwable,int,int)): Added
- constructor which also includes the cause.
- * gnu/java/util/regex/RETokenNamedProperty.java:
- (getHandler(String)): Add support for \p{javaX}.
- (JavaCategoryHandler): New class.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35274:
- * m4/acinclude.m4:
- Increase maximum heap size to 768mb.
-
-2008-02-21 Roman Kennke <kennke@aicas.com>
-
- * java/awt/image/PixelInterleavedSampleModel.java
- (createCompatibleSampleModel): Adjust scanline stride for new
- width and optimize band offsets.
-
-2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/35111:
- * resource/com/sun/tools/javac/messages.properties,
- * resource/gnu/classpath/tools/appletviewer/messages.properties,
- * resource/gnu/classpath/tools/common/Messages.properties,
- * resource/gnu/classpath/tools/getopt/Messages.properties,
- * resource/gnu/classpath/tools/jar/messages.properties,
- * resource/gnu/classpath/tools/jarsigner/messages.properties,
- * resource/gnu/classpath/tools/keytool/messages.properties,
- * resource/gnu/classpath/tools/native2ascii/messages.properties,
- * resource/gnu/classpath/tools/orbd/messages.properties,
- * resource/gnu/classpath/tools/rmic/messages.properties,
- * resource/gnu/classpath/tools/rmid/messages.properties,
- * resource/gnu/classpath/tools/rmiregistry/messages.properties,
- * resource/gnu/classpath/tools/serialver/messages.properties,
- * resource/gnu/classpath/tools/tnameserv/messages.properties,
- * resource/sun/rmi/rmic/messages.properties:
- Removed.
- * tools/Makefile.am:
- Copy .jav template files and use resource subdirectory
- of tools.
- * tools/gnu/classpath/tools/rmic/templates/ImplTie.jav,
- * tools/gnu/classpath/tools/rmic/templates/Stub.jav,
- * tools/gnu/classpath/tools/rmic/templates/StubMethod.jav,
- * tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
- * tools/gnu/classpath/tools/rmic/templates/Stub_12.jav,
- * tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
- * tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
- * tools/gnu/classpath/tools/rmic/templates/Tie.jav,
- * tools/gnu/classpath/tools/rmic/templates/TieMethod.jav,
- * tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav:
- Removed.
- * tools/resource/com/sun/tools/javac/messages.properties,
- * tools/resource/gnu/classpath/tools/appletviewer/messages.properties,
- * tools/resource/gnu/classpath/tools/common/Messages.properties,
- * tools/resource/gnu/classpath/tools/getopt/Messages.properties,
- * tools/resource/gnu/classpath/tools/jar/messages.properties,
- * tools/resource/gnu/classpath/tools/jarsigner/messages.properties,
- * tools/resource/gnu/classpath/tools/keytool/messages.properties,
- * tools/resource/gnu/classpath/tools/native2ascii/messages.properties,
- * tools/resource/gnu/classpath/tools/orbd/messages.properties,
- * tools/resource/gnu/classpath/tools/rmic/messages.properties,
- * tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav,
- * tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav,
- * tools/resource/gnu/classpath/tools/rmid/messages.properties,
- * tools/resource/gnu/classpath/tools/rmiregistry/messages.properties,
- * tools/resource/gnu/classpath/tools/serialver/messages.properties,
- * tools/resource/gnu/classpath/tools/tnameserv/messages.properties,
- * tools/resource/sun/rmi/rmic/messages.properties:
- Added.
-
-2008-02-18 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/peer/x/XGraphics2D.java
- (RENDER_OPAQUE): New constant with system property to
- turn on opaque image rendering.
- (rawDrawImage): Render images opaque when system property
- is set. This is for demonstration and debugging purposes only.
-
-2008-02-18 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/image/AsyncImage.java: New file. Implements
- asynchronous image loading.
- * gnu/java/awt/image/ImageConverter.java: New file.
- An image consumer that creates a concrete image with
- asynchronous behaviour.
- * gnu/java/awt/peer/x/ImageConverter.java: Removed.
- * gnu/java/awt/peer/x/XToolkit.java:
- (createImage(ImageProducer)): Use new ImageConverter.
- * gnu/java/awt/peer/x/XGraphics2D.java:
- (rawDrawImage): Unwrap AsyncImages before painting.
- (unwrap): New helper method.
-
-2008-02-18 Jakub Jelinek <jakub@redhat.com>
-
- * doc/cp-tools.texinfo (@direntry): Prefix info name with cp-.
- * doc/cp-hacking.texinfo (@direntry): Likewise.
- * doc/cp-vmintegration.texinfo (@direntry): Likewise.
-
-2008-02-18 Roman Kennke <kennke@aicas.com>
-
- * java/awt/image/RGBImageFilter.java
- (setPixels): Don't mask the source pixel.
-
-2008-02-18 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/peer/x/XGraphics2D.java
- (rawDrawImage): Update the rgb variable correctly. Don't
- cache translucent images.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * vm/reference/java/lang/reflect/Constructor.java,
- * vm/reference/java/lang/reflect/Method.java:
- Add missing java.lang.annotation.Annotation import.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * vm/reference/java/lang/reflect/Constructor.java,
- * vm/reference/java/lang/reflect/Method.java:
- (getParameterAnnotations()): Added.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/swing/tree/DefaultMutableTreeNode.java:
- Add generics.
- * javax/swing/tree/DefaultTreeCellEditor.java:
- (tPath): Removed.
- (configureEditingComponent(JTree,
- DefaultTreeCellRenderer,TreeCellEditor)): Removed.
- * javax/swing/tree/DefaultTreeCellRenderer.java:
- Removed unused call to getIcon().
- * javax/swing/tree/DefaultTreeSelectionModel.java:
- Add generics.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/swing/tree/FixedHeightLayoutCache.java,
- * javax/swing/tree/VariableHeightLayoutCache.java,
- * javax/swing/undo/StateEdit.java:
- Use type parameters with collections classes.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/ac_prog_javac.m4:
- Turn off ecj warnings for deprecation,
- serialization and unused imports
- (both cases).
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/ac_prog_javac.m4:
- Turn off ecj warnings for deprecation,
- serialization and unused imports.
-
-2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * org/omg/CORBA/PolicyErrorHelper.java,
- * org/omg/CORBA/UnknownUserExceptionHelper.java,
- * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
- * org/omg/PortableServer/ForwardRequestHelper.java,
- * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java:
- Remove unused variable.
-
-2008-02-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * gnu/classpath/ServiceFactory.java:
- Use generics.
- * gnu/classpath/ServiceProviderLoadingAction.java:
- Likewise.
-
-2008-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/34579:
- * m4/ac_prog_javac_works.m4: Change test
- to one that doesn't rely on the compiler's
- class library.
-
-2008-02-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/34578:
- * NEWS: Mention javah and javac build changes.
- * configure.ac: Call AC_PROG_JAVAC and
- CLASSPATH_JAVAC_MEM_CHECK instead of CLASSPATH_FIND_JAVAC.
- * examples/Makefile.am: Simplify compiler choice
- to just use JAVAC.
- * lib/Makefile.am: Likewise, but with JAVAC_MEM_OPT too.
- * m4/ac_prog_javac.m4: New file.
- * m4/ac_prog_javac_works.m4: Likewise.
- * m4/acinclude.m4:
- (CLASSPATH_FIND_JAVAC): Removed.
- (CLASSPATH_WITH_GCJ): Removed.
- (CLASSPATH_CHECK_GCJ): Removed.
- (CLASSPATH_WITH_JIKES): Removed.
- (CLASSPATH_CHECK_JIKES): Removed.
- (CLASSPATH_WITH_KJC): Removed.
- (CLASSPATH_CHECK_KJC): Removed.
- (CLASSPATH_WITH_ECJ): Removed.
- (CLASSPATH_CHECK_ECJ): Removed.
- (CLASSPATH_WITH_JAVAC): Removed.
- (CLASSPATH_CHECK_JAVAC): Removed.
- (CLASSPATH_JAVAC_MEM_CHECK): Added.
- * tools/Makefile.am: Simplify compiler choice
- to just javac.
-
-2008-02-12 Roman Kennke <kennke@aicas.com>
-
- * java/awt/color/ICC_Profile.java
- (getInstance()): Wrap call to InputStream.read(byte[],int,int) in
- a loop, in order to read the whole thing.
-
-2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/remote/NotificationResult.java:
- New file.
- * javax/management/remote/TargetedNotification.java:
- Likewise.
- * javax/management/remote/rmi/RMIConnection.java:
- (fetchNotifications(long,int,long)): Added.
-
-2008-02-10 Dalibor Topic <robilad@kaffe.org>
-
- * lib/Makefile.am (compile_classpath), include/Makefile.am (JAVAH):
- Replaced USER_CLASSLIB with PATH_TO_GLIBJ_ZIP.
-
- * m4/acinclude.m4 (CLASSPATH_WITH_CLASSLIB)[--with-classpath]:
- Removed unused option. It's superceded by --with-glibj-zip.
-
-2008-02-10 Dalibor Topic <robilad@kaffe.org>
-
- * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH)[USER_JAVAH]:
- Check for gjavah-4.3.
-
-2008-02-10 Mark Wielaard <mark@klomp.org>
-
- * scripts/check_jni_methods.sh.in:
- Use abs_src_builddir so that the absolute path
- to the source directory is used by the script.
-
-2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * scripts/check_jni_methods.sh.in:
- Use abs_top_builddir so that the absolute path
- to the build directory is used by the script.
-
-2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/management/remote/rmi/RMIConnection.java:
- (addNotificationListeners(ObjectName[],
- MarshalledObject[], Subject[])): Fixed return type.
- (close()): Added.
- (createMBean(String,ObjectName,MarshalledObject,
- String[], Subject)): Likewise.
- (createMBean(String,ObjectName,ObjectName,
- MarshalledObject, String[], Subject)): Likewise.
- (createMBean(String,ObjectName,ObjectName,
- Subject)): Likewise.
- (createMBean(String,ObjectName,Subject)): Likewise.
- (getAttribute(ObjectName,String,Subject)): Likewise.
- (getAttributes(ObjectName,String[],Subject)): Likewise.
- (getConnectionId()): Likewise.
- (getDefaultDomain(Subject)): Likewise.
- (getDomains(Subject)): Likewise.
- (getMBeanCount(Subject)): Likewise.
- (getMBeanInfo(ObjectName,Subject)): Likewise.
- (getObjectInstance(ObjectName,Subject)): Likewise.
- (invoke(ObjectName,String,MarshalledObject,String[],
- Subject)): Likewise.
- (isInstanceOf(ObjectName,String,Subject)): Likewise.
- (isRegistered(ObjectName,Subject)): Likewise.
- (queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise.
- (queryNames(ObjectName,MarshalledObject,Subject)): Likewise.
- (removeNotificationListener(ObjectName,ObjectName,MarshalledObject,
- MarshalledObject,Subject)): Likewise.
- (removeNotificationListener(ObjectName,ObjectName,Subject)):
- Likewise.
- (removeNotificationListeners(ObjectName,Integer[],Subject)):
- Likewise.
- (setAttribute(ObjectName,MarshalledObject,Subject)): Likewise.
- (setAttributes(ObjectName,MarshalledObject,Subject)): Likewise.
- (unregisterMBean(ObjectName,Subject)): Likewise.
-
-2008-02-09 Dalibor Topic <robilad@kaffe.org>
-
- * native/jni/Makefile.am (all-local): Call check_jni_methods.sh
- directly.
-
- * scripts/Makefile.am (EXTRA_DIST): Removed check_jni_methods.sh.
-
- * include/Makefile.am (SOUND_H_FILES, GST_PEER_H_FILES)
- (XMLJ_H_FILES, GTKPEER_H_FILES, QTPEER_H_FILES)
- (GCONF_PREFS_FILES, H_FILES): Don't generate header files
- in the source directory, as it may not be writeable.
- (DISTCLEANFILES) Added H_FILES.
-
- * configure.ac (AC_CONFIG_FILES): Added
- scripts/check_jni_methods.sh.
-
- * scripts/check_jni_methods.sh: Removed. Moved over to ..
- * scripts/check_jni_methods.sh.in: New file. Added
- top_srcdir and top_builddir where necessary.
-
-2008-02-09 Mario Torre <neugens@limasoftware.net>
-
- * include/java_util_VMTimeZone.h: Removed.
- * native/jni/gconf-peer/GConfNativePeer.c: all native methods, replaced
- GConfEngine with GConfClient and use GConfClient API instead.
-
-2008-02-08 Mark Wielaard <mark@klomp.org>
-
- * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): Delete
- Colour.class.
-
- * include/.cvsignore: Add java_* and gnu_*.h.
-
-2008-02-08 Mario Torre <neugens@limasoftware.net>
-
- * configure.ac: --enable-regen-header option now enabled by default.
- * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Removed.
- * include/gnu_java_awt_peer_gtk_CairoSurface.h: Removed.
- * include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Removed.
- * include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: Removed.
- * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Removed.
- * include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Removed.
- * include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Removed.
- * include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkImage.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkListPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkSelection.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Removed.
- * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_MainQtThread.h: Removed.
- * include/gnu_java_awt_peer_qt_QMatrix.h: Removed.
- * include/gnu_java_awt_peer_qt_QPainterPath.h: Removed.
- * include/gnu_java_awt_peer_qt_QPen.h: Removed.
- * include/gnu_java_awt_peer_qt_QtAudioClip.h: Removed.
- * include/gnu_java_awt_peer_qt_QtButtonPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtCanvasPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtChoicePeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtComponentPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtDialogPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtFontMetrics.h: Removed.
- * include/gnu_java_awt_peer_qt_QtFontPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtFramePeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtGraphics.h: Removed.
- * include/gnu_java_awt_peer_qt_QtImage.h: Removed.
- * include/gnu_java_awt_peer_qt_QtLabelPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtListPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtMenuPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtPanelPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtScreenDevice.h: Removed.
- * include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: Removed.
- * include/gnu_java_awt_peer_qt_QtToolkit.h: Removed.
- * include/gnu_java_awt_peer_qt_QtVolatileImage.h: Removed.
- * include/gnu_java_awt_peer_qt_QtWindowPeer.h: Removed.
- * include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: Removed.
- * include/gnu_java_net_local_LocalSocketImpl.h: Removed.
- * include/gnu_java_net_VMPlainSocketImpl.h: Removed.
- * include/gnu_java_nio_charset_iconv_IconvDecoder.h: Removed.
- * include/gnu_java_nio_charset_iconv_IconvEncoder.h: Removed.
- * include/gnu_java_nio_EpollSelectorImpl.h: Removed.
- * include/gnu_java_nio_FileChannelImpl.h: Removed.
- * include/gnu_java_nio_KqueueSelectorImpl.h: Removed.
- * include/gnu_java_nio_VMChannel.h: Removed.
- * include/gnu_java_nio_VMPipe.h: Removed.
- * include/gnu_java_nio_VMSelector.h: Removed.
- * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: Removed.
- * include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: Removed.
- * include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: Removed.
- * include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: Removed.
- * include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: Removed.
- * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Removed.
- * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: Removed.
- * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: Removed.
- * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: Removed.
- * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeAttr.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeDocument.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeElement.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeEntity.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeNode.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeNodeList.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeNotation.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: Removed.
- * include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: Removed.
- * include/gnu_xml_libxmlj_sax_GnomeLocator.h: Removed.
- * include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: Removed.
- * include/gnu_xml_libxmlj_transform_GnomeTransformer.h: Removed.
- * include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: Removed.
- * include/java_io_VMFile.h: Removed.
- * include/java_io_VMObjectInputStream.h: Removed.
- * include/java_io_VMObjectStreamClass.h: Removed.
- * include/java_lang_reflect_VMArray.h: Removed.
- * include/java_lang_VMDouble.h: Removed.
- * include/java_lang_VMFloat.h: Removed.
- * include/java_lang_VMMath.h: Removed.
- * include/java_lang_VMProcess.h: Removed.
- * include/java_lang_VMSystem.h: Removed.
- * include/java_net_VMInetAddress.h: Removed.
- * include/java_net_VMNetworkInterface.h: Removed.
- * include/java_net_VMURLConnection.h: Removed.
- * include/java_nio_MappedByteBufferImpl.h: Removed.
- * include/java_nio_VMDirectByteBuffer.h: Removed.
-
-2008-02-08 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
- * gnu/java/awt/peer/gtk/GtkToolkit.java: Removed mistakenly
- committed code.
-
-2008-02-08 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
- * gnu/java/awt/peer/gtk/GdkFontPeer.java,
- * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
- * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
- * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
- * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
- * gnu/java/awt/peer/gtk/GtkToolkit.java: Only call
- System.loadLibrary() when configured so.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * NEWS: Documented removal of floatToIntBits and doubleToLongBits from
- VM interface.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * vm/reference/java/lang/VMFloat.java (floatToIntBits): Removed unused
- method.
-
- * native/jni/java-lang/java_lang_VMFloat.c (Java_java_lang_VMFloat_floatToIntBits): Removed unused function.
-
- * include/java_lang_VMDouble.h: Regenerated.
-
- * doc/cp-vmintegration.texinfo (java.lang.VMFloat): Removed
- unused method floatToIntBits. (java.lang.VMDouble): Use similar
- text to text used for floatToRawIntBits for doubleToLongBits.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * java/lang/Float.java (floatToIntBits): Simplified.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH) [USER_JAVAH]: Check for gjavah-4.2
- and gjavah-4.1.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * vm/reference/java/lang/VMDouble.java (doubleToLongBits): Removed unused method.
-
- * native/jni/java-lang/java_lang_VMDouble.c (Java_java_lang_VMDouble_doubleToLongBits):
- Removed unused function.
-
- * include/java_lang_VMDouble.h: Regenerated.
-
- * doc/cp-vmintegration.texinfo (java.lang.VMDouble): Removed
- unused method doubleToLongBits.
-
-2008-02-08 Dalibor Topic <robilad@kaffe.org>
-
- * java/lang/Double.java (doubleToLongBits): Simplified.
-
-2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * java/lang/String.java
- (replace): Only copy "live" portion of String. Use array copies in preference
- to clone.
- (toLowerCaseTurkish): likewise
- (toLowerCase): likewise
- (toUpperCaseTurkish): likewise
- (toUpperCase): likewise
- (toCharArray): Use array copies in preference to clone.
-
-2008-02-05 Ian Rogers <ian.rogers@manchester.ac.uk>
-
- * gnu/java/lang/reflect/TypeSignature.java
- * java/io/BufferedReader.java
- * java/io/DataInputStream.java
- * java/lang/StackTraceElement.java
- * java/lang/Throwable.java
- * java/lang/reflect/Proxy.java
- * java/net/URI.java
- * java/net/URLClassLoader.java
- * java/net/URLEncoder.java
- * java/text/SimpleDateFormat.java
- * java/util/AbstractMap.java
- * java/util/Calendar.java
- * java/util/Date.java
- * java/util/Hashtable.java
- Use StringBuilder in preference to StringBuffer
- * java/util/Calendar.java
- * java/util/Hashtable.java
- Make private fields that can be final, final
- * java/net/URI.java
- Avoid creating Integer objects for the sake of comparison
- * java/lang/reflect/Proxy.java
- * java/text/SimpleDateFormat.java
- Swap use of "new Character/Integer" to use of valueOf methods
-
-2008-01-29 Ito Kazumitsu <kaz@maczuka.gcd.org>
-
- Fixes bug #22941
- * java/io/DataInputStream.java(readUTFLong): New method.
- (readUTF): New private method.
- * java/io/DataOutputStream.java(getUTFlength): Made package-private,
- Return type changed to long.
- (writeUTF): Use the new method writeUTFShort.
- (writeUTFShort): New package-private method.
- (writeUTFLong): New package-private method.
- (writeUTFBytes): New private method.
- * java/io/ObjectInputStream.java(parseContent): Separate the
- handling of TC_LONGSTRING from TC_STRING.
- * java/io/ObjectOutputStream.java(writeObject): When to write a
- String, use writeUTFShort or writeUTFLong depending on the byte length.
-
-2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com>
-
- * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
- * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
- exception message.
-
-2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/README.jaxp: Fix typos.
-
-2008-01-25 Dalibor Topic <robilad@kaffe.org>
-
- * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
- (createParser): Removed unused "reversed" misspelling. Use
- Native2ASCII.ReverseHelp instead of Native2ASCII.ReversedHelp.
-
- * resource/gnu/classpath/tools/native2ascii/messages.properties
- (Native2ASCII.ReverseHelp): New, renamed from ...
- (Native2ASCII.ReversedHelp): Removed.
- (Native2ASCII.ReversedHelpCompat): Removed.
-
-2008-01-24 Tom Tromey <tromey@redhat.com>
-
- * resource/gnu/classpath/tools/native2ascii/messages.properties
- (Native2ASCII.ReversedHelpCompat): New.
- * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
- (createParser): Add -reverse. Update -reversed.
-
-2008-01-21 Luciano Chavez <lnx1138@us.ibm.com>
-
- PR libgcj/34369:
- * java/net/URI.java (relativize): Check initial segment for
- trailing "/".
-
-2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * m4/acinclude.m4:
- Remove bootclasspath option which fails with
- OpenJDK javac.
-
-2008-01-14 Roman Kennke <kennke@aicas.com>
-
- * javax/tools/FileObject.java: New interface.
-
-2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/accessibility/AccessibleAction.java:
- (CLICK): Added.
- (TOGGLE_POPUP): Likewise.
- * javax/accessbiility/AccessibleRole.java:
- (HTML_CONTAINER): Added.
-
-2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * javax/accessibility/AccessibleAttributeSequence.java:
- (AccessibleAttributeSequence(int,int,AttributeSet)):
- Implemented.
- * javax/accessibility/AccessibleTextSequence.java:
- (AccessibleTextSequence(int,int,String)):
- Likewise.
-
-2008-01-13 Leen Toelen <toelen@gmail.com>
-
- * native/fdlibm/ieeefp.h: Added avr32 support.
-
-2008-01-09 Stefan Huehner <stefan@huehner.org>
-
- * native/jni/java-io/java_io_VMObjectStreamClass.c,
- * native/jni/java-lang/java_lang_VMDouble.c,
- * native/jni/java-net/java_net_VMInetAddress.c:
- Don't discard const by casting (const char *) to
- (char *) when it's not needed.
-
-2008-01-09 Stefan Huehner <stefan@huehner.org>
-
- * gnu/classpath/jdwp/event/ExceptionEvent.java,
- * gnu/java/awt/peer/gtk/GtkMainThread.java:
- Use Boolean.TRUE|FALSE instead of new Boolean(true|false)
- * gnu/java/rmi/server/ConnectionRunnerPool.java,
- * gnu/xml/aelfred2/XmlParser.java,
- * gnu/xml/libxmlj/dom/GnomeXPathResult.java,
- * gnu/xml/stream/XIncludeFilter.java:
- Use Integer|Double|Charater.toString(var) instead of
- new Integer|Double|Character(var).toString()
-
-2006-01-09 Roman Kennke <kennke@aicas.com>
-
- * javax/tools/Diagnostic.java,
- * javax/tools/DiagnosticListener.java:
- New interfaces.
-
-2006-01-09 Roman Kennke <kennke@aicas.com>
-
- * gnu/java/awt/peer/x/XWindowPeer.java
- (getFontMetrics): Re-enable that for X fonts.
-
-2008-01-09 Stefan Huehner <stefan@huehner.org>
-
-
- * examples/gnu/classpath/examples/java2d/J2dBenchmark.java,
- * gnu/CORBA/OrbFocused.java,
- * gnu/CORBA/CDR/HeadlessInput.java,
- * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
- * gnu/java/awt/peer/gtk/GtkFramePeer.java,
- * gnu/java/awt/peer/qt/QtMenuPeer.java,
- * gnu/java/nio/FileChannelImpl.java,
- * gnu/java/nio/SocketChannelSelectionKeyImpl.java,
- * gnu/java/security/Engine.java,
- * gnu/javax/imageio/jpeg/JPEGComponent.java,
- * gnu/javax/imageio/jpeg/JPEGDecoder.java,
- * gnu/javax/imageio/jpeg/JPEGFrame.java,
- * gnu/javax/print/PrinterDialog.java,
- * gnu/javax/security/auth/Password.java,
- * gnu/javax/swing/text/html/parser/support/Parser.java,
- * gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
- * gnu/xml/pipeline/DomConsumer.java,
- * java/awt/AWTKeyStroke.java,
- * java/awt/DefaultKeyboardFocusManager.java,
- * java/awt/GridBagLayout.java,
- * java/awt/dnd/DragGestureRecognizer.java,
- * java/awt/geom/Arc2D.java,
- * java/awt/geom/CubicCurve2D.java,
- * java/awt/geom/QuadCurve2D.java,
- * java/awt/im/InputContext.java,
- * java/awt/image/AffineTransformOp.java,
- * java/beans/Encoder.java,
- * java/io/ObjectInputStream.java,
- * java/io/ObjectStreamClass.java,
- * java/net/ResolverCache.java,
- * java/nio/charset/Charset.java,
- * java/security/SecureClassLoader.java,
- * java/text/MessageFormat.java,
- * java/util/jar/Manifest.java,
- * javax/accessibility/AccessibleRelationSet.java,
- * javax/imageio/ImageReader.java,
- * javax/imageio/metadata/IIOMetadataNode.java,
- * javax/print/attribute/standard/MediaSize.java,
- * javax/print/attribute/standard/PrinterStateReasons.java,
- * javax/swing/JTree.java,
- * javax/swing/table/DefaultTableColumnModel.java,
- * javax/swing/text/html/MinimalHTMLWriter.java,
- * javax/swing/text/html/parser/DTD.java,
- * javax/swing/tree/DefaultMutableTreeNode.java,
- * javax/swing/undo/UndoManager.java,
- * org/omg/CosNaming/NamingContextExtPOA.java,
- * org/omg/CosNaming/NamingContextPOA.java,
- * org/omg/CosNaming/_NamingContextExtImplBase.java,
- * org/omg/CosNaming/_NamingContextImplBase.java,
- * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
- Remove unneeded casts
-
-2006-01-09 Roman Kennke <kennke@aicas.com>
-
- * java/text/CollationElementIterator.java
- (text): Changed type to CharacterIterator.
- (CollationElementIterator(RuleBasedCollator,CharacterIterator)): New
- constructor.
- (setOffset(int)): Use CharacterIterator.getEndIndex() instead of
- String.length().
- (setText(String)): Wrap string into a StringCharacterIterator.
- * java/text/RuleBasedCollator.java
- (getCollationElementIterator(CharacterIterator)): Simply return
- CollationElementIterator for the character iterator, instead of
- expanding things.
-
-2008-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/34579:
- * m4/acinclude.m4:
- (CLASSPATH_CHECK_JAVAC): Delete Colour.java
-
-2008-01-04 Stefan Huehner <stefan@huehner.org>
-
- * gnu/CORBA/BigDecimalHelper.java,
- * gnu/CORBA/CDR/AbstractCdrInput.java,
- * gnu/CORBA/CDR/AbstractCdrOutput.java,
- * gnu/CORBA/CDR/HeadlessInput.java,
- * gnu/CORBA/CDR/gnuRuntime.java,
- * gnu/CORBA/Connected_objects.java,
- * gnu/CORBA/GIOP/CancelHeader.java,
- * gnu/CORBA/GIOP/v1_0/CancelHeader.java,
- * gnu/CORBA/IOR.java,
- * gnu/CORBA/Interceptor/Registrator.java,
- * gnu/CORBA/IorDelegate.java,
- * gnu/CORBA/NamingService/NameTransformer.java,
- * gnu/CORBA/ObjectCreator.java,
- * gnu/CORBA/OrbFunctional.java,
- * gnu/CORBA/Poa/AOM.java,
- * gnu/CORBA/Poa/gnuPOA.java,
- * gnu/CORBA/Poa/gnuPOAManager.java,
- * gnu/CORBA/Poa/gnuServantObject.java,
- * gnu/CORBA/typecodes/FixedTypeCode.java,
- * gnu/CORBA/typecodes/RecursiveTypeCode.java,
- * gnu/java/awt/AWTUtilities.java,
- * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
- * gnu/java/awt/peer/gtk/CairoSurface.java,
- * gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
- * gnu/java/text/AttributedFormatBuffer.java,
- * gnu/java/util/regex/REToken.java,
- * gnu/javax/imageio/gif/GIFFile.java,
- * gnu/javax/imageio/png/PNGDecoder.java,
- * gnu/javax/management/Server.java,
- * gnu/javax/naming/giop/ContextContinuation.java,
- * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java,
- * gnu/javax/swing/text/html/css/Selector.java,
- * gnu/javax/swing/text/html/parser/models/node.java,
- * gnu/javax/swing/text/html/parser/support/Parser.java,
- * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java,
- * gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
- * gnu/xml/util/Resolver.java,
- * java/awt/image/AreaAveragingScaleFilter.java,
- * java/beans/Beans.java,
- * java/beans/XMLDecoder.java,
- * java/beans/beancontext/BeanContextServicesSupport.java,
- * java/beans/beancontext/BeanContextSupport.java,
- * java/io/CharArrayWriter.java,
- * java/lang/System.java,
- * java/net/ResolverCache.java,
- * java/util/Calendar.java,
- * java/util/Collections.java,
- * java/util/Formatter.java,
- * javax/accessibility/AccessibleEditableText.java,
- * javax/imageio/ImageReader.java,
- * javax/imageio/ImageTypeSpecifier.java,
- * javax/imageio/ImageWriter.java,
- * javax/imageio/spi/ServiceRegistry.java,
- * javax/imageio/stream/ImageInputStream.java,
- * javax/management/MBeanPermission.java,
- * javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
- * javax/rmi/CORBA/Util.java,
- * javax/rmi/CORBA/UtilDelegate.java,
- * javax/rmi/CORBA/ValueHandler.java,
- * javax/rmi/PortableRemoteObject.java,
- * org/ietf/jgss/GSSContext.java,
- * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
- * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java,
- * tools/gnu/classpath/tools/appletviewer/TagParser.java,
- * vm/reference/gnu/java/nio/VMChannel.java:
- Correct javadoc to match the functions' parameters
- * gnu/java/awt/peer/swing/SwingTextFieldPeer.java:
- Rename start_pos parameter to startPos to conform to style.
-
-2008-01-07 Jeroen Frijters <jeroen@frijters.net>
-
- * java/awt/image/Raster.java
- (createInterleavedRaster): Fixed ComponentSampleModel constructor
- argument order.
-
-2008-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- PR classpath/34579:
- * m4/acinclude.m4:
- (CLASSPATH_CHECK_JAVAC): Don't rely on 1.5 class
- library.
-
-2008-01-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * ChangeLog-2007: New file.
+ * java/text/MessageFormat.java:
+ (setLocale(Locale)): Integer format should use
+ NumberFormat.getIntegerInstance.
Local Variables:
coding: iso-latin-1-unix
End:
+
diff --git a/libjava/classpath/ChangeLog-2008 b/libjava/classpath/ChangeLog-2008
new file mode 100644
index 00000000000..ea6d9dcd7ea
--- /dev/null
+++ b/libjava/classpath/ChangeLog-2008
@@ -0,0 +1,4443 @@
+2008-12-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/MessageFormat.java:
+ (parse(String,ParsePosition)): Emulate behaviour
+ of Vector's setSize() which was being implicitly relied on.
+
+2008-12-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ Remove superfluous empty line introduced
+ in last commit.
+
+2008-12-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/MessageFormat.java:
+ Convert variables to use generic types, use
+ CPStringBuilder in place of StringBuilder.
+ (Field()): Suppress warning due to only being used by
+ deserialization.
+ (scanFormat(String,int,CPStringBuilder,List,Locale)):
+ Use ArrayList instead of Vector as no synchronisation needed.
+ (parse(String,ParsePosition)): Likewise.
+ * java/text/NumberFormat.java:
+ (Field()): Suppress warning due to only being used by
+ deserialization.
+ * java/text/RuleBasedCollator.java:
+ Convert variables to use generic types.
+ (CollationElement): Make fields final.
+ (CollationSorter): Likewise.
+ (CollationSorter(int,String,int,boolean)): New constructor.
+ * java/text/SimpleDateFormat.java,
+ Convert variables to use generic types.
+ (applyPattern(String)): Clear list rather than creating a new instance.
+
+2008-12-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ (standardChars): Use standard characters from CLDR.
+ (RFC822_TIMEZONE_FIELD): Fixed to match new standard
+ characters.
+
+2008-12-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/String.java:
+ (byte[],int,int,String): Call new Charset method.
+ (stringToCharset(String)): Private method added to
+ handle exception conversion.
+ (byte[],int,int,Charset): Implemented.
+ (byte[], Charset): Likewise.
+ (getBytes(String)): Call new Charset method.
+ (getBytes(Charset)): Implemented.
+
+2008-12-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c:
+ Include '\0' in the string.
+
+2008-12-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/38473:
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c:
+ (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative):
+ Check that the glyph is an outline before calling
+ FT_Outline_Decompose.
+
+2008-11-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/transform/Bindings.java:
+ Add generics to collections.
+
+2008-11-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java:
+ (init(int,SecureRandom)): Improve exception message.
+
+2008-11-06 Mark Wielaard <mark@klomp.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+ (getKerning): Removed unused cls, method, values.
+
+2008-11-05 Andrew Haley <aph@redhat.com>
+
+ * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java (getKerning):
+ Return result in a float[], not a Point2D.
+ (performDefaultLayout): Call getKerning with a float[].
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+ (getKerning): Return result in a float[], not a Point2D.
+
+2008-11-05 Andrew Haley <aph@redhat.com>
+
+ * tools/Makefile.am (UPDATE_TOOLS_ZIP, CREATE_TOOLS_ZIP): Exclude
+ .svn direcories.
+
+2008-10-23 David Edelsohn <edelsohn@gnu.org>
+
+ * native/fdlibm/fdlibm.h: Undef hz.
+
+2008-10-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_antlr.m4:
+ Remove redundant checks.
+ * tools/Makefile.am:
+ Use gjdoc_gendir when calling antlr.
+
+2008-10-17 Robert Lougher <rob.lougher@gmail.com>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+ (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector):
+ Release 'fonts'.
+
+2008-10-16 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/jar/WorkSet.java (initSet): Use
+ foreach. Change argument type.
+ (WorkSet): Change argument type.
+ * tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use
+ foreach.
+ * tools/gnu/classpath/tools/jar/Creator.java
+ (writeCommandLineEntries): Use foreach.
+ (getAllEntries): Likewise.
+
+2008-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Remove superfluous AC_PROG_JAVA call.
+
+2008-10-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_antlr:
+ Check for cantlr as well.
+ * tools/Makefile.am:
+ Only build GJDoc parser when both
+ CREATE_GJDOC and CREATE_GJDOC_PARSER
+ are on.
+
+2008-10-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Add regen-gjdoc-parser option,
+ and separate antlr tests.
+ * m4/ac_prog_antlr.m4:
+ Turn single test into AC_LIB_ANTLR
+ and AC_PROG_ANTLR.
+ * m4/ac_prog_java.m4:
+ Quote tests.
+ * tools/Makefile.am:
+ Support CREATE_GJDOC_PARSER option.
+
+2008-09-29 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_antlr.m4:
+ Check for antlr binary as well.
+
+2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Always check for JAVA prior to ANTLR check.
+ * java/lang/ThreadLocal.java,
+ * java/lang/ThreadLocalMap.java:
+ Rename notFound back to sentinel to avoid
+ potential issues with use of the old name.
+ Cleanup formatting.
+ * java/nio/Buffer.java,
+ * java/nio/ByteBuffer.java,
+ * java/nio/ByteBufferImpl.java,
+ * java/nio/CharBuffer.java,
+ * java/nio/CharViewBufferImpl.java,
+ * java/nio/DirectByteBufferImpl.java,
+ * java/nio/DoubleBuffer.java,
+ * java/nio/DoubleBufferImpl.java,
+ * java/nio/FloatBuffer.java,
+ * java/nio/FloatBufferImpl.java,
+ * java/nio/IntBuffer.java,
+ * java/nio/LongBuffer.java,
+ * java/nio/LongBufferImpl.java,
+ * java/nio/MappedByteBuffer.java,
+ * java/nio/ShortBuffer.java,
+ * java/nio/ShortBufferImpl.java,
+ * java/nio/ShortViewBufferImpl.java:
+ Cleanup formatting.
+
+2008-09-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/System.java (getenv): Reinstate
+ use of EnvironmentMap as opposed to raw
+ HashMap.
+
+2008-09-16 Mario Torre <neugens@aicas.com>
+
+ * java/lang/System.java (getenv): Fix env entries of the form
+ key=value=value=value not parsed correctly.
+
+2008-09-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Reported by: Matthias Klose
+ * tools/Makefile.am:
+ Simplify the addition of the ANTLR
+ JAR file to the classpath.
+
+2008-09-14 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_antlr.m4:
+ Allow use of runantlr on systems
+ which have it (Debian/Ubuntu).
+
+2008-09-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * examples/Makefile.am:
+ Check lib directly as well as glibj.zip
+ for boot classes.
+ * m4/acinclude.m4:
+ Only require the class files to be built
+ to allow the tools and examples to be built,
+ not the installation of glibj.zip.
+ * tools/Makefile.am:
+ Check lib directly as well as glibj.zip
+ for boot classes.
+
+2008-09-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * examples/Makefile.am,
+ * lib/Makefile.am:
+ Add GCJ rules.
+ * m4/ac_prog_javac.m4:
+ Check whether JAVAC is gcj.
+ * m4/ac_prog_javac_works.m4:
+ Add GCJ rules.
+ * m4/acinclude.m4:
+ Don't bother checking for -J
+ if using GCJ.
+ * tools/Makefile.am:
+ Add GCJ rules.
+
+2007-08-23 Daniel Frampton <zyridium@zyridium.net>
+
+ * AUTHORS: Added.
+ * java/lang/InheritableThreadLocal.java,
+ * java/lang/Thread.java,
+ * java/lang/ThreadLocal.java:
+ Modified to use java.lang.ThreadLocalMap.
+ * java/lang/ThreadLocalMap.java:
+ New cheaper ThreadLocal-specific WeakHashMap.
+
+2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/util/zip/ZipEntry.java:
+ Use byte fields instead of integer fields,
+ store the time as well as the DOS time and
+ don't retain a global Calendar instance.
+ (setDOSTime(int)): Set KNOWN_DOSTIME instead
+ of KNOWN_TIME, and unset KNOWN_TIME.
+ (getDOSTime()): Compute DOS time from UNIX time
+ only when needed.
+ (clone()): Provide cloning via the ZipEntry constructor
+ where possible.
+ (setTime(long)): Don't compute DOS time at this point.
+ (getCalendar()): Removed.
+
+2008-09-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/getopt/Parser.java:
+ (setHeader(String)): Make synchronized.
+ (setFooter(String)): Likewise.
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+ (reset()): Make synchronized.
+ (name(Class)): Likewise.
+
+2008-09-04 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/nio/charset/ByteDecodeLoopHelper:
+ (arrayDecodeLoop): Added new break label, escape to that label.
+ * gnu/java/nio/charset/ByteEncodeLoopHelper:
+ (arrayDecodeLoop): Added new break label, escape to that label.
+
+2008-09-04 Robert Schuster <robertschuster@fsfe.org>
+
+ * java/text/DecimalFormat.java:
+ (scanFix): Use 'i + 1' when looking at following character.
+ (scanNegativePattern): Dito.
+
+2008-09-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/javah/ClassWrapper.java:
+ (makeVtable()): Populate methodNameMap.
+ (printMethods(CniPrintStream)): Always use pre-populated
+ methodNameMap for bridge targets.
+
+2008-09-01 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override
+ annotation to allow compilation on javac < 1.6 and ecj < 3.4.
+
+2008-09-01 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support
+ new Escher API.
+ * gnu/java/awt/peer/x/XImage.java (getSource): method implemented.
+ * gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer
+ for getSource.
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/BacktrackStack.java,
+ * gnu/java/util/regex/CharIndexed.java,
+ * gnu/java/util/regex/CharIndexedCharArray.java,
+ * gnu/java/util/regex/CharIndexedCharSequence.java,
+ * gnu/java/util/regex/CharIndexedInputStream.java,
+ * gnu/java/util/regex/CharIndexedString.java,
+ * gnu/java/util/regex/CharIndexedStringBuffer.java,
+ * gnu/java/util/regex/RE.java,
+ * gnu/java/util/regex/REException.java,
+ * gnu/java/util/regex/REFilterInputStream.java,
+ * gnu/java/util/regex/REMatch.java,
+ * gnu/java/util/regex/REMatchEnumeration.java,
+ * gnu/java/util/regex/RESyntax.java,
+ * gnu/java/util/regex/REToken.java,
+ * gnu/java/util/regex/RETokenAny.java,
+ * gnu/java/util/regex/RETokenBackRef.java,
+ * gnu/java/util/regex/RETokenChar.java,
+ * gnu/java/util/regex/RETokenEnd.java,
+ * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+ * gnu/java/util/regex/RETokenEndSub.java,
+ * gnu/java/util/regex/RETokenIndependent.java,
+ * gnu/java/util/regex/RETokenLookAhead.java,
+ * gnu/java/util/regex/RETokenLookBehind.java,
+ * gnu/java/util/regex/RETokenNamedProperty.java,
+ * gnu/java/util/regex/RETokenOneOf.java,
+ * gnu/java/util/regex/RETokenPOSIX.java,
+ * gnu/java/util/regex/RETokenRange.java,
+ * gnu/java/util/regex/RETokenRepeated.java,
+ * gnu/java/util/regex/RETokenStart.java,
+ * gnu/java/util/regex/RETokenWordBoundary.java,
+ * gnu/java/util/regex/UncheckedRE.java:
+ Fix indentation.
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/RETokenStart.java:
+ (getMaximumLength()): Add Override annotation.
+ (matchThis(CharIndexed, REMatch)): Likewise.
+ (returnsFixedLengthMatches()): Renamed from
+ returnsFixedLengthmatches and added Override
+ annotation.
+ (findFixedLengthMatches(CharIndexed,REMatch,int)):
+ Add Override annotation.
+ (dump(CPStringBuilder)): Likewise.
+ * gnu/javax/print/ipp/IppRequest.java:
+ (RequestWriter.writeOperationAttributes(AttributeSet)):
+ Throw exception, don't just create and drop it.
+ * javax/management/MBeanServerPermission.java:
+ (MBeanServerPermissionCollection.add(Permission)): Compare
+ against individual Strings not the entire array, and
+ store the result of replace.
+ * javax/swing/text/html/StyleSheet.java:
+ (setBaseFontSize(size)): Store result of trim().
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/tools/FileObject.java:
+ (openReader(boolean)): Document new parameter.
+
+2008-03-27 Michael Franz <mvfranz@gmail.com>
+
+ PR classpath/35690:
+ * javax/tools/FileObject.java:
+ (toUri()): Fix case from toURI.
+ (openReader(boolean)): Add missing boolean argument.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35487:
+ * gnu/javax/management/Server.java:
+ (beans): Change to ConcurrentHashMap.
+ (defaultDomain): Make final.
+ (outer): Likewise.
+ (LazyListenersHolder): Added to wrap
+ listeners, also now a ConcurrentHashMap,
+ providing lazy initialisation safely.
+ (sequenceNumber): Documented.
+ (getBean(ObjectName)): Remove redundant cast.
+ (addNotificationListener(ObjectName,NotificationListener,
+ NotificationFilter,Object)): Remove map initialisation
+ and use holder.
+ (getObjectInstance(ObjectName)): Remove redundant cast.
+ (registerMBean(Object,ObjectName)): Add bean atomically.
+ (removeNotificationListener(ObjectName,NotificationListener)):
+ Simplified.
+ (removeNotificationListener(ObjectName,NotificationListener,
+ NotificationFilter,Object)): Likewise.
+ (notify(ObjectName,String)): Documented.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/management/Server.java:
+ Genericised.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/management/Translator.java:
+ Genericised.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/DefaultLoaderRepository.java,
+ * javax/management/JMX.java,
+ * javax/management/MBeanAttributeInfo.java,
+ * javax/management/MBeanConstructorInfo.java,
+ * javax/management/MBeanOperationInfo.java,
+ * javax/management/MBeanServerDelegate.java:
+ Fix warnings due to generics.
+
+2008-08-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/MBeanPermission.java,
+ * javax/management/MBeanServerDelegate.java,
+ * javax/management/MBeanServerFactory.java,
+ * javax/management/MBeanServerInvocationHandler.java,
+ * javax/management/MBeanServerPermission.java:
+ Fix warnings due to use of non-generic collections.
+
+2008-08-25 Mario Torre <neugens@aicas.com>
+
+ * gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is
+ null to avoid NPE.
+
+2008-08-22 Mario Torre <neugens@aicas.com>
+
+ * gnu/CORBA/OrbFunctional.java (set_parameters): Fix
+ NullPointerException checking when param is null.
+
+2008-08-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (reset()): Reset append position so
+ we don't try and append to the end of
+ the old input.
+
+2008-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/32028:
+ * m4/acinclude.m4:
+ Also allow versions of GJDoc from 0.8* on, as
+ CVS is 0.8.0-pre.
+
+2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/32028:
+ * m4/acinclude.m4:
+ (CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is
+ being used.
+
+2008-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/Makefile.am:
+ Add taglets subdirectory to list of excluded
+ paths when GJDoc is not compiled.
+
+2008-08-19 David P Grove <groved@us.ibm.com>
+
+ * scripts/check_jni_methods.sh.in:
+ Fix build issue on AIX by splitting generation
+ of method list.
+
+2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * native/jni/gstreamer-peer/gst_native_pipeline.c:
+ (get_free_space(int)): Use #else not #elif when
+ there is no condition.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/31895:
+ * java/text/DecimalFormat.java:
+ (setCurrency(Currency)): Update prefixes and
+ suffixes when currency changes.
+ * java/text/DecimalFormatSymbols.java:
+ (DecimalFormatSymbols(Locale)): Set locale earlier
+ so it can be used by setCurrency(Currency).
+ (setCurrency(Currency)): Set the symbol correctly using
+ the locale of the instance.
+ * java/util/Currency.java:
+ Throw error instead of just printing a message.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/activation/ActivationDataFlavor.java:
+ Suppress warnings from public API.
+ (mimeType): Made final.
+ (representationClass): Added generic type and
+ made final.
+ (normalizeMimeTypeParameter(String,String)):
+ Use CPStringBuilder.
+ * javax/activation/CommandInfo.java:
+ (verb): Made final.
+ (className): Made final.
+ * javax/activation/DataHandler.java:
+ (dataSource): Made final.
+ * javax/activation/FileDataSource.java:
+ (file): Made final.
+ * javax/activation/MailcapCommandMap.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/MimeType.java:
+ (toString()): Use CPStringBuilder.
+ (getBaseType()): Likewise.
+ * javax/activation/MimeTypeParameterList.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/MimeTypeParseException.java:
+ (MimeTypeParseException(String,String)): Use
+ CPStringBuilder.
+ * javax/activation/MimetypesFileTypeMap.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/URLDataSource.java:
+ (url): Made final.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/activation/viewers/ImageViewer.java,
+ * gnu/javax/activation/viewers/TextEditor.java,
+ * gnu/javax/activation/viewers/TextViewer.java,
+ * javax/activation/ActivationDataFlavor.java,
+ * javax/activation/CommandInfo.java,
+ * javax/activation/CommandMap.java,
+ * javax/activation/CommandObject.java,
+ * javax/activation/DataContentHandler.java,
+ * javax/activation/DataContentHandlerFactory.java,
+ * javax/activation/DataHandler.java,
+ * javax/activation/DataHandlerDataSource.java,
+ * javax/activation/DataSource.java,
+ * javax/activation/DataSourceDataContentHandler.java,
+ * javax/activation/FileDataSource.java,
+ * javax/activation/FileTypeMap.java,
+ * javax/activation/MailcapCommandMap.java,
+ * javax/activation/MimeType.java,
+ * javax/activation/MimeTypeParameterList.java,
+ * javax/activation/MimeTypeParseException.java,
+ * javax/activation/MimetypesFileTypeMap.java,
+ * javax/activation/ObjectDataContentHandler.java,
+ * javax/activation/URLDataSource.java,
+ * javax/activation/UnsupportedDataTypeException.java,
+ * javax/activation/package.html,
+ * resource/META-INF/mailcap.default,
+ * resource/META-INF/mimetypes.default:
+ Import GNU JAF CVS as of 17/08/2008.
+
+2006-04-25 Archit Shah <ashah@redhat.com>
+
+ * javax/activation/MimeTypeParameterList.java:
+ Insert ';' separator before parameter list.
+
+2005-06-29 Xavier Poinsard <xpoinsard@openpricer.com>
+
+ * javax/activation/ObjectDataContentHandler.java:
+ Fixed typo.
+
+2005-05-28 Chris Burdess <dog@bluezoo.org>
+
+ * javax/activation/CommandMap.java,
+ * javax/activation/MailcapCommandMap.java:
+ Updated to JAF 1.1.
+
+2004-06-09 Chris Burdess <dog@bluezoo.org>
+
+ * javax/activation/MailcapCommandMap.java:
+ Fixed bug whereby x-java prefix was not
+ attempted.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * AUTHORS: Added Laszlo.
+
+2008-04-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/30436:
+ * java/util/Scanner.java:
+ Fix package to be java.util and correct
+ indentation.
+
+2007-07-25 Laszlo Andras Hernadi <e0327023@student.tuwien.ac.at>
+
+ PR classpath/30436:
+ * java/util/Scanner.java:
+ Initial implementation.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (toMatchResult()): Implemented.
+
+2008-08-13 Joshua Sumali <jsumali@redhat.com>
+
+ * doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo
+ instead of invoke.texi. Remove invoke.texi from EXTRA_DIST.
+ * doc/invoke.texi: Removed and merged into ...
+ * doc/cp-tools.texinfo: Here
+
+2008-08-12 Robert Schuster <robertschuster@fsfe.org>
+
+ * native/jni/java-net/local.c
+ (local_bind): Removed fprintf call, fixed access outside
+ of array bounds.
+
+2008-07-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * m4/acinclude.m4 (CLASSPATH_COND_IF): New macro.
+ * configure.ac: Use it.
+ * tools/Makefile.am (!CREATE_WRAPPERS): Update comment.
+
+2008-07-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties,
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_si.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_trv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ Correct use of 'v' with 'z' in locale data as Java does not
+ support this new pattern character.
+
+2008-07-12 David Daney <ddaney@avtrex.com>
+
+ * gnu/java/net/protocol/http/LimitedLengthInputStream.java: Clean up
+ white space in entire file.
+ (handleClose): Remove redundant braces from if statement.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Handle missing standard zone names.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Fallback on to parent locales.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Use metazones to convert metazone names to standard
+ Continent/City form. Also add hack to include GMT
+ as a short name.
+ * resource/java/text/metazones.properties:
+ New properties file for mapping metazones to standard
+ zone names.
+
+2008-07-07 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * configure.ac (AC_CHECK_HEADERS): Added sys/sockio.h, required
+ for Solaris.
+ (AC_CHECK_LIB): Check for socket.
+ * native/jni/java-net/java_net_VMNetworkInterface.c (unistd.h):
+ Added.
+ [HAVE_SYS_SOCKIO_H] (sys/sockio.h): Likewise.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * THANKYOU: Added Byeogncheol.
+
+2008-07-07 Byeogncheol Lee <lineonking@gmail.com>
+
+ PR classpath/36677:
+ * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
+ (executeTopLevelThreadGroups(ByteBuffer,DataOutputStream)):
+ Add missing write.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Pad arrays smaller than 5 with empty strings.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/Calendar.java:
+ (Calendar(TimeZone,Locale)): Use weeks.properties
+ instead of LocaleInformation bundles.
+ * resource/java/util/iso4217.properties:
+ Updated with new supplementgen header.
+ * resource/java/util/weeks.properties:
+ New resource file.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties,
+ * resource/java/util/iso4217.properties:
+ Regenerated from CLDR 1.6.0.
+ * resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_Shaw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_trv.properties,
+ * resource/gnu/java/locale/LocaleInformation_si.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur_IN.properties:
+ New files from CLDR 1.6.0.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bo.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_ii.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties,
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ Regenerated with Unicode delimiters escaped.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36653:
+ * doc/www.gnu.org/downloads/downloads.wml:
+ Add 0.97.2 to download list.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/ResourceBundle.java,
+ (BundleKey.toString()): Implemented.
+ (clearCache()): Implemented.
+ (clearCache(ClassLoader)): Implemented.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/ResourceBundle.java:
+ Fix generic warnings.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/Properties.java:
+ (load(Reader)): Implemented.
+ (load(InputStream)): Fixed to use load(Reader).
+ * java/util/PropertyResourceBundle.java:
+ (PropertyResourceBundle(Reader)): Implemented.
+
+2008-07-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LU.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_TT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_DO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_ES.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_GT.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_HN.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_MX.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_NI.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PA.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_SV.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_om_KE.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_ET.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_KE.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties:
+ Regenerated from CLDR 1.5.1 data.
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_bo.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_JM.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_ii.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ New files from CLDR 1.5.1.
+
+2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * java/lang/Integer.java (signum): Implemented properly as
+ described in Hacker's Delight Section 2-7, plus Andrew Haley's
+ explanation.
+
+2008-07-01 Andrew Haley <aph@redhat.com>
+
+ * java/lang/Long.java: Comment change only.
+
+2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * java/lang/Long.java (signum): Implemented properly as described
+ in Hacker's Delight Section 2-7.
+
+2008-06-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35237:
+ * resource/java/util/iso4217.properties:
+ Regenerated from CLDR 1.5.1 data.
+
+2008-06-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36636:
+ * tools/gnu/classpath/tools/jar/Updater.java:
+ (run(Main)): Check return value of renameTo, and
+ create temporary file in same directory (as suggested
+ by Tom Tromey).
+ (copyFile(File,File)): Removed.
+
+2008-06-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36637:
+ * examples/Makefile.am,
+ * lib/Makefile.am:
+ Use new conditional and $(JAR).
+ * m4/acinclude.m4:
+ Replace --with-fastjar with a general
+ --with-jar check that can be turned off.
+ * tools/Makefile.am:
+ Use new conditional and $(JAR).
+
+2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36636:
+ * tools/gnu/classpath/tools/jar/Updater.java:
+ (run(Main)): Check return value of renameTo, and
+ copy file instead if necessary.
+ (copyFile(File,File)): New method to copy a file.
+
+2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Remove AC_PROG_MKDIR_P.
+ * examples/Makefile.am,
+ * lib/Makefile.am,
+ * tools/Makefile.am:
+ Use mkdir_p instead of MKDIR_P.
+
+2008-06-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36221:
+ * gnu/xml/dom/DomAttr.java:
+ (DomAttr(DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/DomDocument.java:
+ (createElement(String)): Use new constructor rather than
+ setting variable directly.
+ (createAttribute(String)): Likewise.
+ * gnu/xml/dom/DomElement.java:
+ (DomElement(DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/DomNsNode.java:
+ (localName): Make private.
+ (DomNsNode(short,DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/ls/DomLSParser.java:
+ (doParse(LSInput)): Set namespace awareness using a method,
+ not directly.
+ * gnu/xml/dom/ls/SAXEventSink.java:
+ (namespaceAware): Make private.
+ (setNamespaceAware(boolean)): New method.
+ * gnu/xml/transform/XSLURIResolver.java:
+ (parse(InputSource,XMLReader)): Parse with namespace awareness on.
+
+2008-06-24 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/32198:
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
+ (compile): Reverse isAssignableFrom test.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36219:
+ * gnu/xml/transform/ForEachNode.java:
+ Genericised.
+ * gnu/xml/transform/SortKey.java:
+ Documented.
+ (clone(Stylesheet)): Implemented.
+ (cloneAttributeValueTemplate(TemplateNode,Stylesheet)):
+ Implemented.
+ * gnu/xml/transform/Stylesheet.java:
+ (parseSortKeys(Node)): Return empty list not null.
+ * gnu/xml/transform/TemplateNode.java:
+ Genericise documentOrderComparator.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/CountFunction.java,
+ * gnu/xml/xpath/EqualityExpr.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/NamespaceUriFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/SumFunction.java,
+ * gnu/xml/xpath/UnionExpr.java,
+ * gnu/xml/xpath/XPathParser.java,
+ * gnu/xml/xpath/XPathParser.y,
+ * java/lang/Enum.java,
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java:
+ Reduce scope of unchecked warning suppression,
+ and remove unneeded uses.
+
+2008-06-23 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * include/jni.h [__cplusplus] (_Jv_JNIEnv): Renamed member p to
+ functions to be compatible with OpenJDK.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36220:
+ * gnu/xml/transform/CallTemplateNode.java:
+ (doApply(Stylesheet,QName,Node,int,int,Node,Node)):
+ Check for withParams being empty not null.
+ (references(QName)): Remove special-casing for null.
+ * gnu/xml/transform/Stylesheet.java:
+ (parseWithParams(Node)): Just return the list if empty,
+ don't return null instead.
+
+2008-06-23 Andrew Haley <aph@redhat.com>
+
+ * native/jawt/Makefile.am,
+ native/fdlibm/Makefile.am,
+ native/jni/java-util/Makefile.am,
+ native/jni/gstreamer-peer/Makefile.am,
+ native/jni/native-lib/Makefile.am,
+ native/jni/gconf-peer/Makefile.am,
+ native/jni/gtk-peer/Makefile.am,
+ native/jni/xmlj/Makefile.am,
+ native/jni/midi-alsa/Makefile.am,
+ native/jni/java-nio/Makefile.am,
+ native/jni/midi-dssi/Makefile.am,
+ native/jni/classpath/Makefile.am,
+ native/jni/java-io/Makefile.am,
+ native/jni/java-lang/Makefile.am,
+ native/jni/java-net/Makefile.am (AM_CFLAGS): Add @EXTRA_CFLAGS@.
+ * configure.ac (EXTRA_CFLAGS): New macro.
+
+ * lib/Makefile.am (resources): Add .svn.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/transform/ParameterNode.java,
+ * gnu/xml/transform/Stylesheet.java,
+ * gnu/xml/transform/UnparsedEntityUriFunction.java,
+ * gnu/xml/transform/ValueOfNode.java,
+ * gnu/xml/transform/XSLComparator.java,
+ * gnu/xml/transform/XSLURIResolver.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/ContainsFunction.java,
+ * gnu/xml/xpath/CountFunction.java,
+ * gnu/xml/xpath/EqualityExpr.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/FloorFunction.java,
+ * gnu/xml/xpath/Function.java,
+ * gnu/xml/xpath/FunctionCall.java,
+ * gnu/xml/xpath/NamespaceUriFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java,
+ * gnu/xml/xpath/Root.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/Steps.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/BooleanFunction.java,
+ * gnu/xml/xpath/CeilingFunction.java,
+ * gnu/xml/xpath/ConcatFunction.java,
+ * gnu/xml/xpath/DocumentOrderComparator.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LangFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/NormalizeSpaceFunction.java,
+ * gnu/xml/xpath/NotFunction.java,
+ * gnu/xml/xpath/NumberFunction.java,
+ * gnu/xml/xpath/Path.java,
+ * gnu/xml/xpath/RoundFunction.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/StartsWithFunction.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/StringFunction.java,
+ * gnu/xml/xpath/StringLengthFunction.java,
+ * gnu/xml/xpath/SubstringAfterFunction.java,
+ * gnu/xml/xpath/SubstringBeforeFunction.java,
+ * gnu/xml/xpath/SubstringFunction.java,
+ * gnu/xml/xpath/SumFunction.java,
+ * gnu/xml/xpath/TranslateFunction.java,
+ * gnu/xml/xpath/UnionExpr.java,
+ * gnu/xml/xpath/XPathParser.java,
+ * gnu/xml/xpath/XPathParser.y,
+ * gnu/xml/xpath/XPathTokenizer.java:
+ Genericised.
+ * javax/xml/datatype/DatatypeFactory.java:
+ Use new java.util.ServiceLoader framework.
+ * javax/xml/namespace/NamespaceContext.java,
+ * javax/xml/parsers/DocumentBuilderFactory.java,
+ * javax/xml/parsers/SAXParserFactory.java,
+ * javax/xml/stream/XMLEventFactory.java,
+ * javax/xml/stream/XMLEventReader.java,
+ * javax/xml/stream/XMLInputFactory.java,
+ * javax/xml/stream/XMLOutputFactory.java:
+ Genericised.
+ * javax/xml/stream/events/DTD.java,
+ * javax/xml/stream/events/EndElement.java,
+ * javax/xml/stream/events/StartElement.java:
+ Ignore unchecked errors due to API not using generics.
+ * javax/xml/transform/TransformerFactory.java,
+ * javax/xml/validation/SchemaFactory.java,
+ * javax/xml/xpath/XPathFactory.java:
+ Genericised.
+ * javax/xml/xpath/XPathFunction.java:
+ Ignore unchecked errors due to API not using generics.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36220:
+ * gnu/xml/transform/ParameterNode.java:
+ (clone()): Only clone select if not null.
+ (toString()): Always include value of select.
+ * gnu/xml/transform/Stylesheet.java:
+ (toString()): Implemented.
+ * gnu/xml/transform/Template.java:
+ (toString()): Add value of node.
+ * gnu/xml/transform/TemplatesImpl.java:
+ (toString()): Implemented.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664:
+ * gnu/java/math/GMP.java:
+ Renamed from VMBigInteger.java and fixed to use
+ GMP instances directly.
+ * include/Makefile.am:
+ Generate GMP.h not VMBigInteger.h.
+ * java/math/BigInteger.java:
+ Send instances of GMP in calls to GMP rather than
+ the wrapping BigInteger class.
+ * native/jni/java-math/Makefile.am:
+ Fix filename of source code file.
+ * native/jni/java-math/gnu_java_math_GMP.c:
+ Renamed from java_math_VMBigInteger.c.
+ * native/jni/java-math/java_math_VMBigInteger.c,
+ * vm/reference/java/math/VMBigInteger.java:
+ Removed.
+
+2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Remove --with-vm option, instead relying
+ on AC_PROG_JAVA. Only call this if tools
+ are enabled.
+ * tools/gappletviewer.in,
+ * tools/gjar.in,
+ * tools/gjarsigner.in,
+ * tools/gjavah.in,
+ * tools/gjdoc.in,
+ * tools/gkeytool.in,
+ * tools/gnative2ascii.in,
+ * tools/gorbd.in,
+ * tools/grmic.in,
+ * tools/grmid.in,
+ * tools/grmiregistry.in,
+ * tools/gserialver.in,
+ * tools/gtnameserv.in:
+ Regenerated with @JAVA@ and -classpath option.
+
+2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_java.m4:
+ Add CACAO and JamVM.
+ * m4/ac_prog_javac.m4:
+ Use variables to store warning options.
+
+2008-06-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/ObjectName.java,
+ * javax/management/StandardMBean.java:
+ Fix warnings due to use of generics.
+
+2008-06-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/openmbean/ArrayType.java,
+ * javax/management/openmbean/CompositeDataSupport.java,
+ * javax/management/openmbean/CompositeType.java,
+ * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
+ * javax/management/openmbean/OpenMBeanInfoSupport.java,
+ * javax/management/openmbean/OpenMBeanParameterInfoSupport.java,
+ * javax/management/openmbean/SimpleType.java,
+ * javax/management/openmbean/TabularDataSupport.java:
+ Fix warnings due to use of generics.
+ * javax/management/remote/rmi/RMIConnection.java:
+ Suppress warnings due to API's use of MarshalledObject.
+
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/openmbean/TabularDataSupport.java,
+ * javax/management/openmbean/TabularType.java:
+ Fix warnings due to use of generics.
+
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36522:
+ * gnu/java/security/PolicyFile.java:
+ Correct typo changing seperator to separator.
+
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36477:
+ * gnu/java/lang/CPStringBuilder.java,
+ (setLength(int)): Don't ensure capacity when
+ new length is 0.
+ (ensureCapacity(int)): Allocate double the minimum
+ capacity rather than double the array length when
+ allocating a new array after a write.
+
+2008-06-15 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/RasterGraphics.java: remove unused import that cause
+ compilation to fail when xpeers are not enabled.
+
+2008-06-15 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): delegate to
+ setPaint.
+ (setPaint): fix to set paint context and foreground color.
+ (imageCache): new field.
+ (drawImage): new codepath for scaling images.
+ (prepareImage): new method.
+ (getPaintContext): set paintContext appropriately.
+ * gnu/java/awt/java2d/RasterGraphics.java (renderScanline): new method,
+ override from superclass to detect correct value of y while rendering
+ the scanline.
+ * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): revert previous
+ patch.
+ * gnu/java/awt/peer/x/XEventPump.java (findMouseEventTarget): new method.
+ (handleButtonPress): use of findMouseEventTarget to detect the correct
+ target.
+ (handleButtonRelease): likewise.
+ * gnu/java/awt/peer/x/XGraphics2D.java (rawDrawImage): clip the target image
+ so that it is completely contained in the destination pixmaps, as per X11
+ specification.
+ * gnu/java/awt/peer/x/XToolkit.java (createTextField): method implemented.
+ (createButton): likewise.
+ (prepareImage): likewise.
+ (createLabel): likewise.
+ (checkImage): likewise.
+ (createTextArea): likewise.
+ (createCheckbox): likewise.
+ (checkHeadLess): new method.
+ * gnu/javax/imageio/bmp/BMPImageWriter.java (write):
+ don't close the stream.
+ * gnu/javax/imageio/bmp/BMPImageWriterSpi.java (names): added new names to
+ the list of known names for BMP.
+ * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
+ * javax/imageio/ImageIO.java (write): call dispose on ImageWriter after
+ writing of the image.
+
+2008-06-15 Tom Tromey <tromey@redhat.com>
+
+ * include/jni.h (_jobjectRefType, jobjectRefType): Always
+ declare.
+
+2008-06-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Add --enable-gjdoc option and check
+ for mkdir -p.
+ * examples/Makefile.am,
+ * lib/Makefile.am,
+ * lib/copy-vmresources.sh.in:
+ Use @MKDIR_P@.
+ * tools/Makefile.am:
+ Allow building GJDoc to be disabled
+ and use @MKDIR_P@.
+
+2008-06-13 Mark Wielaard <mark@klomp.org>
+
+ * tools/Makefile.am (USE_JAVAC_FLAGS): Use relative generated dir.
+ (TOOLS_ZIP): Generate antlr output in relative dir.
+
+2008-06-13 Mark Wielaard <mark@klomp.org>
+
+ * tools/Makefile.am (USE_JAVAC_FLAGS): Use generated in builddir.
+ (TOOLS_JAVA_FILES): Include all .java files in all subdirs.
+ (ALL_TOOLS_FILES): Include gjdoc_resources and antlr input file.
+ (TOOLS_ZIP): Generate antlr output in builddir.
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png:
+ New file from gjdoc.
+
+2008-06-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Check for --with-glibj too when disabling
+ the javac check.
+
+2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * include/Makefile.am: Don't delete headers
+ when not rebuilding them.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Only regenerate headers by
+ default if the headers aren't in the source tree.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Only run javac check
+ if examples, tools and/or class library are
+ being built.
+ * scripts/check_jni_methods.sh.in:
+ Remove duplicates in the list of JNI methods
+ for when builddir==srcdir.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * lib/Makefile.am:
+ Replace explicit mkinstalldirs with $(mkinstalldirs).
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * scripts/check_jni_methods.sh.in:
+ Search the source directory as well for
+ when headers are in the tarball.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Replace tools with
+ $(TOOLSDIR).
+ * m4/acinclude.m4: Include option
+ to disable building the tools.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Use default makedistcheck
+ flags that test all optional dependencies.
+ * include/Makefile.am: Add header files to dist.
+ * lib/Makefile.am: Trick class files into being
+ built for dist, so headers can be generated.
+
+2008-06-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/announce/20080606.wml,
+ * doc/www.gnu.org/newsitems.txt:
+ Add 0.97.2 annoncement.
+ * NEWS: Add 0.97.1 and 0.97.2 updates.
+
+2008-06-09 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (EXTRA_DIST): Add ChangeLog-2007.
+ * doc/Makefile.am (EXTRA_DIST): Add invoke.texi.
+
+2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Integer.java:
+ (parseInt(String, int, boolean)): Disallow "-+".
+
+2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
+ Fixed indentation and changed to use OptionException.
+ * tools/gnu/classpath/tools/getopt/OptionException.java:
+ (OptionException(String,Throwable)): Added.
+
+2008-06-03 Robert Schuster <robertschuster@fsfe.org>
+
+ * tools/gnu/classpath/tools/jar/Main.java:
+ (run): Call different ClasspathToolParser.parse() variant.
+ (getParser): Changed return type to ClasspathToolParser.
+ * tools/gnu/classpath/tools/javah/GcjhMain.java:
+ (getParser): Changed return type to ClasspathToolParser.
+ * tools/gnu/classpath/tools/javah/Main.java:
+ (getParser): Changed return type to ClasspathToolParser.
+ * tools/gnu/classpath/tools/getopt/Parser.java: Make 'programName'
+ protected.
+ * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
+ (parse(String[], FileArgumentCallback,boolean): New method.
+ (parse(String[], boolean): New method.
+ (parseFileList): New method.
+ (parseLine): New method.
+ (AtFileArgumentCallback): New inner class.
+
+2008-06-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/getopt/OptionException.java,
+ * tools/gnu/classpath/tools/jar/Main.java:
+ Revert previous changes to allow Schuster's patch to
+ do the same.
+
+2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/getopt/OptionException.java:
+ (OptionException(String,Throwable)): New constructor.
+ * tools/gnu/classpath/tools/jar/Main.java:
+ (fileLists): New queue for streams containing lists of files.
+ (HandleFile.NotifyFile(String)): Check for '@' arguments
+ and add to stream queue.
+ (parsed(String)): Add stdin to queue instead of setting flag.
+ (readNames()): Work with the queue rather than just stdin.
+ (run(String[])): Always execute readNames().
+
+2008-06-01 Mark Wielaard <mark@klomp.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java: Removed XDialogPeer
+ import.
+
+2008-05-29 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): now set directly
+ the foreground color the application wants to use to draw. On null, behave
+ like OpenJDK, drawing black.
+ (renderScanline): fixed NPE, paintContext never initialized. Correctely
+ retrieve destination raster
+ (getColor): Return the correct type.
+ (static initializer): HashMap now typed.
+ (background): now defaults to black and not null.
+ (getPaintContext): new method. Initialize lazily the PaintContext.
+ (foreground): new field.
+ (isForegroundColorNull): likewise.
+ (getDeviceBounds): made abstract.
+ * gnu/java/awt/java2d/RasterGraphics.java (getDeviceBounds): new method.
+ * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): pass correct
+ value of Y to doScanline.
+ * gnu/java/awt/peer/x/GLGraphics.java (getDeviceBounds): new method.
+ (setBackground): synch with new Escher 2.0 API.
+ * gnu/java/awt/peer/x/XGraphicsConfiguration.java (getDefaultTransform):
+ implemented.
+ (getBounds): new method.
+ * java/awt/AlphaComposite.java (derive(int) and derive(float)):
+ new methods.
+ * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
+ now call createWritableChild.
+ (createWritableChild): reformatted.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * NEWS: Added building of gjdoc into tools.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * AUTHORS: Added Joshua Sumali.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * configure.ac: Add support for Antlr. This is used for building gjdoc.
+ Also generate tools/gjdoc wrapper with gjdoc.in.
+ * doc/gjdoc.texi: New file.
+ * doc/invoke.texi: New file.
+ * doc/Makefile.am: Generate gjdoc documentation.
+ * m4/ac_prog_antlr.m4: New file.
+ * m4/ac_prog_java.m4: New file.
+ * m4/ac_prog_java_works.m4: New file.
+ * tools/Makefile.am: Build gjdoc as part of tools.
+ * tools/com/sun/tools/javadoc/Main.java,
+ * tools/gjdoc.in,
+ * tools/gnu/classpath/tools/doclets/AbstractDoclet.java,
+ * tools/gnu/classpath/tools/doclets/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/debugdoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java,
+ * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionFile.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java,
+ * tools/gnu/classpath/tools/doclets/DocletOption.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionString.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java,
+ * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java,
+ * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java,
+ * tools/gnu/classpath/tools/doclets/PackageGroup.java,
+ * tools/gnu/classpath/tools/doclets/PackageMatcher.java,
+ * tools/gnu/classpath/tools/doclets/StandardTaglet.java,
+ * tools/gnu/classpath/tools/doclets/TagletPrinter.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/package.html,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java,
+ * tools/gnu/classpath/tools/FileSystemClassLoader.java,
+ * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/.cvsignore,
+ * tools/gnu/classpath/tools/gjdoc/Debug.java,
+ * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java,
+ * tools/gnu/classpath/tools/gjdoc/DocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java,
+ * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Context.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/.cvsignore,
+ * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Expression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/java-expression.g,
+ * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Type.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java,
+ * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java,
+ * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java,
+ * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java,
+ * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/Main.java,
+ * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParseException.java,
+ * tools/gnu/classpath/tools/gjdoc/Parser.java,
+ * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TagContainer.java,
+ * tools/gnu/classpath/tools/gjdoc/TagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java,
+ * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java,
+ * tools/gnu/classpath/tools/gjdoc/Timer.java,
+ * tools/gnu/classpath/tools/gjdoc/TypeImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/WritableType.java,
+ * tools/gnu/classpath/tools/IOToolkit.java,
+ * tools/gnu/classpath/tools/java2xhtml/.cvsignore,
+ * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java,
+ * tools/gnu/classpath/tools/MalformedInputEvent.java,
+ * tools/gnu/classpath/tools/MalformedInputListener.java,
+ * tools/gnu/classpath/tools/NotifyingInputStreamReader.java,
+ * tools/gnu/classpath/tools/StringToolkit.java,
+ * tools/gnu/classpath/tools/taglets/AuthorTaglet.java,
+ * tools/gnu/classpath/tools/taglets/CodeTaglet.java,
+ * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java,
+ * tools/gnu/classpath/tools/taglets/.cvsignore,
+ * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java,
+ * tools/gnu/classpath/tools/taglets/GenericTaglet.java,
+ * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java,
+ * tools/gnu/classpath/tools/taglets/SinceTaglet.java,
+ * tools/gnu/classpath/tools/taglets/TagletContext.java,
+ * tools/gnu/classpath/tools/taglets/ValueTaglet.java,
+ * tools/gnu/classpath/tools/taglets/VersionTaglet.java,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/serialized.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/version.properties,
+ * tools/resource/gnu/classpath/tools/gjdoc/version.properties.in:
+ New files, taken from gjdoc source tree.
+
+
+2008-05-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/jar/Creator.java:
+ (writeCommandLineEntries(Main,OutputStream)):
+ Add default value for manifest version and
+ include Created-By property.
+
+2008-05-19 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleExpose): new method.
+ (handleDestroyNotify): likewise.
+ (handleClientMessage): likewise.
+ (handleButtonRelease): likewise.
+ (handleMotionNotify): likewise.
+ (handleKeyEvent): likewise.
+ (handleButtonPress): likewise.
+ (handleEvent): refactored to use new methods instead of a big switch
+ block. Fixed resizing of windows.
+ * gnu/java/awt/peer/x/XWindowPeer.java (standardSelect): update list
+ of flags for X11 events handling.
+ (callback): removed now unused flag.
+
+2008-05-16 Mario Torre <neugens@aicas.com>
+
+ * native/jni/java-math/java_math_VMBigInteger.c
+ (Java_java_math_VMBigInteger_natModInverse): fix variable res not
+ initialized.
+
+2008-05-15 Robert Schuster <robertschuster@fsfe.org>
+
+ * java/net/NetworkInterface.java:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+ * vm/reference/java/net/VMNetworkInterface.java:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+ * native/jni/java-net/java_net_VMNetworkInterface.c:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
+ * java/lang/Integer.java:
+ (parseInt(String,int,boolean)): Parse +x
+ as x, not -x.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (regionStart): New variable.
+ (regionEnd): Likewise.
+ (transparentBounds): Likewise.
+ (anchoringBounds): Likewise.
+ (Matcher()): Initialise new variables.
+ (find()): Alter to use new settings.
+ (find(int)): Likewise.
+ (lookingAt()): Likewise.
+ (matches()): Likewise.
+ (reset()): Reset region.
+ (reset(CharSequence)): Documented.
+ (toString()): Include new variables.
+ (region(int,int)): Implemented.
+ (regionStart()): Likewise.
+ (regionEnd()): Likewise.
+ (hasTransparentBounds()): Likewise.
+ (useTransparentBounds(boolean)): Likewise.
+ (hasAnchoringBounds()): Likewise.
+ (useAnchoringBounds(boolean)): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/lang/CPStringBuilder.java:
+ (toString()): Fix comments to reflect copying changes.
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+ (toString()): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * NEWS:
+ Mention GMP and CPStringBuilder.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36147
+ * gnu/java/lang/CPStringBuilder.java:
+ (allocated): New flag to mark whether or
+ not the array has been allocated to a String object.
+ (ensureCapacity(int)): Removed.
+ (ensureCapacity_unsynchronized(int)): Renamed to
+ ensureCapacity, and creates an array when allocated
+ is true.
+ (allocateArray(int)): Added.
+ (trimToSize()): Use allocateArray method.
+ (toString()): Set allocated to true;
+ (substring(int,int)): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/lang/CPStringBuilder.java:
+ Make default capacity configurable.
+
+2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java,
+ * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
+ * vm/reference/java/net/VMNetworkInterface.java:
+ Remove use of 1.5 language constructs.
+
+2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/RE.java:
+ Switch to use generic ArrayLists.
+ * gnu/java/util/regex/REMatchEnumeration.java:
+ Make the enumeration implementation generic.
+ * gnu/java/util/regex/RETokenLookBehind.java:
+ Remove unused variables.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Add generics to these classes.
+ * gnu/java/util/regex/RETokenOneOf.java:
+ Use an ArrayList and a Deque instead of
+ a Vector and a Stack to remove unnecessary
+ synchronisation.
+ * gnu/java/util/regex/RETokenRepeated.java:
+ Replace custom FindMatchControlStack class
+ with a generic Deque.
+ * java/util/regex/Pattern.java:
+ Use a generic ArrayList instance.
+
+2008-05-07 Mario Torre <neugens@limasoftware.net>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleEvent):
+ Fixed mouse dragging and movement in XEventPump. Patch from Roman Kennke.
+
+2008-05-07 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleEvent): xEvent.code is now
+ masked to identify and react to syntetic events.
+ Added UnmapNotify, DestroyNotify and ClientMessage to the list of event
+ handled.
+ * gnu/java/awt/peer/x/XFramePeer.java (getState): initial implementation.
+ * gnu/java/awt/peer/x/XGraphics2D.java (setPaint): fix NPE, this is a
+ workaround, the code have to be fixed in a better way.
+ * gnu/java/awt/peer/x/XWindowPeer.java (getXwindow): new method to allow
+ access to the underling xwindow.
+ (standardSelect): add more events for notification.
+ (XWindowPeer): call set_wm_delete_window to ask the WM to notify us
+ when a delete event occur.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * tools/gnu/classpath/tools/jar/Indexer.java,
+ * tools/gnu/classpath/tools/javah/JniHelper.java,
+ * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java,
+ * tools/gnu/classpath/tools/orbd/PersistentMap.java,
+ * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
+ * tools/gnu/classpath/tools/rmic/Generator.java,
+ * tools/gnu/classpath/tools/rmic/MethodGenerator.java,
+ * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java,
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+ * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java:
+ Swap use of StringBuffer for StringBuilder.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * javax/swing/AbstractButton.java,
+ * javax/swing/JButton.java,
+ * javax/swing/JComboBox.java,
+ * javax/swing/JComponent.java,
+ * javax/swing/JDesktopPane.java,
+ * javax/swing/JFileChooser.java,
+ * javax/swing/JFrame.java,
+ * javax/swing/JLabel.java,
+ * javax/swing/JList.java,
+ * javax/swing/JMenuBar.java,
+ * javax/swing/JPopupMenu.java,
+ * javax/swing/JProgressBar.java,
+ * javax/swing/JScrollBar.java,
+ * javax/swing/JSlider.java,
+ * javax/swing/JSplitPane.java,
+ * javax/swing/JTabbedPane.java,
+ * javax/swing/JToolBar.java,
+ * javax/swing/JToolTip.java,
+ * javax/swing/UIManager.java,
+ * javax/swing/event/EventListenerList.java,
+ * javax/swing/table/AbstractTableModel.java,
+ * javax/swing/text/AbstractDocument.java,
+ * javax/swing/text/DefaultEditorKit.java,
+ * javax/swing/text/DefaultStyledDocument.java,
+ * javax/swing/text/JTextComponent.java,
+ * javax/swing/text/MaskFormatter.java,
+ * javax/swing/text/TabSet.java,
+ * javax/swing/text/html/CSSParser.java,
+ * javax/swing/text/html/HTMLWriter.java,
+ * javax/swing/tree/DefaultTreeSelectionModel.java,
+ * javax/xml/namespace/QName.java,
+ * javax/xml/transform/TransformerException.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * javax/accessibility/AccessibleRelationSet.java,
+ * javax/accessibility/AccessibleStateSet.java,
+ * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java,
+ * javax/imageio/plugins/jpeg/JPEGQTable.java,
+ * javax/imageio/stream/ImageInputStreamImpl.java,
+ * javax/management/ObjectName.java,
+ * javax/naming/BinaryRefAddr.java,
+ * javax/naming/CompositeName.java,
+ * javax/naming/CompoundName.java,
+ * javax/naming/NamingException.java,
+ * javax/naming/spi/NamingManager.java,
+ * javax/security/auth/x500/X500Principal.java,
+ * javax/security/sasl/SaslException.java,
+ * javax/sound/sampled/AudioFormat.java,
+ * javax/sound/sampled/CompoundControl.java,
+ * javax/sound/sampled/DataLine.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/util/AbstractCollection.java,
+ * java/util/BitSet.java,
+ * java/util/Collections.java,
+ * java/util/Locale.java,
+ * java/util/ResourceBundle.java,
+ * java/util/TimeZone.java,
+ * java/util/logging/FileHandler.java,
+ * java/util/logging/Logger.java,
+ * java/util/logging/SimpleFormatter.java,
+ * java/util/logging/XMLFormatter.java,
+ * java/util/prefs/AbstractPreferences.java,
+ * java/util/regex/PatternSyntaxException.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/text/AttributedString.java,
+ * java/text/ChoiceFormat.java,
+ * java/text/CollationElementIterator.java,
+ * java/text/Collator.java,
+ * java/text/DecimalFormat.java,
+ * java/text/MessageFormat.java,
+ * java/text/RuleBasedCollator.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/security/CodeSource.java,
+ * java/security/MessageDigest.java,
+ * java/security/Permission.java,
+ * java/security/PermissionCollection.java,
+ * java/security/ProtectionDomain.java,
+ * java/security/cert/CertPath.java,
+ * java/security/cert/PKIXBuilderParameters.java,
+ * java/security/cert/PKIXCertPathBuilderResult.java,
+ * java/security/cert/X509CRLSelector.java,
+ * java/security/cert/X509CertSelector.java,
+ * org/ietf/jgss/Oid.java,
+ * org/omg/CORBA/portable/Delegate.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/beans/Statement.java,
+ * java/io/File.java,
+ * java/io/StreamTokenizer.java,
+ * java/lang/Throwable.java,
+ * java/math/BigDecimal.java,
+ * java/math/BigInteger.java,
+ * java/net/Inet4Address.java,
+ * java/net/Inet6Address.java,
+ * java/net/NetworkInterface.java,
+ * java/net/SocketPermission.java,
+ * java/net/URLDecoder.java,
+ * java/net/URLStreamHandler.java,
+ * java/nio/channels/FileLock.java,
+ * java/rmi/dgc/VMID.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/awt/Component.java,
+ * java/awt/Container.java,
+ * java/awt/JobAttributes.java,
+ * java/awt/event/ActionEvent.java,
+ * java/awt/event/ComponentEvent.java,
+ * java/awt/event/HierarchyEvent.java,
+ * java/awt/event/InputEvent.java,
+ * java/awt/event/InputMethodEvent.java,
+ * java/awt/event/KeyEvent.java,
+ * java/awt/event/MouseEvent.java,
+ * java/awt/event/WindowEvent.java,
+ * java/awt/font/TextLayout.java,
+ * java/awt/image/BandedSampleModel.java,
+ * java/awt/image/BufferedImage.java,
+ * java/awt/image/MultiPixelPackedSampleModel.java,
+ * java/awt/image/Raster.java,
+ * java/awt/image/SinglePixelPackedSampleModel.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35482
+ * java/lang/String.java:
+ (toLowerCase()): Fix calculation of number
+ of characters to copy.
+ (toLowerCaseTurkish()): Likewise.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/stream/XMLEventImpl.java,
+ * gnu/xml/stream/XMLParser.java,
+ * gnu/xml/validation/datatype/EntitiesType.java,
+ * gnu/xml/validation/datatype/NMTokensType.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/javax/swing/text/html/parser/htmlValidator.java,
+ * gnu/javax/swing/text/html/parser/models/list.java,
+ * gnu/javax/swing/text/html/parser/models/node.java,
+ * gnu/javax/swing/text/html/parser/support/Parser.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (substring(int)): Added.
+ * gnu/javax/naming/giop/CorbalocParser.java,
+ * gnu/javax/naming/giop/GiopNamingServiceFactory.java,
+ * gnu/javax/naming/giop/ListBindingsEnumeration.java,
+ * gnu/javax/naming/giop/ListEnumeration.java,
+ * gnu/javax/naming/ictxImpl/trans/GnuName.java,
+ * gnu/javax/net/ssl/PrivateCredentials.java,
+ * gnu/javax/net/ssl/Session.java,
+ * gnu/javax/net/ssl/provider/HelloRequest.java,
+ * gnu/javax/net/ssl/provider/Util.java,
+ * gnu/javax/print/ipp/attribute/RequestedAttributes.java,
+ * gnu/javax/rmi/CORBA/RmiUtilities.java,
+ * gnu/javax/security/auth/callback/AWTCallbackHandler.java,
+ * gnu/javax/security/auth/login/ConfigFileTokenizer.java,
+ * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/javax/crypto/assembly/TransformerException.java,
+ * gnu/javax/crypto/cipher/BaseCipher.java,
+ * gnu/javax/crypto/jce/sig/DHParameters.java,
+ * gnu/javax/crypto/key/KeyAgreementException.java,
+ * gnu/javax/crypto/mode/BaseMode.java,
+ * gnu/javax/crypto/pad/BasePad.java,
+ * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
+ * gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
+ * gnu/javax/crypto/sasl/plain/PasswordFile.java,
+ * gnu/javax/crypto/sasl/plain/PlainClient.java,
+ * gnu/javax/crypto/sasl/srp/PasswordFile.java,
+ * gnu/javax/crypto/sasl/srp/SRPClient.java,
+ * gnu/javax/crypto/sasl/srp/SRPServer.java,
+ * gnu/javax/crypto/sasl/srp/ServerStore.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/util/Base64.java,
+ * gnu/java/util/prefs/NodeWriter.java,
+ * gnu/java/util/regex/RE.java,
+ * gnu/java/util/regex/REException.java,
+ * gnu/java/util/regex/REMatch.java,
+ * gnu/java/util/regex/REMatchEnumeration.java,
+ * gnu/java/util/regex/REToken.java,
+ * gnu/java/util/regex/RETokenAny.java,
+ * gnu/java/util/regex/RETokenBackRef.java,
+ * gnu/java/util/regex/RETokenChar.java,
+ * gnu/java/util/regex/RETokenEnd.java,
+ * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+ * gnu/java/util/regex/RETokenEndSub.java,
+ * gnu/java/util/regex/RETokenIndependent.java,
+ * gnu/java/util/regex/RETokenLookAhead.java,
+ * gnu/java/util/regex/RETokenLookBehind.java,
+ * gnu/java/util/regex/RETokenNamedProperty.java,
+ * gnu/java/util/regex/RETokenOneOf.java,
+ * gnu/java/util/regex/RETokenPOSIX.java,
+ * gnu/java/util/regex/RETokenRange.java,
+ * gnu/java/util/regex/RETokenRepeated.java,
+ * gnu/java/util/regex/RETokenStart.java,
+ * gnu/java/util/regex/RETokenWordBoundary.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (CPStringBuilder(StringBuffer)): Added.
+ (CPStringBuulder(StringBuilder)): Likewise.
+ * gnu/java/text/AttributedFormatBuffer.java:
+ Swap use of StringBuffer for CPStringBuilder,
+ and make fields final.
+ * gnu/java/text/StringFormatBuffer.java:
+ Make fields final.
+ * java/text/SimpleDateFormat.java:
+ Add thread safety warning.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/security/OID.java,
+ * gnu/java/security/PolicyFile.java,
+ * gnu/java/security/der/BitString.java,
+ * gnu/java/security/der/DERReader.java,
+ * gnu/java/security/jce/sig/DSSParameters.java,
+ * gnu/java/security/provider/X509CertificateFactory.java,
+ * gnu/java/security/util/ByteArray.java,
+ * gnu/java/security/util/Util.java,
+ * gnu/java/security/x509/PolicyNodeImpl.java,
+ * gnu/java/security/x509/Util.java,
+ * gnu/java/security/x509/X500DistinguishedName.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/net/protocol/ftp/FTPConnection.java,
+ * gnu/java/net/protocol/jar/Handler.java,
+ * gnu/java/rmi/server/RMIClassLoaderImpl.java,
+ * gnu/java/rmi/server/RMIHashes.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/jdwp/util/Signature.java,
+ * gnu/java/awt/font/opentype/GlyphNamer.java,
+ * gnu/java/awt/font/opentype/truetype/Fixed.java,
+ * gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ * gnu/java/awt/peer/gtk/GtkClipboard.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/CORBA/BigDecimalHelper.java,
+ * gnu/CORBA/CDR/LittleEndianInputStream.java,
+ * gnu/CORBA/CDR/Vio.java,
+ * gnu/CORBA/CDR/gnuRuntime.java,
+ * gnu/CORBA/GIOP/MessageHeader.java,
+ * gnu/CORBA/GIOP/RequestHeader.java,
+ * gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
+ * gnu/CORBA/GIOP/v1_0/RequestHeader.java,
+ * gnu/CORBA/IOR.java,
+ * gnu/CORBA/NamingService/NameParser.java,
+ * gnu/CORBA/NamingService/NameTransformer.java,
+ * gnu/CORBA/Poa/gnuPOA.java,
+ * gnu/CORBA/Poa/gnuServantObject.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java,
+ * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java,
+ * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
+ * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
+ * examples/gnu/classpath/examples/html/Demo.java:
+ Swap use of StringBuffer for StringBuilder.
+
+2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/libxmlj/dom/GnomeAttr.java,
+ * gnu/xml/libxmlj/dom/GnomeCharacterData.java,
+ * gnu/xml/libxmlj/dom/GnomeDocument.java,
+ * gnu/xml/libxmlj/dom/GnomeDocumentType.java,
+ * gnu/xml/libxmlj/dom/GnomeElement.java,
+ * gnu/xml/libxmlj/dom/GnomeEntity.java,
+ * gnu/xml/libxmlj/dom/GnomeNode.java,
+ * gnu/xml/libxmlj/dom/GnomeNotation.java,
+ * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java,
+ * gnu/xml/libxmlj/dom/GnomeText.java,
+ * gnu/xml/libxmlj/dom/GnomeXPathResult.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/util/XMLWriter.java,
+ * gnu/xml/xpath/ArithmeticExpr.java,
+ * gnu/xml/xpath/ConcatFunction.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/FunctionCall.java,
+ * gnu/xml/xpath/NormalizeSpaceFunction.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/TranslateFunction.java,
+ * gnu/xml/xpath/VariableReference.java,
+ * gnu/xml/xpath/XPathTokenizer.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-26 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/util/ArrayList (raiseBoundsError): new method to raise bound
+ exceptions in uncommon case.
+ (checkBoundInclusive): use raiseBoundsError.
+ (checkBoundExclusive): likewise.
+ * java/util/ArrayList (raiseBoundsError): new method to raise bound
+ exceptions in uncommon case.
+ (checkBoundInclusive): use raiseBoundsError.
+ (checkBoundExclusive): likewise.
+
+2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Byte.java:
+ Use int instead of short as a loop counter
+ for efficiency.
+
+2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Byte.java:
+ (static): Use a short as the loop counter, not
+ a byte as this can't exceed MAX_VALUE.
+
+2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/nio/Buffer.java (cap): make field private and final.
+ (address): make field final.
+ (Buffer): add address argument to package protected constructor thereby
+ allowing it to be made final.
+ * java/nio/ByteBuffer.java (backing_buffer): make field final.
+ (array_offset): make field final.
+ (ByteBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/ByteBufferImpl.java (readOnly): make field final.
+ (ByteBufferImpl): modify call to super class constructor to pass
+ backing_buffer and array_offset.
+ * java/nio/CharBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (CharBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/CharBufferImpl.java (readOnly): make field final.
+ (CharBufferImpl): modify call to super class constructor to pass
+ backing_buffer and array_offset.
+ (CharBufferImpl(CharBufferImpl)): likewise.
+ * java/nio/CharSequenceBuffer.java (charSequence): make field final.
+ (CharSequenceBuffer): modify call to super class constructor, allowing
+ fields to be made final.
+ (duplicate): use capacity call rather than cap, to allow better
+ encapsulation.
+ * java/nio/CharViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (CharViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/DirectByteBufferImpl.java: modify calls to super class
+ constructors, allowing fields to be made final.
+ * java/nio/DoubleBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (DoubleBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/DoubleBufferImpl.java (readOnly): make field final.
+ (DoubleBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/DoubleViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (DoubleViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/FloatBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (FloatBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/FloatBufferImpl.java (readOnly): make field final.
+ (FloatBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/FloatViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (FloatViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/IntBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (IntBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/IntBufferImpl.java (readOnly): make field final.
+ (IntBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/IntViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (IntViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/LongBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (LongBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/LongBufferImpl.java (readOnly): make field final.
+ (LongBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/LongViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (LongViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/MappedByteBuffer.java (MappedByteBuffer): modify arguments
+ add call to constructor, allowing fields to be final.
+ * java/nio/MappedByteBufferImpl.java (readOnly): make field final.
+ (MappedByteBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/ShortBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (ShortBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/ShortBufferImpl.java (readOnly): make field final.
+ (ShortBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/ShortViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (ShortViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+
+2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/lang/Byte.java (static): initialize byteCache.
+ (valueOf(String,int)): use valueOf(byte) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(byte)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (decode): use valueOf(byte) rather than new.
+ * java/lang/Character.java (static): initialize charCache.
+ (valueOf): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ * java/lang/Double.java (ZERO): new private field.
+ (ONE): likewise.
+ (valueOf(double)): don't create new doubles for the case of 0 and 1.
+ (valueOf(String)): use valueOf(double) rather than new.
+ (equals): use raw bits for comparison to avoid division.
+ * java/lang/Float.java (ZERO): new private field.
+ (ONE): likewise.
+ (valueOf(float)): don't create new floats for the case of 0 and 1.
+ (valueOf(String)): use valueOf(float) rather than new.
+ (equals): use raw bits for comparison to avoid division.
+ * java/lang/Integer.java (static): initialize intCache.
+ (stringSize): new private method to estimate size of string for an int.
+ (toString): reuse digits for single character strings, for multiple
+ character strings estimate their length using string size method.
+ (valueOf(String,int)): use valueOf(int) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(int)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (getInteger): use valueOf(int) rather than new.
+ (decode): use valueOf(int) rather than new.
+ (signum): use shift and subtract to compute value.
+ (toUnsignedString): calculate string size rather than using 32 chars.
+ * java/lang/Long.java (longCache): new private field.
+ (stringSize): new private method to estimate size of string for a long.
+ (toString): reuse digits for single character strings, for multiple
+ character strings estimate their length using string size method.
+ (valueOf(String,int)): use valueOf(long) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(long)): use cache of values.
+ (decode): use valueOf(long) rather than new.
+ (getLong): likewise.
+ (signum): use shift and subtract to compute value.
+ (toUnsignedString): calculate string size rather than using 64 chars.
+ * java/lang/Short.java (static): initialize shortCache.
+ (valueOf(String,int)): use valueOf(short) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(short)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (decode): use valueOf(short) rather than new.
+
+2008-04-18 Mario Torre <neugens@aicas.com>
+
+ PR classpath/35974
+ * java/util/logging/Logger.java: fix a deadlock and reformat code.
+ Now all the methods of the class get a lock on a static lock, this
+ avoids a lock when getLogger and log are used concurrently.
+
+2008-04-18 Tom Tromey <tromey@redhat.com>
+
+ * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
+ found.
+
+2008-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/gen-classlist.sh.in: Avoid grepping each omission, by
+ building an awk script with a hash for literal files, and
+ awk regular expressions for the rest.
+ * configure.ac: Call AC_PROG_AWK.
+
+2008-04-16 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/orbd/Main.java: Bump copyright year.
+ * tools/resource/gnu/classpath/tools/common/Messages.properties
+ (ClasspathToolParser.VersionFormat): Bump copyright year.
+
+2008-04-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
+ * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar)
+ (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv)
+ (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies
+ for these scripts, to trick automake into hiding the respective
+ rules for the programs below the CREATE_WRAPPERS conditional.
+
+2008-04-09 Mario Torre <neugens@aicas.com>
+
+ * java/io/File.java (canWrite): use canWriteDirectory(String).
+ * vm/reference/java/io/VMFile.java (canWriteDirectory): new native method.
+ * native/jni/java-io/java_io_VMFile.c: correct indentation, sync function
+ names with header file definition.
+ (Java_java_io_VMFile_canRead): use cpio_checkAccess to get access
+ permission. Removed unused variable.
+ (Java_java_io_VMFile_canWrite): likewise.
+ (Java_java_io_VMFile_canWriteDirectory): new function.
+
+
+2008-03-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/events/events.wml:
+ Correct layout and fix GSoC link.
+
+2008-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/external.wml:
+ Corrected Jalopy tag name.
+ * doc/www.gnu.org/home.wml:
+ Update link to tasks.
+ * doc/www.gnu.org/announce/20080222.wml:
+ Correct IcedTea and builder links.
+ * doc/www.gnu.org/downloads/downloads.wml:
+ Add 0.97 and 0.97.1.
+ * doc/www.gnu.org/events/events.wml:
+ Fix links and add FOSDEMs/GSoC.
+
+2008-03-27 Mario Torre <neugens@aicas.com>
+
+ * gnu/xml/stream/SAXParser.java (getProperty): throw
+ SAXNotRecognizedException instead of SAXNotSupportedException
+ after fall through all known properties.
+ * javax/xml/namespace/QName.java (valueOf): throw
+ IllegalArgumentException if string is null.
+ * java/util/concurrent/CopyOnWriteArrayList.java (lastIndexOf):
+ fixed indentation.
+ (indexOf): likewise.
+
+2008-03-26 Mario Torre <neugens@aicas.com>
+
+ * java/util/concurrent/CopyOnWriteArrayList.java (SubList.set):
+ (SubList.clear): new method.
+ (SubList.checkMod): fix indentation.
+ (SubList.checkBoundsInclusive): likewise.
+ (SubList.checkBoundsExclusive): likewise.
+ (SubList): added synchronization. Now throw
+ IndexOutOfBoundsException instead of IllegalArgumentException
+ when index are out of range.
+ (SubList.size): added synchronization.
+ (SubList.get): likewise.
+ (SubList.listIterator): fixed indentation.
+ (SubList.set): added synchronization. Update the state of the storage
+ after modification.
+ (SubList.add): likewise.
+ (SubList.remove): likewise.
+ (SubList.addAll): likewise.
+
+2008-03-26 Mario Torre <neugens@aicas.com>
+
+ * java/util/concurrent/CopyOnWriteArrayList.java (equals): removed
+ useless local variable.
+ (hashCode): new method.
+
+2008-03-25 Mario Torre <neugens@aicas.com>
+
+ * java/util/concurrent/CopyOnWriteArrayList.java (clone): clone method
+ in CopyOnWriteArrayList should just do a shallow copy. Fixed.
+ (equals): new method, override from base class.
+ (toString): likewise.
+
+2008-03-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/image/ColorModel.java:
+ (coerceDataWorker(WritableRaster,boolean)):
+ Make package-private, not protected.
+ * java/awt/image/ComponentColorModel.java:
+ Call coerceDataWorker directly.
+ * java/awt/image/DirectColorModel.java:
+ Likewise.
+ (coerceData(WritableRaster,boolean)): Made final.
+
+2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/22883
+ * doc/www.gnu.org/home.wml:
+ Fix a typo.
+ * doc/www.gnu.org/docs/docs.wml:
+ Fix links to point to current versions of
+ vmintegration and hacking, and add links to
+ tools.
+
+2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/22883
+ * doc/www.gnu.org/home.wml:
+ Update home page to reflect current state of
+ affairs.
+
+2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ (standardChars): Corrected.
+ (RFC822_TIMEZONE_FIELD): Added.
+ (formatWithAttribute(Date,FormatBuffer,FieldPosition)):
+ Support RFC822 timezone field ('Z').
+
+2008-03-20 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/getopt/Parser.java (options): Don't
+ initialize.
+ (add, addFinal): Don't update options.
+ (requireOptions): New method.
+ (printHelp): Synchronize. Call requireOptions.
+ (parse): Call requireOptions.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (indexOf(String,int)): Use regionMatches from String.
+ (lastIndexOf(String,int)): Likewise.
+ (regionMatches(int,String)): Removed broken code.
+ (substring(int,int)): Rearrange index computation so
+ it is only computed if valid.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/transform/AbstractNumberNode.java,
+ * gnu/xml/transform/ApplyTemplatesNode.java,
+ * gnu/xml/transform/AttributeNode.java,
+ * gnu/xml/transform/Bindings.java,
+ * gnu/xml/transform/CallTemplateNode.java,
+ * gnu/xml/transform/ChooseNode.java,
+ * gnu/xml/transform/CopyNode.java,
+ * gnu/xml/transform/CopyOfNode.java,
+ * gnu/xml/transform/ElementNode.java,
+ * gnu/xml/transform/ForEachNode.java,
+ * gnu/xml/transform/IfNode.java,
+ * gnu/xml/transform/MessageNode.java,
+ * gnu/xml/transform/ParameterNode.java,
+ * gnu/xml/transform/ProcessingInstructionNode.java,
+ * gnu/xml/transform/StreamSerializer.java,
+ * gnu/xml/transform/Template.java,
+ * gnu/xml/transform/TextNode.java,
+ * gnu/xml/transform/TransformerImpl.java,
+ * gnu/xml/transform/TransformerOutputProperties.java,
+ * gnu/xml/transform/ValueOfNode.java,
+ * gnu/xml/transform/WhenNode.java:
+ Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ Replace reflection code with calls to
+ VMCPStringBuilder.
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+ Default implementation of constructor call
+ using reflection.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/dom/DomAttr.java,
+ * gnu/xml/dom/DomEvent.java,
+ * gnu/xml/dom/DomNode.java,
+ * gnu/xml/dom/DomText.java,
+ * gnu/xml/dom/ls/DomLSInput.java,
+ * gnu/xml/util/DoParse.java,
+ * gnu/xml/util/XCat.java:
+ Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/security/AlgorithmParameterGenerator.java,
+ * java/security/AlgorithmParameters.java,
+ * java/security/KeyFactory.java,
+ * java/security/KeyPairGenerator.java,
+ * java/security/MessageDigest.java,
+ * java/security/SecureRandom.java,
+ * java/security/Signature.java,
+ * java/security/cert/CertPathBuilder.java,
+ * java/security/cert/CertPathValidator.java,
+ * java/security/cert/CertStore.java,
+ * java/text/SimpleDateFormat.java,
+ * java/util/AbstractMap.java,
+ * java/util/Arrays.java,
+ * java/util/Calendar.java,
+ * java/util/Date.java,
+ * java/util/Formatter.java,
+ * java/util/Hashtable.java,
+ * java/util/Properties.java,
+ * java/util/TreeMap.java,
+ * java/util/regex/Matcher.java:
+ Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/security/Engine.java,
+ * gnu/java/security/hash/Whirlpool.java,
+ * gnu/java/security/key/dss/DSSKey.java,
+ * gnu/java/security/key/dss/DSSPrivateKey.java,
+ * gnu/java/security/key/dss/DSSPublicKey.java,
+ * gnu/java/security/key/rsa/GnuRSAKey.java,
+ * gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
+ * gnu/java/security/key/rsa/GnuRSAPublicKey.java,
+ * java/awt/datatransfer/MimeType.java,
+ * java/io/BufferedReader.java,
+ * java/io/DataInputStream.java,
+ * java/lang/Double.java,
+ * java/lang/Float.java,
+ * java/lang/String.java,
+ * java/lang/reflect/Proxy.java,
+ * java/math/BigDecimal.java,
+ * java/net/URI.java,
+ * java/net/URLClassLoader.java,
+ * java/net/URLEncoder.java:
+ Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/java/lang/reflect/VMField.java:
+ Consistently use 'clazz' as the name of the variable
+ containing the declaring class.
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ Likewise.
+
+2008-03-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34840
+ * java/lang/AbstractStringBuffer.java:
+ (append(CharSequence,int,int)): Just set
+ sequence to "null" don't append it.
+
+2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/newsitems.txt:
+ Add new announcement.
+ * doc/www.gnu.org/announce/20080311.wml:
+ Added.
+ * doc/www.gnu.org/cp-tools/.cvsignore:
+ Ignore generated HTML files.
+
+2008-03-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/beans/beancontext/BeanContextServicesSupport.java:
+ (BCSSProxyServiceProvider(BeanContextServiceProvider)):
+ Add package-private constructor.
+ * java/lang/StringBuffer.java:
+ (ensureCapacity_unsynchronized(int)): Make package-private.
+ * java/rmi/activation/Activatable.java:
+ (export(ActivationID, Remote, int, RMIServerSocketFactory)):
+ Make private.
+ (makeId(ActivationID)): Likewise.
+ * java/security/MessageDigest.java:
+ (update(ByteBuffer)): Make final.
+ * java/security/cert/PolicyQualifierInfo.java:
+ (getPolicyQualifierId()): Likewise.
+ (getEncoded()): Likewise.
+ (getPolicyQualifier()): Likewise.
+ * java/text/DateFormat.java:
+ (ISO_YEAR_FIELD): Removed.
+ (LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+ (EXTENDED_YEAR_FIELD): Likewise.
+ (MODIFIED_JULIAN_DAY_FIELD): Likewise.
+ (MILLISECOND_IN_DAY_FIELD): Likewise.
+ (RFC822_TIMEZONE_FIELD): Likewise.
+ (Field.ISO_YEAR_FIELD): Likewise.
+ (Field.LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+ (Field.EXTENDED_YEAR_FIELD): Likewise.
+ (Field.MODIFIED_JULIAN_DAY_FIELD): Likewise.
+ (Field.MILLISECOND_IN_DAY_FIELD): Likewise.
+ (Field.RFC822_TIMEZONE_FIELD): Likewise.
+ * java/text/DecimalFormat.java:
+ (format(Object,StringBuffer,FieldPosition)): Make final.
+ * java/text/Format.java:
+ (Format()): Make protected.
+ * java/text/NumberFormat.java:
+ (NumberFormat()): Likewise.
+ * java/text/SimpleDateFormat.java:
+ Remove code using RFC822_TIMEZONE_FIELD.
+ * java/util/Stack.java:
+ Use array of Objects rather than instances of T.
+ * java/util/Vector.java:
+ Likewise.
+ * java/util/concurrent/CopyOnWriteArrayList.java:
+ Don't extend AbstractList.
+ (containsAll(Collection)): Implemented.
+ (listIterator()): Likewise.
+ (subList(int,int)): Likewise.
+ * java/util/zip/Deflater.java:
+ (getTotalIn()): Remove deprecation.
+ (getTotalOut()): Likewise.
+ * java/util/zip/Inflater.java,
+ (getTotalIn()): Likewise.
+ (getTotalOut()): Likewise.
+
+2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/MouseInfo.java:
+ (MouseInfo()): Private constructor to prevent
+ instance creation.
+ * java/lang/AbstractStringBuilder.java:
+ (ensureCapacity_unsynchronized(int)): Make
+ package-private, not protected.
+
+2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664
+ * native/jni/java-math/Makefile.am: Add
+ AM_LDFLAGS to the local LDFLAGS definition
+ so gmp is linked.
+
+2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35422
+ * doc/api/Makefile.am: Include external/jsr166.
+
+2008-03-10 Jim Meyering <meyering@redhat.com>
+
+ Don't leak upon failed realloc.
+ * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
+ free the original buffer before throwing the exception.
+
+2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/cp-hacking.texinfo: Fix some typos.
+ * doc/cp-tools.texinfo: Likewise.
+ * doc/cp-vmintegration.texinfo: Likewise.
+
+2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/cp-hacking.texinfo: Fix spacing after periods.
+ * doc/cp-tools.texinfo: Likewise.
+ * doc/cp-vmintegration.texinfo: Likewise.
+
+2008-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/reflect/Constructor.java:
+ (cons): Make package-private.
+ (Constructor(VMConstructor)): Set cons in
+ VM interface.
+ * java/lang/reflect/Field.java:
+ (f): Make package-private.
+ (Field(VMField)): Set f in VM interface.
+ * java/lang/reflect/Method.java:
+ (m): Make package-private.
+ (Method(VMMethod)): Set m in VM interface.
+ * vm/reference/java/lang/reflect/VMConstructor.java:
+ (cons): Added reference to Constructor instance.
+ * vm/reference/java/lang/reflect/VMField.java:
+ (f): Added reference to Field instance.
+ * vm/reference/java/lang/reflect/VMMethod.java,
+ (m): Added reference to Method instance.
+
+2008-03-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/reflect/AccessibleObject.java:
+ (getAnnotation(Class)): Documented.
+ (getAnnotations()): Likewise.
+ (getDeclaredAnnotations()): Likewise.
+ (isAnnotationPresent(Class)): Likewise.
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java,
+ * vm/reference/java/lang/reflect/VMConstructor.java,
+ * vm/reference/java/lang/reflect/VMField.java,
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ (getAnnotation(Class)): Added.
+ (getDeclaredAnnotations()): Likewise.
+
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/Makefile.am:
+ Distribute property files.
+
+2008-03-04 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
+ (getDTDType): Changed return type to String.
+ * gnu/xml/stream/XMLEventAllocatorImpl.java:
+ (allocate): Removed wrapping of string in QName object.
+ * gnu/xml/stream/XMLEventFactoryImpl.java:
+ (createAttribute(String, String)): Removed wrapping of string in
+ QName object.
+ (createAttribute(QName, String)): Ditto.
+ (createAttribute(String, String, String, String)): Ditto.
+ * javax/xml/stream/events/Attribute.java:
+ (getDTDType): Changed return type to String.
+
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java,
+ * vm/reference/java/lang/reflect/VMConstructor.java:
+ (equals(Object)): Added.
+ * vm/reference/java/lang/reflect/VMField.java:
+ (equals(Object)): Added.
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ (equals(Object)): Added.
+ Move variables from Classpath classes to VM classes
+ and make class methods into instance methods.
+
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java:
+ New classes within GNU Classpath that provide
+ common reflection functionality.
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Removed.
+ * vm/reference/java/lang/reflect/VMConstructor.java,
+ * vm/reference/java/lang/reflect/VMField.java,
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ New VM interface for reflection.
+
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664
+ * native/jni/Makefile.am: Check CREATE_GMPBI_LIBRARY
+ and only compile GMP libraries if set.
+
+2008-03-02 Mark Wielaard <mark@klomp.org>
+
+ * native/jni/Makefile.am (DIST_SUBDIRS): Add java-math.
+
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/CPStringBuilder.java:
+ Make the constructor accessible.
+
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/CPStringBuilder.java:
+ Removed.
+ * gnu/java/awt/font/OpenTypeFontPeer.java,
+ * gnu/java/awt/font/autofit/Edge.java,
+ * gnu/java/awt/font/autofit/LatinBlue.java,
+ * gnu/java/awt/font/autofit/Segment.java,
+ * gnu/java/awt/font/autofit/Width.java,
+ * gnu/java/awt/font/opentype/truetype/Point.java,
+ * gnu/java/awt/java2d/ActiveEdges.java,
+ * gnu/java/awt/peer/GnomeDesktopPeer.java,
+ * gnu/java/awt/peer/KDEDesktopPeer.java,
+ * gnu/java/awt/peer/x/XFontPeer.java:
+ Use CPStringBuilder.
+ * gnu/java/lang/CPStringBuilder.java:
+ Moved from gnu.classpath.
+ * gnu/java/lang/ClassHelper.java,
+ * gnu/java/lang/reflect/GenericSignatureParser.java,
+ * gnu/java/lang/reflect/TypeSignature.java,
+ * gnu/java/net/protocol/http/ChunkedInputStream.java,
+ * gnu/java/net/protocol/http/Cookie.java,
+ * gnu/java/net/protocol/http/HTTPConnection.java,
+ * gnu/java/net/protocol/http/Headers.java,
+ * gnu/java/net/protocol/http/Request.java:
+ Use CPStringBuilder.
+ * java/lang/reflect/Modifier.java:
+ Corrected import to point to correct package.
+ * java/util/Formatter.java:
+ Use CPStringBuilder.
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Corrected import to point to correct package.
+
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/CPStringBuffer.java,
+ * gnu/classpath/CPStringBuilder.java:
+ Rename class to CPStringBuilder.
+ * java/lang/reflect/Modifier.java,
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Use CPStringBuilder.
+
+2008-02-29 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/classpath/CPStringBuffer.java:
+ New non-copying string buffer.
+ * java/lang/AbstractStringBuffer.java:
+ Add note about CPStringBuffer.
+
+2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/EmptyEnumeration.java:
+ Add generic type parameter.
+ * java/lang/ClassLoader.java:
+ Use EmptyEnumeration with type parameter.
+ * java/util/zip/ZipFile.java:
+ Likewise.
+ * javax/swing/text/html/StyleSheet.java,
+ * javax/swing/text/html/ViewAttributeSet.java:
+ Add generics.
+ * javax/swing/tree/DefaultMutableTreeNode.java:
+ Use EmptyEnumeration with type parameter.
+
+2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664
+ * include/Makefile.am:
+ Add generation of header file java_math_VMBigInteger.h
+ * java/math/BigInteger.java: Separate NativeMPI into
+ VMBigInteger.
+ * native/jni/Makefile.am: Add java-math.
+ * native/jni/java-math/java_math_VMBigInteger.c:
+ Renamed from java_math_BigInteger.c.
+ * vm/reference/java/math/VMBigInteger.java:
+ Former NativeMPI class from java.math.BigInteger.
+
+2006-11-28 Raif S. Naffah <classpath@naffah-raif.name>
+ Jeroen Frijters <jeroen@sumatra.nl>
+
+ PR classpath/28664
+ * configure.ac: Add support for configuring GNU MP.
+ * native/jni/Makefile.am: Include java-math directory if required.
+ * native/jni/java-math/.cvsignore: New file.
+ * native/jni/java-math/Makefile.am: Likewise.
+ * native/jni/java-math/java_math_BigInteger.c: Likewise.
+ * java/math/BigInteger.java: Added support for native methods.
+ * gnu/classpath/Configuration.java.in (WANT_NATIVE_BIG_INTEGER): New field.
+
+2008-02-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Check for sys/loadavg.h.
+ * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
+ Include sys/loadavg.h if found.
+
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869:
+ * java/lang/AbstractStringBuffer.java: New class.
+ * java/lang/StringBuffer.java,
+ * java/lang/StringBuilder.java:
+ Changed to use AbstractStringBuffer.
+
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/prefs/EventDispatcher.java:
+ Removed again.
+ * gnu/java/util/prefs/GConfBasedPreferences.java,
+ * gnu/java/util/prefs/gconf/GConfNativePeer.java,
+ * java/util/prefs/AbstractPreferences.java,
+ * native/jni/gconf-peer/GConfNativePeer.c:
+ Revert to pre-release versions.
+
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/newsitems.txt:
+ Add 20080222 announcement.
+ * doc/www.gnu.org/announce/20080222.wml:
+ Add announcement of 0.97.
+
+2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * NEWS: Add 0.98.
+ * configure.ac: Set version to 0.98-pre.
+
+2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * NEWS: Set date for 0.97.
+ * configure.ac: Set version to 0.97
+
+2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/33751:
+ * configure.ac:
+ Don't check for readdir_r.
+ * native/jni/native-lib/cpio.c:
+ (cpio_readDir): Remove use of readdir_r, zero errno
+ before starting and always leave a \0 at the end after
+ strncpy.
+ * vm/reference/java/io/VMFile.java:
+ (list(String)): Make synchronized.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/prefs/EventDispatcher.java:
+ Re-added.
+ * gnu/java/util/prefs/GConfBasedPreferences.java,
+ * gnu/java/util/prefs/gconf/GConfNativePeer.java,
+ * java/util/prefs/AbstractPreferences.java,
+ * native/jni/gconf-peer/GConfNativePeer.c:
+ Regress to 0.96 versions.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/net/URI.java:
+ (compareTo(URI)): Change comparison sign so it
+ operates in the correct direction.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/acinclude.m4:
+ Remove check for gcjh.
+ * m4/ac_prog_javac.m4:
+ Check for ecj-3.2 and ecj-3.3, and add
+ -Xlint:unchecked for javac.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/management/Translator.java:
+ (fromJava(Object[],Method)): Don't cast to Class<?>.
+ (fromJava(Object,Type)): Use ParameterizedType
+ and don't assume that List will work for Sets.
+
+2008-02-21 David Walluck <david@jpackage.org>
+
+ PR classpath/27204:
+ * m4/acinclude.m4:
+ (REGEN_WITH_JAY): Handle 'yes' as a default,
+ not a directory and give more user-friendly output.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/REException.java:
+ (REException(String,Throwable,int,int)): Added
+ constructor which also includes the cause.
+ * gnu/java/util/regex/RETokenNamedProperty.java:
+ (getHandler(String)): Add support for \p{javaX}.
+ (JavaCategoryHandler): New class.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35274:
+ * m4/acinclude.m4:
+ Increase maximum heap size to 768mb.
+
+2008-02-21 Roman Kennke <kennke@aicas.com>
+
+ * java/awt/image/PixelInterleavedSampleModel.java
+ (createCompatibleSampleModel): Adjust scanline stride for new
+ width and optimize band offsets.
+
+2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35111:
+ * resource/com/sun/tools/javac/messages.properties,
+ * resource/gnu/classpath/tools/appletviewer/messages.properties,
+ * resource/gnu/classpath/tools/common/Messages.properties,
+ * resource/gnu/classpath/tools/getopt/Messages.properties,
+ * resource/gnu/classpath/tools/jar/messages.properties,
+ * resource/gnu/classpath/tools/jarsigner/messages.properties,
+ * resource/gnu/classpath/tools/keytool/messages.properties,
+ * resource/gnu/classpath/tools/native2ascii/messages.properties,
+ * resource/gnu/classpath/tools/orbd/messages.properties,
+ * resource/gnu/classpath/tools/rmic/messages.properties,
+ * resource/gnu/classpath/tools/rmid/messages.properties,
+ * resource/gnu/classpath/tools/rmiregistry/messages.properties,
+ * resource/gnu/classpath/tools/serialver/messages.properties,
+ * resource/gnu/classpath/tools/tnameserv/messages.properties,
+ * resource/sun/rmi/rmic/messages.properties:
+ Removed.
+ * tools/Makefile.am:
+ Copy .jav template files and use resource subdirectory
+ of tools.
+ * tools/gnu/classpath/tools/rmic/templates/ImplTie.jav,
+ * tools/gnu/classpath/tools/rmic/templates/Stub.jav,
+ * tools/gnu/classpath/tools/rmic/templates/StubMethod.jav,
+ * tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
+ * tools/gnu/classpath/tools/rmic/templates/Stub_12.jav,
+ * tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
+ * tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
+ * tools/gnu/classpath/tools/rmic/templates/Tie.jav,
+ * tools/gnu/classpath/tools/rmic/templates/TieMethod.jav,
+ * tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav:
+ Removed.
+ * tools/resource/com/sun/tools/javac/messages.properties,
+ * tools/resource/gnu/classpath/tools/appletviewer/messages.properties,
+ * tools/resource/gnu/classpath/tools/common/Messages.properties,
+ * tools/resource/gnu/classpath/tools/getopt/Messages.properties,
+ * tools/resource/gnu/classpath/tools/jar/messages.properties,
+ * tools/resource/gnu/classpath/tools/jarsigner/messages.properties,
+ * tools/resource/gnu/classpath/tools/keytool/messages.properties,
+ * tools/resource/gnu/classpath/tools/native2ascii/messages.properties,
+ * tools/resource/gnu/classpath/tools/orbd/messages.properties,
+ * tools/resource/gnu/classpath/tools/rmic/messages.properties,
+ * tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav,
+ * tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav,
+ * tools/resource/gnu/classpath/tools/rmid/messages.properties,
+ * tools/resource/gnu/classpath/tools/rmiregistry/messages.properties,
+ * tools/resource/gnu/classpath/tools/serialver/messages.properties,
+ * tools/resource/gnu/classpath/tools/tnameserv/messages.properties,
+ * tools/resource/sun/rmi/rmic/messages.properties:
+ Added.
+
+2008-02-18 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (RENDER_OPAQUE): New constant with system property to
+ turn on opaque image rendering.
+ (rawDrawImage): Render images opaque when system property
+ is set. This is for demonstration and debugging purposes only.
+
+2008-02-18 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/image/AsyncImage.java: New file. Implements
+ asynchronous image loading.
+ * gnu/java/awt/image/ImageConverter.java: New file.
+ An image consumer that creates a concrete image with
+ asynchronous behaviour.
+ * gnu/java/awt/peer/x/ImageConverter.java: Removed.
+ * gnu/java/awt/peer/x/XToolkit.java:
+ (createImage(ImageProducer)): Use new ImageConverter.
+ * gnu/java/awt/peer/x/XGraphics2D.java:
+ (rawDrawImage): Unwrap AsyncImages before painting.
+ (unwrap): New helper method.
+
+2008-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ * doc/cp-tools.texinfo (@direntry): Prefix info name with cp-.
+ * doc/cp-hacking.texinfo (@direntry): Likewise.
+ * doc/cp-vmintegration.texinfo (@direntry): Likewise.
+
+2008-02-18 Roman Kennke <kennke@aicas.com>
+
+ * java/awt/image/RGBImageFilter.java
+ (setPixels): Don't mask the source pixel.
+
+2008-02-18 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (rawDrawImage): Update the rgb variable correctly. Don't
+ cache translucent images.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Add missing java.lang.annotation.Annotation import.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ (getParameterAnnotations()): Added.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/swing/tree/DefaultMutableTreeNode.java:
+ Add generics.
+ * javax/swing/tree/DefaultTreeCellEditor.java:
+ (tPath): Removed.
+ (configureEditingComponent(JTree,
+ DefaultTreeCellRenderer,TreeCellEditor)): Removed.
+ * javax/swing/tree/DefaultTreeCellRenderer.java:
+ Removed unused call to getIcon().
+ * javax/swing/tree/DefaultTreeSelectionModel.java:
+ Add generics.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/swing/tree/FixedHeightLayoutCache.java,
+ * javax/swing/tree/VariableHeightLayoutCache.java,
+ * javax/swing/undo/StateEdit.java:
+ Use type parameters with collections classes.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_javac.m4:
+ Turn off ecj warnings for deprecation,
+ serialization and unused imports
+ (both cases).
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_javac.m4:
+ Turn off ecj warnings for deprecation,
+ serialization and unused imports.
+
+2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * org/omg/CORBA/PolicyErrorHelper.java,
+ * org/omg/CORBA/UnknownUserExceptionHelper.java,
+ * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
+ * org/omg/PortableServer/ForwardRequestHelper.java,
+ * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java:
+ Remove unused variable.
+
+2008-02-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/classpath/ServiceFactory.java:
+ Use generics.
+ * gnu/classpath/ServiceProviderLoadingAction.java:
+ Likewise.
+
+2008-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34579:
+ * m4/ac_prog_javac_works.m4: Change test
+ to one that doesn't rely on the compiler's
+ class library.
+
+2008-02-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34578:
+ * NEWS: Mention javah and javac build changes.
+ * configure.ac: Call AC_PROG_JAVAC and
+ CLASSPATH_JAVAC_MEM_CHECK instead of CLASSPATH_FIND_JAVAC.
+ * examples/Makefile.am: Simplify compiler choice
+ to just use JAVAC.
+ * lib/Makefile.am: Likewise, but with JAVAC_MEM_OPT too.
+ * m4/ac_prog_javac.m4: New file.
+ * m4/ac_prog_javac_works.m4: Likewise.
+ * m4/acinclude.m4:
+ (CLASSPATH_FIND_JAVAC): Removed.
+ (CLASSPATH_WITH_GCJ): Removed.
+ (CLASSPATH_CHECK_GCJ): Removed.
+ (CLASSPATH_WITH_JIKES): Removed.
+ (CLASSPATH_CHECK_JIKES): Removed.
+ (CLASSPATH_WITH_KJC): Removed.
+ (CLASSPATH_CHECK_KJC): Removed.
+ (CLASSPATH_WITH_ECJ): Removed.
+ (CLASSPATH_CHECK_ECJ): Removed.
+ (CLASSPATH_WITH_JAVAC): Removed.
+ (CLASSPATH_CHECK_JAVAC): Removed.
+ (CLASSPATH_JAVAC_MEM_CHECK): Added.
+ * tools/Makefile.am: Simplify compiler choice
+ to just javac.
+
+2008-02-12 Roman Kennke <kennke@aicas.com>
+
+ * java/awt/color/ICC_Profile.java
+ (getInstance()): Wrap call to InputStream.read(byte[],int,int) in
+ a loop, in order to read the whole thing.
+
+2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/remote/NotificationResult.java:
+ New file.
+ * javax/management/remote/TargetedNotification.java:
+ Likewise.
+ * javax/management/remote/rmi/RMIConnection.java:
+ (fetchNotifications(long,int,long)): Added.
+
+2008-02-10 Dalibor Topic <robilad@kaffe.org>
+
+ * lib/Makefile.am (compile_classpath), include/Makefile.am (JAVAH):
+ Replaced USER_CLASSLIB with PATH_TO_GLIBJ_ZIP.
+
+ * m4/acinclude.m4 (CLASSPATH_WITH_CLASSLIB)[--with-classpath]:
+ Removed unused option. It's superceded by --with-glibj-zip.
+
+2008-02-10 Dalibor Topic <robilad@kaffe.org>
+
+ * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH)[USER_JAVAH]:
+ Check for gjavah-4.3.
+
+2008-02-10 Mark Wielaard <mark@klomp.org>
+
+ * scripts/check_jni_methods.sh.in:
+ Use abs_src_builddir so that the absolute path
+ to the source directory is used by the script.
+
+2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * scripts/check_jni_methods.sh.in:
+ Use abs_top_builddir so that the absolute path
+ to the build directory is used by the script.
+
+2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/remote/rmi/RMIConnection.java:
+ (addNotificationListeners(ObjectName[],
+ MarshalledObject[], Subject[])): Fixed return type.
+ (close()): Added.
+ (createMBean(String,ObjectName,MarshalledObject,
+ String[], Subject)): Likewise.
+ (createMBean(String,ObjectName,ObjectName,
+ MarshalledObject, String[], Subject)): Likewise.
+ (createMBean(String,ObjectName,ObjectName,
+ Subject)): Likewise.
+ (createMBean(String,ObjectName,Subject)): Likewise.
+ (getAttribute(ObjectName,String,Subject)): Likewise.
+ (getAttributes(ObjectName,String[],Subject)): Likewise.
+ (getConnectionId()): Likewise.
+ (getDefaultDomain(Subject)): Likewise.
+ (getDomains(Subject)): Likewise.
+ (getMBeanCount(Subject)): Likewise.
+ (getMBeanInfo(ObjectName,Subject)): Likewise.
+ (getObjectInstance(ObjectName,Subject)): Likewise.
+ (invoke(ObjectName,String,MarshalledObject,String[],
+ Subject)): Likewise.
+ (isInstanceOf(ObjectName,String,Subject)): Likewise.
+ (isRegistered(ObjectName,Subject)): Likewise.
+ (queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise.
+ (queryNames(ObjectName,MarshalledObject,Subject)): Likewise.
+ (removeNotificationListener(ObjectName,ObjectName,MarshalledObject,
+ MarshalledObject,Subject)): Likewise.
+ (removeNotificationListener(ObjectName,ObjectName,Subject)):
+ Likewise.
+ (removeNotificationListeners(ObjectName,Integer[],Subject)):
+ Likewise.
+ (setAttribute(ObjectName,MarshalledObject,Subject)): Likewise.
+ (setAttributes(ObjectName,MarshalledObject,Subject)): Likewise.
+ (unregisterMBean(ObjectName,Subject)): Likewise.
+
+2008-02-09 Dalibor Topic <robilad@kaffe.org>
+
+ * native/jni/Makefile.am (all-local): Call check_jni_methods.sh
+ directly.
+
+ * scripts/Makefile.am (EXTRA_DIST): Removed check_jni_methods.sh.
+
+ * include/Makefile.am (SOUND_H_FILES, GST_PEER_H_FILES)
+ (XMLJ_H_FILES, GTKPEER_H_FILES, QTPEER_H_FILES)
+ (GCONF_PREFS_FILES, H_FILES): Don't generate header files
+ in the source directory, as it may not be writeable.
+ (DISTCLEANFILES) Added H_FILES.
+
+ * configure.ac (AC_CONFIG_FILES): Added
+ scripts/check_jni_methods.sh.
+
+ * scripts/check_jni_methods.sh: Removed. Moved over to ..
+ * scripts/check_jni_methods.sh.in: New file. Added
+ top_srcdir and top_builddir where necessary.
+
+2008-02-09 Mario Torre <neugens@limasoftware.net>
+
+ * include/java_util_VMTimeZone.h: Removed.
+ * native/jni/gconf-peer/GConfNativePeer.c: all native methods, replaced
+ GConfEngine with GConfClient and use GConfClient API instead.
+
+2008-02-08 Mark Wielaard <mark@klomp.org>
+
+ * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): Delete
+ Colour.class.
+
+ * include/.cvsignore: Add java_* and gnu_*.h.
+
+2008-02-08 Mario Torre <neugens@limasoftware.net>
+
+ * configure.ac: --enable-regen-header option now enabled by default.
+ * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Removed.
+ * include/gnu_java_awt_peer_gtk_CairoSurface.h: Removed.
+ * include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Removed.
+ * include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: Removed.
+ * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkImage.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkListPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkSelection.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Removed.
+ * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_MainQtThread.h: Removed.
+ * include/gnu_java_awt_peer_qt_QMatrix.h: Removed.
+ * include/gnu_java_awt_peer_qt_QPainterPath.h: Removed.
+ * include/gnu_java_awt_peer_qt_QPen.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtAudioClip.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtButtonPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtCanvasPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtChoicePeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtComponentPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtDialogPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtFontMetrics.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtFontPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtFramePeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtGraphics.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtImage.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtLabelPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtListPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtMenuPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtPanelPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtScreenDevice.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtToolkit.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtVolatileImage.h: Removed.
+ * include/gnu_java_awt_peer_qt_QtWindowPeer.h: Removed.
+ * include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: Removed.
+ * include/gnu_java_net_local_LocalSocketImpl.h: Removed.
+ * include/gnu_java_net_VMPlainSocketImpl.h: Removed.
+ * include/gnu_java_nio_charset_iconv_IconvDecoder.h: Removed.
+ * include/gnu_java_nio_charset_iconv_IconvEncoder.h: Removed.
+ * include/gnu_java_nio_EpollSelectorImpl.h: Removed.
+ * include/gnu_java_nio_FileChannelImpl.h: Removed.
+ * include/gnu_java_nio_KqueueSelectorImpl.h: Removed.
+ * include/gnu_java_nio_VMChannel.h: Removed.
+ * include/gnu_java_nio_VMPipe.h: Removed.
+ * include/gnu_java_nio_VMSelector.h: Removed.
+ * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: Removed.
+ * include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: Removed.
+ * include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: Removed.
+ * include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: Removed.
+ * include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: Removed.
+ * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Removed.
+ * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: Removed.
+ * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: Removed.
+ * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: Removed.
+ * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeAttr.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeDocument.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeElement.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeEntity.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeNode.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeNodeList.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeNotation.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: Removed.
+ * include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: Removed.
+ * include/gnu_xml_libxmlj_sax_GnomeLocator.h: Removed.
+ * include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: Removed.
+ * include/gnu_xml_libxmlj_transform_GnomeTransformer.h: Removed.
+ * include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: Removed.
+ * include/java_io_VMFile.h: Removed.
+ * include/java_io_VMObjectInputStream.h: Removed.
+ * include/java_io_VMObjectStreamClass.h: Removed.
+ * include/java_lang_reflect_VMArray.h: Removed.
+ * include/java_lang_VMDouble.h: Removed.
+ * include/java_lang_VMFloat.h: Removed.
+ * include/java_lang_VMMath.h: Removed.
+ * include/java_lang_VMProcess.h: Removed.
+ * include/java_lang_VMSystem.h: Removed.
+ * include/java_net_VMInetAddress.h: Removed.
+ * include/java_net_VMNetworkInterface.h: Removed.
+ * include/java_net_VMURLConnection.h: Removed.
+ * include/java_nio_MappedByteBufferImpl.h: Removed.
+ * include/java_nio_VMDirectByteBuffer.h: Removed.
+
+2008-02-08 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+ * gnu/java/awt/peer/gtk/GtkToolkit.java: Removed mistakenly
+ committed code.
+
+2008-02-08 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+ * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+ * gnu/java/awt/peer/gtk/GtkToolkit.java: Only call
+ System.loadLibrary() when configured so.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * NEWS: Documented removal of floatToIntBits and doubleToLongBits from
+ VM interface.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * vm/reference/java/lang/VMFloat.java (floatToIntBits): Removed unused
+ method.
+
+ * native/jni/java-lang/java_lang_VMFloat.c (Java_java_lang_VMFloat_floatToIntBits): Removed unused function.
+
+ * include/java_lang_VMDouble.h: Regenerated.
+
+ * doc/cp-vmintegration.texinfo (java.lang.VMFloat): Removed
+ unused method floatToIntBits. (java.lang.VMDouble): Use similar
+ text to text used for floatToRawIntBits for doubleToLongBits.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * java/lang/Float.java (floatToIntBits): Simplified.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH) [USER_JAVAH]: Check for gjavah-4.2
+ and gjavah-4.1.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * vm/reference/java/lang/VMDouble.java (doubleToLongBits): Removed unused method.
+
+ * native/jni/java-lang/java_lang_VMDouble.c (Java_java_lang_VMDouble_doubleToLongBits):
+ Removed unused function.
+
+ * include/java_lang_VMDouble.h: Regenerated.
+
+ * doc/cp-vmintegration.texinfo (java.lang.VMDouble): Removed
+ unused method doubleToLongBits.
+
+2008-02-08 Dalibor Topic <robilad@kaffe.org>
+
+ * java/lang/Double.java (doubleToLongBits): Simplified.
+
+2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/lang/String.java
+ (replace): Only copy "live" portion of String. Use array copies in preference
+ to clone.
+ (toLowerCaseTurkish): likewise
+ (toLowerCase): likewise
+ (toUpperCaseTurkish): likewise
+ (toUpperCase): likewise
+ (toCharArray): Use array copies in preference to clone.
+
+2008-02-05 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * gnu/java/lang/reflect/TypeSignature.java
+ * java/io/BufferedReader.java
+ * java/io/DataInputStream.java
+ * java/lang/StackTraceElement.java
+ * java/lang/Throwable.java
+ * java/lang/reflect/Proxy.java
+ * java/net/URI.java
+ * java/net/URLClassLoader.java
+ * java/net/URLEncoder.java
+ * java/text/SimpleDateFormat.java
+ * java/util/AbstractMap.java
+ * java/util/Calendar.java
+ * java/util/Date.java
+ * java/util/Hashtable.java
+ Use StringBuilder in preference to StringBuffer
+ * java/util/Calendar.java
+ * java/util/Hashtable.java
+ Make private fields that can be final, final
+ * java/net/URI.java
+ Avoid creating Integer objects for the sake of comparison
+ * java/lang/reflect/Proxy.java
+ * java/text/SimpleDateFormat.java
+ Swap use of "new Character/Integer" to use of valueOf methods
+
+2008-01-29 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ Fixes bug #22941
+ * java/io/DataInputStream.java(readUTFLong): New method.
+ (readUTF): New private method.
+ * java/io/DataOutputStream.java(getUTFlength): Made package-private,
+ Return type changed to long.
+ (writeUTF): Use the new method writeUTFShort.
+ (writeUTFShort): New package-private method.
+ (writeUTFLong): New package-private method.
+ (writeUTFBytes): New private method.
+ * java/io/ObjectInputStream.java(parseContent): Separate the
+ handling of TC_LONGSTRING from TC_STRING.
+ * java/io/ObjectOutputStream.java(writeObject): When to write a
+ String, use writeUTFShort or writeUTFLong depending on the byte length.
+
+2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com>
+
+ * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
+ * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
+ exception message.
+
+2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/README.jaxp: Fix typos.
+
+2008-01-25 Dalibor Topic <robilad@kaffe.org>
+
+ * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+ (createParser): Removed unused "reversed" misspelling. Use
+ Native2ASCII.ReverseHelp instead of Native2ASCII.ReversedHelp.
+
+ * resource/gnu/classpath/tools/native2ascii/messages.properties
+ (Native2ASCII.ReverseHelp): New, renamed from ...
+ (Native2ASCII.ReversedHelp): Removed.
+ (Native2ASCII.ReversedHelpCompat): Removed.
+
+2008-01-24 Tom Tromey <tromey@redhat.com>
+
+ * resource/gnu/classpath/tools/native2ascii/messages.properties
+ (Native2ASCII.ReversedHelpCompat): New.
+ * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+ (createParser): Add -reverse. Update -reversed.
+
+2008-01-21 Luciano Chavez <lnx1138@us.ibm.com>
+
+ PR libgcj/34369:
+ * java/net/URI.java (relativize): Check initial segment for
+ trailing "/".
+
+2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/acinclude.m4:
+ Remove bootclasspath option which fails with
+ OpenJDK javac.
+
+2008-01-14 Roman Kennke <kennke@aicas.com>
+
+ * javax/tools/FileObject.java: New interface.
+
+2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/accessibility/AccessibleAction.java:
+ (CLICK): Added.
+ (TOGGLE_POPUP): Likewise.
+ * javax/accessbiility/AccessibleRole.java:
+ (HTML_CONTAINER): Added.
+
+2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/accessibility/AccessibleAttributeSequence.java:
+ (AccessibleAttributeSequence(int,int,AttributeSet)):
+ Implemented.
+ * javax/accessibility/AccessibleTextSequence.java:
+ (AccessibleTextSequence(int,int,String)):
+ Likewise.
+
+2008-01-13 Leen Toelen <toelen@gmail.com>
+
+ * native/fdlibm/ieeefp.h: Added avr32 support.
+
+2008-01-09 Stefan Huehner <stefan@huehner.org>
+
+ * native/jni/java-io/java_io_VMObjectStreamClass.c,
+ * native/jni/java-lang/java_lang_VMDouble.c,
+ * native/jni/java-net/java_net_VMInetAddress.c:
+ Don't discard const by casting (const char *) to
+ (char *) when it's not needed.
+
+2008-01-09 Stefan Huehner <stefan@huehner.org>
+
+ * gnu/classpath/jdwp/event/ExceptionEvent.java,
+ * gnu/java/awt/peer/gtk/GtkMainThread.java:
+ Use Boolean.TRUE|FALSE instead of new Boolean(true|false)
+ * gnu/java/rmi/server/ConnectionRunnerPool.java,
+ * gnu/xml/aelfred2/XmlParser.java,
+ * gnu/xml/libxmlj/dom/GnomeXPathResult.java,
+ * gnu/xml/stream/XIncludeFilter.java:
+ Use Integer|Double|Charater.toString(var) instead of
+ new Integer|Double|Character(var).toString()
+
+2006-01-09 Roman Kennke <kennke@aicas.com>
+
+ * javax/tools/Diagnostic.java,
+ * javax/tools/DiagnosticListener.java:
+ New interfaces.
+
+2006-01-09 Roman Kennke <kennke@aicas.com>
+
+ * gnu/java/awt/peer/x/XWindowPeer.java
+ (getFontMetrics): Re-enable that for X fonts.
+
+2008-01-09 Stefan Huehner <stefan@huehner.org>
+
+
+ * examples/gnu/classpath/examples/java2d/J2dBenchmark.java,
+ * gnu/CORBA/OrbFocused.java,
+ * gnu/CORBA/CDR/HeadlessInput.java,
+ * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java,
+ * gnu/java/awt/peer/qt/QtMenuPeer.java,
+ * gnu/java/nio/FileChannelImpl.java,
+ * gnu/java/nio/SocketChannelSelectionKeyImpl.java,
+ * gnu/java/security/Engine.java,
+ * gnu/javax/imageio/jpeg/JPEGComponent.java,
+ * gnu/javax/imageio/jpeg/JPEGDecoder.java,
+ * gnu/javax/imageio/jpeg/JPEGFrame.java,
+ * gnu/javax/print/PrinterDialog.java,
+ * gnu/javax/security/auth/Password.java,
+ * gnu/javax/swing/text/html/parser/support/Parser.java,
+ * gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
+ * gnu/xml/pipeline/DomConsumer.java,
+ * java/awt/AWTKeyStroke.java,
+ * java/awt/DefaultKeyboardFocusManager.java,
+ * java/awt/GridBagLayout.java,
+ * java/awt/dnd/DragGestureRecognizer.java,
+ * java/awt/geom/Arc2D.java,
+ * java/awt/geom/CubicCurve2D.java,
+ * java/awt/geom/QuadCurve2D.java,
+ * java/awt/im/InputContext.java,
+ * java/awt/image/AffineTransformOp.java,
+ * java/beans/Encoder.java,
+ * java/io/ObjectInputStream.java,
+ * java/io/ObjectStreamClass.java,
+ * java/net/ResolverCache.java,
+ * java/nio/charset/Charset.java,
+ * java/security/SecureClassLoader.java,
+ * java/text/MessageFormat.java,
+ * java/util/jar/Manifest.java,
+ * javax/accessibility/AccessibleRelationSet.java,
+ * javax/imageio/ImageReader.java,
+ * javax/imageio/metadata/IIOMetadataNode.java,
+ * javax/print/attribute/standard/MediaSize.java,
+ * javax/print/attribute/standard/PrinterStateReasons.java,
+ * javax/swing/JTree.java,
+ * javax/swing/table/DefaultTableColumnModel.java,
+ * javax/swing/text/html/MinimalHTMLWriter.java,
+ * javax/swing/text/html/parser/DTD.java,
+ * javax/swing/tree/DefaultMutableTreeNode.java,
+ * javax/swing/undo/UndoManager.java,
+ * org/omg/CosNaming/NamingContextExtPOA.java,
+ * org/omg/CosNaming/NamingContextPOA.java,
+ * org/omg/CosNaming/_NamingContextExtImplBase.java,
+ * org/omg/CosNaming/_NamingContextImplBase.java,
+ * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
+ Remove unneeded casts
+
+2006-01-09 Roman Kennke <kennke@aicas.com>
+
+ * java/text/CollationElementIterator.java
+ (text): Changed type to CharacterIterator.
+ (CollationElementIterator(RuleBasedCollator,CharacterIterator)): New
+ constructor.
+ (setOffset(int)): Use CharacterIterator.getEndIndex() instead of
+ String.length().
+ (setText(String)): Wrap string into a StringCharacterIterator.
+ * java/text/RuleBasedCollator.java
+ (getCollationElementIterator(CharacterIterator)): Simply return
+ CollationElementIterator for the character iterator, instead of
+ expanding things.
+
+2008-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34579:
+ * m4/acinclude.m4:
+ (CLASSPATH_CHECK_JAVAC): Delete Colour.java
+
+2008-01-04 Stefan Huehner <stefan@huehner.org>
+
+ * gnu/CORBA/BigDecimalHelper.java,
+ * gnu/CORBA/CDR/AbstractCdrInput.java,
+ * gnu/CORBA/CDR/AbstractCdrOutput.java,
+ * gnu/CORBA/CDR/HeadlessInput.java,
+ * gnu/CORBA/CDR/gnuRuntime.java,
+ * gnu/CORBA/Connected_objects.java,
+ * gnu/CORBA/GIOP/CancelHeader.java,
+ * gnu/CORBA/GIOP/v1_0/CancelHeader.java,
+ * gnu/CORBA/IOR.java,
+ * gnu/CORBA/Interceptor/Registrator.java,
+ * gnu/CORBA/IorDelegate.java,
+ * gnu/CORBA/NamingService/NameTransformer.java,
+ * gnu/CORBA/ObjectCreator.java,
+ * gnu/CORBA/OrbFunctional.java,
+ * gnu/CORBA/Poa/AOM.java,
+ * gnu/CORBA/Poa/gnuPOA.java,
+ * gnu/CORBA/Poa/gnuPOAManager.java,
+ * gnu/CORBA/Poa/gnuServantObject.java,
+ * gnu/CORBA/typecodes/FixedTypeCode.java,
+ * gnu/CORBA/typecodes/RecursiveTypeCode.java,
+ * gnu/java/awt/AWTUtilities.java,
+ * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+ * gnu/java/awt/peer/gtk/CairoSurface.java,
+ * gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
+ * gnu/java/text/AttributedFormatBuffer.java,
+ * gnu/java/util/regex/REToken.java,
+ * gnu/javax/imageio/gif/GIFFile.java,
+ * gnu/javax/imageio/png/PNGDecoder.java,
+ * gnu/javax/management/Server.java,
+ * gnu/javax/naming/giop/ContextContinuation.java,
+ * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java,
+ * gnu/javax/swing/text/html/css/Selector.java,
+ * gnu/javax/swing/text/html/parser/models/node.java,
+ * gnu/javax/swing/text/html/parser/support/Parser.java,
+ * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java,
+ * gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
+ * gnu/xml/util/Resolver.java,
+ * java/awt/image/AreaAveragingScaleFilter.java,
+ * java/beans/Beans.java,
+ * java/beans/XMLDecoder.java,
+ * java/beans/beancontext/BeanContextServicesSupport.java,
+ * java/beans/beancontext/BeanContextSupport.java,
+ * java/io/CharArrayWriter.java,
+ * java/lang/System.java,
+ * java/net/ResolverCache.java,
+ * java/util/Calendar.java,
+ * java/util/Collections.java,
+ * java/util/Formatter.java,
+ * javax/accessibility/AccessibleEditableText.java,
+ * javax/imageio/ImageReader.java,
+ * javax/imageio/ImageTypeSpecifier.java,
+ * javax/imageio/ImageWriter.java,
+ * javax/imageio/spi/ServiceRegistry.java,
+ * javax/imageio/stream/ImageInputStream.java,
+ * javax/management/MBeanPermission.java,
+ * javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
+ * javax/rmi/CORBA/Util.java,
+ * javax/rmi/CORBA/UtilDelegate.java,
+ * javax/rmi/CORBA/ValueHandler.java,
+ * javax/rmi/PortableRemoteObject.java,
+ * org/ietf/jgss/GSSContext.java,
+ * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
+ * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java,
+ * tools/gnu/classpath/tools/appletviewer/TagParser.java,
+ * vm/reference/gnu/java/nio/VMChannel.java:
+ Correct javadoc to match the functions' parameters
+ * gnu/java/awt/peer/swing/SwingTextFieldPeer.java:
+ Rename start_pos parameter to startPos to conform to style.
+
+2008-01-07 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/awt/image/Raster.java
+ (createInterleavedRaster): Fixed ComponentSampleModel constructor
+ argument order.
+
+2008-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34579:
+ * m4/acinclude.m4:
+ (CLASSPATH_CHECK_JAVAC): Don't rely on 1.5 class
+ library.
+
+2008-01-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * ChangeLog-2007: New file.
+
+
+Local Variables:
+coding: iso-latin-1-unix
+End:
diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj
index 122a900ccbe..aff0225dd16 100644
--- a/libjava/classpath/ChangeLog.gcj
+++ b/libjava/classpath/ChangeLog.gcj
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-11-12 Jakub Jelinek <jakub@redhat.com>
PR libgcj/33764
@@ -7,6 +11,12 @@
* configure: Regenerated.
* tools/Makefile.in: Regenerated.
+2008-11-10 Andrew Haley <aph@redhat.com>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+ (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector):
+ Remove bogus gdk_threads_leave ();
+
2008-10-23 Jakub Jelinek <jakub@redhat.com>
PR java/37893
diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL
index d3c5b40a940..8b82ade08e8 100644
--- a/libjava/classpath/INSTALL
+++ b/libjava/classpath/INSTALL
@@ -2,15 +2,15 @@ Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007 Free Software Foundation, Inc.
+2006, 2007, 2008 Free Software Foundation, Inc.
-This file is free documentation; the Free Software Foundation gives
+ This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
-Briefly, the shell commands `./configure; make; make install' should
+ Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
@@ -73,9 +73,9 @@ The simplest way to compile this package is:
Compilers and Options
=====================
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
@@ -88,7 +88,7 @@ is an example:
Compiling For Multiple Architectures
====================================
-You can compile the package for more than one kind of computer at the
+ You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
@@ -100,10 +100,24 @@ architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
Installation Names
==================
-By default, `make install' installs the package's commands under
+ By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
@@ -126,7 +140,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
-Some packages pay attention to `--enable-FEATURE' options to
+ Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -138,14 +152,36 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
Specifying the System Type
==========================
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -171,9 +207,9 @@ eventually be run) with `--host=TYPE'.
Sharing Defaults
================
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -182,7 +218,7 @@ A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
-Variables not defined in a site shell script can be set in the
+ Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -201,11 +237,19 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:
`configure' Invocation
======================
-`configure' recognizes the following options to control how it operates.
+ `configure' recognizes the following options to control how it
+operates.
`--help'
`-h'
- Print a summary of the options to `configure', and exit.
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
`--version'
`-V'
@@ -232,6 +276,16 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
diff --git a/libjava/classpath/configure b/libjava/classpath/configure
index 3e5b5e70744..8a4c6b1ded9 100755
--- a/libjava/classpath/configure
+++ b/libjava/classpath/configure
@@ -9871,44 +9871,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -10488,12 +10494,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -10536,7 +10547,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -10546,8 +10557,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -11542,7 +11557,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11545 "configure"
+#line 11560 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11638,7 +11653,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11641 "configure"
+#line 11656 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -16069,11 +16084,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16072: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16087: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16076: \$? = $ac_status" >&5
+ echo "$as_me:16091: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16168,11 +16183,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16171: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16186: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16175: \$? = $ac_status" >&5
+ echo "$as_me:16190: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16220,11 +16235,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16223: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16238: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16227: \$? = $ac_status" >&5
+ echo "$as_me:16242: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16332,44 +16347,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_CXX=no
- else
- archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ then
+ lt_cv_archive_cmds_need_lc_CXX=no
+ else
+ lt_cv_archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_CXX" >&6
+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
;;
esac
fi
@@ -16804,12 +16825,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -16852,7 +16878,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -16862,8 +16888,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -29142,7 +29172,7 @@ EOF
if uudecode$EXEEXT Test.uue; then
ac_cv_prog_uudecode_base64=yes
else
- echo "configure: 29145: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+ echo "configure: 29175: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
echo "configure: failed file was:" >&5
cat Test.uue >&5
ac_cv_prog_uudecode_base64=no
@@ -29289,7 +29319,7 @@ else
JAVA_TEST=Object.java
CLASS_TEST=Object.class
cat << \EOF > $JAVA_TEST
-/* #line 29292 "configure" */
+/* #line 29322 "configure" */
package java.lang;
public class Object
@@ -29338,7 +29368,7 @@ JAVA_TEST=Test.java
CLASS_TEST=Test.class
TEST=Test
cat << \EOF > $JAVA_TEST
-/* [#]line 29341 "configure" */
+/* [#]line 29371 "configure" */
public class Test {
public static void main (String args[]) {
System.exit (0);
@@ -29658,7 +29688,7 @@ else
JAVA_TEST=Object.java
CLASS_TEST=Object.class
cat << \EOF > $JAVA_TEST
-/* #line 29661 "configure" */
+/* #line 29691 "configure" */
package java.lang;
public class Object
@@ -29699,7 +29729,7 @@ fi
JAVA_TEST=Test.java
CLASS_TEST=Test.class
cat << \EOF > $JAVA_TEST
- /* #line 29702 "configure" */
+ /* #line 29732 "configure" */
public class Test
{
public static void main(String args)
diff --git a/libjava/classpath/doc/texinfo.tex b/libjava/classpath/doc/texinfo.tex
index d2b264dd9a5..3569bd5a864 100644
--- a/libjava/classpath/doc/texinfo.tex
+++ b/libjava/classpath/doc/texinfo.tex
@@ -3,11 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2007-12-02.17}
+\def\texinfoversion{2008-11-17.21}
%
-% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007 Free Software Foundation, Inc.
+% 2007, 2008 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -97,6 +97,9 @@
\let\ptexslash=\/
\let\ptexstar=\*
\let\ptext=\t
+\let\ptextop=\top
+{\catcode`\'=\active
+\global\let\ptexquoteright'}% Math-mode def from plain.tex.
% If this character appears in an error message or help string, it
% starts a new line in the output.
@@ -460,7 +463,7 @@
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
%
% \argremovec might leave us with trailing space, e.g.,
% @end itemize @c foo
@@ -485,7 +488,7 @@
% to get _exactly_ the rest of the line, we had to prevent such situation.
% We prepended an \empty token at the very beginning and we expand it now,
% just before passing the control to \argtorun.
-% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
% either the null string, or it ends with \^^M---thus there is no danger
% that a pair of braces would be stripped.
%
@@ -542,12 +545,12 @@
% used to check whether the current environment is the one expected.
%
% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
-% are not treated as enviroments; they don't open a group. (The
+% are not treated as environments; they don't open a group. (The
% implementation of @end takes care not to call \endgroup in this
% special case.)
-% At runtime, environments start with this:
+% At run-time, environments start with this:
\def\startenvironment#1{\begingroup\def\thisenv{#1}}
% initialize
\let\thisenv\empty
@@ -565,7 +568,7 @@
\fi
}
-% Evironment mismatch, #1 expected:
+% Environment mismatch, #1 expected:
\def\badenverr{%
\errhelp = \EMsimple
\errmessage{This command can appear only \inenvironment\temp,
@@ -649,8 +652,8 @@
\def\jmacro{j}
\def\dotless#1{%
\def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
+ \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
+ \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
\else \errmessage{@dotless can be used only with i or j}%
\fi\fi
}
@@ -916,15 +919,20 @@ where each line of input produces a line of output.}
\temp
}
-% @include file insert text of that file as input.
+% @include FILE -- \input text of FILE.
%
\def\include{\parseargusing\filenamecatcodes\includezzz}
\def\includezzz#1{%
\pushthisfilestack
\def\thisfile{#1}%
{%
- \makevalueexpandable
- \def\temp{\input #1 }%
+ \makevalueexpandable % we want to expand any @value in FILE.
+ \turnoffactive % and allow special characters in the expansion
+ \indexnofonts % Allow `@@' and other weird things in file names.
+ \edef\temp{\noexpand\input #1 }%
+ %
+ % This trickery is to read FILE outside of a group, in case it makes
+ % definitions, etc.
\expandafter
}\temp
\popthisfilestack
@@ -939,6 +947,8 @@ where each line of input produces a line of output.}
\catcode`>=\other
\catcode`+=\other
\catcode`-=\other
+ \catcode`\`=\other
+ \catcode`\'=\other
}
\def\pushthisfilestack{%
@@ -1114,6 +1124,16 @@ where each line of input produces a line of output.}
\mathunderscore
\let\\ = \mathbackslash
\mathactive
+ % make the texinfo accent commands work in math mode
+ \let\"=\ddot
+ \let\'=\acute
+ \let\==\bar
+ \let\^=\hat
+ \let\`=\grave
+ \let\u=\breve
+ \let\v=\check
+ \let\~=\tilde
+ \let\dotaccent=\dot
$\finishmath
}
\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
@@ -1127,17 +1147,21 @@ where each line of input produces a line of output.}
\catcode`< = \active
\catcode`> = \active
\catcode`+ = \active
+ \catcode`' = \active
\gdef\mathactive{%
\let^ = \ptexhat
\let< = \ptexless
\let> = \ptexgtr
\let+ = \ptexplus
+ \let' = \ptexquoteright
}
}
-% @bullet and @minus need the same treatment as @math, just above.
+% Some math mode symbols.
\def\bullet{$\ptexbullet$}
-\def\minus{$-$}
+\def\geq{\ifmmode \ge\else $\ge$\fi}
+\def\leq{\ifmmode \le\else $\le$\fi}
+\def\minus{\ifmmode -\else $-$\fi}
% @dots{} outputs an ellipsis using the current font.
% We do .5em per period so that it has the same spacing in the cm
@@ -1362,8 +1386,11 @@ output) for that.)}
\openin 1 #1.jpeg \ifeof 1
\openin 1 #1.JPG \ifeof 1
\openin 1 #1.pdf \ifeof 1
- \errhelp = \nopdfimagehelp
- \errmessage{Could not find image file #1 for pdf}%
+ \openin 1 #1.PDF \ifeof 1
+ \errhelp = \nopdfimagehelp
+ \errmessage{Could not find image file #1 for pdf}%
+ \else \gdef\pdfimgext{PDF}%
+ \fi
\else \gdef\pdfimgext{pdf}%
\fi
\else \gdef\pdfimgext{JPG}%
@@ -1377,7 +1404,7 @@ output) for that.)}
\closein 1
\endgroup
%
- % without \immediate, pdftex seg faults when the same image is
+ % without \immediate, ancient pdftex seg faults when the same image is
% included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
\ifnum\pdftexversion < 14
\immediate\pdfimage
@@ -1607,6 +1634,10 @@ output) for that.)}
\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
\def\tt{\fam=\ttfam \setfontstyle{tt}}
+% Unfortunately, we have to override this for titles and the like, since
+% in those cases "rm" is bold. Sigh.
+\def\rmisbold{\rm\def\curfontstyle{bf}}
+
% Texinfo sort of supports the sans serif font style, which plain TeX does not.
% So we set up a \sf.
\newfam\sffam
@@ -2004,8 +2035,6 @@ end
\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
\font\titlei=cmmi12 scaled \magstep3
\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
\def\titleecsize{2074}
% Chapter (and unnumbered) fonts (17.28pt).
@@ -2137,8 +2166,6 @@ end
\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
\font\titlei=cmmi12 scaled \magstep3
\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
\def\titleecsize{2074}
% Chapter fonts (14.4pt).
@@ -2270,7 +2297,7 @@ end
\def\curfontsize{title}%
\def\lsize{chap}\def\lllsize{subsec}%
\resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
+\def\titlefont#1{{\titlefonts\rmisbold #1}}
\def\chapfonts{%
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
@@ -2376,7 +2403,7 @@ end
\let\i=\smartitalic
\let\slanted=\smartslanted
-\let\var=\smartslanted
+\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}}
\let\dfn=\smartslanted
\let\emph=\smartitalic
@@ -2416,7 +2443,7 @@ end
{\tt \rawbackslash \plainfrenchspacing #1}%
\null
}
-\def\samp#1{`\tclose{#1}'\null}
+\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
\setfont\keyrm\rmshape{8}{1000}{OT1}
\font\keysy=cmsy9
\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
@@ -2425,7 +2452,7 @@ end
\hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
\kern-0.4pt\hrule}%
\kern-.06em\raise0.4pt\hbox{\angleright}}}}
-\def\key #1{{\nohyphenation \uppercase{#1}}\null}
+\def\key #1{{\setupmarkupstyle{key}\nohyphenation \uppercase{#1}}\null}
% The old definition, with no lozenge:
%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -2469,11 +2496,11 @@ end
{
\catcode`\-=\active \catcode`\_=\active
\catcode`\'=\active \catcode`\`=\active
+ \global\let'=\rq \global\let`=\lq % default definitions
%
\global\def\code{\begingroup
- \catcode\rquoteChar=\active \catcode\lquoteChar=\active
- \let'\codequoteright \let`\codequoteleft
- %
+ \setupmarkupstyle{code}%
+ % The following should really be moved into \setupmarkupstyle handlers.
\catcode\dashChar=\active \catcode\underChar=\active
\ifallowcodebreaks
\let-\codedash
@@ -2552,14 +2579,21 @@ end
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
\let\indicateurl=\code
\let\env=\code
\let\command=\code
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
% second argument specifying the text to display and an optional third
% arg as text to display instead of (rather than in addition to) the url
@@ -2621,7 +2655,7 @@ end
%
\def\dmn#1{\thinspace #1}
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
% @l was never documented to mean ``switch to the Lisp font'',
% and it is not used as such in any manual I can find. We need it for
@@ -2722,8 +2756,35 @@ end
\def\quotedblbase{{\ecfont \char"12}}
\def\quotesinglbase{{\ecfont \char"0D}}
%
+% This positioning is not perfect (see the ogonek LaTeX package), but
+% we have the precomposed glyphs for the most common cases. We put the
+% tests to use those glyphs in the single \ogonek macro so we have fewer
+% dummy definitions to worry about for index entries, etc.
+%
+% ogonek is also used with other letters in Lithuanian (IOU), but using
+% the precomposed glyphs for those is not so easy since they aren't in
+% the same EC font.
+\def\ogonek#1{{%
+ \def\temp{#1}%
+ \ifx\temp\macrocharA\Aogonek
+ \else\ifx\temp\macrochara\aogonek
+ \else\ifx\temp\macrocharE\Eogonek
+ \else\ifx\temp\macrochare\eogonek
+ \else
+ \ecfont \setbox0=\hbox{#1}%
+ \ifdim\ht0=1ex\accent"0C #1%
+ \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
+ \fi
+ \fi\fi\fi\fi
+ }%
+}
+\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
+\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
+\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
+\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
+%
\def\ecfont{%
- % We can't distinguish serif/sanserif and italic/slanted, but this
+ % We can't distinguish serif/sans and italic/slanted, but this
% is used for crude hacks anyway (like adding French and German
% quotes to documents typeset with CM, where we lose kerning), so
% hopefully nobody will notice/care.
@@ -2851,12 +2912,9 @@ end
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
-\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
- \let\tt=\authortt}
-
\parseargdef\title{%
\checkenv\titlepage
- \leftline{\titlefonts\rm #1}
+ \leftline{\titlefonts\rmisbold #1}
% print a rule at the page bottom also.
\finishedtitlepagefalse
\vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -2877,7 +2935,7 @@ end
\else
\checkenv\titlepage
\ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
- {\authorfont \leftline{#1}}%
+ {\secfonts\rmisbold \leftline{#1}}%
\fi
}
@@ -3847,11 +3905,11 @@ end
\def\dosynindex#1#2#3{%
% Only do \closeout if we haven't already done it, else we'll end up
% closing the target index.
- \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+ \expandafter \ifx\csname donesynindex#2\endcsname \relax
% The \closeout helps reduce unnecessary open files; the limit on the
% Acorn RISC OS is a mere 16 files.
\expandafter\closeout\csname#2indfile\endcsname
- \expandafter\let\csname\donesynindex#2\endcsname = 1
+ \expandafter\let\csname donesynindex#2\endcsname = 1
\fi
% redefine \fooindfile:
\expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
@@ -4009,6 +4067,7 @@ end
\definedummyword\guilsinglright
\definedummyword\expansion
\definedummyword\minus
+ \definedummyword\ogonek
\definedummyword\pounds
\definedummyword\point
\definedummyword\print
@@ -4052,6 +4111,7 @@ end
\definedummyword\v
\definedummyword\H
\definedummyword\dotaccent
+ \definedummyword\ogonek
\definedummyword\ringaccent
\definedummyword\tieaccent
\definedummyword\ubaraccent
@@ -4432,7 +4492,7 @@ end
%
% A straightforward implementation would start like this:
% \def\entry#1#2{...
-% But this frozes the catcodes in the argument, and can cause problems to
+% But this freezes the catcodes in the argument, and can cause problems to
% @code, which sets - active. This problem was fixed by a kludge---
% ``-'' was active throughout whole index, but this isn't really right.
%
@@ -5034,7 +5094,6 @@ end
% 3) Likewise, headings look best if no \parindent is used, and
% if justification is not attempted. Hence \raggedright.
-
\def\majorheading{%
{\advance\chapheadingskip by 10pt \chapbreak }%
\parsearg\chapheadingzzz
@@ -5044,7 +5103,7 @@ end
\def\chapheadingzzz#1{%
{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
- \rm #1\hfill}}%
+ \rmisbold #1\hfill}}%
\bigskip \par\penalty 200\relax
\suppressfirstparagraphindent
}
@@ -5163,7 +5222,7 @@ end
\domark
%
{%
- \chapfonts \rm
+ \chapfonts \rmisbold
%
% Have to define \lastsection before calling \donoderef, because the
% xref code eventually uses it. On the other hand, it has to be called
@@ -5225,7 +5284,7 @@ end
\def\unnchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\nobreak
+ \rmisbold #1\hfill}}\bigskip \par\nobreak
}
\def\chfopen #1#2{\chapoddpage {\chapfonts
\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
@@ -5234,7 +5293,7 @@ end
\def\centerchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+ \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
}
\def\CHAPFopen{%
\global\let\chapmacro=\chfopen
@@ -5267,7 +5326,7 @@ end
\def\sectionheading#1#2#3#4{%
{%
% Switch to the right set of fonts.
- \csname #2fonts\endcsname \rm
+ \csname #2fonts\endcsname \rmisbold
%
\def\sectionlevel{#2}%
\def\temptype{#3}%
@@ -5650,16 +5709,120 @@ end
\message{environments,}
% @foo ... @end foo.
+% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
+% define and register \INITMACRO to be called on markup style changes.
+% \INITMACRO can check \currentmarkupstyle for the innermost
+% style and the set of \ifmarkupSTYLE switches for all styles
+% currently in effect.
+\newif\ifmarkupvar
+\newif\ifmarkupsamp
+\newif\ifmarkupkey
+%\newif\ifmarkupfile % @file == @samp.
+%\newif\ifmarkupoption % @option == @samp.
+\newif\ifmarkupcode
+\newif\ifmarkupkbd
+%\newif\ifmarkupenv % @env == @code.
+%\newif\ifmarkupcommand % @command == @code.
+\newif\ifmarkuptex % @tex (and part of @math, for now).
+\newif\ifmarkupexample
+\newif\ifmarkupverb
+\newif\ifmarkupverbatim
+
+\let\currentmarkupstyle\empty
+
+\def\setupmarkupstyle#1{%
+ \csname markup#1true\endcsname
+ \def\currentmarkupstyle{#1}%
+ \markupstylesetup
+}
+
+\let\markupstylesetup\empty
+
+\def\defmarkupstylesetup#1{%
+ \expandafter\def\expandafter\markupstylesetup
+ \expandafter{\markupstylesetup #1}%
+ \def#1%
+}
+
+% Markup style setup for left and right quotes.
+\defmarkupstylesetup\markupsetuplq{%
+ \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
+ \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
+}
+
+\defmarkupstylesetup\markupsetuprq{%
+ \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
+ \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
+}
+
+{
+\catcode`\'=\active
+\catcode`\`=\active
+
+\gdef\markupsetuplqdefault{\let`\lq}
+\gdef\markupsetuprqdefault{\let'\rq}
+
+\gdef\markupsetcodequoteleft{\let`\codequoteleft}
+\gdef\markupsetcodequoteright{\let'\codequoteright}
+
+\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
+}
+
+\let\markupsetuplqcode \markupsetcodequoteleft
+\let\markupsetuprqcode \markupsetcodequoteright
+\let\markupsetuplqexample \markupsetcodequoteleft
+\let\markupsetuprqexample \markupsetcodequoteright
+\let\markupsetuplqverb \markupsetcodequoteleft
+\let\markupsetuprqverb \markupsetcodequoteright
+\let\markupsetuplqverbatim \markupsetcodequoteleft
+\let\markupsetuprqverbatim \markupsetcodequoteright
+
+\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
+\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
+
+% Allow an option to not replace quotes with a regular directed right
+% quote/apostrophe (char 0x27), but instead use the undirected quote
+% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
+% the default, but it works for pasting with more pdf viewers (at least
+% evince), the lilypond developers report. xpdf does work with the
+% regular 0x27.
+%
+\def\codequoteright{%
+ \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+ \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+ '%
+ \else \char'15 \fi
+ \else \char'15 \fi
+}
+%
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
+%
+\def\codequoteleft{%
+ \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+ \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+ % [Knuth] pp. 380,381,391
+ % \relax disables Spanish ligatures ?` and !` of \tt font.
+ \relax`%
+ \else \char'22 \fi
+ \else \char'22 \fi
+}
+
+% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
+\def\noligaturesquoteleft{\relax\lq}
+
% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
%
-% Since these characters are used in examples, it should be an even number of
+% Since these characters are used in examples, they should be an even number of
% \tt widths. Each \tt character is 1en, so two makes it 1em.
%
\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
% The @error{} command.
% Adapted from the TeXbook's \boxit.
@@ -5689,6 +5852,7 @@ end
% But \@ or @@ will get a plain tex @ character.
\envdef\tex{%
+ \setupmarkupstyle{tex}%
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -5698,6 +5862,8 @@ end
\catcode `\|=\other
\catcode `\<=\other
\catcode `\>=\other
+ \catcode`\`=\other
+ \catcode`\'=\other
\escapechar=`\\
%
\let\b=\ptexb
@@ -5717,6 +5883,7 @@ end
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
+ \expandafter \let\csname top\endcsname=\ptextop % outer
\let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -5898,7 +6065,7 @@ end
%
\maketwodispenvs {lisp}{example}{%
\nonfillstart
- \tt\quoteexpand
+ \tt\setupmarkupstyle{example}%
\let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
\gobble % eat return
}
@@ -5941,7 +6108,7 @@ end
% we're doing normal filling. So, when using \aboveenvbreak and
% \afterenvbreak, temporarily make \parskip 0.
%
-\envdef\quotation{%
+\def\quotationstart{%
{\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
\parindent=0pt
%
@@ -5956,6 +6123,17 @@ end
\parsearg\quotationlabel
}
+\envdef\quotation{%
+ \setnormaldispenv
+ \quotationstart
+}
+
+\envdef\smallquotation{%
+ \setsmalldispenv
+ \quotationstart
+}
+\let\Esmallquotation = \Equotation
+
% We have retained a nonzero parskip for the environment, since we're
% doing normal filling.
%
@@ -5991,18 +6169,16 @@ end
\do\ \do\\\do\{\do\}\do\$\do\&%
\do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
\do\<\do\>\do\|\do\@\do+\do\"%
+ % Don't do the quotes -- if we do, @set txicodequoteundirected and
+ % @set txicodequotebacktick will not have effect on @verb and
+ % @verbatim, and ?` and !` ligatures won't get disabled.
+ %\do\`\do\'%
}
%
% [Knuth] p. 380
\def\uncatcodespecials{%
\def\do##1{\catcode`##1=\other}\dospecials}
%
-% [Knuth] pp. 380,381,391
-% Disable Spanish ligatures ?` and !` of \tt font
-\begingroup
- \catcode`\`=\active\gdef`{\relax\lq}
-\endgroup
-%
% Setup for the @verb command.
%
% Eight spaces for a tab
@@ -6014,7 +6190,7 @@ end
\def\setupverb{%
\tt % easiest (and conventionally used) font for verbatim
\def\par{\leavevmode\endgraf}%
- \catcode`\`=\active
+ \setupmarkupstyle{verb}%
\tabeightspaces
% Respect line breaks,
% print special symbols as themselves, and
@@ -6029,33 +6205,6 @@ end
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
%
\def\starttabbox{\setbox0=\hbox\bgroup}
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
-%
-\def\codequoteright{%
- \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
- \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
- '%
- \else \char'15 \fi
- \else \char'15 \fi
-}
-%
-% and a similar option for the left quote char vs. a grave accent.
-% Modern fonts display ASCII 0x60 as a grave accent, so some people like
-% the code environments to do likewise.
-%
-\def\codequoteleft{%
- \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
- \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
- `%
- \else \char'22 \fi
- \else \char'22 \fi
-}
%
\begingroup
\catcode`\^^I=\active
@@ -6069,13 +6218,6 @@ end
\wd0=\dimen0 \box0 \starttabbox
}%
}
- \catcode`\'=\active
- \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
- %
- \catcode`\`=\active
- \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
- %
- \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
\endgroup
% start the verbatim environment.
@@ -6085,9 +6227,8 @@ end
% Easiest (and conventionally used) font for verbatim
\tt
\def\par{\leavevmode\egroup\box0\endgraf}%
- \catcode`\`=\active
\tabexpand
- \quoteexpand
+ \setupmarkupstyle{verbatim}%
% Respect line breaks,
% print special symbols as themselves, and
% make each space count
@@ -6147,6 +6288,7 @@ end
{%
\makevalueexpandable
\setupverbatim
+ \indexnofonts % Allow `@@' and other weird things in file names.
\input #1
\afterenvbreak
}%
@@ -6246,7 +6388,7 @@ end
\def\Edefun{\endgraf\medbreak}
% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
-% the only thing remainnig is to define \deffnheader.
+% the only thing remaining is to define \deffnheader.
%
\def\makedefun#1{%
\expandafter\let\csname E#1\endcsname = \Edefun
@@ -6425,7 +6567,7 @@ end
%
% On the other hand, if an argument has two dashes (for instance), we
% want a way to get ttsl. Let's try @var for that.
- \let\var=\ttslanted
+ \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
#1%
\sl\hyphenchar\font=45
}
@@ -6953,20 +7095,22 @@ end
%
% Make link in pdf output.
\ifpdf
- \leavevmode
- \getfilename{#4}%
{\indexnofonts
\turnoffactive
+ % This expands tokens, so do it after making catcode changes, so _
+ % etc. don't get their TeX definitions.
+ \getfilename{#4}%
+ %
% See comments at \activebackslashdouble.
{\activebackslashdouble \xdef\pdfxrefdest{#1}%
\backslashparens\pdfxrefdest}%
%
+ \leavevmode
+ \startlink attr{/Border [0 0 0]}%
\ifnum\filenamelength>0
- \startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{\pdfxrefdest}%
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
\else
- \startlink attr{/Border [0 0 0]}%
- goto name{\pdfmkpgn{\pdfxrefdest}}%
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
\fi
}%
\setcolor{\linkcolor}%
@@ -7317,7 +7461,7 @@ end
% In case a @footnote appears in a vbox, save the footnote text and create
% the real \insert just after the vbox finished. Otherwise, the insertion
% would be lost.
-% Similarily, if a @footnote appears inside an alignment, save the footnote
+% Similarly, if a @footnote appears inside an alignment, save the footnote
% text to a box and make the \insert when a row of the table is finished.
% And the same can be done for other insert classes. --kasal, 16nov03.
@@ -7421,15 +7565,19 @@ end
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
- \nobreak\bigskip
+ \nobreak\medskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
% above and below.
\nobreak\vskip\parskip
\nobreak
- \line\bgroup
\fi
%
+ % Leave vertical mode so that indentation from an enclosing
+ % environment such as @quotation is respected. On the other hand, if
+ % it's at the top level, we don't want the normal paragraph indentation.
+ \noindent
+ %
% Output the image.
\ifpdf
\dopdfimage{#1}{#2}{#3}%
@@ -7440,7 +7588,7 @@ end
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \egroup \bigbreak \fi % space after the image
+ \ifimagevmode \medskip \fi % space after the standalone image
\endgroup}
@@ -7712,10 +7860,9 @@ end
\message{localization,}
-% @documentlanguage is usually given very early, just after
-% @setfilename. If done too late, it may not override everything
-% properly. Single argument is the language (de) or locale (de_DE)
-% abbreviation. It would be nice if we could set up a hyphenation file.
+% For single-language documents, @documentlanguage is usually given very
+% early, just after @documentencoding. Single argument is the language
+% (de) or locale (de_DE) abbreviation.
%
{
\catcode`\_ = \active
@@ -7728,10 +7875,11 @@ end
\ifeof 1
\documentlanguagetrywithoutunderscore{#1_\finish}%
\else
+ \globaldefs = 1 % everything in the txi-LL files needs to persist
\input txi-#1.tex
\fi
\closein 1
- \endgroup
+ \endgroup % end raw TeX
\endgroup}
}
%
@@ -7750,9 +7898,36 @@ end
}
%
\newhelp\nolanghelp{The given language definition file cannot be found or
-is empty. Maybe you need to install it? In the current directory
-should work if nowhere else does.}
+is empty. Maybe you need to install it? Putting it in the current
+directory should work if nowhere else does.}
+
+% This macro is called from txi-??.tex files; the first argument is the
+% \language name to set (without the "\lang@" prefix), the second and
+% third args are \{left,right}hyphenmin.
+%
+% The language names to pass are determined when the format is built.
+% See the etex.log file created at that time, e.g.,
+% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
+%
+% With TeX Live 2008, etex now includes hyphenation patterns for all
+% available languages. This means we can support hyphenation in
+% Texinfo, at least to some extent. (This still doesn't solve the
+% accented characters problem.)
+%
+\catcode`@=11
+\def\txisetlanguage#1#2#3{%
+ % do not set the language if the name is undefined in the current TeX.
+ \expandafter\ifx\csname lang@#1\endcsname \relax
+ \message{no patterns for #1}%
+ \else
+ \global\language = \csname lang@#1\endcsname
+ \fi
+ % but there is no harm in adjusting the hyphenmin values regardless.
+ \global\lefthyphenmin = #2\relax
+ \global\righthyphenmin = #3\relax
+}
+% Helpers for encodings.
% Set the catcode of characters 128 through 255 to the specified number.
%
\def\setnonasciicharscatcode#1{%
@@ -7841,7 +8016,7 @@ should work if nowhere else does.}
\gdef^^a8{\"{}}
\gdef^^a9{\copyright}
\gdef^^aa{\ordf}
- \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+ \gdef^^ab{\guillemetleft}
\gdef^^ac{$\lnot$}
\gdef^^ad{\-}
\gdef^^ae{\registeredsymbol}
@@ -7860,7 +8035,7 @@ should work if nowhere else does.}
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
%
- \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+ \gdef^^bb{\guilletright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
\gdef^^be{$3\over4$}
@@ -7953,7 +8128,7 @@ should work if nowhere else does.}
% Latin2 (ISO-8859-2) character definitions.
\def\lattwochardefs{%
\gdef^^a0{~}
- \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+ \gdef^^a1{\ogonek{A}}
\gdef^^a2{\u{}}
\gdef^^a3{\L}
\gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
@@ -7970,8 +8145,8 @@ should work if nowhere else does.}
\gdef^^af{\dotaccent Z}
%
\gdef^^b0{\textdegree}
- \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
- \gdef^^b2{\missingcharmsg{OGONEK}}
+ \gdef^^b1{\ogonek{a}}
+ \gdef^^b2{\ogonek{ }}
\gdef^^b3{\l}
\gdef^^b4{\'{}}
\gdef^^b5{\v l}
@@ -7996,7 +8171,7 @@ should work if nowhere else does.}
\gdef^^c7{\cedilla C}
\gdef^^c8{\v C}
\gdef^^c9{\'E}
- \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+ \gdef^^ca{\ogonek{E}}
\gdef^^cb{\"E}
\gdef^^cc{\v E}
\gdef^^cd{\'I}
@@ -8030,7 +8205,7 @@ should work if nowhere else does.}
\gdef^^e7{\cedilla c}
\gdef^^e8{\v c}
\gdef^^e9{\'e}
- \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+ \gdef^^ea{\ogonek{e}}
\gdef^^eb{\"e}
\gdef^^ec{\v e}
\gdef^^ed{\'\i}
@@ -8259,10 +8434,14 @@ should work if nowhere else does.}
\DeclareUnicodeCharacter{0101}{\=a}
\DeclareUnicodeCharacter{0102}{\u{A}}
\DeclareUnicodeCharacter{0103}{\u{a}}
+ \DeclareUnicodeCharacter{0104}{\ogonek{A}}
+ \DeclareUnicodeCharacter{0105}{\ogonek{a}}
\DeclareUnicodeCharacter{0106}{\'C}
\DeclareUnicodeCharacter{0107}{\'c}
\DeclareUnicodeCharacter{0108}{\^C}
\DeclareUnicodeCharacter{0109}{\^c}
+ \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+ \DeclareUnicodeCharacter{0119}{\ogonek{e}}
\DeclareUnicodeCharacter{010A}{\dotaccent{C}}
\DeclareUnicodeCharacter{010B}{\dotaccent{c}}
\DeclareUnicodeCharacter{010C}{\v{C}}
@@ -8410,6 +8589,8 @@ should work if nowhere else does.}
\DeclareUnicodeCharacter{0233}{\=y}
\DeclareUnicodeCharacter{0237}{\dotless{j}}
+ \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
+
\DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
\DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
\DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -8912,6 +9093,8 @@ should work if nowhere else does.}
@let>=@normalgreater
@let+=@normalplus
@let$=@normaldollar %$ font-lock fix
+ @markupsetuplqdefault
+ @markupsetuprqdefault
@unsepspaces
}
@@ -8946,7 +9129,15 @@ should work if nowhere else does.}
@catcode`@# = @other
@catcode`@% = @other
-
+@c Finally, make ` and ' active, so that txicodequoteundirected and
+@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
+@c don't make ` and ' active, @code will not get them as active chars.
+@c Do this last of all since we use ` in the previous @catcode assignments.
+@catcode`@'=@active
+@catcode`@`=@active
+@markupsetuplqdefault
+@markupsetuprqdefault
+
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
diff --git a/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java b/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java
index 319b0eaebe8..257c0a243f2 100644
--- a/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java
+++ b/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java
@@ -97,7 +97,8 @@ public class SecretKeyGeneratorImpl
{
keySize >>>= 3; // Use bytes.
if (! keySizes.contains(Integer.valueOf(keySize)))
- throw new InvalidParameterException("unsupported key size: " + keySize);
+ throw new InvalidParameterException("unsupported key size: " + keySize
+ + ", valid sizes are: " + keySizes);
currentKeySize = keySize;
this.random = random;
init = true;
diff --git a/libjava/classpath/gnu/xml/transform/Bindings.java b/libjava/classpath/gnu/xml/transform/Bindings.java
index 009321315bb..ab790523f6d 100644
--- a/libjava/classpath/gnu/xml/transform/Bindings.java
+++ b/libjava/classpath/gnu/xml/transform/Bindings.java
@@ -68,17 +68,17 @@ public class Bindings
/**
* Global variables.
*/
- final LinkedList variables;
+ final LinkedList<Map<QName,Object>> variables;
/**
* Parameter value stack.
*/
- final LinkedList parameters;
+ final LinkedList<Map<QName,Object>> parameters;
/**
* Argument (with-param) value stack.
*/
- final LinkedList withParameters;
+ final LinkedList<Map<QName,Object>> withParameters;
/**
* Only search globals.
@@ -88,9 +88,9 @@ public class Bindings
Bindings(Stylesheet stylesheet)
{
this.stylesheet = stylesheet;
- variables = new LinkedList();
- parameters = new LinkedList();
- withParameters = new LinkedList();
+ variables = new LinkedList<Map<QName,Object>>();
+ parameters = new LinkedList<Map<QName,Object>>();
+ withParameters = new LinkedList<Map<QName,Object>>();
for (int i = 0; i < 3; i++)
{
push(i);
@@ -114,13 +114,13 @@ public class Bindings
switch (type)
{
case VARIABLE:
- variables.addFirst(new HashMap());
+ variables.addFirst(new HashMap<QName,Object>());
break;
case PARAM:
- parameters.addFirst(new HashMap());
+ parameters.addFirst(new HashMap<QName,Object>());
break;
case WITH_PARAM:
- withParameters.addFirst(new HashMap());
+ withParameters.addFirst(new HashMap<QName,Object>());
break;
}
}
@@ -145,11 +145,11 @@ public class Bindings
{
if (global)
{
- Map ctx1 = (Map) variables.getLast();
- Map ctx2 = (Map) parameters.getLast();
+ Map<QName,Object> ctx1 = variables.getLast();
+ Map<QName,Object> ctx2 = parameters.getLast();
return (ctx1.containsKey(name) || ctx2.containsKey(name));
}
- Iterator i = null;
+ Iterator<Map<QName,Object>> i = null;
switch (type)
{
case VARIABLE:
@@ -159,14 +159,14 @@ public class Bindings
i = parameters.iterator();
break;
case WITH_PARAM:
- Map ctx = (Map) withParameters.getFirst();
+ Map<QName,Object> ctx = withParameters.getFirst();
return ctx.containsKey(name);
}
if (i != null)
{
while (i.hasNext())
{
- Map ctx = (Map) i.next();
+ Map<QName,Object> ctx = i.next();
if (ctx.containsKey(name))
{
return true;
@@ -180,11 +180,11 @@ public class Bindings
{
if (global)
{
- Map ctx = (Map) variables.getLast();
+ Map<QName,Object> ctx = variables.getLast();
Object ret = ctx.get(name);
if (ret == null)
{
- ctx = (Map) parameters.getLast();
+ ctx = parameters.getLast();
ret = ctx.get(name);
}
return ret;
@@ -195,24 +195,26 @@ public class Bindings
//if (parameters.size() > 1 && containsKey(name, PARAM))
// check that template defines parameter
{
- Map cwp = (Map) withParameters.getFirst();
+ Map<QName,Object> cwp = withParameters.getFirst();
ret = cwp.get(name);
//System.err.println("\twith-param: ret="+ret);
}
if (ret == null)
{
- for (Iterator i = variables.iterator(); i.hasNext() && ret == null; )
+ for (Iterator<Map<QName,Object>> i = variables.iterator();
+ i.hasNext() && ret == null; )
{
- Map vctx = (Map) i.next();
+ Map<QName,Object> vctx = i.next();
ret = vctx.get(name);
}
//System.err.println("\tvariable: ret="+ret);
}
if (ret == null)
{
- for (Iterator i = parameters.iterator(); i.hasNext() && ret == null; )
+ for (Iterator<Map<QName,Object>> i = parameters.iterator();
+ i.hasNext() && ret == null; )
{
- Map pctx = (Map) i.next();
+ Map<QName,Object> pctx = i.next();
ret = pctx.get(name);
}
//System.err.println("\tparam: ret="+ret);
@@ -239,15 +241,15 @@ public class Bindings
switch (type)
{
case VARIABLE:
- Map vctx = (Map) variables.getFirst();
+ Map<QName,Object> vctx = variables.getFirst();
vctx.put(name, value);
break;
case PARAM:
- Map pctx = (Map) parameters.getFirst();
+ Map<QName,Object> pctx = parameters.getFirst();
pctx.put(name, value);
break;
case WITH_PARAM:
- Map wctx = (Map) withParameters.getFirst();
+ Map<QName,Object> wctx = withParameters.getFirst();
wctx.put(name, value);
break;
}
@@ -263,10 +265,10 @@ public class Bindings
{
CPStringBuilder buf = new CPStringBuilder();
boolean next = false;
- Collection seen = new HashSet();
- Map wctx = (Map) withParameters.getFirst();
+ Collection<QName> seen = new HashSet<QName>();
+ Map<QName,Object> wctx = withParameters.getFirst();
buf.append('(');
- for (Iterator i = wctx.entrySet().iterator(); i.hasNext(); )
+ for (Map.Entry<QName,Object> entry : wctx.entrySet())
{
if (next)
{
@@ -276,8 +278,7 @@ public class Bindings
{
next = true;
}
- Map.Entry entry = (Map.Entry) i.next();
- Object key = entry.getKey();
+ QName key = entry.getKey();
if (!seen.contains(key))
{
buf.append(key);
@@ -290,10 +291,9 @@ public class Bindings
next = false;
seen.clear();
buf.append('{');
- for (Iterator i = variables.iterator(); i.hasNext(); )
+ for (Map<QName,Object> ctx : variables)
{
- Map ctx = (Map) i.next();
- for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )
+ for (Map.Entry<QName,Object> entry : ctx.entrySet())
{
if (next)
{
@@ -303,8 +303,7 @@ public class Bindings
{
next = true;
}
- Map.Entry entry = (Map.Entry) j.next();
- Object key = entry.getKey();
+ QName key = entry.getKey();
if (!seen.contains(key))
{
buf.append(key);
@@ -318,10 +317,9 @@ public class Bindings
next = false;
seen.clear();
buf.append('[');
- for (Iterator i = parameters.iterator(); i.hasNext(); )
+ for (Map<QName,Object> ctx : parameters)
{
- Map ctx = (Map) i.next();
- for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )
+ for (Map.Entry<QName,Object> entry : ctx.entrySet())
{
if (next)
{
@@ -331,8 +329,7 @@ public class Bindings
{
next = true;
}
- Map.Entry entry = (Map.Entry) j.next();
- Object key = entry.getKey();
+ QName key = entry.getKey();
if (!seen.contains(key))
{
buf.append(key);
diff --git a/libjava/classpath/java/lang/String.java b/libjava/classpath/java/lang/String.java
index 95c88399d3c..c8c6cb9627a 100644
--- a/libjava/classpath/java/lang/String.java
+++ b/libjava/classpath/java/lang/String.java
@@ -337,9 +337,59 @@ public final class String
* @throws Error if the decoding fails
* @since 1.1
*/
- public String(byte[] data, int offset, int count, String encoding)
+ public String(byte[] data, int offset, int count, final String encoding)
throws UnsupportedEncodingException
{
+ this(data, offset, count, stringToCharset(encoding));
+ }
+
+ /**
+ * Wrapper method to convert exceptions resulting from
+ * the selection of a {@link java.nio.charset.Charset} based on
+ * a String.
+ *
+ * @throws UnsupportedEncodingException if encoding is not found
+ */
+ private static final Charset stringToCharset(final String encoding)
+ throws UnsupportedEncodingException
+ {
+ try
+ {
+ return Charset.forName(encoding);
+ }
+ catch(IllegalCharsetNameException e)
+ {
+ throw new UnsupportedEncodingException("Encoding: "+encoding+
+ " not found.");
+ }
+ catch(UnsupportedCharsetException e)
+ {
+ throw new UnsupportedEncodingException("Encoding: "+encoding+
+ " not found.");
+ }
+ }
+
+ /**
+ * Creates a new String using the portion of the byte array starting at the
+ * offset and ending at offset + count. Uses the specified encoding type
+ * to decode the byte array, so the resulting string may be longer or
+ * shorter than the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. Malformed input and unmappable
+ * character sequences are replaced with the default replacement string
+ * provided by the {@link java.nio.charset.Charset}.
+ *
+ * @param data byte array to copy
+ * @param offset the offset to start at
+ * @param count the number of bytes in the array to use
+ * @param encoding the encoding to use
+ * @throws NullPointerException if data or encoding is null
+ * @throws IndexOutOfBoundsException if offset or count is incorrect
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @since 1.6
+ */
+ public String(byte[] data, int offset, int count, Charset encoding)
+ {
if (offset < 0)
throw new StringIndexOutOfBoundsException("offset: " + offset);
if (count < 0)
@@ -350,7 +400,7 @@ public final class String
+ (offset + count));
try
{
- CharsetDecoder csd = Charset.forName(encoding).newDecoder();
+ CharsetDecoder csd = encoding.newDecoder();
csd.onMalformedInput(CodingErrorAction.REPLACE);
csd.onUnmappableCharacter(CodingErrorAction.REPLACE);
CharBuffer cbuf = csd.decode(ByteBuffer.wrap(data, offset, count));
@@ -366,16 +416,12 @@ public final class String
this.offset = 0;
this.count = value.length;
}
- } catch(CharacterCodingException e){
- throw new UnsupportedEncodingException("Encoding: "+encoding+
- " not found.");
- } catch(IllegalCharsetNameException e){
- throw new UnsupportedEncodingException("Encoding: "+encoding+
- " not found.");
- } catch(UnsupportedCharsetException e){
- throw new UnsupportedEncodingException("Encoding: "+encoding+
- " not found.");
- }
+ }
+ catch(CharacterCodingException e)
+ {
+ // This shouldn't ever happen.
+ throw (InternalError) new InternalError().initCause(e);
+ }
}
/**
@@ -402,6 +448,26 @@ public final class String
}
/**
+ * Creates a new String using the byte array. Uses the specified encoding
+ * type to decode the byte array, so the resulting string may be longer or
+ * shorter than the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. Malformed input and unmappable
+ * character sequences are replaced with the default replacement string
+ * provided by the {@link java.nio.charset.Charset}.
+ *
+ * @param data byte array to copy
+ * @param encoding the name of the encoding to use
+ * @throws NullPointerException if data or encoding is null
+ * @see #String(byte[], int, int, java.nio.Charset)
+ * @since 1.6
+ */
+ public String(byte[] data, Charset encoding)
+ {
+ this(data, 0, data.length, encoding);
+ }
+
+ /**
* Creates a new String using the portion of the byte array starting at the
* offset and ending at offset + count. Uses the encoding of the platform's
* default charset, so the resulting string may be longer or shorter than
@@ -726,11 +792,30 @@ public final class String
* @throws UnsupportedEncodingException if encoding is not supported
* @since 1.1
*/
- public byte[] getBytes(String enc) throws UnsupportedEncodingException
+ public byte[] getBytes(final String enc)
+ throws UnsupportedEncodingException
+ {
+ return getBytes(stringToCharset(enc));
+ }
+
+ /**
+ * Converts the Unicode characters in this String to a byte array. Uses the
+ * specified encoding method, so the result may be longer or shorter than
+ * the String. For more encoding control, use
+ * {@link java.nio.charset.CharsetEncoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. Unsupported characters get
+ * replaced by the {@link java.nio.charset.Charset}'s default replacement.
+ *
+ * @param enc encoding name
+ * @return the resulting byte array
+ * @throws NullPointerException if enc is null
+ * @since 1.6
+ */
+ public byte[] getBytes(Charset enc)
{
try
{
- CharsetEncoder cse = Charset.forName(enc).newEncoder();
+ CharsetEncoder cse = enc.newEncoder();
cse.onMalformedInput(CodingErrorAction.REPLACE);
cse.onUnmappableCharacter(CodingErrorAction.REPLACE);
ByteBuffer bbuf = cse.encode(CharBuffer.wrap(value, offset, count));
@@ -742,16 +827,6 @@ public final class String
bbuf.get(bytes);
return bytes;
}
- catch(IllegalCharsetNameException e)
- {
- throw new UnsupportedEncodingException("Encoding: " + enc
- + " not found.");
- }
- catch(UnsupportedCharsetException e)
- {
- throw new UnsupportedEncodingException("Encoding: " + enc
- + " not found.");
- }
catch(CharacterCodingException e)
{
// This shouldn't ever happen.
diff --git a/libjava/classpath/java/text/MessageFormat.java b/libjava/classpath/java/text/MessageFormat.java
index c5579bff1f0..700b187fefd 100644
--- a/libjava/classpath/java/text/MessageFormat.java
+++ b/libjava/classpath/java/text/MessageFormat.java
@@ -38,13 +38,17 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.text.FormatCharacterIterator;
import java.io.InvalidObjectException;
+
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
-import java.util.Vector;
public class MessageFormat extends Format
{
@@ -69,7 +73,7 @@ public class MessageFormat extends Format
// Argument will be checked to make sure it is an instance of this
// class.
- Class formatClass;
+ Class<?> formatClass;
// Formatter type.
String type;
@@ -95,12 +99,7 @@ public class MessageFormat extends Format
else if (style.equals("percent"))
format = NumberFormat.getPercentInstance(loc);
else if (style.equals("integer"))
- {
- NumberFormat nf = NumberFormat.getNumberInstance(loc);
- nf.setMaximumFractionDigits(0);
- nf.setGroupingUsed(false);
- format = nf;
- }
+ format = NumberFormat.getIntegerInstance(loc);
else
{
format = NumberFormat.getNumberInstance(loc);
@@ -165,6 +164,7 @@ public class MessageFormat extends Format
public static final MessageFormat.Field ARGUMENT = new MessageFormat.Field("argument");
// For deserialization
+ @SuppressWarnings("unused")
private Field()
{
super("");
@@ -194,7 +194,7 @@ public class MessageFormat extends Format
// Helper that returns the text up to the next format opener. The
// text is put into BUFFER. Returns index of character after end of
// string. Throws IllegalArgumentException on error.
- private static int scanString(String pat, int index, StringBuilder buffer)
+ private static int scanString(String pat, int index, CPStringBuilder buffer)
{
int max = pat.length();
buffer.setLength(0);
@@ -234,7 +234,7 @@ public class MessageFormat extends Format
// This helper retrieves a single part of a format element. Returns
// the index of the terminating character.
private static int scanFormatElement(String pat, int index,
- StringBuilder buffer, char term)
+ CPStringBuilder buffer, char term)
{
int max = pat.length();
buffer.setLength(0);
@@ -281,11 +281,11 @@ public class MessageFormat extends Format
// This is used to parse a format element and whatever non-format
// text might trail it.
- private static int scanFormat(String pat, int index, StringBuilder buffer,
- Vector elts, Locale locale)
+ private static int scanFormat(String pat, int index, CPStringBuilder buffer,
+ List<MessageFormatElement> elts, Locale locale)
{
MessageFormatElement mfe = new MessageFormatElement ();
- elts.addElement(mfe);
+ elts.add(mfe);
int max = pat.length();
@@ -342,17 +342,16 @@ public class MessageFormat extends Format
{
pattern = newPattern;
- StringBuilder tempBuffer = new StringBuilder ();
+ CPStringBuilder tempBuffer = new CPStringBuilder ();
int index = scanString (newPattern, 0, tempBuffer);
leader = tempBuffer.toString();
- Vector elts = new Vector ();
+ List<MessageFormatElement> elts = new ArrayList<MessageFormatElement>();
while (index < newPattern.length())
index = scanFormat (newPattern, index, tempBuffer, elts, locale);
- elements = new MessageFormatElement[elts.size()];
- elts.copyInto(elements);
+ elements = elts.toArray(new MessageFormatElement[elts.size()]);
}
/**
@@ -494,7 +493,8 @@ public class MessageFormat extends Format
if (output_iterator != null)
{
- HashMap hash_argument = new HashMap();
+ HashMap<MessageFormat.Field, Integer> hash_argument =
+ new HashMap<MessageFormat.Field, Integer>();
int position = output_iterator.getEndIndex();
hash_argument.put (MessageFormat.Field.ARGUMENT,
@@ -613,7 +613,7 @@ public class MessageFormat extends Format
}
index += leader.length();
- Vector results = new Vector (elements.length, 1);
+ ArrayList<Object> results = new ArrayList<Object>(elements.length);
// Now check each format.
for (int i = 0; i < elements.length; ++i)
{
@@ -681,15 +681,18 @@ public class MessageFormat extends Format
}
if (elements[i].argNumber >= results.size())
- results.setSize(elements[i].argNumber + 1);
- results.setElementAt(value, elements[i].argNumber);
+ {
+ // Emulate padding behaviour of Vector.setSize() with ArrayList
+ results.ensureCapacity(elements[i].argNumber + 1);
+ for (int a = results.size(); a <= elements[i].argNumber; ++a)
+ results.add(a, null);
+ }
+ results.set(elements[i].argNumber, value);
index += elements[i].trailer.length();
}
- Object[] r = new Object[results.size()];
- results.copyInto(r);
- return r;
+ return results.toArray(new Object[results.size()]);
}
public Object[] parse (String sourceStr) throws ParseException
diff --git a/libjava/classpath/java/text/NumberFormat.java b/libjava/classpath/java/text/NumberFormat.java
index 0a436d00439..294f8917c14 100644
--- a/libjava/classpath/java/text/NumberFormat.java
+++ b/libjava/classpath/java/text/NumberFormat.java
@@ -177,6 +177,7 @@ public abstract class NumberFormat extends Format implements Cloneable
* This constructor is only used by the deserializer. Without it,
* it would fail to construct a valid object.
*/
+ @SuppressWarnings("unused")
private Field()
{
super("");
diff --git a/libjava/classpath/java/text/RuleBasedCollator.java b/libjava/classpath/java/text/RuleBasedCollator.java
index fdd1446cc0c..b761039ad80 100644
--- a/libjava/classpath/java/text/RuleBasedCollator.java
+++ b/libjava/classpath/java/text/RuleBasedCollator.java
@@ -151,13 +151,13 @@ public class RuleBasedCollator extends Collator
*/
static final class CollationElement
{
- String key;
- int primary;
- short secondary;
- short tertiary;
- short equality;
- boolean ignore;
- String expansion;
+ final String key;
+ final int primary;
+ final short secondary;
+ final short tertiary;
+ final short equality;
+ final boolean ignore;
+ final String expansion;
CollationElement(String key, int primary, short secondary, short tertiary,
short equality, String expansion, boolean ignore)
@@ -185,7 +185,7 @@ public class RuleBasedCollator extends Collator
* {@link #mergeRules(int,java.lang.String,java.util.ArrayList,java.util.ArrayList)})
* as a temporary state while merging two sets of instructions.
*/
- static final class CollationSorter
+ private static final class CollationSorter
{
static final int GREATERP = 0;
static final int GREATERS = 1;
@@ -194,29 +194,39 @@ public class RuleBasedCollator extends Collator
static final int RESET = 4;
static final int INVERSE_SECONDARY = 5;
- int comparisonType;
- String textElement;
- int hashText;
- int offset;
- boolean ignore;
+ final int comparisonType;
+ final String textElement;
+ final int hashText;
+ final int offset;
+ final boolean ignore;
String expansionOrdering;
+
+ private CollationSorter(final int comparisonType, final String textElement,
+ final int offset, final boolean ignore)
+ {
+ this.comparisonType = comparisonType;
+ this.textElement = textElement;
+ this.offset = offset;
+ this.ignore = ignore;
+ hashText = textElement.hashCode();
+ }
}
/**
- * This the the original rule string.
+ * This is the original rule string.
*/
private String rules;
/**
* This is the table of collation element values
*/
- private Object[] ce_table;
+ private CollationElement[] ce_table;
/**
* Quick-prefix finder.
*/
- HashMap prefix_tree;
+ HashMap<String,CollationElement> prefix_tree;
/**
* This is the value of the last sequence entered into
@@ -306,7 +316,8 @@ public class RuleBasedCollator extends Collator
* @param patch Rules to be merged into the repository.
* @throws ParseException if it is impossible to find an anchor point for the new rules.
*/
- private void mergeRules(int offset, String starter, ArrayList main, ArrayList patch)
+ private void mergeRules(int offset, String starter, ArrayList<CollationSorter> main,
+ ArrayList<CollationSorter> patch)
throws ParseException
{
int insertion_point = -1;
@@ -324,8 +335,8 @@ public class RuleBasedCollator extends Collator
while (j < main.size())
{
- CollationSorter rule1 = (CollationSorter) patch.get(i);
- CollationSorter rule2 = (CollationSorter) main.get(j);
+ CollationSorter rule1 = patch.get(i);
+ CollationSorter rule2 = main.get(j);
if (rule1.textElement.equals(rule2.textElement))
main.remove(j);
@@ -337,7 +348,7 @@ public class RuleBasedCollator extends Collator
// Find the insertion point... O(N)
for (int i = 0; i < main.size(); i++)
{
- CollationSorter sorter = (CollationSorter) main.get(i);
+ CollationSorter sorter = main.get(i);
int length = findPrefixLength(starter, sorter.textElement);
if (length > max_length)
@@ -363,9 +374,7 @@ public class RuleBasedCollator extends Collator
* sequence. The rest of the subsequence must be appended
* to the end of the sequence.
*/
- CollationSorter sorter = (CollationSorter) patch.get(0);
- CollationSorter expansionPrefix =
- (CollationSorter) main.get(insertion_point-1);
+ CollationSorter sorter = patch.get(0);
sorter.expansionOrdering = starter.substring(max_length); // Skip the first good prefix element
@@ -398,7 +407,7 @@ public class RuleBasedCollator extends Collator
* @throws ParseException if something turned wrong during the parsing. To get details
* decode the message.
*/
- private int subParseString(boolean stop_on_reset, ArrayList v,
+ private int subParseString(boolean stop_on_reset, ArrayList<CollationSorter> v,
int base_offset, String rules)
throws ParseException
{
@@ -508,7 +517,7 @@ main_parse_loop:
* indicated by the text element.
*/
String subrules = rules.substring(i);
- ArrayList sorted_rules = new ArrayList();
+ ArrayList<CollationSorter> sorted_rules = new ArrayList<CollationSorter>();
int idx;
// Parse the subrules but do not iterate through all
@@ -533,16 +542,12 @@ main_parse_loop:
break main_parse_loop;
}
- CollationSorter sorter = new CollationSorter();
-
+ String textElement = sb.toString();
if (operator == CollationSorter.GREATERP)
ignoreChars = false;
-
- sorter.comparisonType = operator;
- sorter.textElement = sb.toString();
- sorter.hashText = sorter.textElement.hashCode();
- sorter.offset = base_offset+rules.length();
- sorter.ignore = ignoreChars;
+ CollationSorter sorter = new CollationSorter(operator, textElement,
+ base_offset + rules.length(),
+ ignoreChars);
sb.setLength(0);
v.add(sorter);
@@ -551,7 +556,6 @@ main_parse_loop:
if (operator >= 0)
{
- CollationSorter sorter = new CollationSorter();
int pos = rules.length() + base_offset;
if ((sb.length() != 0 && nextIsModifier)
@@ -561,11 +565,8 @@ main_parse_loop:
if (operator == CollationSorter.GREATERP)
ignoreChars = false;
- sorter.comparisonType = operator;
- sorter.textElement = sb.toString();
- sorter.hashText = sorter.textElement.hashCode();
- sorter.offset = base_offset+pos;
- sorter.ignore = ignoreChars;
+ CollationSorter sorter = new CollationSorter(operator, sb.toString(),
+ base_offset+pos, ignoreChars);
v.add(sorter);
}
@@ -593,10 +594,10 @@ main_parse_loop:
* @throws ParseException if something turned wrong during the parsing. To get details
* decode the message.
*/
- private ArrayList parseString(String rules)
+ private ArrayList<CollationSorter> parseString(String rules)
throws ParseException
{
- ArrayList v = new ArrayList();
+ ArrayList<CollationSorter> v = new ArrayList<CollationSorter>();
// result of the first subParseString is not absolute (may be -1 or a
// positive integer). But we do not care.
@@ -612,7 +613,7 @@ main_parse_loop:
* @param parsedElements Parsed instructions stored in a ArrayList.
* @throws ParseException if the order of the instructions are not valid.
*/
- private void buildCollationVector(ArrayList parsedElements)
+ private void buildCollationVector(ArrayList<CollationSorter> parsedElements)
throws ParseException
{
int primary_seq = 0;
@@ -624,14 +625,13 @@ main_parse_loop:
final boolean DECREASING = false;
final boolean INCREASING = true;
boolean secondaryType = INCREASING;
- ArrayList v = new ArrayList();
+ ArrayList<CollationElement> v = new ArrayList<CollationElement>();
// elts is completely sorted.
element_loop:
for (int i = 0; i < parsedElements.size(); i++)
{
- CollationSorter elt = (CollationSorter) parsedElements.get(i);
- boolean ignoreChar = false;
+ CollationSorter elt = parsedElements.get(i);
switch (elt.comparisonType)
{
@@ -686,7 +686,7 @@ element_loop:
this.inverseAccentComparison = inverseComparisons;
- ce_table = v.toArray();
+ ce_table = v.toArray(new CollationElement[v.size()]);
last_primary_value = primary_seq+1;
last_tertiary_value = last_tertiary_seq+1;
@@ -699,11 +699,11 @@ element_loop:
*/
private void buildPrefixAccess()
{
- prefix_tree = new HashMap();
+ prefix_tree = new HashMap<String,CollationElement>();
for (int i = 0; i < ce_table.length; i++)
{
- CollationElement e = (CollationElement) ce_table[i];
+ CollationElement e = ce_table[i];
prefix_tree.put(e.key, e);
}
@@ -941,7 +941,7 @@ element_loop:
public CollationKey getCollationKey(String source)
{
CollationElementIterator cei = getCollationElementIterator(source);
- ArrayList vect = new ArrayList();
+ ArrayList<Integer> vect = new ArrayList<Integer>();
int ord = cei.next();
cei.reset(); //set to start of string
@@ -969,16 +969,16 @@ element_loop:
break;
}
- vect.add(new Integer(ord));
+ vect.add(Integer.valueOf(ord));
ord = cei.next(); //increment to next key
}
- Object[] objarr = vect.toArray();
+ Integer[] objarr = vect.toArray(new Integer[vect.size()]);
byte[] key = new byte[objarr.length * 4];
for (int i = 0; i < objarr.length; i++)
{
- int j = ((Integer) objarr[i]).intValue();
+ int j = objarr[i].intValue();
key [i * 4] = (byte) ((j & 0xFF000000) >> 24);
key [i * 4 + 1] = (byte) ((j & 0x00FF0000) >> 16);
key [i * 4 + 2] = (byte) ((j & 0x0000FF00) >> 8);
diff --git a/libjava/classpath/java/text/SimpleDateFormat.java b/libjava/classpath/java/text/SimpleDateFormat.java
index 4dcda4f487c..b09c7caa28d 100644
--- a/libjava/classpath/java/text/SimpleDateFormat.java
+++ b/libjava/classpath/java/text/SimpleDateFormat.java
@@ -159,13 +159,13 @@ public class SimpleDateFormat extends DateFormat
}
/**
- * A list of <code>CompiledField</code>s,
+ * A list of <code>CompiledField</code>s and {@code String}s
* representing the compiled version of the pattern.
*
* @see CompiledField
* @serial Ignored.
*/
- private transient ArrayList tokens;
+ private transient ArrayList<Object> tokens;
/**
* The localised data used in formatting,
@@ -235,8 +235,8 @@ public class SimpleDateFormat extends DateFormat
*/
private static final long serialVersionUID = 4774881970558875024L;
- // This string is specified in the Java class libraries.
- private static final String standardChars = "GyMdkHmsSEDFwWahKzZ";
+ // This string is specified in the root of the CLDR.
+ private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZvcL";
/**
* Represents the position of the RFC822 timezone pattern character
@@ -244,7 +244,7 @@ public class SimpleDateFormat extends DateFormat
* U.S. locale, this is 'Z'. The value is the offset of the current
* time from GMT e.g. -0500 would be five hours prior to GMT.
*/
- private static final int RFC822_TIMEZONE_FIELD = 18;
+ private static final int RFC822_TIMEZONE_FIELD = 23;
/**
* Reads the serialized version of this object.
@@ -274,7 +274,7 @@ public class SimpleDateFormat extends DateFormat
set2DigitYearStart(defaultCenturyStart);
// Set up items normally taken care of by the constructor.
- tokens = new ArrayList();
+ tokens = new ArrayList<Object>();
try
{
compileFormat(pattern);
@@ -416,7 +416,7 @@ public class SimpleDateFormat extends DateFormat
Locale locale = Locale.getDefault();
calendar = new GregorianCalendar(locale);
computeCenturyStart();
- tokens = new ArrayList();
+ tokens = new ArrayList<Object>();
formatData = new DateFormatSymbols(locale);
pattern = (formatData.dateFormats[DEFAULT] + ' '
+ formatData.timeFormats[DEFAULT]);
@@ -454,7 +454,7 @@ public class SimpleDateFormat extends DateFormat
super();
calendar = new GregorianCalendar(locale);
computeCenturyStart();
- tokens = new ArrayList();
+ tokens = new ArrayList<Object>();
formatData = new DateFormatSymbols(locale);
compileFormat(pattern);
this.pattern = pattern;
@@ -479,7 +479,7 @@ public class SimpleDateFormat extends DateFormat
super();
calendar = new GregorianCalendar();
computeCenturyStart ();
- tokens = new ArrayList();
+ tokens = new ArrayList<Object>();
if (formatData == null)
throw new NullPointerException("formatData");
this.formatData = formatData;
@@ -524,7 +524,7 @@ public class SimpleDateFormat extends DateFormat
*/
public void applyPattern(String pattern)
{
- tokens = new ArrayList();
+ tokens.clear();
compileFormat(pattern);
this.pattern = pattern;
}
@@ -697,11 +697,10 @@ public class SimpleDateFormat extends DateFormat
private void formatWithAttribute(Date date, FormatBuffer buffer, FieldPosition pos)
{
String temp;
- AttributedCharacterIterator.Attribute attribute;
calendar.setTime(date);
// go through vector, filling in fields where applicable, else toString
- Iterator iter = tokens.iterator();
+ Iterator<Object> iter = tokens.iterator();
while (iter.hasNext())
{
Object o = iter.next();
@@ -910,7 +909,6 @@ public class SimpleDateFormat extends DateFormat
char ch = pattern.charAt(fmt_index);
if (ch == '\'')
{
- int index = pos.getIndex();
if (fmt_index < fmt_max - 1
&& pattern.charAt(fmt_index + 1) == '\'')
{
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
index 3ca96423bc2..265d5981e13 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleData.class b/libjava/classpath/lib/gnu/java/locale/LocaleData.class
index 64d83fd1a9d..ccee011a495 100644
--- a/libjava/classpath/lib/gnu/java/locale/LocaleData.class
+++ b/libjava/classpath/lib/gnu/java/locale/LocaleData.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class
index d66c81e6fd3..4d88b02ae11 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/Bindings.class b/libjava/classpath/lib/gnu/xml/transform/Bindings.class
index c27e72ca97f..0bee21d17dc 100644
--- a/libjava/classpath/lib/gnu/xml/transform/Bindings.class
+++ b/libjava/classpath/lib/gnu/xml/transform/Bindings.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/MessageFormat$Field.class b/libjava/classpath/lib/java/text/MessageFormat$Field.class
index fe145c1fb03..9d3230341b6 100644
--- a/libjava/classpath/lib/java/text/MessageFormat$Field.class
+++ b/libjava/classpath/lib/java/text/MessageFormat$Field.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class b/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class
index 48b67d14e7d..95c77cf2753 100644
--- a/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class
+++ b/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class
index 04e2c624714..5ad2834305c 100644
--- a/libjava/classpath/lib/java/text/MessageFormat.class
+++ b/libjava/classpath/lib/java/text/MessageFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/NumberFormat$Field.class b/libjava/classpath/lib/java/text/NumberFormat$Field.class
index 3f43075427f..4a926d3fa84 100644
--- a/libjava/classpath/lib/java/text/NumberFormat$Field.class
+++ b/libjava/classpath/lib/java/text/NumberFormat$Field.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/NumberFormat.class b/libjava/classpath/lib/java/text/NumberFormat.class
index 0a1939e8829..e1072aa8ed9 100644
--- a/libjava/classpath/lib/java/text/NumberFormat.class
+++ b/libjava/classpath/lib/java/text/NumberFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class
index 6a46c8d25de..1fc3fb1b6e8 100644
--- a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class
+++ b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class
index f70f2a9b234..81c75c1ded7 100644
--- a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class
+++ b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator.class b/libjava/classpath/lib/java/text/RuleBasedCollator.class
index 60a86ed90c0..ad2dc1b2ff9 100644
--- a/libjava/classpath/lib/java/text/RuleBasedCollator.class
+++ b/libjava/classpath/lib/java/text/RuleBasedCollator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class
index 0feab9a4467..1bca569ab66 100644
--- a/libjava/classpath/lib/java/text/SimpleDateFormat.class
+++ b/libjava/classpath/lib/java/text/SimpleDateFormat.class
Binary files differ
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
index 951b74558f2..cb7bf43dcb4 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
@@ -176,9 +176,6 @@ Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning
{
FT_Face ft_face;
FT_Vector kern;
- jclass cls;
- jmethodID method;
- jvalue values[2];
PangoFcFont *font;
font = JLONG_TO_PTR(PangoFcFont, fnt);
@@ -388,8 +385,23 @@ Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative
}
FT_Get_Glyph( ft_face->glyph, &glyph );
- FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
- &ftCallbacks, path);
+ if (glyph->format == FT_GLYPH_FORMAT_OUTLINE)
+ {
+ FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
+ &ftCallbacks, path);
+ }
+ else
+ {
+ char format[5];
+
+ format[0] = (glyph->format & 0xFF000000) >> 24;
+ format[1] = (glyph->format & 0x00FF0000) >> 16;
+ format[2] = (glyph->format & 0x0000FF00) >> 8;
+ format[3] = (glyph->format & 0x000000FF);
+ format[4] = '\0';
+ printf("WARNING: Unable to create outline for font %s %s of format %s\n",
+ ft_face->family_name, ft_face->style_name, format);
+ }
FT_Done_Glyph( glyph );
pango_fc_font_unlock_face( font );
diff --git a/libjava/configure b/libjava/configure
index f2d0c9dd562..ec7dc2c02ff 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -11219,44 +11219,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -11836,12 +11842,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -11884,7 +11895,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -11894,8 +11905,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -12890,7 +12905,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12893 "configure"
+#line 12908 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12986,7 +13001,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12989 "configure"
+#line 13004 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15012,11 +15027,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15015: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15030: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15019: \$? = $ac_status" >&5
+ echo "$as_me:15034: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15111,11 +15126,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15114: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15129: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15118: \$? = $ac_status" >&5
+ echo "$as_me:15133: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15163,11 +15178,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15166: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15181: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15170: \$? = $ac_status" >&5
+ echo "$as_me:15185: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15275,44 +15290,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_CXX=no
- else
- archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ then
+ lt_cv_archive_cmds_need_lc_CXX=no
+ else
+ lt_cv_archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_CXX" >&6
+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
;;
esac
fi
@@ -15747,12 +15768,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -15795,7 +15821,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -15805,8 +15831,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -16565,11 +16595,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16568: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16598: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16572: \$? = $ac_status" >&5
+ echo "$as_me:16602: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16898,11 +16928,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16901: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16931: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16905: \$? = $ac_status" >&5
+ echo "$as_me:16935: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16997,11 +17027,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17000: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17030: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:17004: \$? = $ac_status" >&5
+ echo "$as_me:17034: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17049,11 +17079,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17052: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17082: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:17056: \$? = $ac_status" >&5
+ echo "$as_me:17086: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -18218,44 +18248,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_GCJ+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_GCJ
- pic_flag=$lt_prog_compiler_pic_GCJ
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
- allow_undefined_flag_GCJ=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_GCJ
+ pic_flag=$lt_prog_compiler_pic_GCJ
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+ allow_undefined_flag_GCJ=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_GCJ 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_GCJ=no
- else
- archive_cmds_need_lc_GCJ=yes
- fi
- allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+ then
+ lt_cv_archive_cmds_need_lc_GCJ=no
+ else
+ lt_cv_archive_cmds_need_lc_GCJ=yes
+ fi
+ allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_GCJ" >&6
+ archive_cmds_need_lc_GCJ=$lt_cv_archive_cmds_need_lc_GCJ
;;
esac
fi
@@ -18739,7 +18775,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 18742 "configure"
+#line 18778 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -20867,6 +20903,9 @@ else
USING_NO_THREADS_FALSE=
fi
+if test "$enable_shared" != yes; then
+ use_libgcj_bc=no
+fi
if test "$use_libgcj_bc" = yes; then
@@ -20888,7 +20927,7 @@ if test -d sysdep; then true; else mkdir sysdep; fi
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
- LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
+ LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
fi
@@ -27876,7 +27915,13 @@ fi;
*) have_unwind_getipinfo=yes ;;
esac
else
- have_unwind_getipinfo=yes
+ # Darwin before version 9 does not have _Unwind_GetIPInfo.
+
+ case ${target} in
+ *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+
fi
if test x$have_unwind_getipinfo = xyes; then
diff --git a/libjava/configure.ac b/libjava/configure.ac
index 6844057beac..91adc20facb 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -1046,6 +1046,9 @@ AC_SUBST(THREADCXXFLAGS)
AM_CONDITIONAL(USING_POSIX_THREADS, test "$THREADS" = posix)
AM_CONDITIONAL(USING_WIN32_THREADS, test "$THREADS" = win32)
AM_CONDITIONAL(USING_NO_THREADS, test "$THREADS" = none)
+if test "$enable_shared" != yes; then
+ use_libgcj_bc=no
+fi
AM_CONDITIONAL(USE_LIBGCJ_BC, test "$use_libgcj_bc" = yes)
if test -d sysdep; then true; else mkdir sysdep; fi
@@ -1055,7 +1058,7 @@ AC_CONFIG_LINKS(sysdep/descriptor.h:$descriptor_h)
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
- LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
+ LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
fi
AC_SUBST(LIBGCJ_SPEC)
diff --git a/libjava/ecjx.cc b/libjava/ecjx.cc
new file mode 100644
index 00000000000..4fa662b6ba0
--- /dev/null
+++ b/libjava/ecjx.cc
@@ -0,0 +1 @@
+// Dummy
diff --git a/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
index f782b9cbd61..3f7a629449e 100644
--- a/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
+++ b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
@@ -70,7 +70,7 @@ private:
public:
virtual void getGlyphs(JArray< jint > *, JArray< jint > *, JArray< jlong > *);
private:
- ::java::awt::geom::Point2D * getKerning(jint, jint, jlong);
+ void getKerning(jint, jint, jlong, JArray< jfloat > *);
JArray< jdouble > * getMetricsNative(jint, jlong);
::java::awt::geom::GeneralPath * getGlyphOutlineNative(jint, jlong);
public:
diff --git a/libjava/java/text/MessageFormat.h b/libjava/java/text/MessageFormat.h
index 01c6c359fea..961b0954146 100644
--- a/libjava/java/text/MessageFormat.h
+++ b/libjava/java/text/MessageFormat.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace text
{
class FormatCharacterIterator;
@@ -38,9 +42,9 @@ extern "Java"
class java::text::MessageFormat : public ::java::text::Format
{
- static jint scanString(::java::lang::String *, jint, ::java::lang::StringBuilder *);
- static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuilder *, jchar);
- static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuilder *, ::java::util::Vector *, ::java::util::Locale *);
+ static jint scanString(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *);
+ static jint scanFormatElement(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *, jchar);
+ static jint scanFormat(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *, ::java::util::List *, ::java::util::Locale *);
public:
virtual void applyPattern(::java::lang::String *);
virtual ::java::lang::Object * clone();
diff --git a/libjava/java/text/RuleBasedCollator$CollationSorter.h b/libjava/java/text/RuleBasedCollator$CollationSorter.h
index 4436ec955bc..fb3d18895e4 100644
--- a/libjava/java/text/RuleBasedCollator$CollationSorter.h
+++ b/libjava/java/text/RuleBasedCollator$CollationSorter.h
@@ -21,8 +21,9 @@ extern "Java"
class java::text::RuleBasedCollator$CollationSorter : public ::java::lang::Object
{
+ RuleBasedCollator$CollationSorter(jint, ::java::lang::String *, jint, jboolean);
public: // actually package-private
- RuleBasedCollator$CollationSorter();
+ RuleBasedCollator$CollationSorter(jint, ::java::lang::String *, jint, jboolean, ::java::text::RuleBasedCollator$CollationSorter *);
static const jint GREATERP = 0;
static const jint GREATERS = 1;
static const jint GREATERT = 2;
diff --git a/libjava/java/text/RuleBasedCollator.h b/libjava/java/text/RuleBasedCollator.h
index 06803c8514a..74b5aa8ea39 100644
--- a/libjava/java/text/RuleBasedCollator.h
+++ b/libjava/java/text/RuleBasedCollator.h
@@ -54,7 +54,7 @@ public:
virtual jint hashCode();
private:
::java::lang::String * __attribute__((aligned(__alignof__( ::java::text::Collator)))) rules;
- JArray< ::java::lang::Object * > * ce_table;
+ JArray< ::java::text::RuleBasedCollator$CollationElement * > * ce_table;
public: // actually package-private
::java::util::HashMap * prefix_tree;
private:
diff --git a/libjava/java/text/SimpleDateFormat.h b/libjava/java/text/SimpleDateFormat.h
index 3e8a5d0597e..dbdb8169f23 100644
--- a/libjava/java/text/SimpleDateFormat.h
+++ b/libjava/java/text/SimpleDateFormat.h
@@ -80,7 +80,7 @@ private:
jint serialVersionOnStream;
static const jlong serialVersionUID = 4774881970558875024LL;
static ::java::lang::String * standardChars;
- static const jint RFC822_TIMEZONE_FIELD = 18;
+ static const jint RFC822_TIMEZONE_FIELD = 23;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/sun/misc/natUnsafe.cc b/libjava/sun/misc/natUnsafe.cc
index cc57dd59889..0bd2d21eac5 100644
--- a/libjava/sun/misc/natUnsafe.cc
+++ b/libjava/sun/misc/natUnsafe.cc
@@ -1,6 +1,6 @@
// natUnsafe.cc - Implementation of sun.misc.Unsafe native methods.
-/* Copyright (C) 2006
+/* Copyright (C) 2006, 2007
Free Software Foundation
This file is part of libgcj.
@@ -32,7 +32,7 @@ public:
spinlock ()
{
while (! compare_and_swap (&lock, 0, 1))
- ;
+ _Jv_ThreadYield ();
}
~spinlock ()
{
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index c75648e22d3..25dcdf9730e 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-11-26 Janis Johnson <janis187@us.ibm.com>
PR testsuite/28870
diff --git a/libmudflap/configure b/libmudflap/configure
index a5fcb644466..ad10a2c238d 100755
--- a/libmudflap/configure
+++ b/libmudflap/configure
@@ -9897,44 +9897,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -10514,12 +10520,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat >conftest.$ac_ext <<_ACEOF
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -10557,7 +10568,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -10567,8 +10578,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -11528,7 +11543,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11531 "configure"
+#line 11546 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11624,7 +11639,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11627 "configure"
+#line 11642 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index a3330eefdcd..3187a4945f0 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-11-21 Kai Tietz <kai.tietz@onevision.com>
* Object.m (errno): Replaced by errno.h include.
diff --git a/libobjc/configure b/libobjc/configure
index 55dbe791ac3..ee538a5b48f 100755
--- a/libobjc/configure
+++ b/libobjc/configure
@@ -8482,44 +8482,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -9099,12 +9105,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -9147,7 +9158,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9157,8 +9168,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -10153,7 +10168,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10156 "configure"
+#line 10171 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10249,7 +10264,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10252 "configure"
+#line 10267 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11125,7 +11140,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 11128 "configure"
+#line 11143 "configure"
@interface Frob
@end
@implementation Frob
diff --git a/libssp/ChangeLog b/libssp/ChangeLog
index 3d0a02a46b7..89fcee49a3f 100644
--- a/libssp/ChangeLog
+++ b/libssp/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Steve Ellcey <sje@cup.hp.com>
diff --git a/libssp/configure b/libssp/configure
index 3675976bdec..01089b7d011 100755
--- a/libssp/configure
+++ b/libssp/configure
@@ -8898,44 +8898,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -9515,12 +9521,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -9563,7 +9574,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9573,8 +9584,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -10569,7 +10584,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10572 "configure"
+#line 10587 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10665,7 +10680,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10668 "configure"
+#line 10683 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ed969fac669..bbcb81416db 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,346 @@
+2009-01-15 Chris Fairles <cfairles@gcc.gnu.org>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ * acinclude.m4 ([GLIBCXX_ENABLE_CLOCK_GETTIME],
+ [GLIBCXX_CHECK_NANOSLEEP]): Remove.
+ ([GLIBCXX_ENABLE_LIBSTDCXX_TIME]): Add.
+ * configure.ac: Adjust.
+ * doc/xml/manual/configure.xml: Update.
+ * testsuite/lib/libstdc++.exp (check_v3_target_sched_yield): Add.
+ * testsuite/lib/dg-options.exp (dg-require-sched-yield): Add.
+ * testsuite/30_threads/thread/this_thread/2.cc: Use the latter.
+ * configure: Regenerate.
+ * config.h.in: Likewise.
+
+ * src/thread.cc (thread::thread(), thread::~thread, thread::get_id,
+ thread::joinable, thread::swap, this_thread::get_id,
+ this_thread::yield): Define inline...
+ * include/std/thread: ... here.
+ * config/abi/pre/gnu.ver: Adjust.
+
+2009-01-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * testsuite/ext/pb_ds/regression/hash_data_map_rand.cc:
+ Add dg-timeout-factor 2.0.
+ * testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Ditto.
+ * testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Ditto.
+ * testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Ditto.
+ * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Ditto.
+ * testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Ditto.
+ * testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Ditto.
+
+2009-01-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * scripts/extract_symvers: Add sed script to remove ' [<other>: xx] '
+ field from readelf output.
+
+2009-01-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/38384
+ * crossconfig.m4 (hpux): Update for 10.20, 11, 11.20.
+ * configure: Regenerate.
+
+2009-01-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ * crossconfig.m4 (linux): Add GCC_CHECK_TLS to define
+ _GLIBCXX_HAVE_TLS.
+ Use GLIBCXX_CHECK_COMPILER_FEATURES to compute SECTION_FLAGS.
+
+2009-01-11 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/tr1_impl/regex (basic_regex::basic_regex): Use range
+ constructor for _M_pattern.
+ * testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/
+ string.cc: Test construction from different basic_string type.
+ * testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/
+ string.cc: Likewise.
+
+2009-01-07 Benjamin Kosnik <bkoz@redhat.com>
+ Jonathan Larmour <jifl@eCosCentric.com>
+
+ PR libstdc++/36801
+ * config/cpu/generic/atomicity_mutex/atomicity.h (get_atomic_mutex):
+ New.
+ (__gnu_cxx::__exchange_and_add): Use it.
+ * src/atomic.cc (get_atomic_mutex): New.
+ * src/debug.cc (get_safe_base_mutex): New.
+ * src/locale.cc (get_locale_cache_mutex): New.
+ * src/mt_allocator.cc (get_freelist): New.
+ (get_freelist_mutex): New.
+ * src/pool_allocator.cc (get_palloc_mutex): New.
+ * include/std/mutex (__once_functor_lock): To
+ (__get_once_functor_lock): ...this.
+ * src/mutex.cc (__once_mutex): Don't export, use
+ (get_once_mutex): ...this.
+ * config/abi/pre/gnu.ver: Adjust exports.
+
+2009-01-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/38732
+ * libsupc++/unwind-cxx.h (__cxxabiv1::__cxa_exception): Remove
+ referenceCount field again.
+ (__cxxabiv1::__cxa_refcounted_exception): New struct.
+ (__cxxabiv1::__get_refcounted_exception_header_from_obj,
+ __cxxabiv1::__get_refcounted_exception_header_from_ue): New static
+ inline functions.
+ * libsupc++/eh_alloc.cc (__cxxabiv1::__cxa_allocate_exception,
+ __cxxabiv1::__cxa_free_exception): Use __cxa_refcounted_exception
+ instead of __cxa_exception.
+ * libsupc++/eh_throw.cc (__gxx_exception_cleanup,
+ __cxxabiv1::__cxa_throw): Likewise.
+ * libsupc++/eh_ptr.cc (std::rethrow_exception,
+ std::__exception_ptr::exception_ptr::_M_addref,
+ std::__exception_ptr::exception_ptr::_M_release,
+ __gxx_dependent_exception_cleanup): Likewise.
+ * testsuite/18_support/exception/38732.cc: New test.
+
+ PR libstdc++/38092
+ * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New test.
+ * src/compatibility.cc: Don't use .symver directives if
+ _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE is not defined.
+ * config.h.in: Regenerated.
+ * configure: Likewise.
+
+2009-01-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/38466
+ * include/bits/stl_pair.h: Document C++03 pair vs swap.
+
+2009-01-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/locale_init.cc (locale::_S_initialize_once): Move construction
+ of classic locale...
+ (locale::classic): Here.
+
+2009-01-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/tr1_impl/regex: Fix bad return statements and typos.
+
+2009-01-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/tr1_impl/regex: Remove unimplemented function definitions.
+ * testsuite/28_regex/init-list.cc: Compile only.
+ * testsuite/tr1/7_regular_expressions/regex/cons/char/
+ c_string_extended.cc: Same.
+ * testsuite/tr1/7_regular_expressions/basic_regex/assign/*: Same.
+ * testsuite/tr1/7_regular_expressions/basic_regex/ctors/*: Same.
+
+2009-01-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/38384
+ * crossconfig.m4: Define HAVE_FABSF for hpux crosses.
+ * configure: Regenerate.
+
+2009-01-05 Ben Elliston <bje@au.ibm.com>
+
+ * configure.ac (GLIBCXX_CHECK_STANDARD_LAYOUT): Remove invocation.
+ * configure: Regenerate.
+
+2009-01-05 Ben Elliston <bje@au.ibm.com>
+
+ * configure.ac: Exchange the order of GLIBCXX_ENABLE_THREADS and
+ GLIBCXX_ENABLE_ATOMIC_BUILTINS macro invocations.
+ * configure: Regenerate.
+
+2009-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR libstdc++/38720
+ * include/ext/pointer.h (_Relative_pointer_impl): Use an unsigned
+ integer type for storage, arithmetic and comparisons.
+ * testsuite/ext/ext_pointer/1_neg.cc: Adjust line numbers.
+
+2009-01-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/38719
+ * include/bits/forward_list.h (_Fwd_list_iterator<>::_M_next,
+ _Fwd_list_const_iterator::_M_next): Fix return type.
+
+2009-01-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * Revert last commit, reopen and suspend libstdc++/38678.
+
+2009-01-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/38678
+ * include/std/istream (basic_istream<>::_M_read): New.
+ * include/bits/istream.tcc (basic_istream<>::_M_read): Define.
+ (basic_istream<>::read, basic_istream<>::readsome): Use it.
+ * include/std/ostream (basic_ostream<>::_M_write_): New.
+ (basic_ostream<>::_M_write): Adjust.
+ * include/bits/ostream.tcc (basic_ostream<>::_M_write_): Define.
+ * testsuite/27_io/basic_istream/read/char/38678.cc: New.
+ * testsuite/27_io/basic_istream/read/wchar_t/38678.cc: Likewise.
+ * testsuite/27_io/basic_ostream/write/char/38678.cc: Likewise.
+ * testsuite/27_io/basic_ostream/write/wchar_t/38678.cc: Likewise.
+
+2008-12-22 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/ext/concurrence.h: Fix __gthread_cond_t initialisation
+ function macro name.
+
+2008-12-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * doc/doxygen/stdheader.cc: Add cstdlib.
+ * doc/doxygen/user.cfg.in: Regenerate for doxygen 1.5.7.
+
+2008-12-21 Andrew Pinski <pinskia@gmail.com>
+
+ PR target/38300
+ * configure: Regenerate.
+
+2008-12-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/38596
+ * include/tr1_impl/functional (function<>::target,
+ function<>::target_type): Provide only when __GXX_RTTI is defined.
+ (_Function_base::_M_manager, _Ref_manager<>::_M_manager,
+ _Function_handler<void(_ArgTypes...), _Member _Class::*>::_M_manager):
+ Adjust.
+
+2008-12-19 Ben Elliston <bje@au.ibm.com>
+
+ * acinclude.m4: Guard a variable test against an empty string.
+ * configure: Regenerate.
+
+2008-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
+ Add xfail on all targets except darwin.
+ * libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/
+ 1674.cc: Same.
+ * libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc: Correct syntax
+ for xfailing on all targets except linux.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
+ Don't xfail test on darwin8 or later.
+
+2008-12-16 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
+ Don't xfail excessive errors on darwin8 or later.
+
+2008-12-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/c_global/cstdatomic: Remove assert include.
+ * include/debug/debug.h: Consolidate __replacement_assert...
+ * include/parallel/base.h: Consolidate __replacement_assert...
+ * include/bits/c++config: ...here.
+ * include/bits/atomic_0.h: Use it.
+ * include/bits/atomic_2.h: Same.
+ * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
+ * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
+
+2008-12-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/atomic.cc: Revert last change.
+ * include/bits/atomic_2.h: Move cassert include to...
+ * include/c_global/cstdatomic: ...here.
+ * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
+ * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
+
+2008-12-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/Makefile.am: Remove -x c++ for atomic build rules.
+ * src/Makefile.in: Regenerate.
+ * src/atomic.cc: Move mutex include before cstdatomic.
+
+2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR libstdc++/37144
+ * testsuite/util/regression/trait/assoc/type_trait.hpp
+ (regression_test_type_traits): Add const to pair_type_rebind.
+
+2008-12-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/atomic.cc: Correct guards to match mutex.cc.
+
+2008-12-11 Benjamin Kosnik <bkoz@redhat.com>
+ Richard Henderson <rth@redhat.com>
+
+ * include/c_global/cstdatomic: Update to N2798.
+ (atomic): Remove explicit constructors as per DR 845.
+ * include/bits/atomic_0.h: New. Switchable implementation.
+ * include/bits/atomic_2.h: New. Lock-free implementation.
+ * include/c_compatibility/stdatomic.h: Use foward headers.
+ * include/bits/atomicfwd_cxx.h: New.
+ * include/bits/atomicfwd_c.h: New.
+ * src/atomic.cc: Adjust.
+ * acinclude.m4 (GLIBCXX_CHECK_STANDARD_LAYOUT): Remove,
+ unconditionally use default/deleted syntax.
+ (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Check for 2, 8.
+ * include/Makefile.am (bits_headers): Add atomicfwd_c.h,
+ atomicfwd_cxx.h, atomic_0.h, atomic_2.h.
+ * include/Makefile.in: Regenerate.
+ * configure: Regenerate.
+ * config.h.in: Regenerate.
+ * config/abi/pre/gnu.ver: Adjust exports.
+
+ * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc: Adjust.
+ * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc: Same.
+ * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc: Same.
+ * testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same.
+ * testsuite/29_atomics/atomic_address/cons/explicit_value.cc: Move to..
+ * testsuite/29_atomics/atomic_address/cons/single_value.cc: ...this.
+ * testsuite/29_atomics/atomic_address/cons/copy_neg.cc
+ * testsuite/29_atomics/atomic_integral/cons/single_value.cc: New.
+ * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: New.
+ * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: New.
+ * testsuite/29_atomics/atomic_integral/cons/default.cc: New.
+ * testsuite/29_atomics/atomic_integral/cons/direct_list.cc: New.
+ * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
+ * testsuite/29_atomics/atomic_integral/requirements/
+ standard_layout.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/
+ integral_assignment.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/increment.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/decrement.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/bitwise.cc: New.
+ * testsuite/29_atomics/atomic_integral/operators/
+ integral_conversion.cc: New.
+ * testsuite/29_atomics/atomic_flag/cons/assign_neg.cc: Adjust.
+ * testsuite/29_atomics/atomic_flag/cons/copy_neg.cc: Same.
+ * testsuite/29_atomics/atomic_flag/requirements/
+ standard_layout.cc: Same.
+ * testsuite/29_atomics/atomic_flag/
+ atomic_global_fence_compatibility.cc: Kill.
+ * testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc: Adjust.
+ * testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc: Same.
+ * testsuite/29_atomics/headers/cstdatomic/macros.cc: Same.
+ * testsuite/29_atomics/headers/stdatomic.h/macros.c: Same.
+ * testsuite/29_atomics/headers/stdatomic.h/types.c: Same.
+ * testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
+ * testsuite/29_atomics/atomic/cons/explicit_value.cc: Move to...
+ * testsuite/29_atomics/atomic/cons/single_value.cc: ...this.
+ * testsuite/29_atomics/atomic/cons/copy_neg.cc
+ * testsuite/29_atomics/atomic/cons/direct_list.cc: New.
+ * testsuite/29_atomics/atomic/cons/copy_list.cc: New.
+ * testsuite/29_atomics/atomic/requirements/standard_layout.cc: New.
+ * testsuite/29_atomics/atomic/requirements/base_classes.cc: New.
+ * testsuite/29_atomics/atomic/operators/integral_assignment.cc: New.
+ * testsuite/29_atomics/atomic/operators/integral_conversion.cc: New.
+ * testsuite/util/testsuite_hooks.h (bitmask_operators): Move...
+ * testsuite/util/testsuite_common_types.h: ...here.
+ (atomic_integrals_no_bool): New.
+ (atomic_integrals): New.
+ (has_increment_operators, has_decrement_operators)
+ (direct_list_initializable, single_value_constructible)
+ (standard_layout, has_bitwise_operators, integral_convertable)
+ (integral_assignable): Add.
+
+2008-12-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37582
+ * testsuite/26_numerics/headers/cmath/37582.cc: New.
+
2008-12-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1_impl/cmath: Undef remquof / remquol too; add using
@@ -3225,10 +3568,10 @@
2008-05-07 Johannes Singler <singler@ira.uka.de>
- * include/parallel/quicksort.h:
- (parallel_sort_qs_conquer) Explicitly request number of threads
- in the parallel clause.
- (parallel_sort_qs) Remove setting the number of threads globally.
+ * include/parallel/quicksort.h:
+ (parallel_sort_qs_conquer) Explicitly request number of threads
+ in the parallel clause.
+ (parallel_sort_qs) Remove setting the number of threads globally.
2008-05-06 Benjamin Kosnik <bkoz@redhat.com>
@@ -3864,14 +4207,14 @@
2008-03-16 Pedro Lamarão <pedro.lamarao@gmail.com>
- * testsuite/31_date_time/headers/date_time/types_std.cc: New.
- * testsuite/31_date_time/headers/date_time/std_c++0x_neg.cc: Likewise.
- * testsuite/31_date_time/headers/date_time/functions_std.cc: Likewise.
- * testsuite/31_date_time/headers/date_time/synopsis.cc: Likewise.
- * testsuite/31_date_time/nanoseconds/requirements/traits.cc: Likewise.
- * testsuite/31_date_time/nanoseconds/requirements/duration.cc: Likewise.
- * testsuite/31_date_time/system_time/requirements: Likewise.
- * testsuite/31_date_time/system_time/requirements/traits.cc: Likewise.
+ * testsuite/31_date_time/headers/date_time/types_std.cc: New.
+ * testsuite/31_date_time/headers/date_time/std_c++0x_neg.cc: Likewise.
+ * testsuite/31_date_time/headers/date_time/functions_std.cc: Likewise.
+ * testsuite/31_date_time/headers/date_time/synopsis.cc: Likewise.
+ * testsuite/31_date_time/nanoseconds/requirements/traits.cc: Likewise.
+ * testsuite/31_date_time/nanoseconds/requirements/duration.cc: Likewise.
+ * testsuite/31_date_time/system_time/requirements: Likewise.
+ * testsuite/31_date_time/system_time/requirements/traits.cc: Likewise.
2008-03-16 Paolo Carlini <pcarlini@suse.de>
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index f4a83460aa9..4dd2b2b109b 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -1074,26 +1074,28 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
dnl
-dnl Check for clock_gettime clocks, used in the implementation of 20.8.5
-dnl [time.clock] in the current C++0x working draft.
-dnl
-dnl --enable-clock-gettime
-dnl --enable-clock-gettime=yes
-dnl checks for the availability of monotonic and realtime clocks
-dnl in libc and libposix4 and in case links the latter
-dnl --enable-clock-gettime=rt
+dnl Check for clock_gettime, nanosleep and sched_yield, used in the
+dnl implementation of 20.8.5 [time.clock], and 30.2.2 [thread.thread.this]
+dnl in the current C++0x working draft.
+dnl
+dnl --enable-libstdcxx-time
+dnl --enable-libstdcxx-time=yes
+dnl checks for the availability of monotonic and realtime clocks,
+dnl nanosleep and sched_yield in libc and libposix4 and, in case, links
+dnl the latter
+dnl --enable-libstdcxx-time=rt
dnl also searches (and, in case, links) librt. Note that this is
dnl not always desirable because, in glibc, for example, in turn it
dnl triggers the linking of libpthread too, which activates locking,
dnl a large overhead for single-thread programs.
-dnl --enable-clock-gettime=no
-dnl --disable-clock-gettime
+dnl --enable-libstdcxx-time=no
+dnl --disable-libstdcxx-time
dnl disables the checks completely
dnl
-AC_DEFUN([GLIBCXX_ENABLE_CLOCK_GETTIME], [
+AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [
- AC_MSG_CHECKING([for clock_gettime clocks])
- GLIBCXX_ENABLE(clock-gettime,$1,[=KIND],
+ AC_MSG_CHECKING([for clock_gettime, nanosleep and sched_yield])
+ GLIBCXX_ENABLE(libstdcxx-time,$1,[=KIND],
[use KIND for check type],
[permit yes|no|rt])
@@ -1103,19 +1105,47 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCK_GETTIME], [
CXXFLAGS="$CXXFLAGS -fno-exceptions"
ac_save_LIBS="$LIBS"
- ac_has_clock_monotonic=no;
+ ac_has_clock_monotonic=no;
ac_has_clock_realtime=no;
- if test x"$enable_clock_gettime" != x"no"; then
+ if test x"$enable_libstdcxx_time" != x"no"; then
- if test x"$enable_clock_gettime" = x"rt"; then
+ if test x"$enable_libstdcxx_time" = x"rt"; then
AC_SEARCH_LIBS(clock_gettime, [rt posix4])
+ AC_SEARCH_LIBS(nanosleep, [rt posix4])
else
AC_SEARCH_LIBS(clock_gettime, [posix4])
+ AC_SEARCH_LIBS(nanosleep, [posix4])
fi
case "$ac_cv_search_clock_gettime" in
-l*) GLIBCXX_LIBS=$ac_cv_search_clock_gettime
+ ;;
+ esac
+ case "$ac_cv_search_nanosleep" in
+ -l*) GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_nanosleep"
+ ;;
+ esac
+
+ AC_SEARCH_LIBS(sched_yield, [rt posix4])
+
+ case "$ac_cv_search_sched_yield" in
+ -lposix4*)
+ GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_sched_yield"
+ AC_DEFINE(_GLIBCXX_USE_SCHED_YIELD, 1,
+ [ Defined if sched_yield is available. ])
+ ;;
+ -lrt*)
+ if test x"$enable_libstdcxx_time" = x"rt"; then
+ GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_sched_yield"
+ AC_DEFINE(_GLIBCXX_USE_SCHED_YIELD, 1,
+ [ Defined if sched_yield is available. ])
+ fi
+ ;;
+ *)
+ AC_DEFINE(_GLIBCXX_USE_SCHED_YIELD, 1,
+ [ Defined if sched_yield is available. ])
+ ;;
esac
AC_CHECK_HEADERS(unistd.h, ac_has_unistd_h=yes, ac_has_unistd_h=no)
@@ -1146,8 +1176,20 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCK_GETTIME], [
], [ac_has_clock_realtime=yes], [ac_has_clock_realtime=no])
AC_MSG_RESULT($ac_has_clock_realtime)
- fi
+ AC_MSG_CHECKING([for nanosleep])
+ AC_TRY_LINK(
+ [#include <unistd.h>
+ #include <time.h>
+ ],
+ [#if _POSIX_TIMERS > 0
+ timespec tp;
+ #endif
+ nanosleep(&tp, 0);
+ ], [ac_has_nanosleep=yes], [ac_has_nanosleep=no])
+
+ AC_MSG_RESULT($ac_has_nanosleep)
+ fi
fi
if test x"$ac_has_clock_monotonic" = x"yes"; then
@@ -1160,6 +1202,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCK_GETTIME], [
[ Defined if clock_gettime has realtime clock support. ])
fi
+ if test x"$ac_has_nanosleep" = x"yes"; then
+ AC_DEFINE(_GLIBCXX_USE_NANOSLEEP, 1,
+ [ Defined if nanosleep is available. ])
+ fi
+
AC_SUBST(GLIBCXX_LIBS)
CXXFLAGS="$ac_save_CXXFLAGS"
@@ -1201,39 +1248,6 @@ AC_DEFUN([GLIBCXX_CHECK_GETTIMEOFDAY], [
])
dnl
-dnl Check for nanosleep, used in the implementation of 30.2.2
-dnl [thread.thread.this] in the current C++0x working draft.
-dnl
-AC_DEFUN([GLIBCXX_CHECK_NANOSLEEP], [
-
- AC_MSG_CHECKING([for nanosleep])
-
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
-
- ac_has_nanosleep=no;
- AC_CHECK_HEADERS(time.h, ac_has_time_h=yes, ac_has_time_h=no)
- if test x"$ac_has_time_h" = x"yes"; then
- AC_MSG_CHECKING([for nanosleep])
- AC_TRY_COMPILE([#include <time.h>],
- [timespec ts; nanosleep(&ts, 0);],
- [ac_has_nanosleep=yes], [ac_has_nanosleep=no])
-
- AC_MSG_RESULT($ac_has_nanosleep)
- fi
-
- if test x"$ac_has_nanosleep" = x"yes"; then
- AC_DEFINE(_GLIBCXX_USE_NANOSLEEP, 1,
- [ Defined if nanosleep is available. ])
- fi
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
-])
-
-dnl
dnl Check for ISO/IEC 9899:1999 "C99" support to ISO/IEC DTR 19768 "TR1"
dnl facilities in Chapter 8, "C compatibility".
dnl
@@ -1677,41 +1691,6 @@ m4_popdef([n_syserr])dnl
])
dnl
-dnl Check whether C++200x's standard layout types are supported.
-dnl
-AC_DEFUN([GLIBCXX_CHECK_STANDARD_LAYOUT], [
-
- AC_MSG_CHECKING([for ISO C++200x standard layout type support])
- AC_CACHE_VAL(ac_standard_layout, [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-std=gnu++0x'
-
- AC_TRY_COMPILE([struct b
- {
- bool t;
-
- // Need standard layout relaxation from POD
- private:
- b& operator=(const b&);
- b(const b&);
- };],
- [b tst1 = { false };],
- [ac_standard_layout=yes], [ac_standard_layout=no])
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- AC_MSG_RESULT($ac_standard_layout)
- if test x"$ac_standard_layout" = x"yes"; then
- AC_DEFINE(_GLIBCXX_USE_STANDARD_LAYOUT, 1,
- [Define if standard layout types are supported in C++200x.])
- fi
-])
-
-dnl
dnl Check for what type of C headers to use.
dnl
dnl --enable-cheaders= [does stuff].
@@ -2456,7 +2435,9 @@ dnl see: CHECK_SYNC_FETCH_AND_ADD
dnl
dnl Defines:
dnl _GLIBCXX_ATOMIC_BUILTINS_1
+dnl _GLIBCXX_ATOMIC_BUILTINS_2
dnl _GLIBCXX_ATOMIC_BUILTINS_4
+dnl _GLIBCXX_ATOMIC_BUILTINS_8
dnl
AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [
AC_LANG_SAVE
@@ -2473,6 +2454,66 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [
[#]line __oline__ "configure"
int main()
{
+ typedef bool atomic_type;
+ atomic_type c1;
+ atomic_type c2;
+ const atomic_type c3(0);
+ __sync_fetch_and_add(&c1, c2);
+ __sync_val_compare_and_swap(&c1, c3, c2);
+ __sync_lock_test_and_set(&c1, c3);
+ __sync_lock_release(&c1);
+ __sync_synchronize();
+ return 0;
+}
+EOF
+
+ AC_MSG_CHECKING([for atomic builtins for bool])
+ if AC_TRY_EVAL(ac_compile); then
+ if grep __sync_ conftest.s >/dev/null 2>&1 ; then
+ enable_atomic_builtinsb=no
+ else
+ AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS_1, 1,
+ [Define if builtin atomic operations for bool are supported on this host.])
+ enable_atomic_builtinsb=yes
+ fi
+ fi
+ AC_MSG_RESULT($enable_atomic_builtinsb)
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+[#]line __oline__ "configure"
+int main()
+{
+ typedef short atomic_type;
+ atomic_type c1;
+ atomic_type c2;
+ const atomic_type c3(0);
+ __sync_fetch_and_add(&c1, c2);
+ __sync_val_compare_and_swap(&c1, c3, c2);
+ __sync_lock_test_and_set(&c1, c3);
+ __sync_lock_release(&c1);
+ __sync_synchronize();
+ return 0;
+}
+EOF
+
+ AC_MSG_CHECKING([for atomic builtins for short])
+ if AC_TRY_EVAL(ac_compile); then
+ if grep __sync_ conftest.s >/dev/null 2>&1 ; then
+ enable_atomic_builtinss=no
+ else
+ AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS_2, 1,
+ [Define if builtin atomic operations for short are supported on this host.])
+ enable_atomic_builtinss=yes
+ fi
+ fi
+ AC_MSG_RESULT($enable_atomic_builtinss)
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+[#]line __oline__ "configure"
+int main()
+{
// NB: _Atomic_word not necessarily int.
typedef int atomic_type;
atomic_type c1;
@@ -2504,7 +2545,7 @@ EOF
[#]line __oline__ "configure"
int main()
{
- typedef bool atomic_type;
+ typedef long long atomic_type;
atomic_type c1;
atomic_type c2;
const atomic_type c3(0);
@@ -2517,19 +2558,20 @@ int main()
}
EOF
- AC_MSG_CHECKING([for atomic builtins for bool])
+ AC_MSG_CHECKING([for atomic builtins for long long])
if AC_TRY_EVAL(ac_compile); then
if grep __sync_ conftest.s >/dev/null 2>&1 ; then
- enable_atomic_builtinsb=no
+ enable_atomic_builtinsll=no
else
- AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS_1, 1,
- [Define if builtin atomic operations for bool are supported on this host.])
- enable_atomic_builtinsb=yes
+ AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS_8, 1,
+ [Define if builtin atomic operations for long long are supported on this host.])
+ enable_atomic_builtinsll=yes
fi
fi
- AC_MSG_RESULT($enable_atomic_builtinsb)
+ AC_MSG_RESULT($enable_atomic_builtinsll)
rm -f conftest*
+
CXXFLAGS="$old_CXXFLAGS"
AC_LANG_RESTORE
@@ -2542,7 +2584,7 @@ EOF
if test $atomicity_dir = "cpu/generic" ; then
atomicity_dir=cpu/generic/atomicity_mutex
AC_MSG_WARN([No native atomic operations are provided for this platform.])
- if test $target_thread_file = single; then
+ if test "x$target_thread_file" = xsingle; then
AC_MSG_WARN([They cannot be faked when thread support is disabled.])
AC_MSG_WARN([Thread-safety of certain classes is not guaranteed.])
else
@@ -2791,6 +2833,16 @@ if test x$enable_symvers != xno ; then
[Define to use symbol versioning in the shared library.])
fi
+AC_CACHE_CHECK([whether the target supports .symver directive],
+ glibcxx_cv_have_as_symver_directive, [
+ AC_TRY_COMPILE([void foo (void); __asm (".symver foo, bar@SYMVER");],
+ [], glibcxx_cv_have_as_symver_directive=yes,
+ glibcxx_cv_have_as_symver_directive=no)])
+if test $glibcxx_cv_have_as_symver_directive = yes; then
+ AC_DEFINE(HAVE_AS_SYMVER_DIRECTIVE, 1,
+ [Define to 1 if the target assembler supports .symver directive.])
+fi
+
AC_SUBST(SYMVER_FILE)
AC_SUBST(port_specific_symbol_files)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS, test $enable_symvers != no)
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index 0cf3518b639..10246a0a1c3 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -12,6 +12,9 @@
/* Define to 1 if you have the `asinl' function. */
#undef HAVE_ASINL
+/* Define to 1 if the target assembler supports .symver directive. */
+#undef HAVE_AS_SYMVER_DIRECTIVE
+
/* Define to 1 if you have the `atan2f' function. */
#undef HAVE_ATAN2F
@@ -412,9 +415,6 @@
/* Define to 1 if you have the <tgmath.h> header file. */
#undef HAVE_TGMATH_H
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
/* Define to 1 if the target supports thread-local storage. */
#undef HAVE_TLS
@@ -692,9 +692,17 @@
/* Define if builtin atomic operations for bool are supported on this host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_1
+/* Define if builtin atomic operations for short are supported on this host.
+ */
+#undef _GLIBCXX_ATOMIC_BUILTINS_2
+
/* Define if builtin atomic operations for int are supported on this host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_4
+/* Define if builtin atomic operations for long long are supported on this
+ host. */
+#undef _GLIBCXX_ATOMIC_BUILTINS_8
+
/* Define to use concept checking code from the boost libraries. */
#undef _GLIBCXX_CONCEPT_CHECKS
@@ -804,8 +812,8 @@
of TR1 (Chapter 5.1). */
#undef _GLIBCXX_USE_RANDOM_TR1
-/* Define if standard layout types are supported in C++200x. */
-#undef _GLIBCXX_USE_STANDARD_LAYOUT
+/* Defined if sched_yield is available. */
+#undef _GLIBCXX_USE_SCHED_YIELD
/* Define if code specialized for wchar_t should be used. */
#undef _GLIBCXX_USE_WCHAR_T
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 04262bae32c..887ea3f0c88 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1,6 +1,6 @@
## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
##
-## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
## Free Software Foundation, Inc.
##
## This file is part of the GNU ISO C++ Library. This library is free
@@ -866,13 +866,11 @@ GLIBCXX_3.4.11 {
# atomic
__atomic_flag_for_address;
__atomic_flag_wait_explicit;
- atomic_flag_clear;
atomic_flag_clear_explicit;
- atomic_flag_fence;
- atomic_flag_test_and_set;
atomic_flag_test_and_set_explicit;
- atomic_global_fence_compatibility;
-
+ _ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order;
+ _ZNVSt9__atomic011atomic_flag5clearESt12memory_order;
+
# mutex
_ZSt10adopt_lock;
_ZSt10defer_lock;
@@ -886,9 +884,7 @@ GLIBCXX_3.4.11 {
_ZSt11__once_call;
_ZSt15__once_callable;
_ZSt14__once_functor;
- _ZSt19__once_functor_lock;
- _ZSt11__once_lock;
- _ZSt12__once_mutex;
+ _ZSt23__get_once_functor_lockv;
__once_proxy;
# condition_variable
@@ -905,21 +901,12 @@ GLIBCXX_3.4.11 {
_ZNSt22condition_variable_anyD2Ev;
# thread
- _ZNKSt6thread6get_idEv;
- _ZNKSt6thread8joinableEv;
_ZNSt10shared_ptrISt18__thread_data_baseED1Ev;
- _ZNSt11this_thread5yieldEv;
- _ZNSt11this_thread6get_idEv;
_ZNSt12bad_weak_ptrD0Ev;
_ZNSt12bad_weak_ptrD1Ev;
_ZNSt6thread14__start_threadEv;
_ZNSt6thread4joinEv;
- _ZNSt6thread4swapEOS_;
_ZNSt6thread6detachEv;
- _ZNSt6threadC1Ev;
- _ZNSt6threadC2Ev;
- _ZNSt6threadD1Ev;
- _ZNSt6threadD2Ev;
# system_error
_ZSt15system_category;
diff --git a/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h b/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
index e9ee10c4b68..c2a9c3a8ab7 100644
--- a/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
+++ b/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: Generic version -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -37,7 +37,12 @@
namespace
{
- __gnu_cxx::__mutex atomic_mutex;
+ __gnu_cxx::__mutex&
+ get_atomic_mutex()
+ {
+ static __gnu_cxx::__mutex atomic_mutex;
+ return atomic_mutex;
+ }
} // anonymous namespace
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
@@ -46,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
- __gnu_cxx::__scoped_lock sentry(atomic_mutex);
+ __gnu_cxx::__scoped_lock sentry(get_atomic_mutex());
_Atomic_word __result;
__result = *__mem;
*__mem += __val;
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 23b050032d5..714b9b5abc8 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -1052,7 +1052,7 @@ Optional Features:
--enable-fully-dynamic-string
do not put empty strings in per-process static
memory [default=no]
- --enable-clock-gettime=KIND
+ --enable-libstdcxx-time=KIND
use KIND for check type [default=no]
--enable-tls Use thread-local storage [default=yes]
--disable-rpath do not hardcode runtime library paths
@@ -9557,44 +9557,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -10174,12 +10180,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -10222,7 +10233,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -10232,8 +10243,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -11228,7 +11243,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11231 "configure"
+#line 11246 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11324,7 +11339,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11327 "configure"
+#line 11342 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13350,11 +13365,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13353: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13368: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13357: \$? = $ac_status" >&5
+ echo "$as_me:13372: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13449,11 +13464,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13452: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13467: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13456: \$? = $ac_status" >&5
+ echo "$as_me:13471: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13501,11 +13516,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13504: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13519: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13508: \$? = $ac_status" >&5
+ echo "$as_me:13523: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13613,44 +13628,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc_CXX=no
- else
- archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ then
+ lt_cv_archive_cmds_need_lc_CXX=no
+ else
+ lt_cv_archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_CXX" >&6
+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
;;
esac
fi
@@ -14085,12 +14106,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -14133,7 +14159,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -14143,8 +14169,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -14563,7 +14593,7 @@ fi;
#
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
-#line 14566 "configure"
+#line 14596 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -14692,6 +14722,32 @@ echo "${ECHO_T}$enable_libstdcxx_pch" >&6
+ echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
+echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
+ target_thread_file=`$CXX -v 2>&1 | sed -n 's/^Thread model: //p'`
+ echo "$as_me:$LINENO: result: $target_thread_file" >&5
+echo "${ECHO_T}$target_thread_file" >&6
+
+ if test $target_thread_file != single; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GTHR_DEFAULT 1
+_ACEOF
+
+ fi
+
+ glibcxx_thread_h=gthr-$target_thread_file.h
+
+ gthread_file=${toplevel_srcdir}/gcc/${glibcxx_thread_h}
+ if grep __GTHREADS $gthread_file >/dev/null 2>&1 ; then
+ enable_thread=yes
+ else
+ enable_thread=no
+ fi
+
+
+
+
ac_ext=cc
@@ -14709,7 +14765,85 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for a builtins test.
cat > conftest.$ac_ext << EOF
-#line 14712 "configure"
+#line 14768 "configure"
+int main()
+{
+ typedef bool atomic_type;
+ atomic_type c1;
+ atomic_type c2;
+ const atomic_type c3(0);
+ __sync_fetch_and_add(&c1, c2);
+ __sync_val_compare_and_swap(&c1, c3, c2);
+ __sync_lock_test_and_set(&c1, c3);
+ __sync_lock_release(&c1);
+ __sync_synchronize();
+ return 0;
+}
+EOF
+
+ echo "$as_me:$LINENO: checking for atomic builtins for bool" >&5
+echo $ECHO_N "checking for atomic builtins for bool... $ECHO_C" >&6
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ if grep __sync_ conftest.s >/dev/null 2>&1 ; then
+ enable_atomic_builtinsb=no
+ else
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_ATOMIC_BUILTINS_1 1
+_ACEOF
+
+ enable_atomic_builtinsb=yes
+ fi
+ fi
+ echo "$as_me:$LINENO: result: $enable_atomic_builtinsb" >&5
+echo "${ECHO_T}$enable_atomic_builtinsb" >&6
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+#line 14807 "configure"
+int main()
+{
+ typedef short atomic_type;
+ atomic_type c1;
+ atomic_type c2;
+ const atomic_type c3(0);
+ __sync_fetch_and_add(&c1, c2);
+ __sync_val_compare_and_swap(&c1, c3, c2);
+ __sync_lock_test_and_set(&c1, c3);
+ __sync_lock_release(&c1);
+ __sync_synchronize();
+ return 0;
+}
+EOF
+
+ echo "$as_me:$LINENO: checking for atomic builtins for short" >&5
+echo $ECHO_N "checking for atomic builtins for short... $ECHO_C" >&6
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ if grep __sync_ conftest.s >/dev/null 2>&1 ; then
+ enable_atomic_builtinss=no
+ else
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_ATOMIC_BUILTINS_2 1
+_ACEOF
+
+ enable_atomic_builtinss=yes
+ fi
+ fi
+ echo "$as_me:$LINENO: result: $enable_atomic_builtinss" >&5
+echo "${ECHO_T}$enable_atomic_builtinss" >&6
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+#line 14846 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -14749,10 +14883,10 @@ echo "${ECHO_T}$enable_atomic_builtinsi" >&6
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 14752 "configure"
+#line 14886 "configure"
int main()
{
- typedef bool atomic_type;
+ typedef long long atomic_type;
atomic_type c1;
atomic_type c2;
const atomic_type c3(0);
@@ -14765,28 +14899,29 @@ int main()
}
EOF
- echo "$as_me:$LINENO: checking for atomic builtins for bool" >&5
-echo $ECHO_N "checking for atomic builtins for bool... $ECHO_C" >&6
+ echo "$as_me:$LINENO: checking for atomic builtins for long long" >&5
+echo $ECHO_N "checking for atomic builtins for long long... $ECHO_C" >&6
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
if grep __sync_ conftest.s >/dev/null 2>&1 ; then
- enable_atomic_builtinsb=no
+ enable_atomic_builtinsll=no
else
cat >>confdefs.h <<\_ACEOF
-#define _GLIBCXX_ATOMIC_BUILTINS_1 1
+#define _GLIBCXX_ATOMIC_BUILTINS_8 1
_ACEOF
- enable_atomic_builtinsb=yes
+ enable_atomic_builtinsll=yes
fi
fi
- echo "$as_me:$LINENO: result: $enable_atomic_builtinsb" >&5
-echo "${ECHO_T}$enable_atomic_builtinsb" >&6
+ echo "$as_me:$LINENO: result: $enable_atomic_builtinsll" >&5
+echo "${ECHO_T}$enable_atomic_builtinsll" >&6
rm -f conftest*
+
CXXFLAGS="$old_CXXFLAGS"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -14805,7 +14940,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
atomicity_dir=cpu/generic/atomicity_mutex
{ echo "$as_me:$LINENO: WARNING: No native atomic operations are provided for this platform." >&5
echo "$as_me: WARNING: No native atomic operations are provided for this platform." >&2;}
- if test $target_thread_file = single; then
+ if test "x$target_thread_file" = xsingle; then
{ echo "$as_me:$LINENO: WARNING: They cannot be faked when thread support is disabled." >&5
echo "$as_me: WARNING: They cannot be faked when thread support is disabled." >&2;}
{ echo "$as_me:$LINENO: WARNING: Thread-safety of certain classes is not guaranteed." >&5
@@ -14820,32 +14955,6 @@ echo "$as_me: WARNING: Performance of certain classes will degrade as a result."
- echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
-echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
- target_thread_file=`$CXX -v 2>&1 | sed -n 's/^Thread model: //p'`
- echo "$as_me:$LINENO: result: $target_thread_file" >&5
-echo "${ECHO_T}$target_thread_file" >&6
-
- if test $target_thread_file != single; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GTHR_DEFAULT 1
-_ACEOF
-
- fi
-
- glibcxx_thread_h=gthr-$target_thread_file.h
-
- gthread_file=${toplevel_srcdir}/gcc/${glibcxx_thread_h}
- if grep __GTHREADS $gthread_file >/dev/null 2>&1 ; then
- enable_thread=yes
- else
- enable_thread=no
- fi
-
-
-
-
# Checks for compiler support that doesn't require linking.
# All these tests are for C++; save the language and the compiler flags.
@@ -14940,100 +15049,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- echo "$as_me:$LINENO: checking for ISO C++200x standard layout type support" >&5
-echo $ECHO_N "checking for ISO C++200x standard layout type support... $ECHO_C" >&6
- if test "${ac_standard_layout+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
-
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-std=gnu++0x'
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-struct b
- {
- bool t;
-
- // Need standard layout relaxation from POD
- private:
- b& operator=(const b&);
- b(const b&);
- };
-int
-main ()
-{
-b tst1 = { false };
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_standard_layout=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_standard_layout=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-
- echo "$as_me:$LINENO: result: $ac_standard_layout" >&5
-echo "${ECHO_T}$ac_standard_layout" >&6
- if test x"$ac_standard_layout" = x"yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define _GLIBCXX_USE_STANDARD_LAYOUT 1
-_ACEOF
-
- fi
-
-
# Enable all the variable C++ runtime options that don't require linking.
echo "$as_me:$LINENO: checking for underlying I/O to use" >&5
@@ -21696,25 +21711,25 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# For clock_gettime support.
+# For clock_gettime, nanosleep and sched_yield support.
# NB: The default is [no], because otherwise it requires linking.
- echo "$as_me:$LINENO: checking for clock_gettime clocks" >&5
-echo $ECHO_N "checking for clock_gettime clocks... $ECHO_C" >&6
- # Check whether --enable-clock-gettime or --disable-clock-gettime was given.
-if test "${enable_clock_gettime+set}" = set; then
- enableval="$enable_clock_gettime"
+ echo "$as_me:$LINENO: checking for clock_gettime, nanosleep and sched_yield" >&5
+echo $ECHO_N "checking for clock_gettime, nanosleep and sched_yield... $ECHO_C" >&6
+ # Check whether --enable-libstdcxx-time or --disable-libstdcxx-time was given.
+if test "${enable_libstdcxx_time+set}" = set; then
+ enableval="$enable_libstdcxx_time"
case "$enableval" in
yes|no|rt) ;;
- *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clock-gettime" >&5
-echo "$as_me: error: Unknown argument to enable/disable clock-gettime" >&2;}
+ *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable libstdcxx-time" >&5
+echo "$as_me: error: Unknown argument to enable/disable libstdcxx-time" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
- enable_clock_gettime=no
+ enable_libstdcxx_time=no
fi;
@@ -21733,9 +21748,9 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_has_clock_monotonic=no;
ac_has_clock_realtime=no;
- if test x"$enable_clock_gettime" != x"no"; then
+ if test x"$enable_libstdcxx_time" != x"no"; then
- if test x"$enable_clock_gettime" = x"rt"; then
+ if test x"$enable_libstdcxx_time" = x"rt"; then
echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6
if test "${ac_cv_search_clock_gettime+set}" = set; then
@@ -21872,6 +21887,142 @@ if test "$ac_cv_search_clock_gettime" != no; then
fi
+ echo "$as_me:$LINENO: checking for library containing nanosleep" >&5
+echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6
+if test "${ac_cv_search_nanosleep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_nanosleep=no
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_nanosleep="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_nanosleep" = no; then
+ for ac_lib in rt posix4; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_nanosleep="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5
+echo "${ECHO_T}$ac_cv_search_nanosleep" >&6
+if test "$ac_cv_search_nanosleep" != no; then
+ test "$ac_cv_search_nanosleep" = "none required" || LIBS="$ac_cv_search_nanosleep $LIBS"
+
+fi
+
else
echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6
@@ -22009,10 +22160,316 @@ if test "$ac_cv_search_clock_gettime" != no; then
fi
+ echo "$as_me:$LINENO: checking for library containing nanosleep" >&5
+echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6
+if test "${ac_cv_search_nanosleep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_nanosleep=no
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_nanosleep="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_nanosleep" = no; then
+ for ac_lib in posix4; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_nanosleep="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5
+echo "${ECHO_T}$ac_cv_search_nanosleep" >&6
+if test "$ac_cv_search_nanosleep" != no; then
+ test "$ac_cv_search_nanosleep" = "none required" || LIBS="$ac_cv_search_nanosleep $LIBS"
+
+fi
+
fi
case "$ac_cv_search_clock_gettime" in
-l*) GLIBCXX_LIBS=$ac_cv_search_clock_gettime
+ ;;
+ esac
+ case "$ac_cv_search_nanosleep" in
+ -l*) GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_nanosleep"
+ ;;
+ esac
+
+ echo "$as_me:$LINENO: checking for library containing sched_yield" >&5
+echo $ECHO_N "checking for library containing sched_yield... $ECHO_C" >&6
+if test "${ac_cv_search_sched_yield+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_sched_yield=no
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char sched_yield ();
+int
+main ()
+{
+sched_yield ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_sched_yield="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_sched_yield" = no; then
+ for ac_lib in rt posix4; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char sched_yield ();
+int
+main ()
+{
+sched_yield ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_sched_yield="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_sched_yield" >&5
+echo "${ECHO_T}$ac_cv_search_sched_yield" >&6
+if test "$ac_cv_search_sched_yield" != no; then
+ test "$ac_cv_search_sched_yield" = "none required" || LIBS="$ac_cv_search_sched_yield $LIBS"
+
+fi
+
+
+ case "$ac_cv_search_sched_yield" in
+ -lposix4*)
+ GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_sched_yield"
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_USE_SCHED_YIELD 1
+_ACEOF
+
+ ;;
+ -lrt*)
+ if test x"$enable_libstdcxx_time" = x"rt"; then
+ GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_sched_yield"
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_USE_SCHED_YIELD 1
+_ACEOF
+
+ fi
+ ;;
+ *)
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_USE_SCHED_YIELD 1
+_ACEOF
+
+ ;;
esac
@@ -22294,8 +22751,70 @@ rm -f conftest.err conftest.$ac_objext \
echo "$as_me:$LINENO: result: $ac_has_clock_realtime" >&5
echo "${ECHO_T}$ac_has_clock_realtime" >&6
- fi
+ echo "$as_me:$LINENO: checking for nanosleep" >&5
+echo $ECHO_N "checking for nanosleep... $ECHO_C" >&6
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <unistd.h>
+ #include <time.h>
+
+int
+main ()
+{
+#if _POSIX_TIMERS > 0
+ timespec tp;
+ #endif
+ nanosleep(&tp, 0);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_has_nanosleep=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_has_nanosleep=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ echo "$as_me:$LINENO: result: $ac_has_nanosleep" >&5
+echo "${ECHO_T}$ac_has_nanosleep" >&6
+ fi
fi
if test x"$ac_has_clock_monotonic" = x"yes"; then
@@ -22314,6 +22833,14 @@ _ACEOF
fi
+ if test x"$ac_has_nanosleep" = x"yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_USE_NANOSLEEP 1
+_ACEOF
+
+ fi
+
CXXFLAGS="$ac_save_CXXFLAGS"
@@ -22425,246 +22952,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# For nanosleep support
-
-
- echo "$as_me:$LINENO: checking for nanosleep" >&5
-echo $ECHO_N "checking for nanosleep... $ECHO_C" >&6
-
-
-
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
-
- ac_has_nanosleep=no;
-
-for ac_header in time.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ----------------------------------------- ##
-## Report this to the package-unused lists. ##
-## ----------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- ac_has_time_h=yes
-else
- ac_has_time_h=no
-fi
-
-done
-
- if test x"$ac_has_time_h" = x"yes"; then
- echo "$as_me:$LINENO: checking for nanosleep" >&5
-echo $ECHO_N "checking for nanosleep... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <time.h>
-int
-main ()
-{
-timespec ts; nanosleep(&ts, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_has_nanosleep=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_has_nanosleep=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
- echo "$as_me:$LINENO: result: $ac_has_nanosleep" >&5
-echo "${ECHO_T}$ac_has_nanosleep" >&6
- fi
-
- if test x"$ac_has_nanosleep" = x"yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define _GLIBCXX_USE_NANOSLEEP 1
-_ACEOF
-
- fi
-
- CXXFLAGS="$ac_save_CXXFLAGS"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
if test "${ac_cv_header_locale_h+set}" = set; then
echo "$as_me:$LINENO: checking for locale.h" >&5
@@ -80865,6 +81152,101 @@ echo "${ECHO_T}$ac_ld_relro" >&6
+ # GLIBCXX_CHECK_MATH_SUPPORT
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISNAN 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_COPYSIGN 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_COPYSIGNF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_HYPOT 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_ACOSF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_ASINF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_ATANF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_COSF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_COSHF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_SINF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_SINHF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_TANF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_TANHF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_EXPF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_ATAN2F 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FABSF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FMODF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FREXPF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LOGF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_LOG10F 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_MODF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_POWF 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_SQRTF 1
+_ACEOF
+
+
+
echo "$as_me:$LINENO: checking for main in -lm" >&5
echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6
@@ -81386,32 +81768,318 @@ done
fi
+
+ # GLIBCXX_CHECK_STDLIB_SUPPORT
cat >>confdefs.h <<\_ACEOF
-#define HAVE_COPYSIGN 1
+#define HAVE_STRTOLD 1
_ACEOF
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_COPYSIGNF 1
+
+
+ # Check whether --enable-tls or --disable-tls was given.
+if test "${enable_tls+set}" = set; then
+ enableval="$enable_tls"
+
+ case "$enableval" in
+ yes|no) ;;
+ *) { { echo "$as_me:$LINENO: error: Argument to enable/disable tls must be yes or no" >&5
+echo "$as_me: error: Argument to enable/disable tls must be yes or no" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+
+else
+ enable_tls=yes
+fi;
+
+ echo "$as_me:$LINENO: checking whether the target supports thread-local storage" >&5
+echo $ECHO_N "checking whether the target supports thread-local storage... $ECHO_C" >&6
+if test "${gcc_cv_have_tls+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ if test "$cross_compiling" = yes; then
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_FREXPF 1
+gcc_cv_have_tls=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ chktls_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="-static $LDFLAGS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+int main() { return 0; }
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_HYPOT 1
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gcc_cv_have_tls=yes
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$chktls_save_LDFLAGS"
+ if test $gcc_cv_have_tls = yes; then
+ chktls_save_CFLAGS="$CFLAGS"
+ thread_CFLAGS=failed
+ for flag in '' '-pthread' '-lpthread'; do
+ CFLAGS="$flag $chktls_save_CFLAGS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <pthread.h>
+ void *g(void *d) { return NULL; }
+int
+main ()
+{
+pthread_t t; pthread_create(&t,NULL,g,NULL);
+ ;
+ return 0;
+}
_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ thread_CFLAGS="$flag"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
- case "$target" in
- *-hpux10*)
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_FINITE 1
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "X$thread_CFLAGS" != Xfailed; then
+ break
+ fi
+ done
+ CFLAGS="$chktls_save_CFLAGS"
+ if test "X$thread_CFLAGS" != Xfailed; then
+ CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <pthread.h>
+ __thread int a;
+ static int *a_in_other_thread;
+ static void *
+ thread_func (void *arg)
+ {
+ a_in_other_thread = &a;
+ return (void *)0;
+ }
+int
+main ()
+{
+pthread_t thread;
+ void *thread_retval;
+ int *a_in_main_thread;
+ if (pthread_create (&thread, (pthread_attr_t *)0,
+ thread_func, (void *)0))
+ return 0;
+ a_in_main_thread = &a;
+ if (pthread_join (thread, &thread_retval))
+ return 0;
+ return (a_in_other_thread == a_in_main_thread);
+ ;
+ return 0;
+}
_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_FINITEF 1
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ CFLAGS="$chktls_save_CFLAGS"
+ fi
+ fi
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $gcc_cv_have_tls" >&5
+echo "${ECHO_T}$gcc_cv_have_tls" >&6
+ if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TLS 1
_ACEOF
+ fi
+ case "$target" in
+ *-hpux10*)
cat >>confdefs.h <<\_ACEOF
#define HAVE_ISINF 1
_ACEOF
@@ -81421,19 +82089,21 @@ _ACEOF
_ACEOF
cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISNAN 1
+#define HAVE_ISNANF 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISNANF 1
+#define HAVE_FINITE 1
+_ACEOF
+
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FINITEF 1
_ACEOF
;;
esac
;;
*-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
- SECTION_FLAGS='-ffunction-sections -fdata-sections'
-
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits previously
@@ -99982,13 +100652,313 @@ done
CXXFLAGS="$ac_save_CXXFLAGS"
-
cat >>confdefs.h <<\_ACEOF
#define _GLIBCXX_USE_RANDOM_TR1 1
_ACEOF
- # For iconv support.
+ # Check whether --enable-tls or --disable-tls was given.
+if test "${enable_tls+set}" = set; then
+ enableval="$enable_tls"
+
+ case "$enableval" in
+ yes|no) ;;
+ *) { { echo "$as_me:$LINENO: error: Argument to enable/disable tls must be yes or no" >&5
+echo "$as_me: error: Argument to enable/disable tls must be yes or no" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+
+else
+ enable_tls=yes
+fi;
+
+ echo "$as_me:$LINENO: checking whether the target supports thread-local storage" >&5
+echo $ECHO_N "checking whether the target supports thread-local storage... $ECHO_C" >&6
+if test "${gcc_cv_have_tls+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ if test "$cross_compiling" = yes; then
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gcc_cv_have_tls=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ chktls_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="-static $LDFLAGS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+int main() { return 0; }
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gcc_cv_have_tls=yes
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$chktls_save_LDFLAGS"
+ if test $gcc_cv_have_tls = yes; then
+ chktls_save_CFLAGS="$CFLAGS"
+ thread_CFLAGS=failed
+ for flag in '' '-pthread' '-lpthread'; do
+ CFLAGS="$flag $chktls_save_CFLAGS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <pthread.h>
+ void *g(void *d) { return NULL; }
+int
+main ()
+{
+pthread_t t; pthread_create(&t,NULL,g,NULL);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ thread_CFLAGS="$flag"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "X$thread_CFLAGS" != Xfailed; then
+ break
+ fi
+ done
+ CFLAGS="$chktls_save_CFLAGS"
+ if test "X$thread_CFLAGS" != Xfailed; then
+ CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <pthread.h>
+ __thread int a;
+ static int *a_in_other_thread;
+ static void *
+ thread_func (void *arg)
+ {
+ a_in_other_thread = &a;
+ return (void *)0;
+ }
+int
+main ()
+{
+pthread_t thread;
+ void *thread_retval;
+ int *a_in_main_thread;
+ if (pthread_create (&thread, (pthread_attr_t *)0,
+ thread_func, (void *)0))
+ return 0;
+ a_in_main_thread = &a;
+ if (pthread_join (thread, &thread_retval))
+ return 0;
+ return (a_in_other_thread == a_in_main_thread);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gcc_cv_have_tls=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ CFLAGS="$chktls_save_CFLAGS"
+ fi
+ fi
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gcc_cv_have_tls=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $gcc_cv_have_tls" >&5
+echo "${ECHO_T}$gcc_cv_have_tls" >&6
+ if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TLS 1
+_ACEOF
+
+ fi
@@ -104351,7 +105321,13 @@ fi;
*) have_unwind_getipinfo=yes ;;
esac
else
- have_unwind_getipinfo=yes
+ # Darwin before version 9 does not have _Unwind_GetIPInfo.
+
+ case ${target} in
+ *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+
fi
if test x$have_unwind_getipinfo = xyes; then
@@ -107713,6 +108689,68 @@ _ACEOF
fi
+echo "$as_me:$LINENO: checking whether the target supports .symver directive" >&5
+echo $ECHO_N "checking whether the target supports .symver directive... $ECHO_C" >&6
+if test "${glibcxx_cv_have_as_symver_directive+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+void foo (void); __asm (".symver foo, bar@SYMVER");
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ glibcxx_cv_have_as_symver_directive=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+glibcxx_cv_have_as_symver_directive=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $glibcxx_cv_have_as_symver_directive" >&5
+echo "${ECHO_T}$glibcxx_cv_have_as_symver_directive" >&6
+if test $glibcxx_cv_have_as_symver_directive = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_SYMVER_DIRECTIVE 1
+_ACEOF
+
+fi
+
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 12dc1d5585c..ae97d896876 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -97,12 +97,11 @@ GLIBCXX_ENABLE_HOSTED
# Enable compiler support that doesn't require linking.
GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
GLIBCXX_ENABLE_PCH($is_hosted)
-GLIBCXX_ENABLE_ATOMIC_BUILTINS
GLIBCXX_ENABLE_THREADS
+GLIBCXX_ENABLE_ATOMIC_BUILTINS
# Checks for compiler support that doesn't require linking.
GLIBCXX_CHECK_COMPILER_FEATURES
-GLIBCXX_CHECK_STANDARD_LAYOUT
# Enable all the variable C++ runtime options that don't require linking.
GLIBCXX_ENABLE_CSTDIO
@@ -146,16 +145,13 @@ GLIBCXX_CHECK_STDIO_MACROS
# For gettimeofday support.
GLIBCXX_CHECK_GETTIMEOFDAY
-# For clock_gettime support.
+# For clock_gettime, nanosleep and sched_yield support.
# NB: The default is [no], because otherwise it requires linking.
-GLIBCXX_ENABLE_CLOCK_GETTIME([no])
+GLIBCXX_ENABLE_LIBSTDCXX_TIME([no])
# For gthread support
GLIBCXX_CHECK_GTHREADS
-# For nanosleep support
-GLIBCXX_CHECK_NANOSLEEP
-
AC_LC_MESSAGES
# Check for available headers.
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
index 399077546d3..03dd3360f19 100644
--- a/libstdc++-v3/crossconfig.m4
+++ b/libstdc++-v3/crossconfig.m4
@@ -108,34 +108,56 @@ case "${host}" in
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
- GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
+
+ # GLIBCXX_CHECK_MATH_SUPPORT
+ AC_DEFINE(HAVE_ISNAN)
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
- AC_DEFINE(HAVE_FREXPF)
AC_DEFINE(HAVE_HYPOT)
+ AC_DEFINE(HAVE_ACOSF)
+ AC_DEFINE(HAVE_ASINF)
+ AC_DEFINE(HAVE_ATANF)
+ AC_DEFINE(HAVE_COSF)
+ AC_DEFINE(HAVE_COSHF)
+ AC_DEFINE(HAVE_SINF)
+ AC_DEFINE(HAVE_SINHF)
+ AC_DEFINE(HAVE_TANF)
+ AC_DEFINE(HAVE_TANHF)
+ AC_DEFINE(HAVE_EXPF)
+ AC_DEFINE(HAVE_ATAN2F)
+ AC_DEFINE(HAVE_FABSF)
+ AC_DEFINE(HAVE_FMODF)
+ AC_DEFINE(HAVE_FREXPF)
+ AC_DEFINE(HAVE_LOGF)
+ AC_DEFINE(HAVE_LOG10F)
+ AC_DEFINE(HAVE_MODF)
+ AC_DEFINE(HAVE_POWF)
+ AC_DEFINE(HAVE_SQRTF)
+
+ GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
+
+ # GLIBCXX_CHECK_STDLIB_SUPPORT
+ AC_DEFINE(HAVE_STRTOLD)
+
+ GCC_CHECK_TLS
case "$target" in
*-hpux10*)
- AC_DEFINE(HAVE_FINITE)
- AC_DEFINE(HAVE_FINITEF)
AC_DEFINE(HAVE_ISINF)
AC_DEFINE(HAVE_ISINFF)
- AC_DEFINE(HAVE_ISNAN)
AC_DEFINE(HAVE_ISNANF)
+ AC_DEFINE(HAVE_FINITE)
+ AC_DEFINE(HAVE_FINITEF)
;;
esac
;;
*-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
- SECTION_FLAGS='-ffunction-sections -fdata-sections'
- AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_COMPILER_FEATURES
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
-
AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
-
- # For iconv support.
+ GCC_CHECK_TLS
AM_ICONV
;;
*-mingw32*)
diff --git a/libstdc++-v3/doc/doxygen/stdheader.cc b/libstdc++-v3/doc/doxygen/stdheader.cc
index a5145419b04..8bcb1a059f9 100644
--- a/libstdc++-v3/doc/doxygen/stdheader.cc
+++ b/libstdc++-v3/doc/doxygen/stdheader.cc
@@ -11,6 +11,7 @@ const char* const usage =
"Takes no command-line arguments.\n"
"\n";
+#include <cstdlib>
#include <string>
#include <map>
#include <iostream>
@@ -157,7 +158,7 @@ int main (int argc, char**)
if (argc > 1)
{
std::cerr << usage;
- exit(0);
+ std::exit(0);
}
init_map();
diff --git a/libstdc++-v3/doc/doxygen/user.cfg.in b/libstdc++-v3/doc/doxygen/user.cfg.in
index 57a73583b7b..87e702a35e3 100644
--- a/libstdc++-v3/doc/doxygen/user.cfg.in
+++ b/libstdc++-v3/doc/doxygen/user.cfg.in
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.1
+# Doxyfile 1.5.7.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -14,6 +14,14 @@
# Project related configuration options
#---------------------------------------------------------------------------
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
@@ -46,23 +54,14 @@ CREATE_SUBDIRS = NO
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
+# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
+# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
+# Spanish, Swedish, and Ukrainian.
OUTPUT_LANGUAGE = English
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
@@ -70,22 +69,23 @@ USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = NO
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will
+# prepend the brief description of a member or function before the
+# detailed description. Note: if both HIDE_UNDOC_MEMBERS and
+# BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be
+# completely suppressed.
REPEAT_BRIEF = YES
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description
+# abbreviator that is used to form the text in various listings. Each
+# string in this list, if found as the leading text of the brief
+# description, will be stripped from the text and the result after
+# processing the whole list, is used as the annotated text. Otherwise,
+# the brief description is used as-is. If left blank, the following
+# values are used ("$name" is automatically replaced with the name of
+# the entity): "The $name class" "The $name widget" "The $name file"
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
ABBREVIATE_BRIEF =
@@ -95,10 +95,11 @@ ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show
+# all inherited members of a class in the documentation of that class
+# as if those members were ordinary class members. Constructors,
+# destructors and assignment operators of the base classes will not be
+# shown.
INLINE_INHERITED_MEMB = YES
@@ -135,11 +136,19 @@ SHORT_NAMES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
JAVADOC_AUTOBRIEF = NO
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
@@ -148,13 +157,6 @@ JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = YES
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = YES
-
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
@@ -182,22 +184,34 @@ TAB_SIZE = 4
ALIASES = "doctodo=@todo\nDoc me! See doc/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more. " \
"isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink "
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of
+# C sources only. Doxygen will then generate output that is more
+# tailored for C. For instance, some of the names that are used will
+# be different. The list of all members will be omitted, etc.
OPTIMIZE_OUTPUT_FOR_C = NO
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
OPTIMIZE_OUTPUT_JAVA = NO
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
# func(std::string) {}). This also make the inheritance and collaboration
@@ -205,6 +219,28 @@ OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip
+# sources only. Doxygen will parse them like normal C++ but will
+# assume all classes use public instead of private inheritance when no
+# explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to
+# indicate getter and setter methods for a property. Setting this
+# option to YES (the default) will make doxygen to replace the get and
+# set methods by a property in the documentation. This will only work
+# if the methods are indeed getting or setting a simple type. If this
+# is not the case, or you want to show the methods anyway, you should
+# set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
@@ -212,14 +248,42 @@ BUILTIN_STL_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = YES
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
+# Set the SUBGROUPING tag to YES (the default) to allow class member
+# groups of the same type (for instance a group of public functions)
+# to be put as a subgroup of that type (e.g. under the Public
+# Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
SUBGROUPING = YES
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use
+# to determine which symbols to keep in memory and which to flush to
+# disk. When the cache is full, less often used symbols will be
+# written to disk. For small to medium size projects (<1000 input
+# files) the default value is probably good enough. For larger
+# projects a too small cache size can cause doxygen to be busy
+# swapping symbols to and from disk most of the time causing a
+# significant performance penality. If the system has enough physical
+# memory increasing the cache will improve the performance by keeping
+# more symbols in memory. Note that the value works on a logarithmic
+# scale so increasing the size by one will rougly double the memory
+# usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -254,6 +318,14 @@ EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
@@ -290,11 +362,12 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only
+# generate file names in lower-case letters. If set to YES upper-case
+# letters are also allowed. This is useful if you have classes or
+# files whose names only differ in case and if your file system
+# supports case sensitive file names. Windows and Mac users are
+# advised to set this option to NO.
CASE_SENSE_NAMES = NO
@@ -329,6 +402,12 @@ SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the
+# default) the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
# NO (the default), the class list will be sorted only by class name,
@@ -368,13 +447,14 @@ GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = @enabled_sections@
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to
+# appear in the documentation. If the initializer consists of more
+# lines than specified here it will be hidden. Use a value of 0 to
+# hide initializers completely. The appearance of the initializer of
+# individual variables and defines in the documentation can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
MAX_INITIALIZER_LINES = 0
@@ -384,22 +464,45 @@ MAX_INITIALIZER_LINES = 0
SHOW_USED_FILES = YES
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
+# If the sources in your project are distributed over multiple
+# directories then setting the SHOW_DIRECTORIES tag to YES will show
+# the directory hierarchy in the documentation. The default is NO.
SHOW_DIRECTORIES = YES
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page. This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or
+# script that doxygen should invoke to get the current version for
+# each file (typically from the version control system). Doxygen will
+# invoke the program by executing (via popen()) the command <command>
+# <input-file>, where <command> is the value of the
+# FILE_VERSION_FILTER tag, and <input-file> is the name of an input
+# file provided by doxygen. Whatever the program writes to standard
+# output is used as the file version. See the manual for examples.
FILE_VERSION_FILTER =
+# The LAYOUT_FILE tag can be used to specify a layout file which will
+# be parsed by doxygen. The layout file controls the global structure
+# of the generated output files in an output format independent
+# way. The create the layout file that represents doxygen's defaults,
+# run doxygen with the -l option. You can optionally specify a file
+# name after the option, if omitted DoxygenLayout.xml will be used as
+# the name of the layout file.
+
+LAYOUT_FILE =
+
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -428,11 +531,11 @@ WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = NO
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their
+# parameters or return value. If set to NO (the default) doxygen will
+# only warn about wrong or incomplete parameter documentation, but not
+# about the absence of documentation.
WARN_NO_PARAMDOC = NO
@@ -500,7 +603,7 @@ INPUT = @srcdir@/libsupc++/cxxabi.h \
include/streambuf \
include/string \
include/system_error \
- include/thread \
+ include/thread \
include/tuple \
include/type_traits \
include/unordered_map \
@@ -613,12 +716,21 @@ INPUT = @srcdir@/libsupc++/cxxabi.h \
include/ext/pb_ds/detail \
@srcdir@/doc/doxygen/doxygroups.cc
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+# This tag can be used to specify the character encoding of the source
+# files that doxygen parses. Internally doxygen uses the UTF-8
+# encoding, which is also the default input encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible
+# encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like
+# *.cpp and *.h) to filter out the source-files in the directories. If
+# left blank the following patterns are tested: *.c *.cc *.cxx *.cpp
+# *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++
+# *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
FILE_PATTERNS = *.h \
*.hpp \
@@ -654,6 +766,14 @@ EXCLUDE_PATTERNS = stamp-* \
*extc++.h* \
*/.svn/*
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
@@ -709,10 +829,10 @@ FILTER_SOURCE_FILES = NO
# configuration options related to source browsing
#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
+# If the SOURCE_BROWSER tag is set to YES then a list of source files
+# will be generated. Documented entities will be cross-referenced with
+# these sources. Note: To get rid of all source code in the generated
+# output, make sure also VERBATIM_HEADERS is set to NO.
SOURCE_BROWSER = YES
@@ -727,13 +847,13 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = NO
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# If the REFERENCED_BY_RELATION tag is set to YES
# then for each documented function all documented
# functions referencing it will be listed.
REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES (the default)
+# If the REFERENCES_RELATION tag is set to YES
# then for each documented function all documented entities
# called/used by that function will be listed.
@@ -831,9 +951,44 @@ HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = NO
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5
+# (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the
+# docset in that directory and running "make install" will install the
+# docset in ~/Library/Developer/Shared/Documentation/DocSets so that
+# Xcode will find it at startup. See
+# http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
+# more information.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name
+# of the feed. A documentation feed provides an umbrella under which
+# multiple documentation sets from a single provider (such as a
+# company or product suite) can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
@@ -858,6 +1013,12 @@ HHC_LOCATION =
GENERATE_CHI = NO
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.
@@ -869,6 +1030,42 @@ BINARY_TOC = NO
TOC_EXPAND = NO
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be
+# generated that can be used as input for Qt's qhelpgenerator to
+# generate a Qt Compressed Help (.qch) of the generated HTML
+# documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see <a
+# href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help
+# Project / Namespace</a>.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
+# generating Qt Help Project output. For more information please see
+# <a
+# href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt
+# Help Project / Virtual Folders</a>.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file .
+
+QHG_LOCATION =
+
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
@@ -880,12 +1077,21 @@ DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like
+# index structure should be generated to display hierarchical
+# information. If the tag value is set to FRAME, a side panel will be
+# generated containing a tree-like index structure (just like the one
+# that is generated for HTML Help). For this to work a browser that
+# supports JavaScript, DHTML, CSS and frames is required (for instance
+# Mozilla 1.0+, Netscape 6.0+, Internet explorer 5.0+, or
+# Konqueror). Windows users are probably better off using the HTML
+# help feature. Other possible values for this tag are: HIERARCHIES,
+# which will generate the Groups, Directories, and Class Hierarchy
+# pages using a tree view instead of an ordered list; ALL, which
+# combines the behavior of FRAME and HIERARCHIES; and NONE, which
+# disables this behavior completely. For backwards compatibility with
+# previous releases of Doxygen, the values YES and NO are equivalent
+# to FRAME and NONE respectively.
GENERATE_TREEVIEW = YES
@@ -895,6 +1101,14 @@ GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
@@ -1171,9 +1385,9 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator.
PREDEFINED = __cplusplus \
- __GTHREADS \
- _GLIBCXX_HAS_GTHREADS \
- __GXX_EXPERIMENTAL_CXX0X__ \
+ __GTHREADS \
+ _GLIBCXX_HAS_GTHREADS \
+ __GXX_EXPERIMENTAL_CXX0X__ \
"_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \
@@ -1189,18 +1403,17 @@ PREDEFINED = __cplusplus \
_GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \
- _GLIBCXX_USE_C99_STDINT_TR1 \
+ _GLIBCXX_USE_C99_STDINT_TR1 \
__glibcxx_function_requires=// \
__glibcxx_class_requires=// \
__glibcxx_class_requires2=// \
__glibcxx_class_requires3=// \
__glibcxx_class_requires4=//
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES
-# then this tag can be used to specify a list of macro names that
-# should be expanded. The macro definition that is found in the
-# sources will be used. Use the PREDEFINED tag if you want to use a
-# different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
@@ -1268,6 +1481,15 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
+# You can define message sequence charts within doxygen comments using
+# the \msc command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert
+# it in the documentation. The MSCGEN_PATH tag allows you to specify
+# the directory where the mscgen tool resides. If left empty the tool
+# is assumed to be found in the default search path.
+
+MSCGEN_PATH =
+
# If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented
# or is not a class.
@@ -1281,6 +1503,30 @@ HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
+# By default doxygen will write a font called FreeSans.ttf to the
+# output directory and reference it in all dot files that doxygen
+# generates. This font does not include all possible unicode
+# characters however, so when you need these (or just want a
+# differently looking font) you can specify the font name using
+# DOT_FONTNAME. You need need to make sure dot is able to find the
+# font, which can be done by putting it in a standard location or by
+# setting the DOTFONTPATH environment variable or by setting
+# DOT_FONTPATH to the directory containing the font.
+
+DOT_FONTNAME = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH =
+
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
@@ -1325,19 +1571,19 @@ INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
CALL_GRAPH = NO
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
CALLER_GRAPH = NO
@@ -1370,39 +1616,31 @@ DOT_PATH =
DOTFILE_DIRS =
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-MAX_DOT_GRAPH_HEIGHT = 1024
+DOT_GRAPH_MAX_NODES = 50
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
DOT_TRANSPARENT = NO
diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml
index 9ddd31cf89e..7fa5a1e14a7 100644
--- a/libstdc++-v3/doc/xml/manual/configure.xml
+++ b/libstdc++-v3/doc/xml/manual/configure.xml
@@ -327,17 +327,19 @@
</para>
</listitem></varlistentry>
- <varlistentry><term><code>--enable-clock-gettime=OPTION</code></term>
+ <varlistentry><term><code>--enable-libstdcxx-time=OPTION</code></term>
<listitem><para>Enables link-type checks for the availability of the
- clock_gettime clocks, used in [time.clock] of the current C++0x draft.
- The choice OPTION=yes checks for the availability of the monotonic and
- realtime clocks in libc and libposix4. In case of need the latter is
- also linked to libstdc++ as part of the build process. OPTION=rt
- also searches (and, in case, links) librt. Note that the latter
- is not always desirable because, in glibc, for example, in turn it
- triggers the linking of libpthread too, which activates locking,
- a large overhead for single-thread programs. OPTION=no skips the
- tests completely. The default is OPTION=no.
+ clock_gettime clocks, used in the implementation of [time.clock],
+ and of the nanosleep and sched_yield functions, used in the
+ implementation of [thread.thread.this] of the current C++0x draft.
+ The choice OPTION=yes checks for the availability of the facilities
+ in libc and libposix4. In case of need the latter is also linked
+ to libstdc++ as part of the build process. OPTION=rt also searches
+ (and, in case, links) librt. Note that the latter is not always
+ desirable because, in glibc, for example, in turn it triggers the
+ linking of libpthread too, which activates locking, a large overhead
+ for single-thread programs. OPTION=no skips the tests completely.
+ The default is OPTION=no.
</para>
</listitem></varlistentry>
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 0a2a7a5095d..5205e704d92 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -78,6 +78,10 @@ bits_builddir = ./bits
bits_headers = \
${bits_srcdir}/algorithmfwd.h \
${bits_srcdir}/allocator.h \
+ ${bits_srcdir}/atomicfwd_c.h \
+ ${bits_srcdir}/atomicfwd_cxx.h \
+ ${bits_srcdir}/atomic_0.h \
+ ${bits_srcdir}/atomic_2.h \
${bits_srcdir}/basic_ios.h \
${bits_srcdir}/basic_ios.tcc \
${bits_srcdir}/basic_string.h \
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 72404f802f7..c36ce6698f3 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -344,6 +344,10 @@ bits_builddir = ./bits
bits_headers = \
${bits_srcdir}/algorithmfwd.h \
${bits_srcdir}/allocator.h \
+ ${bits_srcdir}/atomicfwd_c.h \
+ ${bits_srcdir}/atomicfwd_cxx.h \
+ ${bits_srcdir}/atomic_0.h \
+ ${bits_srcdir}/atomic_2.h \
${bits_srcdir}/basic_ios.h \
${bits_srcdir}/basic_ios.tcc \
${bits_srcdir}/basic_string.h \
diff --git a/libstdc++-v3/include/bits/atomic_0.h b/libstdc++-v3/include/bits/atomic_0.h
new file mode 100644
index 00000000000..fa91d1268ee
--- /dev/null
+++ b/libstdc++-v3/include/bits/atomic_0.h
@@ -0,0 +1,468 @@
+// -*- C++ -*- header.
+
+// Copyright (C) 2008
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file bits/atomic_0.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _GLIBCXX_ATOMIC_0_H
+#define _GLIBCXX_ATOMIC_0_H 1
+
+#pragma GCC system_header
+
+// _GLIBCXX_BEGIN_NAMESPACE(std)
+
+ // 0 == __atomic0 == Never lock-free
+namespace __atomic0
+{
+ struct atomic_flag;
+
+ // Implementation specific defines.
+#define _ATOMIC_LOAD_(__a, __x) \
+ ({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p); \
+ __atomic_flag_wait_explicit(__g, __x); \
+ __typeof__ _ATOMIC_MEMBER_ __r = *__p; \
+ atomic_flag_clear_explicit(__g, __x); \
+ __r; })
+
+#define _ATOMIC_STORE_(__a, __m, __x) \
+ ({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
+ __typeof__(__m) __v = (__m); \
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p); \
+ __atomic_flag_wait_explicit(__g, __x); \
+ *__p = __v; \
+ atomic_flag_clear_explicit(__g, __x); \
+ __v; })
+
+#define _ATOMIC_MODIFY_(__a, __o, __m, __x) \
+ ({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
+ __typeof__(__m) __v = (__m); \
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p); \
+ __atomic_flag_wait_explicit(__g, __x); \
+ __typeof__ _ATOMIC_MEMBER_ __r = *__p; \
+ *__p __o __v; \
+ atomic_flag_clear_explicit(__g, __x); \
+ __r; })
+
+#define _ATOMIC_CMPEXCHNG_(__a, __e, __m, __x) \
+ ({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
+ __typeof__(__e) __q = (__e); \
+ __typeof__(__m) __v = (__m); \
+ bool __r; \
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p); \
+ __atomic_flag_wait_explicit(__g, __x); \
+ __typeof__ _ATOMIC_MEMBER_ __t__ = *__p; \
+ if (__t__ == *__q) { *__p = __v; __r = true; } \
+ else { *__q = __t__; __r = false; } \
+ atomic_flag_clear_explicit(__g, __x); \
+ __r; })
+
+ /// atomic_flag
+ struct atomic_flag : private __atomic_flag_base
+ {
+ atomic_flag() = default;
+ ~atomic_flag() = default;
+ atomic_flag(const atomic_flag&) = delete;
+ atomic_flag& operator=(const atomic_flag&) = delete;
+
+ atomic_flag(bool __i) { _M_i = __i; } // XXX deleted copy ctor != agg
+
+ bool
+ test_and_set(memory_order __m = memory_order_seq_cst) volatile;
+
+ void
+ clear(memory_order __m = memory_order_seq_cst) volatile;
+ };
+
+ /// 29.4.2, address types
+ struct atomic_address
+ {
+ private:
+ void* _M_i;
+
+ public:
+ atomic_address() = default;
+ ~atomic_address() = default;
+ atomic_address(const atomic_address&) = delete;
+ atomic_address& operator=(const atomic_address&) = delete;
+
+ atomic_address(void* __v) { _M_i = __v; }
+
+ bool
+ is_lock_free() const volatile
+ { return false; }
+
+ void
+ store(void* __v, memory_order __m = memory_order_seq_cst) volatile
+ {
+ __glibcxx_assert(__m == memory_order_acquire);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ __glibcxx_assert(__m == memory_order_consume);
+ _ATOMIC_STORE_(this, __v, __m);
+ }
+
+ void*
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ {
+ __glibcxx_assert(__m == memory_order_release);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ return _ATOMIC_LOAD_(this, __m);
+ }
+
+ void*
+ exchange(void* __v, memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, =, __v, __m); }
+
+ bool
+ compare_exchange_weak(void*& __v1, void* __v2, memory_order __m1,
+ memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+ return _ATOMIC_CMPEXCHNG_(this, &__v1, __v2, __m1);
+ }
+
+ bool
+ compare_exchange_weak(void*& __v1, void* __v2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_weak(__v1, __v2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ bool
+ compare_exchange_strong(void*& __v1, void* __v2, memory_order __m1,
+ memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+ return _ATOMIC_CMPEXCHNG_(this, &__v1, __v2, __m1);
+ }
+
+ bool
+ compare_exchange_strong(void*& __v1, void* __v2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_strong(__v1, __v2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ void*
+ fetch_add(ptrdiff_t __d, memory_order __m = memory_order_seq_cst) volatile
+ {
+ void* volatile* __p = &(_M_i);
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p);
+ __atomic_flag_wait_explicit(__g, __m);
+ void* __r = *__p;
+ *__p = (void*)((char*)(*__p) + __d);
+ atomic_flag_clear_explicit(__g, __m);
+ return __r;
+ }
+
+ void*
+ fetch_sub(ptrdiff_t __d, memory_order __m = memory_order_seq_cst) volatile
+ {
+ void* volatile* __p = &(_M_i);
+ volatile __atomic_flag_base* __g = __atomic_flag_for_address(__p);
+ __atomic_flag_wait_explicit(__g, __m);
+ void* __r = *__p;
+ *__p = (void*)((char*)(*__p) - __d);
+ atomic_flag_clear_explicit(__g, __m);
+ return __r;
+ }
+
+ operator void*() const volatile
+ { return load(); }
+
+ void*
+ operator=(void* __v) // XXX volatile
+ {
+ store(__v);
+ return __v;
+ }
+
+ void*
+ operator+=(ptrdiff_t __d) volatile
+ { return fetch_add(__d) + __d; }
+
+ void*
+ operator-=(ptrdiff_t __d) volatile
+ { return fetch_sub(__d) - __d; }
+ };
+
+
+ // 29.3.1 atomic integral types
+ // For each of the integral types, define atomic_[integral type] struct
+ //
+ // atomic_bool bool
+ // atomic_char char
+ // atomic_schar signed char
+ // atomic_uchar unsigned char
+ // atomic_short short
+ // atomic_ushort unsigned short
+ // atomic_int int
+ // atomic_uint unsigned int
+ // atomic_long long
+ // atomic_ulong unsigned long
+ // atomic_llong long long
+ // atomic_ullong unsigned long long
+ // atomic_char16_t char16_t
+ // atomic_char32_t char32_t
+ // atomic_wchar_t wchar_t
+
+ // Base type.
+ // NB: Assuming _ITp is an integral scalar type that is 1, 2, 4, or 8 bytes,
+ // since that is what GCC built-in functions for atomic memory access work on.
+ template<typename _ITp>
+ struct __atomic_base
+ {
+ private:
+ typedef _ITp __integral_type;
+
+ __integral_type _M_i;
+
+ public:
+ __atomic_base() = default;
+ ~__atomic_base() = default;
+ __atomic_base(const __atomic_base&) = delete;
+ __atomic_base& operator=(const __atomic_base&) = delete;
+
+ // Requires __integral_type convertible to _M_base._M_i.
+ __atomic_base(__integral_type __i) { _M_i = __i; }
+
+ operator __integral_type() const volatile
+ { return load(); }
+
+ __integral_type
+ operator=(__integral_type __i) // XXX volatile
+ {
+ store(__i);
+ return __i;
+ }
+
+ __integral_type
+ operator++(int) volatile
+ { return fetch_add(1); }
+
+ __integral_type
+ operator--(int) volatile
+ { return fetch_sub(1); }
+
+ __integral_type
+ operator++() volatile
+ { return fetch_add(1) + 1; }
+
+ __integral_type
+ operator--() volatile
+ { return fetch_sub(1) - 1; }
+
+ __integral_type
+ operator+=(__integral_type __i) volatile
+ { return fetch_add(__i) + __i; }
+
+ __integral_type
+ operator-=(__integral_type __i) volatile
+ { return fetch_sub(__i) - __i; }
+
+ __integral_type
+ operator&=(__integral_type __i) volatile
+ { return fetch_and(__i) & __i; }
+
+ __integral_type
+ operator|=(__integral_type __i) volatile
+ { return fetch_or(__i) | __i; }
+
+ __integral_type
+ operator^=(__integral_type __i) volatile
+ { return fetch_xor(__i) ^ __i; }
+
+ bool
+ is_lock_free() const volatile
+ { return false; }
+
+ void
+ store(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ __glibcxx_assert(__m == memory_order_acquire);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ __glibcxx_assert(__m == memory_order_consume);
+ _ATOMIC_STORE_(this, __i, __m);
+ }
+
+ __integral_type
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ {
+ __glibcxx_assert(__m == memory_order_release);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ return _ATOMIC_LOAD_(this, __m);
+ }
+
+ __integral_type
+ exchange(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, =, __i, __m); }
+
+ bool
+ compare_exchange_weak(__integral_type& __i1, __integral_type __i2,
+ memory_order __m1, memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+ return _ATOMIC_CMPEXCHNG_(this, &__i1, __i2, __m1);
+ }
+
+ bool
+ compare_exchange_weak(__integral_type& __i1, __integral_type __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_weak(__i1, __i2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ bool
+ compare_exchange_strong(__integral_type& __i1, __integral_type __i2,
+ memory_order __m1, memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+ return _ATOMIC_CMPEXCHNG_(this, &__i1, __i2, __m1);
+ }
+
+ bool
+ compare_exchange_strong(__integral_type& __i1, __integral_type __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_strong(__i1, __i2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ __integral_type
+ fetch_add(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, +=, __i, __m); }
+
+ __integral_type
+ fetch_sub(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, -=, __i, __m); }
+
+ __integral_type
+ fetch_and(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, &=, __i, __m); }
+
+ __integral_type
+ fetch_or(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, |=, __i, __m); }
+
+ __integral_type
+ fetch_xor(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _ATOMIC_MODIFY_(this, ^=, __i, __m); }
+ };
+
+
+ /// atomic_bool
+ // NB: No operators or fetch-operations for this type.
+ struct atomic_bool
+ {
+ private:
+ __atomic_base<bool> _M_base;
+
+ public:
+ atomic_bool() = default;
+ ~atomic_bool() = default;
+ atomic_bool(const atomic_bool&) = delete;
+ atomic_bool& operator=(const atomic_bool&) = delete;
+
+ atomic_bool(bool __i) : _M_base(__i) { }
+
+ bool
+ operator=(bool __i) // XXX volatile
+ { return _M_base.operator=(__i); }
+
+ operator bool() const volatile
+ { return _M_base.load(); }
+
+ bool
+ is_lock_free() const volatile
+ { return _M_base.is_lock_free(); }
+
+ void
+ store(bool __i, memory_order __m = memory_order_seq_cst) volatile
+ { _M_base.store(__i, __m); }
+
+ bool
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ { return _M_base.load(__m); }
+
+ bool
+ exchange(bool __i, memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.exchange(__i, __m); }
+
+ bool
+ compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+ memory_order __m2) volatile
+ { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+
+ bool
+ compare_exchange_weak(bool& __i1, bool __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+
+ bool
+ compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+ memory_order __m2) volatile
+ { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+
+
+ bool
+ compare_exchange_strong(bool& __i1, bool __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+ };
+
+#undef _ATOMIC_LOAD_
+#undef _ATOMIC_STORE_
+#undef _ATOMIC_MODIFY_
+#undef _ATOMIC_CMPEXCHNG_
+} // namespace __atomic0
+
+// _GLIBCXX_END_NAMESPACE
+
+#endif
diff --git a/libstdc++-v3/include/bits/atomic_2.h b/libstdc++-v3/include/bits/atomic_2.h
new file mode 100644
index 00000000000..2b9c1d579ca
--- /dev/null
+++ b/libstdc++-v3/include/bits/atomic_2.h
@@ -0,0 +1,454 @@
+// -*- C++ -*- header.
+
+// Copyright (C) 2008
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file bits/atomic_2.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _GLIBCXX_ATOMIC_2_H
+#define _GLIBCXX_ATOMIC_2_H 1
+
+#pragma GCC system_header
+
+// _GLIBCXX_BEGIN_NAMESPACE(std)
+
+// 2 == __atomic2 == Always lock-free
+// Assumed:
+// _GLIBCXX_ATOMIC_BUILTINS_1
+// _GLIBCXX_ATOMIC_BUILTINS_2
+// _GLIBCXX_ATOMIC_BUILTINS_4
+// _GLIBCXX_ATOMIC_BUILTINS_8
+namespace __atomic2
+{
+ /// atomic_flag
+ struct atomic_flag : private __atomic_flag_base
+ {
+ atomic_flag() = default;
+ ~atomic_flag() = default;
+ atomic_flag(const atomic_flag&) = delete;
+ atomic_flag& operator=(const atomic_flag&) = delete;
+
+ atomic_flag(bool __i) { _M_i = __i; } // XXX deleted copy ctor != agg
+
+ bool
+ test_and_set(memory_order __m = memory_order_seq_cst) volatile
+ {
+ // Redundant synchronize if built-in for lock is a full barrier.
+ if (__m != memory_order_acquire && __m != memory_order_acq_rel)
+ __sync_synchronize();
+ return __sync_lock_test_and_set(&_M_i, 1);
+ }
+
+ void
+ clear(memory_order __m = memory_order_seq_cst) volatile
+ {
+ __sync_lock_release(&_M_i);
+ if (__m != memory_order_acquire && __m != memory_order_acq_rel)
+ __sync_synchronize();
+ }
+ };
+
+
+ /// 29.4.2, address types
+ struct atomic_address
+ {
+ private:
+ void* _M_i;
+
+ public:
+ atomic_address() = default;
+ ~atomic_address() = default;
+ atomic_address(const atomic_address&) = delete;
+ atomic_address& operator=(const atomic_address&) = delete;
+
+ atomic_address(void* __v) { _M_i = __v; }
+
+ bool
+ is_lock_free() const volatile
+ { return true; }
+
+ void
+ store(void* __v, memory_order __m = memory_order_seq_cst) volatile
+ {
+ __glibcxx_assert(__m == memory_order_acquire);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ __glibcxx_assert(__m == memory_order_consume);
+
+ if (__m == memory_order_relaxed)
+ _M_i = __v;
+ else
+ {
+ // write_mem_barrier();
+ _M_i = __v;
+ if (__m = memory_order_seq_cst)
+ __sync_synchronize();
+ }
+ }
+
+ void*
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ {
+ __glibcxx_assert(__m == memory_order_release);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+
+ __sync_synchronize();
+ void* __ret = _M_i;
+ __sync_synchronize();
+ return __ret;
+ }
+
+ void*
+ exchange(void* __v, memory_order __m = memory_order_seq_cst) volatile
+ {
+ // XXX built-in assumes memory_order_acquire.
+ return __sync_lock_test_and_set(&_M_i, __v);
+ }
+
+ bool
+ compare_exchange_weak(void*& __v1, void* __v2, memory_order __m1,
+ memory_order __m2) volatile
+ { return compare_exchange_strong(__v1, __v2, __m1, __m2); }
+
+ bool
+ compare_exchange_weak(void*& __v1, void* __v2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_weak(__v1, __v2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ bool
+ compare_exchange_strong(void*& __v1, void* __v2, memory_order __m1,
+ memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+
+ void* __v1o = __v1;
+ void* __v1n = __sync_val_compare_and_swap(&_M_i, __v1o, __v2);
+
+ // Assume extra stores (of same value) allowed in true case.
+ __v1 = __v1n;
+ return __v1o == __v1n;
+ }
+
+ bool
+ compare_exchange_strong(void*& __v1, void* __v2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_strong(__v1, __v2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ void*
+ fetch_add(ptrdiff_t __d, memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_add(&_M_i, __d); }
+
+ void*
+ fetch_sub(ptrdiff_t __d, memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_sub(&_M_i, __d); }
+
+ operator void*() const volatile
+ { return load(); }
+
+ void*
+ operator=(void* __v) // XXX volatile
+ {
+ store(__v);
+ return __v;
+ }
+
+ void*
+ operator+=(ptrdiff_t __d) volatile
+ { return __sync_add_and_fetch(&_M_i, __d); }
+
+ void*
+ operator-=(ptrdiff_t __d) volatile
+ { return __sync_sub_and_fetch(&_M_i, __d); }
+ };
+
+ // 29.3.1 atomic integral types
+ // For each of the integral types, define atomic_[integral type] struct
+ //
+ // atomic_bool bool
+ // atomic_char char
+ // atomic_schar signed char
+ // atomic_uchar unsigned char
+ // atomic_short short
+ // atomic_ushort unsigned short
+ // atomic_int int
+ // atomic_uint unsigned int
+ // atomic_long long
+ // atomic_ulong unsigned long
+ // atomic_llong long long
+ // atomic_ullong unsigned long long
+ // atomic_char16_t char16_t
+ // atomic_char32_t char32_t
+ // atomic_wchar_t wchar_t
+
+ // Base type.
+ // NB: Assuming _ITp is an integral scalar type that is 1, 2, 4, or 8 bytes,
+ // since that is what GCC built-in functions for atomic memory access work on.
+ template<typename _ITp>
+ struct __atomic_base
+ {
+ private:
+ typedef _ITp __integral_type;
+
+ __integral_type _M_i;
+
+ public:
+ __atomic_base() = default;
+ ~__atomic_base() = default;
+ __atomic_base(const __atomic_base&) = delete;
+ __atomic_base& operator=(const __atomic_base&) = delete;
+
+ // Requires __integral_type convertible to _M_base._M_i.
+ __atomic_base(__integral_type __i) { _M_i = __i; }
+
+ operator __integral_type() const volatile
+ { return load(); }
+
+ __integral_type
+ operator=(__integral_type __i) // XXX volatile
+ {
+ store(__i);
+ return __i;
+ }
+
+ __integral_type
+ operator++(int) volatile
+ { return fetch_add(1); }
+
+ __integral_type
+ operator--(int) volatile
+ { return fetch_sub(1); }
+
+ __integral_type
+ operator++() volatile
+ { return __sync_add_and_fetch(&_M_i, 1); }
+
+ __integral_type
+ operator--() volatile
+ { return __sync_sub_and_fetch(&_M_i, 1); }
+
+ __integral_type
+ operator+=(__integral_type __i) volatile
+ { return __sync_add_and_fetch(&_M_i, __i); }
+
+ __integral_type
+ operator-=(__integral_type __i) volatile
+ { return __sync_sub_and_fetch(&_M_i, __i); }
+
+ __integral_type
+ operator&=(__integral_type __i) volatile
+ { return __sync_and_and_fetch(&_M_i, __i); }
+
+ __integral_type
+ operator|=(__integral_type __i) volatile
+ { return __sync_or_and_fetch(&_M_i, __i); }
+
+ __integral_type
+ operator^=(__integral_type __i) volatile
+ { return __sync_xor_and_fetch(&_M_i, __i); }
+
+ bool
+ is_lock_free() const volatile
+ { return true; }
+
+ void
+ store(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ __glibcxx_assert(__m == memory_order_acquire);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+ __glibcxx_assert(__m == memory_order_consume);
+
+ if (__m == memory_order_relaxed)
+ _M_i = __i;
+ else
+ {
+ // write_mem_barrier();
+ _M_i = __i;
+ if (__m = memory_order_seq_cst)
+ __sync_synchronize();
+ }
+ }
+
+ __integral_type
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ {
+ __glibcxx_assert(__m == memory_order_release);
+ __glibcxx_assert(__m == memory_order_acq_rel);
+
+ __sync_synchronize();
+ __integral_type __ret = _M_i;
+ __sync_synchronize();
+ return __ret;
+ }
+
+ __integral_type
+ exchange(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ // XXX built-in assumes memory_order_acquire.
+ return __sync_lock_test_and_set(&_M_i, __i);
+ }
+
+ bool
+ compare_exchange_weak(__integral_type& __i1, __integral_type __i2,
+ memory_order __m1, memory_order __m2) volatile
+ { return compare_exchange_strong(__i1, __i2, __m1, __m2); }
+
+ bool
+ compare_exchange_weak(__integral_type& __i1, __integral_type __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_weak(__i1, __i2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ bool
+ compare_exchange_strong(__integral_type& __i1, __integral_type __i2,
+ memory_order __m1, memory_order __m2) volatile
+ {
+ __glibcxx_assert(__m2 == memory_order_release);
+ __glibcxx_assert(__m2 == memory_order_acq_rel);
+ __glibcxx_assert(__m2 <= __m1);
+
+ __integral_type __i1o = __i1;
+ __integral_type __i1n = __sync_val_compare_and_swap(&_M_i, __i1o, __i2);
+
+ // Assume extra stores (of same value) allowed in true case.
+ __i1 = __i1n;
+ return __i1o == __i1n;
+ }
+
+ bool
+ compare_exchange_strong(__integral_type& __i1, __integral_type __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ {
+ return compare_exchange_strong(__i1, __i2, __m,
+ __calculate_memory_order(__m));
+ }
+
+ __integral_type
+ fetch_add(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_add(&_M_i, __i); }
+
+ __integral_type
+ fetch_sub(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_sub(&_M_i, __i); }
+
+ __integral_type
+ fetch_and(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_and(&_M_i, __i); }
+
+ __integral_type
+ fetch_or(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_or(&_M_i, __i); }
+
+ __integral_type
+ fetch_xor(__integral_type __i,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return __sync_fetch_and_xor(&_M_i, __i); }
+ };
+
+
+ /// atomic_bool
+ // NB: No operators or fetch-operations for this type.
+ struct atomic_bool
+ {
+ private:
+ __atomic_base<bool> _M_base;
+
+ public:
+ atomic_bool() = default;
+ ~atomic_bool() = default;
+ atomic_bool(const atomic_bool&) = delete;
+ atomic_bool& operator=(const atomic_bool&) = delete;
+
+ atomic_bool(bool __i) : _M_base(__i) { }
+
+ bool
+ operator=(bool __i) // XXX volatile
+ { return _M_base.operator=(__i); }
+
+ operator bool() const volatile
+ { return _M_base.load(); }
+
+ bool
+ is_lock_free() const volatile
+ { return _M_base.is_lock_free(); }
+
+ void
+ store(bool __i, memory_order __m = memory_order_seq_cst) volatile
+ { _M_base.store(__i, __m); }
+
+ bool
+ load(memory_order __m = memory_order_seq_cst) const volatile
+ { return _M_base.load(__m); }
+
+ bool
+ exchange(bool __i, memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.exchange(__i, __m); }
+
+ bool
+ compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+ memory_order __m2) volatile
+ { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+
+ bool
+ compare_exchange_weak(bool& __i1, bool __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+
+ bool
+ compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+ memory_order __m2) volatile
+ { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+
+
+ bool
+ compare_exchange_strong(bool& __i1, bool __i2,
+ memory_order __m = memory_order_seq_cst) volatile
+ { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+ };
+} // namespace __atomic2
+
+// _GLIBCXX_END_NAMESPACE
+
+#endif
diff --git a/libstdc++-v3/include/bits/atomicfwd_c.h b/libstdc++-v3/include/bits/atomicfwd_c.h
new file mode 100644
index 00000000000..41f2dfebe9a
--- /dev/null
+++ b/libstdc++-v3/include/bits/atomicfwd_c.h
@@ -0,0 +1,179 @@
+// -*- C++ -*- header.
+
+// Copyright (C) 2008
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file bits/atomicfwd_c.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+// "C" only bits.
+
+#define _ATOMIC_MEMBER_ ((__a)->_M_i)
+
+ // POD base classes for atomic intgral types.
+ struct __atomic_bool_base
+ {
+ bool _M_i;
+ };
+
+ struct __atomic_char_base
+ {
+ char _M_i;
+ };
+
+ struct __atomic_schar_base
+ {
+ signed char _M_i;
+ };
+
+ struct __atomic_uchar_base
+ {
+ unsigned char _M_i;
+ };
+
+ struct __atomic_short_base
+ {
+ short _M_i;
+ };
+
+ struct __atomic_ushort_base
+ {
+ unsigned short _M_i;
+ };
+
+ struct __atomic_int_base
+ {
+ int _M_i;
+ };
+
+ struct __atomic_uint_base
+ {
+ unsigned int _M_i;
+ };
+
+ struct __atomic_long_base
+ {
+ long _M_i;
+ };
+
+ struct __atomic_ulong_base
+ {
+ unsigned long _M_i;
+ };
+
+ struct __atomic_llong_base
+ {
+ long long _M_i;
+ };
+
+ struct __atomic_ullong_base
+ {
+ unsigned long long _M_i;
+ };
+
+ struct __atomic_wchar_t_base
+ {
+ wchar_t _M_i;
+ };
+
+ typedef struct __atomic_flag_base atomic_flag;
+ typedef struct __atomic_address_base atomic_address;
+ typedef struct __atomic_bool_base atomic_bool;
+ typedef struct __atomic_char_base atomic_char;
+ typedef struct __atomic_schar_base atomic_schar;
+ typedef struct __atomic_uchar_base atomic_uchar;
+ typedef struct __atomic_short_base atomic_short;
+ typedef struct __atomic_ushort_base atomic_ushort;
+ typedef struct __atomic_int_base atomic_int;
+ typedef struct __atomic_uint_base atomic_uint;
+ typedef struct __atomic_long_base atomic_long;
+ typedef struct __atomic_ulong_base atomic_ulong;
+ typedef struct __atomic_llong_base atomic_llong;
+ typedef struct __atomic_ullong_base atomic_ullong;
+ typedef struct __atomic_wchar_t_base atomic_wchar_t;
+ typedef struct __atomic_short_base atomic_char16_t;
+ typedef struct __atomic_int_base atomic_char32_t;
+
+#define atomic_is_lock_free(__a) \
+ false
+
+#define atomic_load_explicit(__a, __x) \
+ _ATOMIC_LOAD_(__a, __x)
+
+#define atomic_load(__a) \
+ atomic_load_explicit(__a, memory_order_seq_cst)
+
+#define atomic_store_explicit(__a, __m, __x) \
+ _ATOMIC_STORE_(__a, __m, __x)
+
+#define atomic_store(__a, __m) \
+ atomic_store_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_exchange_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, =, __m, __x)
+
+#define atomic_exchange(__a, __m) \
+ atomic_exchange_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_compare_exchange_explicit(__a, __e, __m, __x, __y) \
+ _ATOMIC_CMPEXCHNG_(__a, __e, __m, __x)
+
+#define atomic_compare_exchange(__a, __e, __m) \
+ _ATOMIC_CMPEXCHNG_(__a, __e, __m, memory_order_seq_cst)
+
+#define atomic_fetch_add_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, +=, __m, __x)
+
+#define atomic_fetch_add(__a, __m) \
+ atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_fetch_sub_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, -=, __m, __x)
+
+#define atomic_fetch_sub(__a, __m) \
+ atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_fetch_and_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, &=, __m, __x)
+
+#define atomic_fetch_and(__a, __m) \
+ atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_fetch_or_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, |=, __m, __x)
+
+#define atomic_fetch_or(__a, __m) \
+ atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst)
+
+#define atomic_fetch_xor_explicit(__a, __m, __x) \
+ _ATOMIC_MODIFY_(__a, ^=, __m, __x)
+
+#define atomic_fetch_xor(__a, __m) \
+ atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst)
diff --git a/libstdc++-v3/include/bits/atomicfwd_cxx.h b/libstdc++-v3/include/bits/atomicfwd_cxx.h
new file mode 100644
index 00000000000..06429316adb
--- /dev/null
+++ b/libstdc++-v3/include/bits/atomicfwd_cxx.h
@@ -0,0 +1,114 @@
+// -*- C++ -*- header.
+
+// Copyright (C) 2008
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file bits/atomicfwd_cxx.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+// "C++" only bits.
+
+#define _ATOMIC_MEMBER_ _M_i
+
+_GLIBCXX_END_EXTERN_C
+
+ namespace __atomic0
+ {
+ template<typename _IntTp>
+ struct __atomic_base;
+
+ struct atomic_flag;
+ struct atomic_address;
+ struct atomic_bool;
+ }
+
+ namespace __atomic2
+ {
+ template<typename _IntTp>
+ struct __atomic_base;
+
+ struct atomic_flag;
+ struct atomic_address;
+ struct atomic_bool;
+ }
+
+ namespace __atomic1
+ {
+ using __atomic2::atomic_flag;
+ using __atomic2::atomic_bool;
+ using __atomic0::atomic_address;
+ using __atomic0::__atomic_base;
+ }
+
+ /// atomic_char
+ typedef __atomic_base<char> atomic_char;
+
+ /// atomic_schar
+ typedef __atomic_base<signed char> atomic_schar;
+
+ /// atomic_uchar
+ typedef __atomic_base<unsigned char> atomic_uchar;
+
+ /// atomic_short
+ typedef __atomic_base<short> atomic_short;
+
+ /// atomic_ushort
+ typedef __atomic_base<unsigned short> atomic_ushort;
+
+ /// atomic_int
+ typedef __atomic_base<int> atomic_int;
+
+ /// atomic_uint
+ typedef __atomic_base<unsigned int> atomic_uint;
+
+ /// atomic_long
+ typedef __atomic_base<long> atomic_long;
+
+ /// atomic_ulong
+ typedef __atomic_base<unsigned long> atomic_ulong;
+
+ /// atomic_llong
+ typedef __atomic_base<long long> atomic_llong;
+
+ /// atomic_ullong
+ typedef __atomic_base<unsigned long long> atomic_ullong;
+
+ /// atomic_wchar_t
+ typedef __atomic_base<wchar_t> atomic_wchar_t;
+
+ /// atomic_char16_t
+ typedef __atomic_base<char16_t> atomic_char16_t;
+
+ /// atomic_char32_t
+ typedef __atomic_base<char32_t> atomic_char32_t;
+
+ template<typename _Tp>
+ struct atomic;
+_GLIBCXX_BEGIN_EXTERN_C
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index e40d9603a9b..2fa1eea2f15 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -271,6 +271,34 @@ namespace std
# define _GLIBCXX_WEAK_DEFINITION
#endif
+// Assert.
+// Avoid the use of assert, because we're trying to keep the <cassert>
+// include out of the mix.
+#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL)
+#define __glibcxx_assert(_Condition)
+#else
+_GLIBCXX_BEGIN_NAMESPACE(std)
+ // Avoid the use of assert, because we're trying to keep the <cassert>
+ // include out of the mix.
+ inline void
+ __replacement_assert(const char* __file, int __line,
+ const char* __function, const char* __condition)
+ {
+ __builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
+ __function, __condition);
+ __builtin_abort();
+ }
+_GLIBCXX_END_NAMESPACE
+
+#define __glibcxx_assert(_Condition) \
+ do \
+ { \
+ if (! (_Condition)) \
+ std::__replacement_assert(__FILE__, __LINE__, \
+ __PRETTY_FUNCTION__, #_Condition); \
+ } while (false)
+#endif
+
// The remainder of the prewritten config is automatic; all the
// user hooks are listed above.
diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h
index 473982c7e78..e6a6a80d513 100644
--- a/libstdc++-v3/include/bits/forward_list.h
+++ b/libstdc++-v3/include/bits/forward_list.h
@@ -1,6 +1,6 @@
// <forward_list.h> -*- C++ -*-
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -188,7 +188,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
operator!=(const _Self& __x) const
{ return this->_M_node != __x._M_node; }
- const _Self&
+ _Self
_M_next() const
{
if (_M_node)
@@ -259,7 +259,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
operator!=(const _Self& __x) const
{ return this->_M_node != __x._M_node; }
- const _Self&
+ _Self
_M_next() const
{
if (this->_M_node)
diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h
index cf61b09945a..eb741e2384e 100644
--- a/libstdc++-v3/include/bits/stl_pair.h
+++ b/libstdc++-v3/include/bits/stl_pair.h
@@ -1,6 +1,6 @@
// Pair implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -184,6 +184,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/// See std::pair::swap().
+ // Note: no std::swap overloads in C++03 mode, this has performance
+ // implications, see, eg, libstdc++/38466.
template<class _T1, class _T2>
inline void
swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
diff --git a/libstdc++-v3/include/c_compatibility/stdatomic.h b/libstdc++-v3/include/c_compatibility/stdatomic.h
index e5f7dcfe6c1..be66600f085 100644
--- a/libstdc++-v3/include/c_compatibility/stdatomic.h
+++ b/libstdc++-v3/include/c_compatibility/stdatomic.h
@@ -45,201 +45,46 @@ _GLIBCXX_BEGIN_EXTERN_C
typedef enum memory_order
{
memory_order_relaxed,
+ memory_order_consume,
memory_order_acquire,
memory_order_release,
memory_order_acq_rel,
memory_order_seq_cst
} memory_order;
-
// Base for atomic_flag.
- struct __atomic_flag_base
- {
- bool _M_b;
- };
-
- // Base for atomic_address
- struct __atomic_address_base
- {
- void* _M_i;
- };
-
- // POD base classes for atomic intgral types.
- struct __atomic_bool_base
+ typedef struct __atomic_flag_base
{
bool _M_i;
- };
-
- struct __atomic_char_base
- {
- char _M_i;
- };
-
- struct __atomic_schar_base
- {
- signed char _M_i;
- };
-
- struct __atomic_uchar_base
- {
- unsigned char _M_i;
- };
-
- struct __atomic_short_base
- {
- short _M_i;
- };
-
- struct __atomic_ushort_base
- {
- unsigned short _M_i;
- };
-
- struct __atomic_int_base
- {
- int _M_i;
- };
-
- struct __atomic_uint_base
- {
- unsigned int _M_i;
- };
+ } __atomic_flag_base;
- struct __atomic_long_base
- {
- long _M_i;
- };
+#define ATOMIC_FLAG_INIT { false }
- struct __atomic_ulong_base
- {
- unsigned long _M_i;
- };
-
- struct __atomic_llong_base
- {
- long long _M_i;
- };
-
- struct __atomic_ullong_base
- {
- unsigned long long _M_i;
- };
+ /// 29.2 Lock-free Property
+#if defined(_GLIBCXX_ATOMIC_BUILTINS_1) && defined(_GLIBCXX_ATOMIC_BUILTINS_2) \
+ && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_ATOMIC_BUILTINS_8)
+# define _GLIBCXX_ATOMIC_PROPERTY 2
+# define _GLIBCXX_ATOMIC_NAMESPACE __atomic2
+#elif defined(_GLIBCXX_ATOMIC_BUILTINS_1)
+# define _GLIBCXX_ATOMIC_PROPERTY 1
+# define _GLIBCXX_ATOMIC_NAMESPACE __atomic1
+#else
+# define _GLIBCXX_ATOMIC_PROPERTY 0
+# define _GLIBCXX_ATOMIC_NAMESPACE __atomic0
+#endif
- struct __atomic_wchar_t_base
- {
- wchar_t _M_i;
- };
+#define ATOMIC_INTEGRAL_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
+#define ATOMIC_ADDRESS_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
// Switch atomic integral base types based on C or C++. In
// addition, for "C" only provide type-generic macros for atomic
// operations. (As C++ accomplishes the same thing with sets of
// overloaded functions.
#ifdef __cplusplus
-
-#define ATOMIC_FLAG_INIT { { false } }
-#define _ATOMIC_MEMBER_ ((__a)->_M_base._M_i)
-
-extern "C++"
-{
- struct atomic_flag;
- struct atomic_address;
- struct atomic_bool;
- struct atomic_char;
- struct atomic_schar;
- struct atomic_uchar;
- struct atomic_short;
- struct atomic_ushort;
- struct atomic_int;
- struct atomic_uint;
- struct atomic_long;
- struct atomic_ulong;
- struct atomic_llong;
- struct atomic_ullong;
- struct atomic_wchar_t;
- template<typename _Tp>
- struct atomic;
-}
+ inline namespace _GLIBCXX_ATOMIC_NAMESPACE { }
+# include <bits/atomicfwd_cxx.h>
#else
-
-#define ATOMIC_FLAG_INIT { false }
-#define _ATOMIC_MEMBER_ ((__a)->_M_i)
-
- typedef struct __atomic_flag_base atomic_flag;
- typedef struct __atomic_address_base atomic_address;
- typedef struct __atomic_bool_base atomic_bool;
- typedef struct __atomic_char_base atomic_char;
- typedef struct __atomic_schar_base atomic_schar;
- typedef struct __atomic_uchar_base atomic_uchar;
- typedef struct __atomic_short_base atomic_short;
- typedef struct __atomic_ushort_base atomic_ushort;
- typedef struct __atomic_int_base atomic_int;
- typedef struct __atomic_uint_base atomic_uint;
- typedef struct __atomic_long_base atomic_long;
- typedef struct __atomic_ulong_base atomic_ulong;
- typedef struct __atomic_llong_base atomic_llong;
- typedef struct __atomic_ullong_base atomic_ullong;
- typedef struct __atomic_wchar_t_base atomic_wchar_t;
-
-#define atomic_is_lock_free(__a) \
- false
-
-#define atomic_load(__a) \
- _ATOMIC_LOAD_(__a, memory_order_seq_cst)
-
-#define atomic_load_explicit(__a, __x) \
- _ATOMIC_LOAD_(__a, __x)
-
-#define atomic_store(__a, __m) \
- _ATOMIC_STORE_(__a, __m, memory_order_seq_cst)
-
-#define atomic_store_explicit(__a, __m, __x) \
- _ATOMIC_STORE_(__a, __m, __x)
-
-#define atomic_swap(__a, __m) \
- _ATOMIC_MODIFY_(__a, =, __m, memory_order_seq_cst)
-
-#define atomic_swap_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, =, __m, __x)
-
-#define atomic_compare_swap(__a, __e, __m) \
- _ATOMIC_CMPSWP_(__a, __e, __m, memory_order_seq_cst)
-
-#define atomic_compare_swap_explicit(__a, __e, __m, __x, __y) \
- _ATOMIC_CMPSWP_(__a, __e, __m, __x)
-
-#define atomic_fence(__a, __x) \
- ({ _ATOMIC_FENCE_(__a, __x); })
-
-#define atomic_fetch_add_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, +=, __m, __x)
-
-#define atomic_fetch_add(__a, __m) \
- _ATOMIC_MODIFY_(__a, +=, __m, memory_order_seq_cst)
-
-#define atomic_fetch_sub_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, -=, __m, __x)
-
-#define atomic_fetch_sub(__a, __m) \
- _ATOMIC_MODIFY_(__a, -=, __m, memory_order_seq_cst)
-
-#define atomic_fetch_and_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, &=, __m, __x)
-
-#define atomic_fetch_and(__a, __m) \
- _ATOMIC_MODIFY_(__a, &=, __m, memory_order_seq_cst)
-
-#define atomic_fetch_or_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, |=, __m, __x)
-
-#define atomic_fetch_or(__a, __m) \
- _ATOMIC_MODIFY_(__a, |=, __m, memory_order_seq_cst)
-
-#define atomic_fetch_xor_explicit(__a, __m, __x) \
- _ATOMIC_MODIFY_(__a, ^=, __m, __x)
-
-#define atomic_fetch_xor(__a, __m) \
- _ATOMIC_MODIFY_(__a, ^=, __m, memory_order_seq_cst)
-
+# include <bits/atomicfwd_c.h>
#endif
// Typedefs for other atomic integral types.
@@ -272,42 +117,31 @@ extern "C++"
typedef atomic_long atomic_ptrdiff_t;
- typedef atomic_int_least16_t atomic_char16_t;
- typedef atomic_int_least32_t atomic_char32_t;
+ // Accessor functions for base atomic_flag type.
+ bool
+ atomic_flag_test_and_set_explicit(volatile __atomic_flag_base*, memory_order);
- // Accessor functions for atomic_flag.
- extern bool
- atomic_flag_test_and_set(volatile atomic_flag*);
+ inline bool
+ atomic_flag_test_and_set(volatile __atomic_flag_base* __a)
+ { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
- extern bool
- atomic_flag_test_and_set_explicit(volatile atomic_flag*, memory_order);
-
- extern void
- atomic_flag_clear(volatile atomic_flag*);
-
- extern void
- atomic_flag_clear_explicit(volatile atomic_flag*, memory_order);
-
- extern void
- atomic_flag_fence(const volatile atomic_flag*, memory_order);
-
- extern void
- __atomic_flag_wait_explicit(volatile atomic_flag*, memory_order);
+ void
+ atomic_flag_clear_explicit(volatile __atomic_flag_base*, memory_order);
+
+ inline void
+ atomic_flag_clear(volatile __atomic_flag_base* __a)
+ { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
+
+ void
+ __atomic_flag_wait_explicit(volatile __atomic_flag_base*, memory_order);
- extern volatile atomic_flag*
+ volatile __atomic_flag_base*
__atomic_flag_for_address(const volatile void* __z) __attribute__((const));
-
- // External object.
- extern const atomic_flag atomic_global_fence_compatibility;
-
- /// 29.2 Lock-free Property
-#define ATOMIC_INTEGRAL_LOCK_FREE 0
-#define ATOMIC_ADDRESS_LOCK_FREE 0
// Implementation specific defines.
#define _ATOMIC_LOAD_(__a, __x) \
({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
- volatile atomic_flag* __g = __atomic_flag_for_address(__p); \
+ volatile atomic_flag* __g = __atomic_flag_for_address(__p); \
__atomic_flag_wait_explicit(__g, __x); \
__typeof__ _ATOMIC_MEMBER_ __r = *__p; \
atomic_flag_clear_explicit(__g, __x); \
@@ -332,7 +166,7 @@ extern "C++"
atomic_flag_clear_explicit(__g, __x); \
__r; })
-#define _ATOMIC_CMPSWP_(__a, __e, __m, __x) \
+#define _ATOMIC_CMPEXCHNG_(__a, __e, __m, __x) \
({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
__typeof__(__e) __q = (__e); \
__typeof__(__m) __v = (__m); \
@@ -345,26 +179,19 @@ extern "C++"
atomic_flag_clear_explicit(__g, __x); \
__r; })
-#define _ATOMIC_FENCE_(__a, __x) \
- ({ volatile __typeof__ _ATOMIC_MEMBER_* __p = &_ATOMIC_MEMBER_; \
- volatile atomic_flag* __g = __atomic_flag_for_address(__p); \
- atomic_flag_fence(__g, __x); \
- })
-
_GLIBCXX_END_EXTERN_C
_GLIBCXX_END_NAMESPACE
-#ifdef __cplusplus
-// Inject into global namespace iff C++.
+// Inject into global namespace. XXX
+#if defined(__cplusplus) && !defined(_GLIBCXX_STDATOMIC)
using std::memory_order;
using std::memory_order_relaxed;
+using std::memory_order_consume;
using std::memory_order_acquire;
using std::memory_order_release;
using std::memory_order_acq_rel;
using std::memory_order_seq_cst;
-
using std::atomic_flag;
-
using std::atomic_bool;
using std::atomic_char;
using std::atomic_schar;
@@ -378,10 +205,10 @@ using std::atomic_ulong;
using std::atomic_llong;
using std::atomic_ullong;
using std::atomic_wchar_t;
-
+using std::atomic_char16_t;
+using std::atomic_char32_t;
using std::atomic_address;
using std::atomic;
-
#endif
#endif
diff --git a/libstdc++-v3/include/c_global/cstdatomic b/libstdc++-v3/include/c_global/cstdatomic
index 22fde89603b..82d699b8e81 100644
--- a/libstdc++-v3/include/c_global/cstdatomic
+++ b/libstdc++-v3/include/c_global/cstdatomic
@@ -55,1596 +55,59 @@
_GLIBCXX_BEGIN_NAMESPACE(std)
- // Can either subclass or encapsulate "C" functionality, and here
- // encapsulating works with C++2003's version of POD and so is
- // portable across C++2003/200x.
- // Both end up being sub-optimal in terms of a constructor
- // initialization list, but oh well.
-
- /// atomic_flag
- struct atomic_flag
- {
- __atomic_flag_base _M_base;
-
- bool
- test_and_set(memory_order __x = memory_order_seq_cst) volatile
- { return atomic_flag_test_and_set_explicit(this, __x); }
-
- void
- clear(memory_order __x = memory_order_seq_cst) volatile
- { atomic_flag_clear_explicit(this, __x); }
-
- void
- fence(memory_order __x) const volatile
- { atomic_flag_fence(this, __x); }
-
-#if _GLIBCXX_USE_STANDARD_LAYOUT
- // Add in non-trivial default constructor that correctly
- // initializes member "as if" by ATOMIC_FLAG_INIT.
- atomic_flag() { _M_base._M_b = false; }
-
- private:
- atomic_flag(const atomic_flag&);
- atomic_flag& operator=(const atomic_flag&);
-#endif
- };
+ /// kill_dependency
+ template<typename _Tp>
+ inline _Tp
+ kill_dependency(_Tp __y)
+ {
+ _Tp ret(__y);
+ return ret;
+ }
- /// 29.4.2, address types
- typedef struct atomic_address
+ inline memory_order
+ __calculate_memory_order(memory_order __m)
{
- __atomic_address_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(void*, memory_order = memory_order_seq_cst) volatile;
-
- void*
- load(memory_order = memory_order_seq_cst) volatile;
-
- void*
- swap(void*, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(void*&, void*, memory_order, memory_order) volatile;
-
- bool
- compare_swap(void*&, void*, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- void*
- fetch_add(ptrdiff_t, memory_order = memory_order_seq_cst) volatile;
-
- void*
- fetch_sub(ptrdiff_t, memory_order = memory_order_seq_cst) volatile;
-
- void*
- operator=(void* __v) volatile
- { store(__v); return __v; }
-
- void*
- operator+=(ptrdiff_t __v) volatile
- { return fetch_add(__v); }
-
- void*
- operator-=(ptrdiff_t __v) volatile
- { return fetch_sub(__v); }
-
- friend void
- atomic_store_explicit(volatile atomic_address*, void*, memory_order);
-
- friend void*
- atomic_load_explicit(volatile atomic_address*, memory_order);
-
- friend void*
- atomic_swap_explicit(volatile atomic_address*, void*, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_address*, void**, void*,
- memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_address*, memory_order);
-
- friend void*
- atomic_fetch_add_explicit(volatile atomic_address*, ptrdiff_t,
- memory_order);
-
- friend void*
- atomic_fetch_sub_explicit(volatile atomic_address*, ptrdiff_t,
- memory_order);
-
- atomic_address() { }
-
- explicit atomic_address(void* __v)
- { _M_base._M_i = __v; }
-
- private:
- atomic_address(const atomic_address&);
- atomic_address& operator=(const atomic_address &);
- };
-
+ const bool __cond1 = __m == memory_order_release;
+ const bool __cond2 = __m == memory_order_acq_rel;
+ memory_order __mo1(__cond1 ? memory_order_relaxed : __m);
+ memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
+ return __mo2;
+ }
- // 29.4.1 atomic integral types
- // For each of the integral types, define atomic_[integral type] struct
+ //
+ // Three nested namespaces for atomic implementation details.
//
- // atomic_bool bool
- // atomic_char char
- // atomic_schar signed char
- // atomic_uchar unsigned char
- // atomic_short short
- // atomic_ushort unsigned short
- // atomic_int int
- // atomic_uint unsigned int
- // atomic_long long
- // atomic_ulong unsigned long
- // atomic_llong long long
- // atomic_ullong unsigned long long
- // atomic_char16_t char16_t
- // atomic_char32_t char32_t
- // atomic_wchar_t wchar_t
-
- /// atomic_bool
- struct atomic_bool
- {
- __atomic_bool_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(bool, memory_order = memory_order_seq_cst) volatile;
-
- bool
- load(memory_order = memory_order_seq_cst) volatile;
-
- bool
- swap(bool, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(bool&, bool, memory_order, memory_order) volatile;
-
- bool
- compare_swap(bool&, bool, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- bool
- operator=(bool __v) volatile { store(__v); return __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_bool*, bool, memory_order);
-
- friend bool
- atomic_load_explicit(volatile atomic_bool*, memory_order);
-
- friend bool
- atomic_swap_explicit(volatile atomic_bool*, bool, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_bool*, bool*, bool,
- memory_order, memory_order);
- friend void
- atomic_fence(const volatile atomic_bool*, memory_order);
-
- atomic_bool() { }
-
- explicit atomic_bool(bool __v) { _M_base._M_i = __v; }
-
- private:
- atomic_bool(const atomic_bool&);
- atomic_bool& operator=(const atomic_bool&);
- };
-
- /// atomic_char
- struct atomic_char
- {
- __atomic_char_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- load(memory_order = memory_order_seq_cst) volatile;
-
- char
- swap(char, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(char&, char, memory_order, memory_order) volatile;
-
- bool
- compare_swap(char&, char, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- char
- fetch_add(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- fetch_sub(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- fetch_and(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- fetch_or(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- fetch_xor(char, memory_order = memory_order_seq_cst) volatile;
-
- char
- operator=(char __v) volatile { store(__v); return __v; }
-
- char
- operator++(int) volatile { return fetch_add(1); }
-
- char
- operator--(int) volatile { return fetch_sub(1); }
-
- char
- operator++() volatile { return fetch_add(1) + 1; }
-
- char
- operator--() volatile { return fetch_sub(1) - 1; }
-
- char
- operator+=(char __v) volatile { return fetch_add(__v) + __v; }
-
- char
- operator-=(char __v) volatile { return fetch_sub(__v) - __v; }
-
- char
- operator&=(char __v) volatile { return fetch_and(__v) & __v; }
-
- char
- operator|=(char __v) volatile { return fetch_or(__v) | __v; }
-
- char
- operator^=(char __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_char*, char, memory_order);
-
- friend char
- atomic_load_explicit(volatile atomic_char*, memory_order);
-
- friend char
- atomic_swap_explicit(volatile atomic_char*, char, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_char*, char*, char,
- memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_char*, memory_order);
-
- friend char
- atomic_fetch_add_explicit(volatile atomic_char*, char, memory_order);
-
- friend char
- atomic_fetch_sub_explicit(volatile atomic_char*, char, memory_order);
-
- friend char
- atomic_fetch_and_explicit(volatile atomic_char*, char, memory_order);
-
- friend char
- atomic_fetch_or_explicit( volatile atomic_char*, char, memory_order);
-
- friend char
- atomic_fetch_xor_explicit(volatile atomic_char*, char, memory_order);
-
- atomic_char() { }
-
- atomic_char(char __v) { _M_base._M_i = __v; }
-
- private:
- atomic_char(const atomic_char&);
- atomic_char& operator=(const atomic_char&);
- };
-
- /// atomic_schar
- struct atomic_schar
- {
- __atomic_schar_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- load(memory_order = memory_order_seq_cst) volatile;
-
- signed char
- swap(signed char, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(signed char&, signed char, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(signed char&, signed char,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- signed char
- fetch_add(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- fetch_sub(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- fetch_and(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- fetch_or(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- fetch_xor(signed char, memory_order = memory_order_seq_cst) volatile;
-
- signed char
- operator=(signed char __v) volatile { store(__v); return __v; }
-
- signed char
- operator++(int) volatile { return fetch_add(1); }
-
- signed char
- operator--(int) volatile { return fetch_sub(1); }
-
- signed char
- operator++() volatile { return fetch_add(1) + 1; }
-
- signed char
- operator--() volatile { return fetch_sub(1) - 1; }
-
- signed char
- operator+=(signed char __v) volatile { return fetch_add(__v) + __v; }
-
- signed char
- operator-=(signed char __v) volatile { return fetch_sub(__v) - __v; }
-
- signed char
- operator&=(signed char __v) volatile { return fetch_and(__v) & __v; }
-
- signed char
- operator|=(signed char __v) volatile { return fetch_or(__v) | __v; }
-
- signed char
- operator^=(signed char __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_schar*, signed char, memory_order);
-
- friend signed char
- atomic_load_explicit(volatile atomic_schar*, memory_order);
-
- friend signed char
- atomic_swap_explicit(volatile atomic_schar*, signed char, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_schar*, signed char*,
- signed char, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_schar*, memory_order);
-
- friend signed char
- atomic_fetch_add_explicit(volatile atomic_schar*,
- signed char, memory_order);
-
- friend signed char
- atomic_fetch_sub_explicit(volatile atomic_schar*, signed char,
- memory_order);
-
- friend signed char
- atomic_fetch_and_explicit(volatile atomic_schar*, signed char,
- memory_order);
-
- friend signed char
- atomic_fetch_or_explicit(volatile atomic_schar*, signed char,
- memory_order);
-
- friend signed char
- atomic_fetch_xor_explicit(volatile atomic_schar*, signed char,
- memory_order);
-
- atomic_schar() { }
-
- atomic_schar(signed char __v) { _M_base._M_i = __v; }
-
- private:
- atomic_schar(const atomic_schar&);
- atomic_schar& operator=(const atomic_schar&);
- };
-
- /// atomic_uchar
- struct atomic_uchar
- {
- __atomic_uchar_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- load(memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- swap(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(unsigned char&, unsigned char, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(unsigned char&, unsigned char,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- unsigned char
- fetch_add(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- fetch_sub(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- fetch_and(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- fetch_or(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- fetch_xor(unsigned char, memory_order = memory_order_seq_cst) volatile;
-
- unsigned char
- operator=(unsigned char __v) volatile { store(__v); return __v; }
-
- unsigned char
- operator++(int) volatile { return fetch_add(1); }
-
- unsigned char
- operator--(int) volatile { return fetch_sub(1); }
-
- unsigned char
- operator++() volatile { return fetch_add(1) + 1; }
-
- unsigned char
- operator--() volatile { return fetch_sub(1) - 1; }
-
- unsigned char
- operator+=(unsigned char __v) volatile { return fetch_add(__v) + __v; }
-
- unsigned char
- operator-=(unsigned char __v) volatile { return fetch_sub(__v) - __v; }
-
- unsigned char
- operator&=(unsigned char __v) volatile { return fetch_and(__v) & __v; }
-
- unsigned char
- operator|=(unsigned char __v) volatile { return fetch_or(__v) | __v; }
-
- unsigned char
- operator^=(unsigned char __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_uchar*, unsigned char, memory_order);
-
- friend unsigned char
- atomic_load_explicit(volatile atomic_uchar*, memory_order);
-
- friend unsigned char
- atomic_swap_explicit(volatile atomic_uchar*, unsigned char, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_uchar*, unsigned char*,
- unsigned char, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_uchar*, memory_order);
-
- friend unsigned char
- atomic_fetch_add_explicit(volatile atomic_uchar*, unsigned char,
- memory_order);
-
- friend unsigned char
- atomic_fetch_sub_explicit(volatile atomic_uchar*, unsigned char,
- memory_order);
-
- friend unsigned char
- atomic_fetch_and_explicit(volatile atomic_uchar*,
- unsigned char, memory_order);
-
- friend unsigned char
- atomic_fetch_or_explicit( volatile atomic_uchar*, unsigned char,
- memory_order);
-
- friend unsigned char
- atomic_fetch_xor_explicit(volatile atomic_uchar*, unsigned char,
- memory_order);
-
- atomic_uchar() { }
-
- atomic_uchar(unsigned char __v) { _M_base._M_i = __v; }
-
- private:
- atomic_uchar(const atomic_uchar&);
- atomic_uchar& operator=(const atomic_uchar&);
- };
-
-
- /// atomic_short
- struct atomic_short
- {
- __atomic_short_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- load(memory_order = memory_order_seq_cst) volatile;
-
- short
- swap(short, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(short&, short, memory_order, memory_order) volatile;
-
- bool
- compare_swap(short&, short, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- short
- fetch_add(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- fetch_sub(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- fetch_and(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- fetch_or(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- fetch_xor(short, memory_order = memory_order_seq_cst) volatile;
-
- short
- operator=(short __v) volatile { store(__v); return __v; }
-
- short
- operator++(int) volatile { return fetch_add(1); }
-
- short
- operator--(int) volatile { return fetch_sub(1); }
-
- short
- operator++() volatile { return fetch_add(1) + 1; }
-
- short
- operator--() volatile { return fetch_sub(1) - 1; }
-
- short
- operator+=(short __v) volatile { return fetch_add(__v) + __v; }
-
- short
- operator-=(short __v) volatile { return fetch_sub(__v) - __v; }
-
- short
- operator&=(short __v) volatile { return fetch_and(__v) & __v; }
-
- short
- operator|=(short __v) volatile { return fetch_or(__v) | __v; }
-
- short
- operator^=(short __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_short*, short, memory_order);
-
- friend short
- atomic_load_explicit(volatile atomic_short*, memory_order);
-
- friend short
- atomic_swap_explicit(volatile atomic_short*, short, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_short*, short*, short,
- memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_short*, memory_order);
-
- friend short
- atomic_fetch_add_explicit(volatile atomic_short*, short, memory_order);
-
- friend short
- atomic_fetch_sub_explicit(volatile atomic_short*, short, memory_order);
-
- friend short
- atomic_fetch_and_explicit(volatile atomic_short*, short, memory_order);
-
- friend short
- atomic_fetch_or_explicit( volatile atomic_short*, short, memory_order);
-
- friend short
- atomic_fetch_xor_explicit(volatile atomic_short*, short, memory_order);
-
- atomic_short() { }
-
- atomic_short(short __v) { _M_base._M_i = __v; }
-
- private:
- atomic_short(const atomic_short&);
- atomic_short& operator=(const atomic_short&);
- };
-
- /// atomic_ushort
- struct atomic_ushort
- {
- __atomic_ushort_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- load(memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- swap(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(unsigned short&, unsigned short, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(unsigned short&, unsigned short,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- unsigned short
- fetch_add(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- fetch_sub(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- fetch_and(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- fetch_or(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- fetch_xor(unsigned short, memory_order = memory_order_seq_cst) volatile;
-
- unsigned short
- operator=(unsigned short __v) volatile { store(__v); return __v; }
-
- unsigned short
- operator++(int) volatile { return fetch_add(1); }
-
- unsigned short
- operator--(int) volatile { return fetch_sub(1); }
-
- unsigned short
- operator++() volatile { return fetch_add(1) + 1; }
-
- unsigned short
- operator--() volatile { return fetch_sub(1) - 1; }
-
- unsigned short
- operator+=(unsigned short __v) volatile { return fetch_add(__v) + __v; }
-
- unsigned short
- operator-=(unsigned short __v) volatile { return fetch_sub(__v) - __v; }
-
- unsigned short
- operator&=(unsigned short __v) volatile { return fetch_and(__v) & __v; }
-
- unsigned short
- operator|=(unsigned short __v) volatile { return fetch_or(__v) | __v; }
-
- unsigned short
- operator^=(unsigned short __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_ushort*, unsigned short,
- memory_order);
-
- friend unsigned short
- atomic_load_explicit(volatile atomic_ushort*, memory_order);
-
- friend unsigned short
- atomic_swap_explicit(volatile atomic_ushort*, unsigned short, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_ushort*, unsigned short*,
- unsigned short, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_ushort*, memory_order);
-
- friend unsigned short
- atomic_fetch_add_explicit(volatile atomic_ushort*, unsigned short,
- memory_order);
-
- friend unsigned short
- atomic_fetch_sub_explicit(volatile atomic_ushort*, unsigned short,
- memory_order);
-
- friend unsigned short
- atomic_fetch_and_explicit(volatile atomic_ushort*, unsigned short,
- memory_order);
-
- friend unsigned short
- atomic_fetch_or_explicit( volatile atomic_ushort*, unsigned short,
- memory_order);
-
- friend unsigned short
- atomic_fetch_xor_explicit(volatile atomic_ushort*, unsigned short,
- memory_order);
-
- atomic_ushort() { }
-
- atomic_ushort(unsigned short __v) { _M_base._M_i = __v; }
-
- private:
- atomic_ushort(const atomic_ushort&);
- atomic_ushort& operator=(const atomic_ushort&);
- };
-
- /// atomic_int
- struct atomic_int
- {
- __atomic_int_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- load(memory_order = memory_order_seq_cst) volatile;
-
- int
- swap(int, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(int&, int, memory_order, memory_order) volatile;
-
- bool
- compare_swap(int&, int, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- int
- fetch_add(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- fetch_sub(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- fetch_and(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- fetch_or(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- fetch_xor(int, memory_order = memory_order_seq_cst) volatile;
-
- int
- operator=(int __v) volatile { store(__v); return __v; }
-
- int
- operator++(int) volatile { return fetch_add(1); }
-
- int
- operator--(int) volatile { return fetch_sub(1); }
-
- int
- operator++() volatile { return fetch_add(1) + 1; }
-
- int
- operator--() volatile { return fetch_sub(1) - 1; }
-
- int
- operator+=(int __v) volatile { return fetch_add(__v) + __v; }
-
- int
- operator-=(int __v) volatile { return fetch_sub(__v) - __v; }
-
- int
- operator&=(int __v) volatile { return fetch_and(__v) & __v; }
-
- int
- operator|=(int __v) volatile { return fetch_or(__v) | __v; }
-
- int
- operator^=(int __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_int*, int, memory_order);
-
- friend int
- atomic_load_explicit(volatile atomic_int*, memory_order);
-
- friend int
- atomic_swap_explicit(volatile atomic_int*, int, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_int*, int*, int,
- memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_int*, memory_order);
-
- friend int
- atomic_fetch_add_explicit(volatile atomic_int*, int, memory_order);
-
- friend int
- atomic_fetch_sub_explicit(volatile atomic_int*, int, memory_order);
-
- friend int
- atomic_fetch_and_explicit(volatile atomic_int*, int, memory_order);
-
- friend int
- atomic_fetch_or_explicit( volatile atomic_int*, int, memory_order);
-
- friend int
- atomic_fetch_xor_explicit(volatile atomic_int*, int, memory_order);
-
- atomic_int() { }
-
- atomic_int(int __v) { _M_base._M_i = __v; }
-
- private:
- atomic_int(const atomic_int&);
- atomic_int& operator=(const atomic_int&);
- };
-
- /// atomic_uint
- struct atomic_uint
- {
- __atomic_uint_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- load(memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- swap(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(unsigned int&, unsigned int, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(unsigned int&, unsigned int,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- unsigned int
- fetch_add(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- fetch_sub(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- fetch_and(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- fetch_or(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- fetch_xor(unsigned int, memory_order = memory_order_seq_cst) volatile;
-
- unsigned int
- operator=(unsigned int __v) volatile { store(__v); return __v; }
-
- unsigned int
- operator++(int) volatile { return fetch_add(1); }
-
- unsigned int
- operator--(int) volatile { return fetch_sub(1); }
-
- unsigned int
- operator++() volatile { return fetch_add(1) + 1; }
-
- unsigned int
- operator--() volatile { return fetch_sub(1) - 1; }
-
- unsigned int
- operator+=(unsigned int __v) volatile { return fetch_add(__v) + __v; }
-
- unsigned int
- operator-=(unsigned int __v) volatile { return fetch_sub(__v) - __v; }
-
- unsigned int
- operator&=(unsigned int __v) volatile { return fetch_and(__v) & __v; }
-
- unsigned int
- operator|=(unsigned int __v) volatile { return fetch_or(__v) | __v; }
-
- unsigned int
- operator^=(unsigned int __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_uint*, unsigned int, memory_order);
-
- friend unsigned int
- atomic_load_explicit(volatile atomic_uint*, memory_order);
-
- friend unsigned int
- atomic_swap_explicit(volatile atomic_uint*, unsigned int, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_uint*, unsigned int*,
- unsigned int, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_uint*, memory_order);
-
- friend unsigned int
- atomic_fetch_add_explicit(volatile atomic_uint*, unsigned int,
- memory_order);
-
- friend unsigned int
- atomic_fetch_sub_explicit(volatile atomic_uint*, unsigned int,
- memory_order);
-
- friend unsigned int
- atomic_fetch_and_explicit(volatile atomic_uint*, unsigned int,
- memory_order);
-
- friend unsigned int
- atomic_fetch_or_explicit( volatile atomic_uint*, unsigned int,
- memory_order);
-
- friend unsigned int
- atomic_fetch_xor_explicit(volatile atomic_uint*, unsigned int,
- memory_order);
-
- atomic_uint() { }
-
- atomic_uint(unsigned int __v) { _M_base._M_i = __v; }
-
- private:
- atomic_uint(const atomic_uint&);
- atomic_uint& operator=(const atomic_uint&);
- };
-
- /// atomic_long
- struct atomic_long
- {
- __atomic_long_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- load(memory_order = memory_order_seq_cst) volatile;
-
- long
- swap(long, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(long&, long, memory_order, memory_order) volatile;
-
- bool
- compare_swap(long&, long, memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- long
- fetch_add(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- fetch_sub(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- fetch_and(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- fetch_or(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- fetch_xor(long, memory_order = memory_order_seq_cst) volatile;
-
- long
- operator=(long __v) volatile { store(__v); return __v; }
-
- long
- operator++(int) volatile { return fetch_add(1); }
-
- long
- operator--(int) volatile { return fetch_sub(1); }
-
- long
- operator++() volatile { return fetch_add(1) + 1; }
-
- long
- operator--() volatile { return fetch_sub(1) - 1; }
-
- long
- operator+=(long __v) volatile { return fetch_add(__v) + __v; }
-
- long
- operator-=(long __v) volatile { return fetch_sub(__v) - __v; }
-
- long
- operator&=(long __v) volatile { return fetch_and(__v) & __v; }
-
- long
- operator|=(long __v) volatile { return fetch_or(__v) | __v; }
-
- long
- operator^=(long __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_long*, long, memory_order);
-
- friend long
- atomic_load_explicit(volatile atomic_long*, memory_order);
-
- friend long
- atomic_swap_explicit(volatile atomic_long*, long, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_long*, long*, long,
- memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_long*, memory_order);
-
- friend long
- atomic_fetch_add_explicit(volatile atomic_long*, long, memory_order);
-
- friend long
- atomic_fetch_sub_explicit(volatile atomic_long*, long, memory_order);
-
- friend long
- atomic_fetch_and_explicit(volatile atomic_long*, long, memory_order);
-
- friend long
- atomic_fetch_or_explicit( volatile atomic_long*, long, memory_order);
-
- friend long
- atomic_fetch_xor_explicit(volatile atomic_long*, long, memory_order);
-
- atomic_long() { }
-
- atomic_long(long __v) { _M_base._M_i = __v; }
-
- private:
- atomic_long(const atomic_long&);
- atomic_long& operator=(const atomic_long&);
- };
-
- /// atomic_ulong
- struct atomic_ulong
- {
- __atomic_ulong_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- load(memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- swap(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(unsigned long&, unsigned long, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(unsigned long&, unsigned long,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- unsigned long
- fetch_add(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- fetch_sub(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- fetch_and(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- fetch_or(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- fetch_xor(unsigned long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long
- operator=(unsigned long __v) volatile { store(__v); return __v; }
-
- unsigned long
- operator++(int) volatile { return fetch_add(1); }
-
- unsigned long
- operator--(int) volatile { return fetch_sub(1); }
-
- unsigned long
- operator++() volatile { return fetch_add(1) + 1; }
-
- unsigned long
- operator--() volatile { return fetch_sub(1) - 1; }
-
- unsigned long
- operator+=(unsigned long __v) volatile { return fetch_add(__v) + __v; }
-
- unsigned long
- operator-=(unsigned long __v) volatile { return fetch_sub(__v) - __v; }
-
- unsigned long
- operator&=(unsigned long __v) volatile { return fetch_and(__v) & __v; }
-
- unsigned long
- operator|=(unsigned long __v) volatile { return fetch_or(__v) | __v; }
-
- unsigned long
- operator^=(unsigned long __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_ulong*, unsigned long, memory_order);
-
- friend unsigned long
- atomic_load_explicit(volatile atomic_ulong*, memory_order);
-
- friend unsigned long
- atomic_swap_explicit(volatile atomic_ulong*, unsigned long, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_ulong*, unsigned long*,
- unsigned long, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_ulong*, memory_order);
-
- friend unsigned long
- atomic_fetch_add_explicit(volatile atomic_ulong*, unsigned long,
- memory_order);
-
- friend unsigned long
- atomic_fetch_sub_explicit(volatile atomic_ulong*, unsigned long,
- memory_order);
-
- friend unsigned long
- atomic_fetch_and_explicit(volatile atomic_ulong*, unsigned long,
- memory_order);
- friend unsigned long
- atomic_fetch_or_explicit(volatile atomic_ulong*, unsigned long,
- memory_order);
-
- friend unsigned long
- atomic_fetch_xor_explicit(volatile atomic_ulong*, unsigned long,
- memory_order);
-
- atomic_ulong() { }
-
- atomic_ulong(unsigned long __v) { _M_base._M_i = __v; }
-
- private:
- atomic_ulong(const atomic_ulong&);
- atomic_ulong& operator=(const atomic_ulong&);
- };
-
- /// atomic_llong
- struct atomic_llong
- {
- __atomic_llong_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- load(memory_order = memory_order_seq_cst) volatile;
-
- long long
- swap(long long, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(long long&, long long, memory_order, memory_order) volatile;
-
- bool
- compare_swap(long long&, long long,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- long long
- fetch_add(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- fetch_sub(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- fetch_and(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- fetch_or(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- fetch_xor(long long, memory_order = memory_order_seq_cst) volatile;
-
- long long
- operator=(long long __v) volatile { store(__v); return __v; }
-
- long long
- operator++(int) volatile { return fetch_add(1); }
-
- long long
- operator--(int) volatile { return fetch_sub(1); }
-
- long long
- operator++() volatile { return fetch_add(1) + 1; }
-
- long long
- operator--() volatile { return fetch_sub(1) - 1; }
-
- long long
- operator+=(long long __v) volatile { return fetch_add(__v) + __v; }
-
- long long
- operator-=(long long __v) volatile { return fetch_sub(__v) - __v; }
-
- long long
- operator&=(long long __v) volatile { return fetch_and(__v) & __v; }
-
- long long
- operator|=(long long __v) volatile { return fetch_or(__v) | __v; }
-
- long long
- operator^=(long long __v) volatile { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend long long
- atomic_load_explicit(volatile atomic_llong*, memory_order);
-
- friend long long
- atomic_swap_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_llong*, long long*,
- long long, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_llong*, memory_order);
-
- friend long long
- atomic_fetch_add_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend long long
- atomic_fetch_sub_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend long long
- atomic_fetch_and_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend long long
- atomic_fetch_or_explicit(volatile atomic_llong*, long long, memory_order);
-
- friend long long
- atomic_fetch_xor_explicit(volatile atomic_llong*, long long, memory_order);
-
- atomic_llong() { }
-
- atomic_llong(long long __v) { _M_base._M_i = __v; }
-
- private:
- atomic_llong(const atomic_llong&);
- atomic_llong& operator=(const atomic_llong&);
- };
-
- /// atomic_ullong
- struct atomic_ullong
- {
- __atomic_ullong_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- load(memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- swap(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(unsigned long long&, unsigned long long, memory_order,
- memory_order) volatile;
-
- bool
- compare_swap(unsigned long long&, unsigned long long,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- unsigned long long
- fetch_add(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- fetch_sub(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- fetch_and(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- fetch_or(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- fetch_xor(unsigned long long, memory_order = memory_order_seq_cst) volatile;
-
- unsigned long long
- operator=(unsigned long long __v) volatile
- { store(__v); return __v; }
-
- unsigned long long
- operator++(int) volatile
- { return fetch_add(1); }
-
- unsigned long long
- operator--(int) volatile
- { return fetch_sub(1); }
-
- unsigned long long
- operator++() volatile
- { return fetch_add(1) + 1; }
-
- unsigned long long
- operator--() volatile
- { return fetch_sub(1) - 1; }
-
- unsigned long long
- operator+=(unsigned long long __v) volatile
- { return fetch_add(__v) + __v; }
-
- unsigned long long
- operator-=(unsigned long long __v) volatile
- { return fetch_sub(__v) - __v; }
-
- unsigned long long
- operator&=(unsigned long long __v) volatile
- { return fetch_and(__v) & __v; }
-
- unsigned long long
- operator|=(unsigned long long __v) volatile
- { return fetch_or(__v) | __v; }
-
- unsigned long long
- operator^=(unsigned long long __v) volatile
- { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
- friend unsigned long long
- atomic_load_explicit(volatile atomic_ullong*, memory_order);
-
- friend unsigned long long
- atomic_swap_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_ullong*, unsigned long long*,
- unsigned long long, memory_order,
- memory_order);
-
- friend void
- atomic_fence(const volatile atomic_ullong*, memory_order);
-
- friend unsigned long long
- atomic_fetch_add_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- friend unsigned long long
- atomic_fetch_sub_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- friend unsigned long long
- atomic_fetch_and_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- friend unsigned long long
- atomic_fetch_or_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- friend unsigned long long
- atomic_fetch_xor_explicit(volatile atomic_ullong*, unsigned long long,
- memory_order);
-
- atomic_ullong() { }
-
- atomic_ullong(unsigned long long __v) { _M_base._M_i = __v; }
-
- private:
- atomic_ullong(const atomic_ullong&);
- atomic_ullong& operator=(const atomic_ullong&);
- };
-
- /// atomic_wchar_t
- struct atomic_wchar_t
- {
- __atomic_wchar_t_base _M_base;
-
- bool
- is_lock_free() const volatile;
-
- void
- store(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- load(memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- swap(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- bool
- compare_swap(wchar_t&, wchar_t, memory_order, memory_order) volatile;
-
- bool
- compare_swap(wchar_t&, wchar_t,
- memory_order = memory_order_seq_cst) volatile;
-
- void
- fence(memory_order) const volatile;
-
- wchar_t
- fetch_add(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- fetch_sub(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- fetch_and(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- fetch_or(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- fetch_xor(wchar_t, memory_order = memory_order_seq_cst) volatile;
-
- wchar_t
- operator=(wchar_t __v) volatile
- { store(__v); return __v; }
-
- wchar_t
- operator++(int) volatile
- { return fetch_add(1); }
-
- wchar_t
- operator--(int) volatile
- { return fetch_sub(1); }
-
- wchar_t
- operator++() volatile
- { return fetch_add(1) + 1; }
-
- wchar_t
- operator--() volatile
- { return fetch_sub(1) - 1; }
-
- wchar_t
- operator+=(wchar_t __v) volatile
- { return fetch_add(__v) + __v; }
-
- wchar_t
- operator-=(wchar_t __v) volatile
- { return fetch_sub(__v) - __v; }
-
- wchar_t
- operator&=(wchar_t __v) volatile
- { return fetch_and(__v) & __v; }
-
- wchar_t
- operator|=(wchar_t __v) volatile
- { return fetch_or(__v) | __v; }
-
- wchar_t
- operator^=(wchar_t __v) volatile
- { return fetch_xor(__v) ^ __v; }
-
- friend void
- atomic_store_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend wchar_t
- atomic_load_explicit(volatile atomic_wchar_t*, memory_order);
-
- friend wchar_t
- atomic_swap_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend bool
- atomic_compare_swap_explicit(volatile atomic_wchar_t*,
- wchar_t*, wchar_t, memory_order, memory_order);
-
- friend void
- atomic_fence(const volatile atomic_wchar_t*, memory_order);
-
- friend wchar_t
- atomic_fetch_add_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend wchar_t
- atomic_fetch_sub_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend wchar_t
- atomic_fetch_and_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend wchar_t
- atomic_fetch_or_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- friend wchar_t
- atomic_fetch_xor_explicit(volatile atomic_wchar_t*, wchar_t, memory_order);
-
- atomic_wchar_t() { }
-
- atomic_wchar_t(wchar_t __v) { _M_base._M_i = __v; }
-
- private:
- atomic_wchar_t(const atomic_wchar_t&);
- atomic_wchar_t& operator=(const atomic_wchar_t&);
- };
-
+ // The nested namespace inlined into std:: is determined by the value
+ // of the _GLIBCXX_ATOMIC_PROPERTY macro and the resulting
+ // ATOMIC_*_LOCK_FREE macros. See file stdatomic.h.
+ //
+ // 0 == __atomic0 == Never lock-free
+ // 1 == __atomic1 == Best available, sometimes lock-free
+ // 2 == __atomic2 == Always lock-free
+#include <bits/atomic_0.h>
+#include <bits/atomic_2.h>
/// atomic
/// 29.4.3, Generic atomic type, primary class template.
template<typename _Tp>
struct atomic
{
+ private:
+ _Tp _M_i;
+
+ public:
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(_Tp __i) : _M_i(__i) { }
+
+ operator _Tp() const volatile;
+
+ _Tp
+ operator=(_Tp __i) volatile { store(__i); return __i; }
+
bool
is_lock_free() const volatile;
@@ -1652,49 +115,60 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
store(_Tp, memory_order = memory_order_seq_cst) volatile;
_Tp
- load(memory_order = memory_order_seq_cst) volatile;
+ load(memory_order = memory_order_seq_cst) const volatile;
_Tp
- swap(_Tp __v, memory_order = memory_order_seq_cst) volatile;
+ exchange(_Tp __i, memory_order = memory_order_seq_cst) volatile;
bool
- compare_swap(_Tp&, _Tp, memory_order, memory_order) volatile;
+ compare_exchange_weak(_Tp&, _Tp, memory_order, memory_order) volatile;
bool
- compare_swap(_Tp&, _Tp, memory_order = memory_order_seq_cst) volatile;
+ compare_exchange_strong(_Tp&, _Tp, memory_order, memory_order) volatile;
- void
- fence(memory_order) const volatile;
-
- _Tp
- operator=(_Tp __v) volatile { store(__v); return __v; }
-
- atomic() { }
-
- explicit atomic(_Tp __v) : __f(__v) { }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ bool
+ compare_exchange_weak(_Tp&, _Tp,
+ memory_order = memory_order_seq_cst) volatile;
- _Tp __f;
+ bool
+ compare_exchange_strong(_Tp&, _Tp,
+ memory_order = memory_order_seq_cst) volatile;
};
+
/// Partial specialization for pointer types.
template<typename _Tp>
struct atomic<_Tp*> : atomic_address
{
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(_Tp* __v) : atomic_address(__v) { }
+
+ void
+ store(_Tp*, memory_order = memory_order_seq_cst) volatile;
+
_Tp*
- load(memory_order = memory_order_seq_cst) volatile;
+ load(memory_order = memory_order_seq_cst) const volatile;
_Tp*
- swap(_Tp*, memory_order = memory_order_seq_cst) volatile;
+ exchange(_Tp*, memory_order = memory_order_seq_cst) volatile;
bool
- compare_swap(_Tp*&, _Tp*, memory_order, memory_order) volatile;
+ compare_exchange_weak(_Tp*&, _Tp*, memory_order, memory_order) volatile;
bool
- compare_swap(_Tp*&, _Tp*, memory_order = memory_order_seq_cst) volatile;
+ compare_exchange_strong(_Tp*&, _Tp*, memory_order, memory_order) volatile;
+
+ bool
+ compare_exchange_weak(_Tp*&, _Tp*,
+ memory_order = memory_order_seq_cst) volatile;
+
+ bool
+ compare_exchange_strong(_Tp*&, _Tp*,
+ memory_order = memory_order_seq_cst) volatile;
_Tp*
fetch_add(ptrdiff_t, memory_order = memory_order_seq_cst) volatile;
@@ -1702,8 +176,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
_Tp*
fetch_sub(ptrdiff_t, memory_order = memory_order_seq_cst) volatile;
+ operator _Tp*() const volatile
+ { return load(); }
+
_Tp*
- operator=(_Tp* __v) volatile { store(__v); return __v; }
+ operator=(_Tp* __v) volatile
+ {
+ store(__v);
+ return __v;
+ }
_Tp*
operator++(int) volatile { return fetch_add(1); }
@@ -1718,2380 +199,645 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
operator--() volatile { return fetch_sub(1) - 1; }
_Tp*
- operator+=(ptrdiff_t __v) volatile
- { return fetch_add(__v) + __v; }
+ operator+=(ptrdiff_t __d) volatile
+ { return fetch_add(__d) + __d; }
_Tp*
- operator-=(ptrdiff_t __v) volatile
- { return fetch_sub(__v) - __v; }
+ operator-=(ptrdiff_t __d) volatile
+ { return fetch_sub(__d) - __d; }
+ };
- atomic() { }
- explicit atomic(_Tp* __v) : atomic_address(__v) { }
+ /// Explicit specialization for void*
+ template<>
+ struct atomic<void*> : public atomic_address
+ {
+ typedef void* __integral_type;
+ typedef atomic_address __base_type;
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for bool.
template<>
- struct atomic<bool> : atomic_bool
+ struct atomic<bool> : public atomic_bool
{
- atomic() { }
+ typedef bool __integral_type;
+ typedef atomic_bool __base_type;
- explicit atomic(bool __v) : atomic_bool(__v) { }
-
- bool
- operator=(bool __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
- };
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
- /// Explicit specialization for void*
- template<>
- struct atomic<void*> : atomic_address
- {
- atomic() { }
+ atomic(__integral_type __i) : __base_type(__i) { }
- explicit atomic(void* __v) : atomic_address(__v) { }
-
- void*
- operator=(void* __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for char.
template<>
- struct atomic<char> : atomic_char
+ struct atomic<char> : public atomic_char
{
- atomic() { }
+ typedef char __integral_type;
+ typedef atomic_char __base_type;
- explicit atomic(char __v) : atomic_char(__v) { }
-
- char
- operator=(char __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
- };
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
/// Explicit specialization for signed char.
template<>
- struct atomic<signed char> : atomic_schar
+ struct atomic<signed char> : public atomic_schar
{
- atomic() { }
+ typedef signed char __integral_type;
+ typedef atomic_schar __base_type;
- explicit atomic(signed char __v) : atomic_schar(__v) { }
-
- signed char
- operator=(signed char __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
- };
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
/// Explicit specialization for unsigned char.
template<>
- struct atomic<unsigned char> : atomic_uchar
+ struct atomic<unsigned char> : public atomic_uchar
{
- atomic() { }
+ typedef unsigned char __integral_type;
+ typedef atomic_uchar __base_type;
- explicit atomic(unsigned char __v) : atomic_uchar(__v) { }
-
- unsigned char
- operator=(unsigned char __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic&
- operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for short.
template<>
- struct atomic<short> : atomic_short
+ struct atomic<short> : public atomic_short
{
- atomic() { }
+ typedef short __integral_type;
+ typedef atomic_short __base_type;
- explicit atomic(short __v) : atomic_short(__v) { }
-
- short
- operator=(short __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
- };
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
/// Explicit specialization for unsigned short.
template<>
- struct atomic<unsigned short> : atomic_ushort
+ struct atomic<unsigned short> : public atomic_ushort
{
- atomic() { }
+ typedef unsigned short __integral_type;
+ typedef atomic_ushort __base_type;
- explicit atomic(unsigned short __v) : atomic_ushort(__v) { }
-
- unsigned short
- operator=(unsigned short __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for int.
template<>
struct atomic<int> : atomic_int
{
- atomic() { }
+ typedef int __integral_type;
+ typedef atomic_int __base_type;
- explicit atomic(int __v) : atomic_int(__v) { }
-
- int
- operator=(int __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for unsigned int.
template<>
- struct atomic<unsigned int> : atomic_uint
+ struct atomic<unsigned int> : public atomic_uint
{
- atomic() { }
+ typedef unsigned int __integral_type;
+ typedef atomic_uint __base_type;
- explicit atomic(unsigned int __v) : atomic_uint(__v) { }
-
- unsigned int
- operator=(unsigned int __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for long.
template<>
- struct atomic<long> : atomic_long
+ struct atomic<long> : public atomic_long
{
- atomic() { }
+ typedef long __integral_type;
+ typedef atomic_long __base_type;
- explicit atomic(long __v) : atomic_long(__v) { }
-
- long
- operator=(long __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for unsigned long.
template<>
- struct atomic<unsigned long> : atomic_ulong
+ struct atomic<unsigned long> : public atomic_ulong
{
- atomic() { }
-
- explicit atomic(unsigned long __v) : atomic_ulong(__v) { }
-
- unsigned long
- operator=(unsigned long __v) volatile
- { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ typedef unsigned long __integral_type;
+ typedef atomic_ulong __base_type;
+
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for long long.
template<>
- struct atomic<long long> : atomic_llong
+ struct atomic<long long> : public atomic_llong
{
- atomic() { }
+ typedef long long __integral_type;
+ typedef atomic_llong __base_type;
- explicit atomic(long long __v) : atomic_llong(__v) { }
-
- long long
- operator=(long long __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for unsigned long long.
template<>
- struct atomic<unsigned long long> : atomic_ullong
+ struct atomic<unsigned long long> : public atomic_ullong
{
- atomic() { }
+ typedef unsigned long long __integral_type;
+ typedef atomic_ullong __base_type;
- explicit atomic(unsigned long long __v) : atomic_ullong(__v) { }
-
- unsigned long long
- operator=(unsigned long long __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
+
+ atomic(__integral_type __i) : __base_type(__i) { }
+
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
};
/// Explicit specialization for wchar_t.
template<>
- struct atomic<wchar_t> : atomic_wchar_t
+ struct atomic<wchar_t> : public atomic_wchar_t
{
- atomic() { }
-
- explicit atomic(wchar_t __v) : atomic_wchar_t(__v) { }
-
- wchar_t
- operator=(wchar_t __v) volatile { store(__v); return __v; }
-
- private:
- atomic(const atomic&);
- atomic& operator=(const atomic&);
- };
+ typedef wchar_t __integral_type;
+ typedef atomic_wchar_t __base_type;
- inline bool
- atomic_is_lock_free(const volatile atomic_bool* __a)
- { return false; }
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
- inline bool
- atomic_load_explicit(volatile atomic_bool* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline bool
- atomic_load(volatile atomic_bool* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
+ atomic(__integral_type __i) : __base_type(__i) { }
- inline void
- atomic_store_explicit(volatile atomic_bool* __a, bool __m, memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_bool* __a, bool __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_swap_explicit(volatile atomic_bool* __a, bool __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline bool
- atomic_swap(volatile atomic_bool* __a, bool __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_bool* __a, bool* __e, bool __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_bool* __a, bool* __e, bool __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_bool* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
- inline bool
- atomic_is_lock_free(const volatile atomic_address* __a)
- { return false; }
-
- inline void*
- atomic_load_explicit(volatile atomic_address* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline void*
- atomic_load(volatile atomic_address* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_address* __a, void* __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_address* __a, void* __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline void*
- atomic_swap_explicit(volatile atomic_address* __a, void* __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline void*
- atomic_swap(volatile atomic_address* __a, void* __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_address* __a, void** __e,
- void* __m, memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_address* __a, void** __e, void* __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_address* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_char* __a)
- { return false; }
-
- inline char
- atomic_load_explicit(volatile atomic_char* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline char
- atomic_load(volatile atomic_char* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_char* __a, char __m, memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_char* __a, char __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline char
- atomic_swap_explicit(volatile atomic_char* __a, char __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline char
- atomic_swap(volatile atomic_char* __a, char __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_char* __a, char* __e, char __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_char* __a, char* __e, char __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_char* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_schar* __a)
- { return false; }
-
- inline signed char
- atomic_load_explicit(volatile atomic_schar* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline signed char
- atomic_load(volatile atomic_schar* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_schar* __a, signed char __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline signed char
- atomic_swap_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline signed char
- atomic_swap(volatile atomic_schar* __a, signed char __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_schar* __a, signed char* __e,
- signed char __m, memory_order __x,
- memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_schar* __a, signed char* __e,
- signed char __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_schar* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_uchar* __a)
- { return false; }
-
- inline unsigned char
- atomic_load_explicit(volatile atomic_uchar* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline unsigned char
- atomic_load(volatile atomic_uchar* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned char
- atomic_swap_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline unsigned char
- atomic_swap(volatile atomic_uchar* __a, unsigned char __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_uchar* __a, unsigned char* __e,
- unsigned char __m, memory_order __x,
- memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_uchar* __a, unsigned char* __e,
- unsigned char __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_uchar* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_short* __a)
- { return false; }
-
- inline short
- atomic_load_explicit(volatile atomic_short* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline short
- atomic_load(volatile atomic_short* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_short* __a, short __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline short
- atomic_swap_explicit(volatile atomic_short* __a, short __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline short
- atomic_swap(volatile atomic_short* __a, short __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_short* __a, short* __e,
- short __m, memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_short* __a, short* __e, short __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_short* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_ushort* __a)
- { return false; }
-
- inline unsigned short
- atomic_load_explicit(volatile atomic_ushort* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline unsigned short
- atomic_load(volatile atomic_ushort* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned short
- atomic_swap_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline unsigned short
- atomic_swap(volatile atomic_ushort* __a, unsigned short __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_ushort* __a,
- unsigned short* __e, unsigned short __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_ushort* __a, unsigned short* __e,
- unsigned short __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_ushort* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_int* __a)
- { return false; }
-
- inline int
- atomic_load_explicit(volatile atomic_int* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline int
- atomic_load(volatile atomic_int* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_int* __a, int __m, memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_int* __a, int __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline int
- atomic_swap_explicit(volatile atomic_int* __a, int __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline int
- atomic_swap(volatile atomic_int* __a, int __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_int* __a, int* __e, int __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_int* __a, int* __e, int __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_int* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_uint* __a)
- { return false; }
-
- inline unsigned int
- atomic_load_explicit(volatile atomic_uint* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline unsigned int
- atomic_load(volatile atomic_uint* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_uint* __a, unsigned int __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned int
- atomic_swap_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline unsigned int
- atomic_swap(volatile atomic_uint* __a, unsigned int __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_uint* __a, unsigned int* __e,
- unsigned int __m, memory_order __x,
- memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_uint* __a, unsigned int* __e,
- unsigned int __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_uint* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_long* __a)
- { return false; }
-
- inline long
- atomic_load_explicit(volatile atomic_long* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline long
- atomic_load(volatile atomic_long* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_long* __a, long __m, memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_long* __a, long __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long
- atomic_swap_explicit(volatile atomic_long* __a, long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline long
- atomic_swap(volatile atomic_long* __a, long __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_long* __a, long* __e, long __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_long* __a, long* __e, long __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_long* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
-
- inline bool
- atomic_is_lock_free(const volatile atomic_ulong* __a)
- { return false; }
-
- inline unsigned long
- atomic_load_explicit(volatile atomic_ulong* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline unsigned long
- atomic_load(volatile atomic_ulong* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
- inline void
- atomic_store_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
-
- inline void
- atomic_store(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
- inline unsigned long
- atomic_swap_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
+ /// Explicit specialization for char16_t.
+ template<>
+ struct atomic<char16_t> : public atomic_char16_t
+ {
+ typedef char16_t __integral_type;
+ typedef atomic_char16_t __base_type;
- inline unsigned long
- atomic_swap(volatile atomic_ulong* __a, unsigned long __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
- inline bool
- atomic_compare_swap_explicit(volatile atomic_ulong* __a, unsigned long* __e,
- unsigned long __m, memory_order __x,
- memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
+ atomic(__integral_type __i) : __base_type(__i) { }
- inline bool
- atomic_compare_swap(volatile atomic_ulong* __a, unsigned long* __e,
- unsigned long __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
- inline void
- atomic_fence(const volatile atomic_ulong* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
+ /// Explicit specialization for char32_t.
+ template<>
+ struct atomic<char32_t> : public atomic_char32_t
+ {
+ typedef char32_t __integral_type;
+ typedef atomic_char32_t __base_type;
+ atomic() = default;
+ ~atomic() = default;
+ atomic(const atomic&) = delete;
+ atomic& operator=(const atomic&) = delete;
- inline bool
- atomic_is_lock_free(const volatile atomic_llong* __a)
- { return false; }
+ atomic(__integral_type __i) : __base_type(__i) { }
- inline long long
- atomic_load_explicit(volatile atomic_llong* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
+ using __base_type::operator __integral_type;
+ using __base_type::operator=;
+ };
- inline long long
- atomic_load(volatile atomic_llong* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
- inline void
- atomic_store_explicit(volatile atomic_llong* __a, long long __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
+ template<typename _Tp>
+ _Tp*
+ atomic<_Tp*>::load(memory_order __m) const volatile
+ { return static_cast<_Tp*>(atomic_address::load(__m)); }
- inline void
- atomic_store(volatile atomic_llong* __a, long long __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
+ template<typename _Tp>
+ _Tp*
+ atomic<_Tp*>::exchange(_Tp* __v, memory_order __m) volatile
+ { return static_cast<_Tp*>(atomic_address::exchange(__v, __m)); }
- inline long long
- atomic_swap_explicit(volatile atomic_llong* __a, long long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
+ template<typename _Tp>
+ bool
+ atomic<_Tp*>::compare_exchange_weak(_Tp*& __r, _Tp* __v, memory_order __m1,
+ memory_order __m2) volatile
+ {
+ void** __vr = reinterpret_cast<void**>(&__r);
+ void* __vv = static_cast<void*>(__v);
+ return atomic_address::compare_exchange_weak(*__vr, __vv, __m1, __m2);
+ }
- inline long long
- atomic_swap(volatile atomic_llong* __a, long long __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
+ template<typename _Tp>
+ bool
+ atomic<_Tp*>::compare_exchange_strong(_Tp*& __r, _Tp* __v,
+ memory_order __m1,
+ memory_order __m2) volatile
+ {
+ void** __vr = reinterpret_cast<void**>(&__r);
+ void* __vv = static_cast<void*>(__v);
+ return atomic_address::compare_exchange_strong(*__vr, __vv, __m1, __m2);
+ }
- inline bool
- atomic_compare_swap_explicit(volatile atomic_llong* __a, long long* __e,
- long long __m, memory_order __x,
- memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
+ template<typename _Tp>
+ bool
+ atomic<_Tp*>::compare_exchange_weak(_Tp*& __r, _Tp* __v,
+ memory_order __m) volatile
+ {
+ return compare_exchange_weak(__r, __v, __m,
+ __calculate_memory_order(__m));
+ }
- inline bool
- atomic_compare_swap(volatile atomic_llong* __a, long long* __e,
- long long __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
+ template<typename _Tp>
+ bool
+ atomic<_Tp*>::compare_exchange_strong(_Tp*& __r, _Tp* __v,
+ memory_order __m) volatile
+ {
+ return compare_exchange_strong(__r, __v, __m,
+ __calculate_memory_order(__m));
+ }
- inline void
- atomic_fence(const volatile atomic_llong* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
+ template<typename _Tp>
+ _Tp*
+ atomic<_Tp*>::fetch_add(ptrdiff_t __d, memory_order __m) volatile
+ {
+ void* __p = atomic_fetch_add_explicit(this, sizeof(_Tp) * __d, __m);
+ return static_cast<_Tp*>(__p);
+ }
+ template<typename _Tp>
+ _Tp*
+ atomic<_Tp*>::fetch_sub(ptrdiff_t __d, memory_order __m) volatile
+ {
+ void* __p = atomic_fetch_sub_explicit(this, sizeof(_Tp) * __d, __m);
+ return static_cast<_Tp*>(__p);
+ }
+ // Convenience function definitions, atomic_flag.
inline bool
- atomic_is_lock_free(const volatile atomic_ullong* __a)
- { return false; }
-
- inline unsigned long long
- atomic_load_explicit(volatile atomic_ullong* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline unsigned long long
- atomic_load(volatile atomic_ullong* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
+ atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, memory_order __m)
+ { return __a->test_and_set(__m); }
inline void
- atomic_store_explicit(volatile atomic_ullong* __a, unsigned long long __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
+ atomic_flag_clear_explicit(volatile atomic_flag* __a, memory_order __m)
+ { return __a->clear(__m); }
- inline void
- atomic_store(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long long
- atomic_swap_explicit(volatile atomic_ullong* __a, unsigned long long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline unsigned long long
- atomic_swap(volatile atomic_ullong* __a, unsigned long long __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_ullong* __a,
- unsigned long long* __e, unsigned long long __m,
- memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
+ // Convenience function definitions, atomic_address.
inline bool
- atomic_compare_swap(volatile atomic_ullong* __a, unsigned long long* __e,
- unsigned long long __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_ullong* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
-
- inline bool
- atomic_is_lock_free(const volatile atomic_wchar_t* __a)
- { return false; }
-
- inline wchar_t
- atomic_load_explicit(volatile atomic_wchar_t* __a, memory_order __x)
- { return _ATOMIC_LOAD_(__a, __x); }
-
- inline wchar_t
- atomic_load(volatile atomic_wchar_t* __a)
- { return atomic_load_explicit(__a, memory_order_seq_cst); }
-
+ atomic_is_lock_free(const volatile atomic_address* __a)
+ { return __a->is_lock_free(); }
inline void
- atomic_store_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { _ATOMIC_STORE_(__a, __m, __x); }
+ atomic_store(volatile atomic_address* __a, void* __v)
+ { __a->store(__v); }
inline void
- atomic_store(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_store_explicit(__a, __m, memory_order_seq_cst); }
-
- inline wchar_t
- atomic_swap_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, =, __m, __x); }
-
- inline wchar_t
- atomic_swap(volatile atomic_wchar_t* __a, wchar_t __m)
- { return atomic_swap_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_compare_swap_explicit(volatile atomic_wchar_t* __a, wchar_t* __e,
- wchar_t __m, memory_order __x, memory_order __y)
- { return _ATOMIC_CMPSWP_(__a, __e, __m, __x); }
-
- inline bool
- atomic_compare_swap(volatile atomic_wchar_t* __a, wchar_t* __e, wchar_t __m)
- { return atomic_compare_swap_explicit(__a, __e, __m, memory_order_seq_cst,
- memory_order_seq_cst); }
-
- inline void
- atomic_fence(const volatile atomic_wchar_t* __a, memory_order __x)
- { _ATOMIC_FENCE_(__a, __x); }
+ atomic_store_explicit(volatile atomic_address* __a, void* __v,
+ memory_order __m)
+ { __a->store(__v, __m); }
inline void*
- atomic_fetch_add_explicit(volatile atomic_address* __a, ptrdiff_t __m,
- memory_order __x)
- {
- void* volatile* __p = &((__a)->_M_base._M_i);
- volatile atomic_flag* __g = __atomic_flag_for_address(__p);
- __atomic_flag_wait_explicit(__g, __x);
- void* __r = *__p;
- *__p = (void*)((char*)(*__p) + __m);
- atomic_flag_clear_explicit(__g, __x);
- return __r;
- }
+ atomic_load(const volatile atomic_address* __a)
+ { return __a->load(); }
inline void*
- atomic_fetch_add(volatile atomic_address* __a, ptrdiff_t __m)
- { return atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
+ atomic_load_explicit(const volatile atomic_address* __a, memory_order __m)
+ { return __a->load(__m); }
inline void*
- atomic_fetch_sub_explicit(volatile atomic_address* __a, ptrdiff_t __m,
- memory_order __x)
- {
- void* volatile* __p = &((__a)->_M_base._M_i);
- volatile atomic_flag* __g = __atomic_flag_for_address(__p);
- __atomic_flag_wait_explicit(__g, __x);
- void* __r = *__p;
- *__p = (void*)((char*)(*__p) - __m);
- atomic_flag_clear_explicit(__g, __x);
- return __r;
- }
+ atomic_exchange(volatile atomic_address* __a, void* __v)
+ { return __a->exchange(__v); }
inline void*
- atomic_fetch_sub(volatile atomic_address* __a, ptrdiff_t __m)
- { return atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline char
- atomic_fetch_add_explicit(volatile atomic_char* __a, char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline char
- atomic_fetch_add(volatile atomic_char* __a, char __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline char
- atomic_fetch_sub_explicit(volatile atomic_char* __a, char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline char
- atomic_fetch_sub(volatile atomic_char* __a, char __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline char
- atomic_fetch_and_explicit(volatile atomic_char* __a, char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline char
- atomic_fetch_and(volatile atomic_char* __a, char __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline char
- atomic_fetch_or_explicit(volatile atomic_char* __a, char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline char
- atomic_fetch_or(volatile atomic_char* __a, char __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline char
- atomic_fetch_xor_explicit(volatile atomic_char* __a, char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline char
- atomic_fetch_xor(volatile atomic_char* __a, char __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline signed char
- atomic_fetch_add_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline signed char
- atomic_fetch_add(volatile atomic_schar* __a, signed char __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline signed char
- atomic_fetch_sub_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline signed char
- atomic_fetch_sub(volatile atomic_schar* __a, signed char __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline signed char
- atomic_fetch_and_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline signed char
- atomic_fetch_and(volatile atomic_schar* __a, signed char __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline signed char
- atomic_fetch_or_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline signed char
- atomic_fetch_or(volatile atomic_schar* __a, signed char __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline signed char
- atomic_fetch_xor_explicit(volatile atomic_schar* __a, signed char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline signed char
- atomic_fetch_xor(volatile atomic_schar* __a, signed char __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned char
- atomic_fetch_add_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline unsigned char
- atomic_fetch_add(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned char
- atomic_fetch_sub_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline unsigned char
- atomic_fetch_sub(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned char
- atomic_fetch_and_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline unsigned char
- atomic_fetch_and(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned char
- atomic_fetch_or_explicit(volatile atomic_uchar* __a, unsigned char __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline unsigned char
- atomic_fetch_or(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned char
- atomic_fetch_xor_explicit(volatile atomic_uchar* __a,
- unsigned char __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline unsigned char
- atomic_fetch_xor(volatile atomic_uchar* __a, unsigned char __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline short
- atomic_fetch_add_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline short
- atomic_fetch_add(volatile atomic_short* __a, short __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline short
- atomic_fetch_sub_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline short
- atomic_fetch_sub(volatile atomic_short* __a, short __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline short
- atomic_fetch_and_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline short
- atomic_fetch_and(volatile atomic_short* __a, short __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline short
- atomic_fetch_or_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline short
- atomic_fetch_or(volatile atomic_short* __a, short __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline short
- atomic_fetch_xor_explicit(volatile atomic_short* __a, short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline short
- atomic_fetch_xor(volatile atomic_short* __a, short __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned short
- atomic_fetch_add_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline unsigned short
- atomic_fetch_add(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned short
- atomic_fetch_sub_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline unsigned short
- atomic_fetch_sub(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned short
- atomic_fetch_and_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline unsigned short
- atomic_fetch_and(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned short
- atomic_fetch_or_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline unsigned short
- atomic_fetch_or(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned short
- atomic_fetch_xor_explicit(volatile atomic_ushort* __a, unsigned short __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline unsigned short
- atomic_fetch_xor(volatile atomic_ushort* __a, unsigned short __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline int
- atomic_fetch_add_explicit(volatile atomic_int* __a, int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline int
- atomic_fetch_add(volatile atomic_int* __a, int __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline int
- atomic_fetch_sub_explicit(volatile atomic_int* __a, int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline int
- atomic_fetch_sub(volatile atomic_int* __a, int __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline int
- atomic_fetch_and_explicit(volatile atomic_int* __a, int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline int
- atomic_fetch_and(volatile atomic_int* __a, int __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline int
- atomic_fetch_or_explicit(volatile atomic_int* __a, int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline int
- atomic_fetch_or(volatile atomic_int* __a, int __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline int
- atomic_fetch_xor_explicit(volatile atomic_int* __a, int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline int
- atomic_fetch_xor(volatile atomic_int* __a, int __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned int
- atomic_fetch_add_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline unsigned int
- atomic_fetch_add(volatile atomic_uint* __a, unsigned int __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned int
- atomic_fetch_sub_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline unsigned int
- atomic_fetch_sub(volatile atomic_uint* __a, unsigned int __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned int
- atomic_fetch_and_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline unsigned int
- atomic_fetch_and(volatile atomic_uint* __a, unsigned int __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned int
- atomic_fetch_or_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline unsigned int
- atomic_fetch_or(volatile atomic_uint* __a, unsigned int __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned int
- atomic_fetch_xor_explicit(volatile atomic_uint* __a, unsigned int __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline unsigned int
- atomic_fetch_xor(volatile atomic_uint* __a, unsigned int __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline long
- atomic_fetch_add_explicit(volatile atomic_long* __a, long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline long
- atomic_fetch_add(volatile atomic_long* __a, long __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long
- atomic_fetch_sub_explicit(volatile atomic_long* __a, long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline long
- atomic_fetch_sub(volatile atomic_long* __a, long __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long
- atomic_fetch_and_explicit(volatile atomic_long* __a, long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline long
- atomic_fetch_and(volatile atomic_long* __a, long __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long
- atomic_fetch_or_explicit(volatile atomic_long* __a, long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline long
- atomic_fetch_or(volatile atomic_long* __a, long __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long
- atomic_fetch_xor_explicit(volatile atomic_long* __a, long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline long
- atomic_fetch_xor(volatile atomic_long* __a, long __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned long
- atomic_fetch_add_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline unsigned long
- atomic_fetch_add(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long
- atomic_fetch_sub_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline unsigned long
- atomic_fetch_sub(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long
- atomic_fetch_and_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline unsigned long
- atomic_fetch_and(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long
- atomic_fetch_or_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline unsigned long
- atomic_fetch_or(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long
- atomic_fetch_xor_explicit(volatile atomic_ulong* __a, unsigned long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline unsigned long
- atomic_fetch_xor(volatile atomic_ulong* __a, unsigned long __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline long long
- atomic_fetch_add_explicit(volatile atomic_llong* __a, long long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline long long
- atomic_fetch_add(volatile atomic_llong* __a, long long __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long long
- atomic_fetch_sub_explicit(volatile atomic_llong* __a, long long __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline long long
- atomic_fetch_sub(volatile atomic_llong* __a, long long __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long long
- atomic_fetch_and_explicit(volatile atomic_llong* __a,
- long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline long long
- atomic_fetch_and(volatile atomic_llong* __a, long long __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long long
- atomic_fetch_or_explicit(volatile atomic_llong* __a,
- long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline long long
- atomic_fetch_or(volatile atomic_llong* __a, long long __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline long long
- atomic_fetch_xor_explicit(volatile atomic_llong* __a,
- long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline long long
- atomic_fetch_xor(volatile atomic_llong* __a, long long __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline unsigned long long
- atomic_fetch_add_explicit(volatile atomic_ullong* __a,
- unsigned long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline unsigned long long
- atomic_fetch_add(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long long
- atomic_fetch_sub_explicit(volatile atomic_ullong* __a,
- unsigned long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline unsigned long long
- atomic_fetch_sub(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long long
- atomic_fetch_and_explicit(volatile atomic_ullong* __a,
- unsigned long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline unsigned long long
- atomic_fetch_and(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long long
- atomic_fetch_or_explicit(volatile atomic_ullong* __a,
- unsigned long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline unsigned long long
- atomic_fetch_or(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline unsigned long long
- atomic_fetch_xor_explicit(volatile atomic_ullong* __a,
- unsigned long long __m, memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline unsigned long long
- atomic_fetch_xor(volatile atomic_ullong* __a, unsigned long long __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
-
- inline wchar_t
- atomic_fetch_add_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, +=, __m, __x); }
-
- inline wchar_t
- atomic_fetch_add(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_fetch_add_explicit(__a, __m, memory_order_seq_cst); }
-
- inline wchar_t
- atomic_fetch_sub_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, -=, __m, __x); }
-
- inline wchar_t
- atomic_fetch_sub(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_fetch_sub_explicit(__a, __m, memory_order_seq_cst); }
-
- inline wchar_t
- atomic_fetch_and_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, &=, __m, __x); }
-
- inline wchar_t
- atomic_fetch_and(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_fetch_and_explicit(__a, __m, memory_order_seq_cst); }
-
- inline wchar_t
- atomic_fetch_or_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, |=, __m, __x); }
-
- inline wchar_t
- atomic_fetch_or(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_fetch_or_explicit(__a, __m, memory_order_seq_cst); }
-
- inline wchar_t
- atomic_fetch_xor_explicit(volatile atomic_wchar_t* __a, wchar_t __m,
- memory_order __x)
- { return _ATOMIC_MODIFY_(__a, ^=, __m, __x); }
-
- inline wchar_t
- atomic_fetch_xor(volatile atomic_wchar_t* __a, wchar_t __m)
- { atomic_fetch_xor_explicit(__a, __m, memory_order_seq_cst); }
-
- inline bool
- atomic_bool::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_bool::store(bool __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline bool
- atomic_bool::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline bool
- atomic_bool::swap(bool __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_bool::compare_swap(bool& __e, bool __m, memory_order __x,
- memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_bool::compare_swap(bool& __e, bool __m, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_bool::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_char::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_char::store(char __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline char
- atomic_char::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline char
- atomic_char::swap(char __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_char::compare_swap(char& __e, char __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_char::compare_swap(char& __e, char __m, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_char::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_schar::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_schar::store(signed char __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline signed char
- atomic_schar::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline signed char
- atomic_schar::swap(signed char __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
+ atomic_exchange_explicit(volatile atomic_address* __a, void* __v,
+ memory_order __m)
+ { return __a->exchange(__v, __m); }
inline bool
- atomic_schar::compare_swap(signed char& __e, signed char __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_schar::compare_swap(signed char& __e, signed char __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_schar::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
- inline bool
- atomic_uchar::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_uchar::store(unsigned char __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline unsigned char
- atomic_uchar::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline unsigned char
- atomic_uchar::swap(unsigned char __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_uchar::compare_swap(unsigned char& __e, unsigned char __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_uchar::compare_swap(unsigned char& __e, unsigned char __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_uchar::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_short::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_short::store(short __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline short
- atomic_short::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline short
- atomic_short::swap(short __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_short::compare_swap(short& __e, short __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_short::compare_swap(short& __e, short __m, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_short::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_ushort::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_ushort::store(unsigned short __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline unsigned short
- atomic_ushort::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline unsigned short
- atomic_ushort::swap(unsigned short __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_ushort::compare_swap(unsigned short& __e, unsigned short __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_ushort::compare_swap(unsigned short& __e, unsigned short __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
+ atomic_compare_exchange_weak(volatile atomic_address* __a,
+ void** __v1, void* __v2)
+ {
+ return __a->compare_exchange_weak(*__v1, __v2, memory_order_seq_cst,
+ memory_order_seq_cst);
}
- inline void
- atomic_ushort::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
inline bool
- atomic_int::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_int::store(int __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline int
- atomic_int::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline int
- atomic_int::swap(int __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_int::compare_swap(int& __e, int __m, memory_order __x,
- memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_int::compare_swap(int& __e, int __m, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
+ atomic_compare_exchange_strong(volatile atomic_address* __a,
+ void** __v1, void* __v2)
+ {
+ return __a->compare_exchange_strong(*__v1, __v2, memory_order_seq_cst,
+ memory_order_seq_cst);
}
- inline void
- atomic_int::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
inline bool
- atomic_uint::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_uint::store(unsigned int __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline unsigned int
- atomic_uint::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline unsigned int
- atomic_uint::swap(unsigned int __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_uint::compare_swap(unsigned int& __e, unsigned int __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
+ atomic_compare_exchange_weak_explicit(volatile atomic_address* __a,
+ void** __v1, void* __v2,
+ memory_order __m1, memory_order __m2)
+ { return __a->compare_exchange_weak(*__v1, __v2, __m1, __m2); }
inline bool
- atomic_uint::compare_swap(unsigned int& __e, unsigned int __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_uint::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
+ atomic_compare_exchange_strong_explicit(volatile atomic_address* __a,
+ void** __v1, void* __v2,
+ memory_order __m1, memory_order __m2)
+ { return __a->compare_exchange_strong(*__v1, __v2, __m1, __m2); }
- inline bool
- atomic_long::is_lock_free() const volatile
- { return false; }
+ inline void*
+ atomic_fetch_add_explicit(volatile atomic_address* __a, ptrdiff_t __d,
+ memory_order __m)
+ { return __a->fetch_add(__d, __m); }
- inline void
- atomic_long::store(long __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
+ inline void*
+ atomic_fetch_add(volatile atomic_address* __a, ptrdiff_t __d)
+ { return __a->fetch_add(__d); }
- inline long
- atomic_long::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
+ inline void*
+ atomic_fetch_sub_explicit(volatile atomic_address* __a, ptrdiff_t __d,
+ memory_order __m)
+ { return __a->fetch_sub(__d, __m); }
- inline long
- atomic_long::swap(long __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
+ inline void*
+ atomic_fetch_sub(volatile atomic_address* __a, ptrdiff_t __d)
+ { return __a->fetch_sub(__d); }
- inline bool
- atomic_long::compare_swap(long& __e, long __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
+ // Convenience function definitions, atomic_bool.
inline bool
- atomic_long::compare_swap(long& __e, long __m, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
+ atomic_is_lock_free(const volatile atomic_bool* __a)
+ { return __a->is_lock_free(); }
inline void
- atomic_long::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_ulong::is_lock_free() const volatile
- { return false; }
+ atomic_store(volatile atomic_bool* __a, bool __i)
+ { __a->store(__i); }
inline void
- atomic_ulong::store(unsigned long __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline unsigned long
- atomic_ulong::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline unsigned long
- atomic_ulong::swap(unsigned long __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
+ atomic_store_explicit(volatile atomic_bool* __a, bool __i, memory_order __m)
+ { __a->store(__i, __m); }
inline bool
- atomic_ulong::compare_swap(unsigned long& __e, unsigned long __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
+ atomic_load(const volatile atomic_bool* __a)
+ { return __a->load(); }
inline bool
- atomic_ulong::compare_swap(unsigned long& __e, unsigned long __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_ulong::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
+ atomic_load_explicit(const volatile atomic_bool* __a, memory_order __m)
+ { return __a->load(__m); }
inline bool
- atomic_llong::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_llong::store(long long __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline long long
- atomic_llong::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline long long
- atomic_llong::swap(long long __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
+ atomic_exchange(volatile atomic_bool* __a, bool __i)
+ { return __a->exchange(__i); }
inline bool
- atomic_llong::compare_swap(long long& __e, long long __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
+ atomic_exchange_explicit(volatile atomic_bool* __a, bool __i,
+ memory_order __m)
+ { return __a->exchange(__i, __m); }
inline bool
- atomic_llong::compare_swap(long long& __e, long long __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
+ atomic_compare_exchange_weak(volatile atomic_bool* __a, bool* __i1, bool __i2)
+ {
+ return __a->compare_exchange_weak(*__i1, __i2, memory_order_seq_cst,
+ memory_order_seq_cst);
}
- inline void
- atomic_llong::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_ullong::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_ullong::store(unsigned long long __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline unsigned long long
- atomic_ullong::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline unsigned long long
- atomic_ullong::swap(unsigned long long __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
inline bool
- atomic_ullong::compare_swap(unsigned long long& __e, unsigned long long __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_ullong::compare_swap(unsigned long long& __e, unsigned long long __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
+ atomic_compare_exchange_strong(volatile atomic_bool* __a,
+ bool* __i1, bool __i2)
+ {
+ return __a->compare_exchange_strong(*__i1, __i2, memory_order_seq_cst,
+ memory_order_seq_cst);
}
- inline void
- atomic_ullong::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline bool
- atomic_wchar_t::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_wchar_t::store(wchar_t __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline wchar_t
- atomic_wchar_t::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline wchar_t
- atomic_wchar_t::swap(wchar_t __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
inline bool
- atomic_wchar_t::compare_swap(wchar_t& __e, wchar_t __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
+ atomic_compare_exchange_weak_explicit(volatile atomic_bool* __a, bool* __i1,
+ bool __i2, memory_order __m1,
+ memory_order __m2)
+ { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
inline bool
- atomic_wchar_t::compare_swap(wchar_t& __e, wchar_t __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_wchar_t::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- inline void*
- atomic_address::fetch_add(ptrdiff_t __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
- inline void*
- atomic_address::fetch_sub(ptrdiff_t __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline char
- atomic_char::fetch_add(char __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline char
- atomic_char::fetch_sub(char __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline char
- atomic_char::fetch_and(char __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline char
- atomic_char::fetch_or(char __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline char
- atomic_char::fetch_xor(char __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline signed char
- atomic_schar::fetch_add(signed char __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline signed char
- atomic_schar::fetch_sub(signed char __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
+ atomic_compare_exchange_strong_explicit(volatile atomic_bool* __a,
+ bool* __i1, bool __i2,
+ memory_order __m1, memory_order __m2)
+ { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
- inline signed char
- atomic_schar::fetch_and(signed char __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
- inline signed char
- atomic_schar::fetch_or(signed char __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline signed char
- atomic_schar::fetch_xor(signed char __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline unsigned char
- atomic_uchar::fetch_add(unsigned char __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline unsigned char
- atomic_uchar::fetch_sub(unsigned char __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline unsigned char
- atomic_uchar::fetch_and(unsigned char __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline unsigned char
- atomic_uchar::fetch_or(unsigned char __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline unsigned char
- atomic_uchar::fetch_xor(unsigned char __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline short
- atomic_short::fetch_add(short __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline short
- atomic_short::fetch_sub(short __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline short
- atomic_short::fetch_and(short __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline short
- atomic_short::fetch_or(short __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline short
- atomic_short::fetch_xor(short __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline unsigned short
- atomic_ushort::fetch_add(unsigned short __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline unsigned short
- atomic_ushort::fetch_sub(unsigned short __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline unsigned short
- atomic_ushort::fetch_and(unsigned short __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline unsigned short
- atomic_ushort::fetch_or(unsigned short __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline unsigned short
- atomic_ushort::fetch_xor(unsigned short __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline int
- atomic_int::fetch_add(int __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline int
- atomic_int::fetch_sub(int __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline int
- atomic_int::fetch_and(int __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline int
- atomic_int::fetch_or(int __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline int
- atomic_int::fetch_xor(int __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline unsigned int
- atomic_uint::fetch_add(unsigned int __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline unsigned int
- atomic_uint::fetch_sub(unsigned int __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline unsigned int
- atomic_uint::fetch_and(unsigned int __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline unsigned int
- atomic_uint::fetch_or(unsigned int __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline unsigned int
- atomic_uint::fetch_xor(unsigned int __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline long
- atomic_long::fetch_add(long __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline long
- atomic_long::fetch_sub(long __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline long
- atomic_long::fetch_and(long __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline long
- atomic_long::fetch_or(long __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline long
- atomic_long::fetch_xor(long __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline unsigned long
- atomic_ulong::fetch_add(unsigned long __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline unsigned long
- atomic_ulong::fetch_sub(unsigned long __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline unsigned long
- atomic_ulong::fetch_and(unsigned long __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline unsigned long
- atomic_ulong::fetch_or(unsigned long __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline unsigned long
- atomic_ulong::fetch_xor(unsigned long __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline long long
- atomic_llong::fetch_add(long long __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline long long
- atomic_llong::fetch_sub(long long __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline long long
- atomic_llong::fetch_and(long long __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline long long
- atomic_llong::fetch_or(long long __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline long long
- atomic_llong::fetch_xor(long long __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline unsigned long long
- atomic_ullong::fetch_add(unsigned long long __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline unsigned long long
- atomic_ullong::fetch_sub(unsigned long long __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline unsigned long long
- atomic_ullong::fetch_and(unsigned long long __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline unsigned long long
- atomic_ullong::fetch_or(unsigned long long __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline unsigned long long
- atomic_ullong::fetch_xor(unsigned long long __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline wchar_t
- atomic_wchar_t::fetch_add(wchar_t __m, memory_order __x) volatile
- { return atomic_fetch_add_explicit(this, __m, __x); }
-
-
- inline wchar_t
- atomic_wchar_t::fetch_sub(wchar_t __m, memory_order __x) volatile
- { return atomic_fetch_sub_explicit(this, __m, __x); }
-
-
- inline wchar_t
- atomic_wchar_t::fetch_and(wchar_t __m, memory_order __x) volatile
- { return atomic_fetch_and_explicit(this, __m, __x); }
-
-
- inline wchar_t
- atomic_wchar_t::fetch_or(wchar_t __m, memory_order __x) volatile
- { return atomic_fetch_or_explicit(this, __m, __x); }
-
-
- inline wchar_t
- atomic_wchar_t::fetch_xor(wchar_t __m, memory_order __x) volatile
- { return atomic_fetch_xor_explicit(this, __m, __x); }
-
-
- inline bool
- atomic_address::is_lock_free() const volatile
- { return false; }
-
- inline void
- atomic_address::store(void* __m, memory_order __x) volatile
- { atomic_store_explicit(this, __m, __x); }
-
- inline void*
- atomic_address::load(memory_order __x) volatile
- { return atomic_load_explicit(this, __x); }
-
- inline void*
- atomic_address::swap(void* __m, memory_order __x) volatile
- { return atomic_swap_explicit(this, __m, __x); }
-
- inline bool
- atomic_address::compare_swap(void*& __e, void* __m,
- memory_order __x, memory_order __y) volatile
- { return atomic_compare_swap_explicit(this, &__e, __m, __x, __y); }
-
- inline bool
- atomic_address::compare_swap(void*& __e, void* __m,
- memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return atomic_compare_swap_explicit(this, &__e, __m, __x, __mo2);
- }
-
- inline void
- atomic_address::fence(memory_order __x) const volatile
- { return atomic_fence(this, __x); }
-
-
- template<typename _Tp>
- inline bool
- atomic<_Tp>::is_lock_free() const volatile
- { return false; }
-
- template<typename _Tp>
+ // Free standing functions. Template argument should be constricted
+ // to intergral types as specified in the standard.
+ template<typename _ITp>
inline void
- atomic<_Tp>::store(_Tp __v, memory_order __x) volatile
- // XXX
- // { _ATOMIC_STORE_(this, __v, __x); }
- { }
-
- template<typename _Tp>
- inline _Tp
- atomic<_Tp>::load(memory_order __x) volatile
- // XXX
- // { return _ATOMIC_LOAD_(this, __x); }
- { }
-
- template<typename _Tp>
- inline _Tp
- atomic<_Tp>::swap(_Tp __v, memory_order __x) volatile
- // XXX
- // { return _ATOMIC_MODIFY_(this, =, __v, __x); }
- { }
-
- template<typename _Tp>
+ atomic_store_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { __a->store(__i, __m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_load_explicit(const volatile __atomic_base<_ITp>* __a,
+ memory_order __m)
+ { return __a->load(__m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_exchange_explicit(volatile __atomic_base<_ITp>* __a,
+ _ITp __i, memory_order __m)
+ { return __a->exchange(__i, __m); }
+
+ template<typename _ITp>
inline bool
- atomic<_Tp>::compare_swap(_Tp& __r, _Tp __v, memory_order __x,
- memory_order __y) volatile
- // XXX
- // { return _ATOMIC_CMPSWP_(this, &__r, __v, __x); }
- { }
+ atomic_compare_exchange_weak_explicit(volatile __atomic_base<_ITp>* __a,
+ _ITp* __i1, _ITp __i2,
+ memory_order __m1, memory_order __m2)
+ { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
- template<typename _Tp>
+ template<typename _ITp>
inline bool
- atomic<_Tp>::compare_swap(_Tp& __r, _Tp __v, memory_order __x) volatile
- {
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return compare_swap(__r, __v, __x, __mo2);
- }
+ atomic_compare_exchange_strong_explicit(volatile __atomic_base<_ITp>* __a,
+ _ITp* __i1, _ITp __i2,
+ memory_order __m1,
+ memory_order __m2)
+ { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { return __a->fetch_add(__i, __m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { return __a->fetch_sub(__i, __m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { return __a->fetch_and(__i, __m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { return __a->fetch_or(__i, __m); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ memory_order __m)
+ { return __a->fetch_xor(__i, __m); }
+
+ template<typename _ITp>
+ inline bool
+ atomic_is_lock_free(const volatile __atomic_base<_ITp>* __a)
+ { return __a->is_lock_free(); }
- template<typename _Tp>
- _Tp*
- atomic<_Tp*>::load(memory_order __x) volatile
- { return static_cast<_Tp*>(atomic_address::load(__x)); }
+ template<typename _ITp>
+ inline void
+ atomic_store(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
- template<typename _Tp>
- _Tp*
- atomic<_Tp*>::swap(_Tp* __v, memory_order __x) volatile
- { return static_cast<_Tp*>(atomic_address::swap(__v, __x)); }
+ template<typename _ITp>
+ inline _ITp
+ atomic_load(const volatile __atomic_base<_ITp>* __a)
+ { return atomic_load_explicit(__a, memory_order_seq_cst); }
- template<typename _Tp>
- bool
- atomic<_Tp*>::compare_swap(_Tp*& __r, _Tp* __v, memory_order __x,
- memory_order __y) volatile
- { return atomic_address::compare_swap(*reinterpret_cast<void**>(&__r),
- static_cast<void*>(__v), __x, __y); }
+ template<typename _ITp>
+ inline _ITp
+ atomic_exchange(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
- template<typename _Tp>
- bool
- atomic<_Tp*>::compare_swap(_Tp*& __r, _Tp* __v, memory_order __x) volatile
+ template<typename _ITp>
+ inline bool
+ atomic_compare_exchange_weak(volatile __atomic_base<_ITp>* __a,
+ _ITp* __i1, _ITp __i2)
{
- const bool __cond1 = __x == memory_order_release;
- const bool __cond2 = __x == memory_order_acq_rel;
- memory_order __mo1(__cond1 ? memory_order_relaxed : __x);
- memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
- return compare_swap(__r, __v, __x, __mo2);
+ return atomic_compare_exchange_weak_explicit(__a, __i1, __i2,
+ memory_order_seq_cst,
+ memory_order_seq_cst);
}
- template<typename _Tp>
- _Tp*
- atomic<_Tp*>::fetch_add(ptrdiff_t __v, memory_order __x) volatile
+ template<typename _ITp>
+ inline bool
+ atomic_compare_exchange_strong(volatile __atomic_base<_ITp>* __a,
+ _ITp* __i1, _ITp __i2)
{
- void* __p = atomic_fetch_add_explicit(this, sizeof(_Tp) * __v, __x);
- return static_cast<_Tp*>(__p);
+ return atomic_compare_exchange_strong_explicit(__a, __i1, __i2,
+ memory_order_seq_cst,
+ memory_order_seq_cst);
}
- template<typename _Tp>
- _Tp*
- atomic<_Tp*>::fetch_sub(ptrdiff_t __v, memory_order __x) volatile
- {
- void* __p = atomic_fetch_sub_explicit(this, sizeof(_Tp) * __v, __x);
- return static_cast<_Tp*>(__p);
- }
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
+
+ template<typename _ITp>
+ inline _ITp
+ atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i)
+ { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/include/debug/debug.h b/libstdc++-v3/include/debug/debug.h
index 0f64488c234..411fce04f1d 100644
--- a/libstdc++-v3/include/debug/debug.h
+++ b/libstdc++-v3/include/debug/debug.h
@@ -86,33 +86,9 @@ namespace __gnu_debug
#else
-# include <cstdio>
# include <debug/macros.h>
-namespace std
-{
- namespace __debug
- {
- // Avoid the use of assert, because we're trying to keep the <cassert>
- // include out of the mix.
- inline void
- __replacement_assert(const char* __file, int __line,
- const char* __function, const char* __condition)
- {
- printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
- __function, __condition);
- __builtin_abort();
- }
- } // namespace __debug
-} // namespace std
-
-#define _GLIBCXX_DEBUG_ASSERT(_Condition) \
- do \
- { \
- if (! (_Condition)) \
- std::__debug::__replacement_assert(__FILE__, __LINE__, \
- __PRETTY_FUNCTION__, #_Condition); \
- } while (false)
+#define _GLIBCXX_DEBUG_ASSERT(_Condition) __glibcxx_assert(_Condition)
#ifdef _GLIBCXX_DEBUG_PEDANTIC
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ASSERT(_Condition)
diff --git a/libstdc++-v3/include/ext/concurrence.h b/libstdc++-v3/include/ext/concurrence.h
index b9e43d67f90..49316b35993 100644
--- a/libstdc++-v3/include/ext/concurrence.h
+++ b/libstdc++-v3/include/ext/concurrence.h
@@ -281,7 +281,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
__gthread_cond_t __tmp = __GTHREAD_COND_INIT;
_M_cond = __tmp;
#else
- __GTHREAD_MUTEX_INIT_FUNCTION(&_M_cond);
+ __GTHREAD_COND_INIT_FUNCTION(&_M_cond);
#endif
}
#endif
diff --git a/libstdc++-v3/include/ext/pointer.h b/libstdc++-v3/include/ext/pointer.h
index 5c764cfd4b0..ff409b6557e 100644
--- a/libstdc++-v3/include/ext/pointer.h
+++ b/libstdc++-v3/include/ext/pointer.h
@@ -42,6 +42,7 @@
#include <iosfwd>
#include <bits/stl_iterator_base_types.h>
#include <ext/cast.h>
+#include <ext/type_traits.h>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
@@ -111,9 +112,8 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (_M_diff == 1)
return 0;
else
- return reinterpret_cast<_Tp*>(
- const_cast<char*>(reinterpret_cast<const char*>(this))
- + _M_diff);
+ return reinterpret_cast<_Tp*>(reinterpret_cast<_UIntPtrType>(this)
+ + _M_diff);
}
void
@@ -122,21 +122,26 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (!__arg)
_M_diff = 1;
else
- _M_diff = reinterpret_cast<char*>(__arg)
- - reinterpret_cast<char*>(this);
+ _M_diff = reinterpret_cast<_UIntPtrType>(__arg)
+ - reinterpret_cast<_UIntPtrType>(this);
}
// Comparison of pointers
inline bool
operator<(const _Relative_pointer_impl& __rarg) const
- { return (this->get() < __rarg.get()); }
+ { return (reinterpret_cast<_UIntPtrType>(this->get())
+ < reinterpret_cast<_UIntPtrType>(__rarg.get())); }
inline bool
operator==(const _Relative_pointer_impl& __rarg) const
- { return (this->get() == __rarg.get()); }
+ { return (reinterpret_cast<_UIntPtrType>(this->get())
+ == reinterpret_cast<_UIntPtrType>(__rarg.get())); }
private:
- std::ptrdiff_t _M_diff;
+ typedef __gnu_cxx::__conditional_type<
+ (sizeof(unsigned long) >= sizeof(void*)),
+ unsigned long, unsigned long long>::__type _UIntPtrType;
+ _UIntPtrType _M_diff;
};
/**
@@ -155,8 +160,8 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (_M_diff == 1)
return 0;
else
- return reinterpret_cast<const _Tp*>(
- (reinterpret_cast<const char*>(this)) + _M_diff);
+ return reinterpret_cast<const _Tp*>
+ (reinterpret_cast<_UIntPtrType>(this) + _M_diff);
}
void
@@ -165,21 +170,26 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (!__arg)
_M_diff = 1;
else
- _M_diff = reinterpret_cast<const char*>(__arg)
- - reinterpret_cast<const char*>(this);
+ _M_diff = reinterpret_cast<_UIntPtrType>(__arg)
+ - reinterpret_cast<_UIntPtrType>(this);
}
// Comparison of pointers
inline bool
operator<(const _Relative_pointer_impl& __rarg) const
- { return (this->get() < __rarg.get()); }
+ { return (reinterpret_cast<_UIntPtrType>(this->get())
+ < reinterpret_cast<_UIntPtrType>(__rarg.get())); }
inline bool
operator==(const _Relative_pointer_impl& __rarg) const
- { return (this->get() == __rarg.get()); }
+ { return (reinterpret_cast<_UIntPtrType>(this->get())
+ == reinterpret_cast<_UIntPtrType>(__rarg.get())); }
private:
- std::ptrdiff_t _M_diff;
+ typedef __gnu_cxx::__conditional_type
+ <(sizeof(unsigned long) >= sizeof(void*)),
+ unsigned long, unsigned long long>::__type _UIntPtrType;
+ _UIntPtrType _M_diff;
};
/**
diff --git a/libstdc++-v3/include/parallel/base.h b/libstdc++-v3/include/parallel/base.h
index 2a5dc297ec4..ad69bc24c5a 100644
--- a/libstdc++-v3/include/parallel/base.h
+++ b/libstdc++-v3/include/parallel/base.h
@@ -38,7 +38,6 @@
#ifndef _GLIBCXX_PARALLEL_BASE_H
#define _GLIBCXX_PARALLEL_BASE_H 1
-#include <cstdio>
#include <functional>
#include <omp.h>
#include <parallel/features.h>
@@ -471,24 +470,7 @@ template<typename RandomAccessIterator, typename Comparator>
}
}
-// Avoid the use of assert, because we're trying to keep the <cassert>
-// include out of the mix. (Same as debug mode).
-inline void
-__replacement_assert(const char* __file, int __line,
- const char* __function, const char* __condition)
-{
- std::printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
- __function, __condition);
- __builtin_abort();
-}
-
-#define _GLIBCXX_PARALLEL_ASSERT(_Condition) \
-do \
- { \
- if (!(_Condition)) \
- __gnu_parallel::__replacement_assert(__FILE__, __LINE__, \
- __PRETTY_FUNCTION__, #_Condition); \
- } while (false)
+#define _GLIBCXX_PARALLEL_ASSERT(_Condition) __glibcxx_assert(_Condition)
} //namespace __gnu_parallel
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index e3922360b3d..4964bb3bcbc 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -1,6 +1,6 @@
// <mutex> -*- C++ -*-
-// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -709,13 +709,16 @@ namespace std
extern __thread void (*__once_call)();
template<typename _Callable>
- void __once_call_impl()
+ inline void
+ __once_call_impl()
{
(*(_Callable*)__once_callable)();
}
#else
extern function<void()> __once_functor;
- extern unique_lock<mutex> __once_functor_lock;
+
+ extern unique_lock<mutex>&
+ __get_once_functor_lock();
#endif
extern "C" void __once_proxy();
@@ -729,15 +732,16 @@ namespace std
__once_callable = &__bound_functor;
__once_call = &__once_call_impl<decltype(__bound_functor)>;
#else
- __once_functor_lock.lock();
+ unique_lock<mutex>& __functor_lock = __get_once_functor_lock();
+ __functor_lock.lock();
__once_functor = bind(__f, __args...);
#endif
int __e = __gthread_once(&(__once._M_once), &__once_proxy);
#ifndef _GLIBCXX_HAVE_TLS
- if (__once_functor_lock)
- __once_functor_lock.unlock();
+ if (__functor_lock)
+ __functor_lock.unlock();
#endif
if (__e)
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index 2a701001271..422e3626539 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -1,6 +1,6 @@
// <thread> -*- C++ -*-
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -96,7 +96,7 @@ namespace std
typedef __gthread_t native_handle_type;
// cons
- thread();
+ thread() = default;
template<typename _Callable>
explicit thread(_Callable __f)
@@ -108,7 +108,8 @@ namespace std
: _M_thread_data(__make_thread_data(std::bind(__f, __args...)))
{ __start_thread(); }
- ~thread();
+ ~thread()
+ { detach(); }
thread(const thread&) = delete;
thread(thread&&);
@@ -117,7 +118,8 @@ namespace std
// members
void
- swap(thread&& __t);
+ swap(thread&& __t)
+ { std::swap(_M_thread_data, __t._M_thread_data); }
bool
joinable() const;
@@ -128,7 +130,7 @@ namespace std
void
detach();
- id
+ thread::id
get_id() const;
native_handle_type
@@ -181,18 +183,20 @@ namespace std
thread::id
get_id();
- void
- yield();
+#ifdef _GLIBCXX_USE_SCHED_YIELD
+ inline void
+ yield()
+ { __gthread_yield(); }
+#endif
+#ifdef _GLIBCXX_USE_NANOSLEEP
template<typename _Clock, typename _Duration>
- void
+ inline void
sleep_until(const chrono::time_point<_Clock, _Duration>& __atime)
- {
- sleep_for(__atime - _Clock::now());
- }
+ { sleep_for(__atime - _Clock::now()); }
template<typename _Rep, typename _Period>
- void
+ inline void
sleep_for(const chrono::duration<_Rep, _Period>& __rtime)
{
chrono::seconds __s =
@@ -207,10 +211,9 @@ namespace std
static_cast<long>(__ns.count())
};
-#ifdef _GLIBCXX_USE_NANOSLEEP
::nanosleep(&__ts, 0);
-#endif
}
+#endif
}
/// thread::id
@@ -226,10 +229,8 @@ namespace std
friend bool
operator==(thread::id __x, thread::id __y)
- {
- return
- static_cast<bool>(__gthread_equal(__x._M_thread_id, __y._M_thread_id));
- }
+ { return static_cast<bool>(__gthread_equal(__x._M_thread_id,
+ __y._M_thread_id)); }
friend bool
operator<(thread::id __x, thread::id __y)
@@ -271,6 +272,26 @@ namespace std
else
return __out << __id._M_thread_id;
}
+
+ inline bool
+ thread::joinable() const
+ { return get_id() != thread::id(); }
+
+ inline thread::id
+ thread::get_id() const
+ {
+ if(_M_thread_data)
+ return thread::id(_M_thread_data->_M_thread_handle);
+ else
+ return thread::id();
+ }
+
+ namespace this_thread
+ {
+ inline thread::id
+ get_id()
+ { return thread::id(__gthread_self()); }
+ }
}
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
diff --git a/libstdc++-v3/include/tr1_impl/functional b/libstdc++-v3/include/tr1_impl/functional
index 4e4864fa62d..f3d843c9d8c 100644
--- a/libstdc++-v3/include/tr1_impl/functional
+++ b/libstdc++-v3/include/tr1_impl/functional
@@ -1531,10 +1531,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() = _M_get_pointer(__source);
break;
@@ -1596,10 +1597,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() = *_Base::_M_get_pointer(__source);
return is_const<_Functor>::value;
@@ -1730,10 +1732,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() =
&_Base::_M_get_pointer(__source)->__value;
@@ -1935,7 +1938,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
* stored by @c this.
*/
_Res operator()(_ArgTypes... __args) const;
-
+
+#ifdef __GXX_RTTI
// [3.7.2.5] function target access
/**
* @brief Determine the type of the target of this function object
@@ -1961,7 +1965,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
/// @overload
template<typename _Functor> const _Functor* target() const;
-
+#endif
+
private:
// [3.7.2.6] undefined operators
template<typename _Function>
@@ -2020,6 +2025,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
return _M_invoker(_M_functor, __args...);
}
+#ifdef __GXX_RTTI
template<typename _Res, typename... _ArgTypes>
const type_info&
function<_Res(_ArgTypes...)>::
@@ -2069,6 +2075,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
else
return 0;
}
+#endif
// [3.7.2.7] null pointer comparisons
diff --git a/libstdc++-v3/include/tr1_impl/regex b/libstdc++-v3/include/tr1_impl/regex
index c2a60a2c3ea..80bc394e96d 100644
--- a/libstdc++-v3/include/tr1_impl/regex
+++ b/libstdc++-v3/include/tr1_impl/regex
@@ -1,6 +1,6 @@
// class template regex -*- C++ -*-
-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -535,8 +535,7 @@ namespace regex_constants
*/
template<typename _Fwd_iter>
string_type
- transform_primary(_Fwd_iter __first, _Fwd_iter __last) const
- { return string_type(); }
+ transform_primary(_Fwd_iter __first, _Fwd_iter __last) const;
/**
* @brief Gets a collation element by name.
@@ -553,11 +552,10 @@ namespace regex_constants
*/
template<typename _Fwd_iter>
string_type
- lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const
- { return string_type(); }
+ lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const;
/**
- * @brief Maps one or mire characters to a named character
+ * @brief Maps one or more characters to a named character
* classification.
*
* @param first beginning of the character sequence.
@@ -591,8 +589,7 @@ namespace regex_constants
*/
template<typename _Fwd_iter>
char_class_type
- lookup_classname(_Fwd_iter __first, _Fwd_iter __last) const
- { return 0; }
+ lookup_classname(_Fwd_iter __first, _Fwd_iter __last) const;
/**
* @brief Determines if @p c is a member of an identified class.
@@ -799,18 +796,18 @@ namespace regex_constants
/**
* @brief Constructs a basic regular expression from the string
- * @p interpreted according to the flags in @p f.
+ * @p s interpreted according to the flags in @p f.
*
- * @param p A string containing a regular expression.
+ * @param s A string containing a regular expression.
* @param f Flags indicating the syntax rules and options.
*
- * @throws regex_error if @p p is not a valid regular expression.
+ * @throws regex_error if @p s is not a valid regular expression.
*/
template<typename _Ch_traits, typename _Ch_alloc>
explicit
basic_regex(const basic_string<_Ch_type, _Ch_traits, _Ch_alloc>& __s,
flag_type __f = regex_constants::ECMAScript)
- : _M_flags(__f), _M_pattern(__s), _M_mark_count(0)
+ : _M_flags(__f), _M_pattern(__s.begin(), __s.end()), _M_mark_count(0)
{ _M_compile(); }
/**
@@ -1043,8 +1040,7 @@ namespace regex_constants
* @brief Compiles a regular expression pattern into a NFA.
* @todo Implement this function.
*/
- void _M_compile()
- { }
+ void _M_compile();
protected:
flag_type _M_flags;
@@ -1071,7 +1067,7 @@ namespace regex_constants
inline void
swap(basic_regex<_Ch_type, _Rx_traits>& __lhs,
basic_regex<_Ch_type, _Rx_traits>& __rhs)
- { return __lhs.swap(__rhs); }
+ { __lhs.swap(__rhs); }
// [7.9] Class template sub_match
@@ -1821,6 +1817,7 @@ namespace regex_constants
{
match_results __tmp(__rhs);
this->swap(__tmp);
+ return *this;
}
/**
@@ -1884,7 +1881,7 @@ namespace regex_constants
* @brief Gets the offset of the beginning of the indicated submatch.
* @param sub indicates the submatch.
*
- * This function returns the offset from the beginnig of the target
+ * This function returns the offset from the beginning of the target
* sequence to the beginning of the submatch, unless the value of @p sub
* is zero (the default), in which case this function returns the offset
* from the beginning of the target sequence to the beginning of the
@@ -1995,8 +1992,7 @@ namespace regex_constants
_Out_iter
format(_Out_iter __out, const string_type& __fmt,
regex_constants::match_flag_type __flags
- = regex_constants::format_default) const
- { return __out; }
+ = regex_constants::format_default) const;
/**
* @todo Implement this function.
@@ -2088,7 +2084,7 @@ namespace regex_constants
inline void
swap(match_results<_Bi_iter, _Allocator>& __lhs,
match_results<_Bi_iter, _Allocator>& __rhs)
- { return __lhs.swap(__rhs); }
+ { __lhs.swap(__rhs); }
// [7.11.2] Function template regex_match
/**
@@ -2120,8 +2116,7 @@ namespace regex_constants
match_results<_Bi_iter, _Allocator>& __m,
const basic_regex<_Ch_type, _Rx_traits>& __re,
regex_constants::match_flag_type __flags
- = regex_constants::match_default)
- { return false; }
+ = regex_constants::match_default);
/**
* @brief Indicates if there is a match between the regular expression @p e
@@ -2262,8 +2257,7 @@ namespace regex_constants
match_results<_Bi_iter, _Allocator>& __m,
const basic_regex<_Ch_type, _Rx_traits>& __re,
regex_constants::match_flag_type __flags
- = regex_constants::match_default)
- { return false; }
+ = regex_constants::match_default);
/**
* Searches for a regular expression within a range.
@@ -2396,8 +2390,7 @@ namespace regex_constants
const basic_regex<_Ch_type, _Rx_traits>& __e,
const basic_string<_Ch_type>& __fmt,
regex_constants::match_flag_type __flags
- = regex_constants::match_default)
- { return __out; }
+ = regex_constants::match_default);
/**
* @doctodo
diff --git a/libstdc++-v3/libsupc++/eh_alloc.cc b/libstdc++-v3/libsupc++/eh_alloc.cc
index 6bc46fc9a91..495a25f28f0 100644
--- a/libstdc++-v3/libsupc++/eh_alloc.cc
+++ b/libstdc++-v3/libsupc++/eh_alloc.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Allocate exception objects.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of GCC.
@@ -103,7 +103,7 @@ __cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
{
void *ret;
- thrown_size += sizeof (__cxa_exception);
+ thrown_size += sizeof (__cxa_refcounted_exception);
ret = malloc (thrown_size);
if (! ret)
@@ -137,9 +137,9 @@ __cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
__cxa_eh_globals *globals = __cxa_get_globals ();
globals->uncaughtExceptions += 1;
- memset (ret, 0, sizeof (__cxa_exception));
+ memset (ret, 0, sizeof (__cxa_refcounted_exception));
- return (void *)((char *)ret + sizeof (__cxa_exception));
+ return (void *)((char *)ret + sizeof (__cxa_refcounted_exception));
}
@@ -158,7 +158,7 @@ __cxxabiv1::__cxa_free_exception(void *vptr) throw()
emergency_used &= ~((bitmask_type)1 << which);
}
else
- free (ptr - sizeof (__cxa_exception));
+ free (ptr - sizeof (__cxa_refcounted_exception));
}
diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc
index 901219a9d12..414a6b9e010 100644
--- a/libstdc++-v3/libsupc++/eh_ptr.cc
+++ b/libstdc++-v3/libsupc++/eh_ptr.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Implement the members of exception_ptr.
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -84,8 +84,8 @@ std::__exception_ptr::exception_ptr::_M_addref() throw()
{
if (_M_exception_object)
{
- __cxa_exception *eh =
- __get_exception_header_from_obj (_M_exception_object);
+ __cxa_refcounted_exception *eh =
+ __get_refcounted_exception_header_from_obj (_M_exception_object);
__sync_add_and_fetch (&eh->referenceCount, 1);
}
}
@@ -96,12 +96,12 @@ std::__exception_ptr::exception_ptr::_M_release() throw()
{
if (_M_exception_object)
{
- __cxa_exception *eh =
- __get_exception_header_from_obj (_M_exception_object);
+ __cxa_refcounted_exception *eh =
+ __get_refcounted_exception_header_from_obj (_M_exception_object);
if (__sync_sub_and_fetch (&eh->referenceCount, 1) == 0)
{
- if (eh->exceptionDestructor)
- eh->exceptionDestructor (_M_exception_object);
+ if (eh->exc.exceptionDestructor)
+ eh->exc.exceptionDestructor (_M_exception_object);
__cxa_free_exception (_M_exception_object);
_M_exception_object = 0;
@@ -191,22 +191,22 @@ __gxx_dependent_exception_cleanup (_Unwind_Reason_Code code,
{
// This cleanup is set only for dependents.
__cxa_dependent_exception *dep = __get_dependent_exception_from_ue (exc);
- __cxa_exception *header =
- __get_exception_header_from_obj (dep->primaryException);
+ __cxa_refcounted_exception *header =
+ __get_refcounted_exception_header_from_obj (dep->primaryException);
// We only want to be called through _Unwind_DeleteException.
// _Unwind_DeleteException in the HP-UX IA64 libunwind library
// returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
// like the GCC _Unwind_DeleteException function does.
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
- __terminate (header->terminateHandler);
+ __terminate (header->exc.terminateHandler);
__cxa_free_dependent_exception (dep);
if (__sync_sub_and_fetch (&header->referenceCount, 1) == 0)
{
- if (header->exceptionDestructor)
- header->exceptionDestructor (header + 1);
+ if (header->exc.exceptionDestructor)
+ header->exc.exceptionDestructor (header + 1);
__cxa_free_exception (header + 1);
}
@@ -217,7 +217,8 @@ void
std::rethrow_exception(std::exception_ptr ep)
{
void *obj = ep._M_get();
- __cxa_exception *eh = __get_exception_header_from_obj (obj);
+ __cxa_refcounted_exception *eh
+ = __get_refcounted_exception_header_from_obj (obj);
__cxa_dependent_exception *dep = __cxa_allocate_dependent_exception ();
dep->primaryException = obj;
diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc
index 24b357772b4..afe7c683c5b 100644
--- a/libstdc++-v3/libsupc++/eh_throw.cc
+++ b/libstdc++-v3/libsupc++/eh_throw.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for throwing.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of GCC.
@@ -38,21 +38,22 @@ static void
__gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc)
{
// This cleanup is set only for primaries.
- __cxa_exception *header = __get_exception_header_from_ue (exc);
+ __cxa_refcounted_exception *header
+ = __get_refcounted_exception_header_from_ue (exc);
// We only want to be called through _Unwind_DeleteException.
// _Unwind_DeleteException in the HP-UX IA64 libunwind library
// returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
// like the GCC _Unwind_DeleteException function does.
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
- __terminate (header->terminateHandler);
+ __terminate (header->exc.terminateHandler);
#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
if (__sync_sub_and_fetch (&header->referenceCount, 1) == 0)
{
#endif
- if (header->exceptionDestructor)
- header->exceptionDestructor (header + 1);
+ if (header->exc.exceptionDestructor)
+ header->exc.exceptionDestructor (header + 1);
__cxa_free_exception (header + 1);
#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
@@ -66,23 +67,24 @@ __cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo,
void (*dest) (void *))
{
// Definitely a primary.
- __cxa_exception *header = __get_exception_header_from_obj (obj);
+ __cxa_refcounted_exception *header
+ = __get_refcounted_exception_header_from_obj (obj);
header->referenceCount = 1;
- header->exceptionType = tinfo;
- header->exceptionDestructor = dest;
- header->unexpectedHandler = __unexpected_handler;
- header->terminateHandler = __terminate_handler;
- __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->unwindHeader.exception_class);
- header->unwindHeader.exception_cleanup = __gxx_exception_cleanup;
+ header->exc.exceptionType = tinfo;
+ header->exc.exceptionDestructor = dest;
+ header->exc.unexpectedHandler = __unexpected_handler;
+ header->exc.terminateHandler = __terminate_handler;
+ __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->exc.unwindHeader.exception_class);
+ header->exc.unwindHeader.exception_cleanup = __gxx_exception_cleanup;
#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
- _Unwind_SjLj_RaiseException (&header->unwindHeader);
+ _Unwind_SjLj_RaiseException (&header->exc.unwindHeader);
#else
- _Unwind_RaiseException (&header->unwindHeader);
+ _Unwind_RaiseException (&header->exc.unwindHeader);
#endif
// Some sort of unwinding error. Note that terminate is a handler.
- __cxa_begin_catch (&header->unwindHeader);
+ __cxa_begin_catch (&header->exc.unwindHeader);
std::terminate ();
}
diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h
index 3f6a76560fd..3e2cf0f00b4 100644
--- a/libstdc++-v3/libsupc++/unwind-cxx.h
+++ b/libstdc++-v3/libsupc++/unwind-cxx.h
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling and frame unwind runtime interface routines.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of GCC.
@@ -53,9 +53,6 @@ namespace __cxxabiv1
struct __cxa_exception
{
- // Manage this header.
- _Atomic_word referenceCount;
-
// Manage the exception object itself.
std::type_info *exceptionType;
void (*exceptionDestructor)(void *);
@@ -92,6 +89,14 @@ struct __cxa_exception
_Unwind_Exception unwindHeader;
};
+struct __cxa_refcounted_exception
+{
+ // Manage this header.
+ _Atomic_word referenceCount;
+ // __cxa_exception must be last, and no padding can be after it.
+ __cxa_exception exc;
+};
+
// A dependent C++ exception object consists of a wrapper around an unwind
// object header with additional C++ specific information, containing a pointer
// to a primary exception object.
@@ -227,6 +232,21 @@ __get_exception_header_from_ue (_Unwind_Exception *exc)
return reinterpret_cast<__cxa_exception *>(exc + 1) - 1;
}
+// Acquire the C++ refcounted exception header from the C++ object.
+static inline __cxa_refcounted_exception *
+__get_refcounted_exception_header_from_obj (void *ptr)
+{
+ return reinterpret_cast<__cxa_refcounted_exception *>(ptr) - 1;
+}
+
+// Acquire the C++ refcounted exception header from the generic exception
+// header.
+static inline __cxa_refcounted_exception *
+__get_refcounted_exception_header_from_ue (_Unwind_Exception *exc)
+{
+ return reinterpret_cast<__cxa_refcounted_exception *>(exc + 1) - 1;
+}
+
static inline __cxa_dependent_exception *
__get_dependent_exception_from_ue (_Unwind_Exception *exc)
{
diff --git a/libstdc++-v3/scripts/extract_symvers b/libstdc++-v3/scripts/extract_symvers
index 8a74db9f337..d77395d1087 100755
--- a/libstdc++-v3/scripts/extract_symvers
+++ b/libstdc++-v3/scripts/extract_symvers
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc.
#
# This file is part of the GNU ISO C++ Library. This library is free
# software; you can redistribute it and/or modify it under the
@@ -52,7 +52,9 @@ export LANG
tmp=extract.$$
-${readelf} ${lib} | sed '/\.dynsym/,/^$/p;d' | egrep -v ' (LOCAL|UND) ' |\
+${readelf} ${lib} |\
+sed -e 's/ \[<other>: [A-Fa-f0-9]*\] //' -e '/\.dynsym/,/^$/p;d' |\
+egrep -v ' (LOCAL|UND) ' |\
awk '{ if ($4 == "FUNC" || $4 == "NOTYPE")
printf "%s:%s\n", $4, $8;
else if ($4 == "OBJECT")
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 4b086c6dc34..c88b3d18ac7 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -274,9 +274,9 @@ limits_c++0x.o: limits_c++0x.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
atomic.lo: atomic.cc
- $(LTCXXCOMPILE) -x c++ -std=gnu++0x -c $<
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
atomic.o: atomic.cc
- $(CXXCOMPILE) -x c++ -std=gnu++0x -c $<
+ $(CXXCOMPILE) -std=gnu++0x -c $<
string-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 2dc9203cf3b..c3cfecc609e 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -883,9 +883,9 @@ limits_c++0x.o: limits_c++0x.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
atomic.lo: atomic.cc
- $(LTCXXCOMPILE) -x c++ -std=gnu++0x -c $<
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
atomic.o: atomic.cc
- $(CXXCOMPILE) -x c++ -std=gnu++0x -c $<
+ $(CXXCOMPILE) -std=gnu++0x -c $<
string-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
diff --git a/libstdc++-v3/src/atomic.cc b/libstdc++-v3/src/atomic.cc
index 228f92f91d0..5cb39191361 100644
--- a/libstdc++-v3/src/atomic.cc
+++ b/libstdc++-v3/src/atomic.cc
@@ -1,6 +1,6 @@
// Support for atomic operations -*- C++ -*-
-// Copyright (C) 2008
+// Copyright (C) 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -30,12 +30,22 @@
#include "gstdint.h"
#include <cstdatomic>
+#include <mutex>
#define LOGSIZE 4
namespace
{
- atomic_flag volatile __atomic_flag_anon_table__[ 1 << LOGSIZE ] =
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+ std::mutex&
+ get_atomic_mutex()
+ {
+ static std::mutex atomic_mutex;
+ return atomic_mutex;
+ }
+#endif
+
+ std::__atomic_flag_base volatile flag_table[ 1 << LOGSIZE ] =
{
ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT,
ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT,
@@ -46,73 +56,66 @@ namespace
namespace std
{
- extern "C" {
-
- const atomic_flag atomic_global_fence_compatibility = ATOMIC_FLAG_INIT;
-
- bool
- atomic_flag_test_and_set_explicit(volatile atomic_flag* __a,
- memory_order __x
- __attribute__ ((__unused__)))
+ namespace __atomic0
{
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_1
- if (__x >= memory_order_acq_rel)
- __sync_synchronize();
- return __sync_lock_test_and_set(&(__a->_M_base._M_b), 1);
-#else
- bool result = __a->_M_base._M_b;
- __a->_M_base._M_b = true;
- return result;
+ bool
+ atomic_flag::test_and_set(memory_order) volatile
+ {
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+ lock_guard<mutex> __lock(get_atomic_mutex());
#endif
- }
+ bool result = _M_i;
+ _M_i = true;
+ return result;
+ }
- bool
- atomic_flag_test_and_set(volatile atomic_flag* __a)
- { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
-
- void
- atomic_flag_clear_explicit(volatile atomic_flag* __a,
- memory_order __x __attribute__ ((__unused__)))
- {
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_1
- __sync_lock_release(&(__a->_M_base._M_b));
- if (__x >= memory_order_acq_rel)
- __sync_synchronize();
-#else
- __a->_M_base._M_b = false;
+ void
+ atomic_flag::clear(memory_order) volatile
+ {
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+ lock_guard<mutex> __lock(get_atomic_mutex());
#endif
- }
+ _M_i = false;
+ }
+ }
- void
- atomic_flag_clear(volatile atomic_flag* __a)
- { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
-
- void
- atomic_flag_fence(const volatile atomic_flag*, memory_order)
+ extern "C"
{
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_1
- __sync_synchronize();
-#endif
- }
+ bool
+ atomic_flag_test_and_set_explicit(volatile __atomic_flag_base* __a,
+ memory_order __m)
+ {
+ volatile atomic_flag d(__a->_M_i);
+ return d.test_and_set(__m);
+ }
- void
- __atomic_flag_wait_explicit(volatile atomic_flag* __a, memory_order __x)
- {
- while (atomic_flag_test_and_set_explicit(__a, __x))
- { };
- }
+ void
+ atomic_flag_clear_explicit(volatile __atomic_flag_base* __a,
+ memory_order __m)
+ {
+ volatile atomic_flag d(__a->_M_i);
+ return d.clear(__m);
+ }
- volatile atomic_flag*
- __atomic_flag_for_address(const volatile void* __z)
- {
- uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
- __u += (__u >> 2) + (__u << 4);
- __u += (__u >> 7) + (__u << 5);
- __u += (__u >> 17) + (__u << 13);
- if (sizeof(uintptr_t) > 4) __u += (__u >> 31);
- __u &= ~((~uintptr_t(0)) << LOGSIZE);
- return __atomic_flag_anon_table__ + __u;
- }
+ void
+ __atomic_flag_wait_explicit(volatile __atomic_flag_base* __a,
+ memory_order __x)
+ {
+ while (atomic_flag_test_and_set_explicit(__a, __x))
+ { };
+ }
+ volatile __atomic_flag_base*
+ __atomic_flag_for_address(const volatile void* __z)
+ {
+ uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
+ __u += (__u >> 2) + (__u << 4);
+ __u += (__u >> 7) + (__u << 5);
+ __u += (__u >> 17) + (__u << 13);
+ if (sizeof(uintptr_t) > 4)
+ __u += (__u >> 31);
+ __u &= ~((~uintptr_t(0)) << LOGSIZE);
+ return flag_table + __u;
+ }
} // extern "C"
} // namespace std
diff --git a/libstdc++-v3/src/compatibility.cc b/libstdc++-v3/src/compatibility.cc
index b29040c429a..06f6b9a58c5 100644
--- a/libstdc++-v3/src/compatibility.cc
+++ b/libstdc++-v3/src/compatibility.cc
@@ -1,6 +1,6 @@
// Compatibility symbols for previous versions -*- C++ -*-
-// Copyright (C) 2005, 2006
+// Copyright (C) 2005, 2006, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -30,7 +30,8 @@
#include <bits/c++config.h>
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC)
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE)
#define istreambuf_iterator istreambuf_iteratorXX
#define basic_fstream basic_fstreamXX
#define basic_ifstream basic_ifstreamXX
@@ -204,7 +205,8 @@ _GLIBCXX_END_NAMESPACE
// NB: These symbols renames should go into the shared library only,
// and only those shared libraries that support versioning.
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC)
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE)
/* gcc-3.4.4
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv
diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc
index 0391368a131..4b7fac7d34a 100644
--- a/libstdc++-v3/src/debug.cc
+++ b/libstdc++-v3/src/debug.cc
@@ -1,6 +1,6 @@
// Debugging mode support code -*- C++ -*-
-// Copyright (C) 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -42,7 +42,12 @@ using namespace std;
namespace
{
- __gnu_cxx::__mutex safe_base_mutex;
+ __gnu_cxx::__mutex&
+ get_safe_base_mutex()
+ {
+ static __gnu_cxx::__mutex safe_base_mutex;
+ return safe_base_mutex;
+ }
} // anonymous namespace
namespace __gnu_debug
@@ -112,7 +117,7 @@ namespace __gnu_debug
_Safe_sequence_base::
_M_detach_all()
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
for (_Safe_iterator_base* __iter = _M_iterators; __iter;)
{
_Safe_iterator_base* __old = __iter;
@@ -132,7 +137,7 @@ namespace __gnu_debug
_Safe_sequence_base::
_M_detach_singular()
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
for (_Safe_iterator_base* __iter = _M_iterators; __iter;)
{
_Safe_iterator_base* __old = __iter;
@@ -154,7 +159,7 @@ namespace __gnu_debug
_Safe_sequence_base::
_M_revalidate_singular()
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
for (_Safe_iterator_base* __iter = _M_iterators; __iter;
__iter = __iter->_M_next)
__iter->_M_version = _M_version;
@@ -168,7 +173,7 @@ namespace __gnu_debug
_Safe_sequence_base::
_M_swap(_Safe_sequence_base& __x)
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
swap(_M_iterators, __x._M_iterators);
swap(_M_const_iterators, __x._M_const_iterators);
swap(_M_version, __x._M_version);
@@ -186,13 +191,13 @@ namespace __gnu_debug
__gnu_cxx::__mutex&
_Safe_sequence_base::
_M_get_mutex()
- { return safe_base_mutex; }
+ { return get_safe_base_mutex(); }
void
_Safe_iterator_base::
_M_attach(_Safe_sequence_base* __seq, bool __constant)
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
_M_attach_single(__seq, __constant);
}
@@ -229,7 +234,7 @@ namespace __gnu_debug
_Safe_iterator_base::
_M_detach()
{
- __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
+ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
_M_detach_single();
}
@@ -273,7 +278,7 @@ namespace __gnu_debug
__gnu_cxx::__mutex&
_Safe_iterator_base::
_M_get_mutex()
- { return safe_base_mutex; }
+ { return get_safe_base_mutex(); }
void
_Error_formatter::_Parameter::
diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc
index a7609948a81..7c30fc0bfe3 100644
--- a/libstdc++-v3/src/locale.cc
+++ b/libstdc++-v3/src/locale.cc
@@ -1,4 +1,5 @@
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+// 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -36,7 +37,12 @@
namespace
{
- __gnu_cxx::__mutex locale_cache_mutex;
+ __gnu_cxx::__mutex&
+ get_locale_cache_mutex()
+ {
+ static __gnu_cxx::__mutex locale_cache_mutex;
+ return locale_cache_mutex;
+ }
} // anonymous namespace
// XXX GLIBCXX_ABI Deprecated
@@ -389,7 +395,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
locale::_Impl::
_M_install_cache(const facet* __cache, size_t __index)
{
- __gnu_cxx::__scoped_lock sentry(locale_cache_mutex);
+ __gnu_cxx::__scoped_lock sentry(get_locale_cache_mutex());
if (_M_caches[__index] != 0)
{
// Some other thread got in first.
diff --git a/libstdc++-v3/src/locale_init.cc b/libstdc++-v3/src/locale_init.cc
index 28ee484112f..0730155b236 100644
--- a/libstdc++-v3/src/locale_init.cc
+++ b/libstdc++-v3/src/locale_init.cc
@@ -1,4 +1,5 @@
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+// 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -242,9 +243,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const locale&
locale::classic()
- {
+ {
_S_initialize();
- return reinterpret_cast<const locale&>(c_locale);
+ return *(new (&c_locale) locale(_S_classic));
}
void
@@ -254,7 +255,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// One reference for _S_classic, one for _S_global
_S_classic = new (&c_locale_impl) _Impl(2);
_S_global = _S_classic;
- new (&c_locale) locale(_S_classic);
}
void
diff --git a/libstdc++-v3/src/mt_allocator.cc b/libstdc++-v3/src/mt_allocator.cc
index 1e64227e4e3..3430ad3466f 100644
--- a/libstdc++-v3/src/mt_allocator.cc
+++ b/libstdc++-v3/src/mt_allocator.cc
@@ -1,6 +1,6 @@
// Allocator details.
-// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -57,21 +57,34 @@ namespace
}
};
- // Ensure freelist is constructed first.
- static __freelist freelist;
- __gnu_cxx::__mutex freelist_mutex;
+ __freelist&
+ get_freelist()
+ {
+ static __freelist freelist;
+ return freelist;
+ }
+
+ __gnu_cxx::__mutex&
+ get_freelist_mutex()
+ {
+ static __gnu_cxx::__mutex freelist_mutex;
+ return freelist_mutex;
+ }
static void
_M_destroy_thread_key(void* __id)
{
// Return this thread id record to the front of thread_freelist.
- __gnu_cxx::__scoped_lock sentry(freelist_mutex);
- size_t _M_id = reinterpret_cast<size_t>(__id);
-
- typedef __gnu_cxx::__pool<true>::_Thread_record _Thread_record;
- _Thread_record* __tr = &freelist._M_thread_freelist_array[_M_id - 1];
- __tr->_M_next = freelist._M_thread_freelist;
- freelist._M_thread_freelist = __tr;
+ __freelist& freelist = get_freelist();
+ {
+ __gnu_cxx::__scoped_lock sentry(get_freelist_mutex());
+ size_t _M_id = reinterpret_cast<size_t>(__id);
+
+ typedef __gnu_cxx::__pool<true>::_Thread_record _Thread_record;
+ _Thread_record* __tr = &freelist._M_thread_freelist_array[_M_id - 1];
+ __tr->_M_next = freelist._M_thread_freelist;
+ freelist._M_thread_freelist = __tr;
+ }
}
#endif
} // anonymous namespace
@@ -496,8 +509,9 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
// directly and have no need for this.
if (__gthread_active_p())
{
+ __freelist& freelist = get_freelist();
{
- __gnu_cxx::__scoped_lock sentry(freelist_mutex);
+ __gnu_cxx::__scoped_lock sentry(get_freelist_mutex());
if (!freelist._M_thread_freelist_array
|| freelist._M_max_threads < _M_options._M_max_threads)
@@ -613,12 +627,13 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
// returns its id.
if (__gthread_active_p())
{
+ __freelist& freelist = get_freelist();
void* v = __gthread_getspecific(freelist._M_key);
size_t _M_id = (size_t)v;
if (_M_id == 0)
{
{
- __gnu_cxx::__scoped_lock sentry(freelist_mutex);
+ __gnu_cxx::__scoped_lock sentry(get_freelist_mutex());
if (freelist._M_thread_freelist)
{
_M_id = freelist._M_thread_freelist->_M_id;
@@ -689,8 +704,9 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
// directly and have no need for this.
if (__gthread_active_p())
{
+ __freelist& freelist = get_freelist();
{
- __gnu_cxx::__scoped_lock sentry(freelist_mutex);
+ __gnu_cxx::__scoped_lock sentry(get_freelist_mutex());
if (!freelist._M_thread_freelist_array
|| freelist._M_max_threads < _M_options._M_max_threads)
diff --git a/libstdc++-v3/src/mutex.cc b/libstdc++-v3/src/mutex.cc
index 8fae0302fda..26435a27783 100644
--- a/libstdc++-v3/src/mutex.cc
+++ b/libstdc++-v3/src/mutex.cc
@@ -1,6 +1,6 @@
// mutex -*- C++ -*-
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -30,6 +30,17 @@
#include <mutex>
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifndef _GLIBCXX_HAVE_TLS
+namespace
+{
+ std::mutex&
+ get_once_mutex()
+ {
+ static std::mutex once_mutex;
+ return once_mutex;
+ }
+}
+#endif
namespace std
{
@@ -45,11 +56,16 @@ namespace std
__thread void* __once_callable;
__thread void (*__once_call)();
#else
- // explicit instantiation due to -fno-implicit-instantiation
+ // Explicit instantiation due to -fno-implicit-instantiation.
template class function<void()>;
function<void()> __once_functor;
- mutex __once_mutex;
- unique_lock<mutex> __once_functor_lock(__once_mutex, defer_lock);
+
+ unique_lock<mutex>&
+ __get_once_functor_lock()
+ {
+ static unique_lock<mutex> once_functor_lock(get_once_mutex(), defer_lock);
+ return once_functor_lock;
+ }
#endif
extern "C"
@@ -58,7 +74,7 @@ namespace std
{
#ifndef _GLIBCXX_HAVE_TLS
function<void()> __once_call = std::move(__once_functor);
- __once_functor_lock.unlock();
+ __get_once_functor_lock().unlock();
#endif
__once_call();
}
diff --git a/libstdc++-v3/src/pool_allocator.cc b/libstdc++-v3/src/pool_allocator.cc
index c7593271b1d..bcf9d36373d 100644
--- a/libstdc++-v3/src/pool_allocator.cc
+++ b/libstdc++-v3/src/pool_allocator.cc
@@ -1,6 +1,6 @@
// Allocator details.
-// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -37,7 +37,12 @@
namespace
{
- __gnu_cxx::__mutex palloc_init_mutex;
+ __gnu_cxx::__mutex&
+ get_palloc_mutex()
+ {
+ static __gnu_cxx::__mutex palloc_mutex;
+ return palloc_mutex;
+ }
} // anonymous namespace
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
@@ -52,7 +57,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
__mutex&
__pool_alloc_base::_M_get_mutex()
- { return palloc_init_mutex; }
+ { return get_palloc_mutex(); }
// Allocate memory in large chunks in order to avoid fragmenting the
// heap too much. Assume that __n is properly aligned. We hold the
diff --git a/libstdc++-v3/src/thread.cc b/libstdc++-v3/src/thread.cc
index b869e07d6e0..b7a4f83a8e5 100644
--- a/libstdc++-v3/src/thread.cc
+++ b/libstdc++-v3/src/thread.cc
@@ -1,6 +1,6 @@
// thread -*- C++ -*-
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -58,27 +58,6 @@ namespace std
}
}
- thread::thread()
- { }
-
- thread::~thread()
- {
- detach();
- }
-
- thread::id
- thread::get_id() const
- {
- if(_M_thread_data)
- return thread::id(_M_thread_data->_M_thread_handle);
- else
- return thread::id();
- }
-
- bool
- thread::joinable() const
- { return get_id() != id(); }
-
void
thread::join()
{
@@ -108,12 +87,6 @@ namespace std
}
}
- void
- thread::swap(thread&& __t)
- {
- std::swap(_M_thread_data, __t._M_thread_data);
- }
-
void
thread::__start_thread()
{
@@ -123,17 +96,6 @@ namespace std
if(__e)
__throw_system_error(__e);
}
-
- namespace this_thread
- {
- thread::id
- get_id()
- { return thread::id(__gthread_self()); }
-
- void
- yield()
- { __gthread_yield(); }
- }
}
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
diff --git a/libstdc++-v3/testsuite/18_support/exception/38732.cc b/libstdc++-v3/testsuite/18_support/exception/38732.cc
new file mode 100644
index 00000000000..9286552035a
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/exception/38732.cc
@@ -0,0 +1,93 @@
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <typeinfo>
+#include <exception>
+#include <cstddef>
+#include "unwind.h"
+#include <testsuite_hooks.h>
+
+// Before exception_ptr was introduced, some programs copied
+// part of unwind-cxx.h and used __cxa_get_globals to get at the
+// current exceptionType. __cxa_exception structure is described in the
+// C++ ABI, so they have the right to assume it works.
+// Ensure it is true.
+
+struct __cxa_exception
+{
+ std::type_info *exceptionType;
+ void (*exceptionDestructor)(void *);
+ std::unexpected_handler unexpectedHandler;
+ std::terminate_handler terminateHandler;
+ __cxa_exception *nextException;
+ int handlerCount;
+#ifdef __ARM_EABI_UNWINDER__
+ __cxa_exception* nextPropagatingException;
+ int propagationCount;
+#else
+ int handlerSwitchValue;
+ const unsigned char *actionRecord;
+ const unsigned char *languageSpecificData;
+ _Unwind_Ptr catchTemp;
+ void *adjustedPtr;
+#endif
+ _Unwind_Exception unwindHeader;
+};
+
+struct __cxa_eh_globals
+{
+ __cxa_exception *caughtExceptions;
+ unsigned int uncaughtExceptions;
+#ifdef __ARM_EABI_UNWINDER__
+ __cxa_exception* propagatingExceptions;
+#endif
+};
+
+extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
+
+// PR libstdc++/38732
+void test01 ()
+{
+ bool test __attribute__((unused)) = true;
+ try {
+ throw 0;
+ } catch(...) {
+ __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
+ VERIFY ( exc != NULL );
+ VERIFY ( typeid(int) == *exc->exceptionType );
+ }
+ try {
+ throw 0LL;
+ } catch(...) {
+ __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
+ VERIFY ( exc != NULL );
+ VERIFY ( typeid(long long int) == *exc->exceptionType );
+ }
+ try {
+ throw 0.0;
+ } catch(...) {
+ __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
+ VERIFY ( exc != NULL );
+ VERIFY ( typeid(double) == *exc->exceptionType );
+ }
+}
+
+int main ()
+{
+ test01 ();
+}
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc b/libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
index 3f61fa6ce32..bd2261830fe 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
@@ -1,6 +1,6 @@
+// { dg-do run { xfail { ! { *-*-darwin* } } } }
// { dg-require-debug-mode "" }
// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
-// { dg-do run { xfail *-*-* } }
// Copyright (C) 2005 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc b/libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
index 7c27e2b6a4e..438bbadb9f1 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
@@ -1,6 +1,6 @@
+// { dg-do run { xfail { ! { *-*-darwin* } } } }
// { dg-require-debug-mode "" }
// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
-// { dg-do run { xfail *-*-* } }
// Copyright (C) 2005 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc b/libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
index fe4bf712416..7cd3944b715 100644
--- a/libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
@@ -1,4 +1,4 @@
-// { dg-do run { xfail *-*-![linux]* } }
+// { dg-do run { xfail { ! { *-*-linux* } } } }
// { dg-require-namedlocale "" }
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
new file mode 100644
index 00000000000..33c9070a774
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
@@ -0,0 +1,44 @@
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <cmath>
+
+struct foo
+{
+ foo (double);
+};
+
+bool operator &&(int, const foo &);
+
+// libstdc++/37582
+double
+test01(double x)
+{
+ return std::pow (x, 2.0);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
index dca23e73f6a..e67904e6eaa 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
@@ -28,8 +28,8 @@
// the GNU General Public License.
// { dg-do compile }
-// { dg-xfail-if "" { { *-*-linux* *-*-darwin* } || { uclibc || newlib } } { "*" } { "" } }
-// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || { uclibc || newlib } } } }
+// { dg-xfail-if "" { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } { "*" } { "" } }
+// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } } }
#include <math.h>
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
index 58bc34ec2a6..4644f329202 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
@@ -1,7 +1,7 @@
// { dg-do compile }
// -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2008 Free Software Foundation, Inc.
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@@ -31,7 +31,7 @@
// Benjamin Kosnik <bkoz@redhat.com>
#include <ios>
-#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
int main()
{
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
index 837065213d3..348261f0830 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
@@ -1,7 +1,7 @@
// { dg-do compile }
// -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2008 Free Software Foundation, Inc.
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@@ -31,7 +31,7 @@
// Benjamin Kosnik <bkoz@redhat.com>
#include <ios>
-#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
int main()
{
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
index 544a68e2d7e..bd71de62adc 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
@@ -1,7 +1,7 @@
// { dg-do compile }
// -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2008 Free Software Foundation, Inc.
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@@ -31,7 +31,7 @@
// Benjamin Kosnik <bkoz@redhat.com>
#include <ios>
-#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
int main()
{
diff --git a/libstdc++-v3/testsuite/28_regex/init-list.cc b/libstdc++-v3/testsuite/28_regex/init-list.cc
index 6852507ee0e..c8ccbb6bb14 100644
--- a/libstdc++-v3/testsuite/28_regex/init-list.cc
+++ b/libstdc++-v3/testsuite/28_regex/init-list.cc
@@ -1,4 +1,7 @@
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -25,8 +28,6 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-// { dg-options "-std=gnu++0x" }
-
#include <regex>
#include <testsuite_hooks.h>
@@ -38,13 +39,11 @@ int test01(void)
regex r = { 'a', 'b', 'c' };
cmatch res;
- // Enable when regex class actually implemented.
- // VERIFY(regex_match ("abc", res, r));
+ VERIFY(regex_match ("abc", res, r));
VERIFY(!regex_match ("ab", res, r));
r = { 'd', 'e', 'f' };
- // Enable when regex class actually implemented.
- // VERIFY(regex_match ("def", res, r));
+ VERIFY(regex_match ("def", res, r));
VERIFY(!regex_match ("abc", res, r));
return test;
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
index 2ad480a0fa7..021d1fedd4b 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
@@ -38,18 +38,20 @@ int main()
return 0;
}
-// { dg-error "within this context" "" { target *-*-* } 310 }
-// { dg-error "is private" "" { target *-*-* } 1750 }
-// { dg-error "is private" "" { target *-*-* } 1782 }
-// { dg-error "is private" "" { target *-*-* } 1799 }
-// { dg-error "is private" "" { target *-*-* } 1816 }
-// { dg-error "is private" "" { target *-*-* } 1832 }
-// { dg-error "is private" "" { target *-*-* } 1848 }
-// { dg-error "is private" "" { target *-*-* } 1864 }
-// { dg-error "is private" "" { target *-*-* } 1880 }
-// { dg-error "is private" "" { target *-*-* } 1896 }
-// { dg-error "is private" "" { target *-*-* } 1913 }
-// { dg-error "is private" "" { target *-*-* } 1929 }
-// { dg-error "is private" "" { target *-*-* } 1945 }
-// { dg-error "is private" "" { target *-*-* } 1961 }
+// { dg-error "used here" "" { target *-*-* } 510 }
+// { dg-error "deleted function" "" { target *-*-* } 239 }
+// { dg-error "deleted function" "" { target *-*-* } 257 }
+// { dg-error "deleted function" "" { target *-*-* } 275 }
+// { dg-error "deleted function" "" { target *-*-* } 293 }
+// { dg-error "deleted function" "" { target *-*-* } 311 }
+// { dg-error "deleted function" "" { target *-*-* } 329 }
+// { dg-error "deleted function" "" { target *-*-* } 347 }
+// { dg-error "deleted function" "" { target *-*-* } 365 }
+// { dg-error "deleted function" "" { target *-*-* } 383 }
+// { dg-error "deleted function" "" { target *-*-* } 401 }
+// { dg-error "deleted function" "" { target *-*-* } 419 }
+// { dg-error "deleted function" "" { target *-*-* } 437 }
+// { dg-error "deleted function" "" { target *-*-* } 455 }
+// { dg-error "deleted function" "" { target *-*-* } 473 }
+// { dg-error "deleted function" "" { target *-*-* } 491 }
// { dg-excess-errors "In member function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/explicit_value.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
index da91e26a55d..c7ad3b73fb4 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/explicit_value.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
@@ -32,7 +32,7 @@
int main()
{
- __gnu_test::explicit_value_constructible test;
+ __gnu_test::copy_list_initializable test;
__gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl(),
__gnu_test::integral_types::type());
return 0;
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
index a78177eee56..94022289152 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
@@ -38,18 +38,20 @@ int main()
return 0;
}
-// { dg-error "within this context" "" { target *-*-* } 349 }
-// { dg-error "is private" "" { target *-*-* } 1749 }
-// { dg-error "is private" "" { target *-*-* } 1781 }
-// { dg-error "is private" "" { target *-*-* } 1798 }
-// { dg-error "is private" "" { target *-*-* } 1814 }
-// { dg-error "is private" "" { target *-*-* } 1831 }
-// { dg-error "is private" "" { target *-*-* } 1847 }
-// { dg-error "is private" "" { target *-*-* } 1863 }
-// { dg-error "is private" "" { target *-*-* } 1879 }
-// { dg-error "is private" "" { target *-*-* } 1895 }
-// { dg-error "is private" "" { target *-*-* } 1912 }
-// { dg-error "is private" "" { target *-*-* } 1928 }
-// { dg-error "is private" "" { target *-*-* } 1944 }
-// { dg-error "is private" "" { target *-*-* } 1960 }
+// { dg-error "used here" "" { target *-*-* } 549 }
+// { dg-error "deleted function" "" { target *-*-* } 238 }
+// { dg-error "deleted function" "" { target *-*-* } 256 }
+// { dg-error "deleted function" "" { target *-*-* } 274 }
+// { dg-error "deleted function" "" { target *-*-* } 292 }
+// { dg-error "deleted function" "" { target *-*-* } 310 }
+// { dg-error "deleted function" "" { target *-*-* } 328 }
+// { dg-error "deleted function" "" { target *-*-* } 346 }
+// { dg-error "deleted function" "" { target *-*-* } 364 }
+// { dg-error "deleted function" "" { target *-*-* } 382 }
+// { dg-error "deleted function" "" { target *-*-* } 400 }
+// { dg-error "deleted function" "" { target *-*-* } 418 }
+// { dg-error "deleted function" "" { target *-*-* } 436 }
+// { dg-error "deleted function" "" { target *-*-* } 454 }
+// { dg-error "deleted function" "" { target *-*-* } 472 }
+// { dg-error "deleted function" "" { target *-*-* } 490 }
// { dg-excess-errors "In member function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
new file mode 100644
index 00000000000..a9ef8a91867
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
@@ -0,0 +1,39 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::direct_list_initializable test;
+ __gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
new file mode 100644
index 00000000000..79e5e4b8382
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
@@ -0,0 +1,39 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::single_value_constructible test;
+ __gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc b/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
new file mode 100644
index 00000000000..3fcc15c99d7
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::integral_assignable test;
+ __gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc b/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
new file mode 100644
index 00000000000..5586d2ecbe6
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::integral_convertable test;
+ __gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
new file mode 100644
index 00000000000..44dc4fe8973
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
@@ -0,0 +1,32 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2008 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+void test01()
+{
+ // Check for required base class.
+ __gnu_test::has_required_base_class test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::atomics_tl());
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/standard_layout.cc b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/standard_layout.cc
new file mode 100644
index 00000000000..e51e8e4454f
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/standard_layout.cc
@@ -0,0 +1,31 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// 2008-10-22 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+void test01()
+{
+ // Check for standard layout requirements
+ __gnu_test::standard_layout test;
+ __gnu_cxx::typelist::apply_generator(test, __gnu_test::atomics_tl());
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc
index ef50b9ed38f..3d7986ac190 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc
@@ -38,5 +38,5 @@ void test01()
test_type t2;
t1 = t2;
}
-// { dg-error "within this context" "" { target *-*-* } 39 }
-// { dg-error "is private" "" { target *-*-* } 167 }
+// { dg-error "used here" "" { target *-*-* } 39 }
+// { dg-excess-errors "deleted function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/copy_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/copy_neg.cc
index 57732d83335..fe0155f0e2c 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/copy_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/copy_neg.cc
@@ -37,5 +37,5 @@ void test01()
test_type t1;
test_type t2(t1);
}
-// { dg-error "within this context" "" { target *-*-* } 38 }
-// { dg-error "is private" "" { target *-*-* } 166 }
+// { dg-error "used here" "" { target *-*-* } 38 }
+// { dg-excess-errors "deleted function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/explicit_value.cc b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/single_value.cc
index b455bf667cd..bdae37bf8fe 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/explicit_value.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/single_value.cc
@@ -31,7 +31,7 @@
int main()
{
- // Explicit value constructor.
+ // Single value constructor.
void* v = NULL;
std::atomic_address a(v);
return 0;
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
index 5f8ff15dc52..21616bb7af1 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
@@ -38,5 +38,5 @@ void test01()
test_type t2;
t1 = t2;
}
-// { dg-error "within this context" "" { xfail *-*-* } 39 }
-// { dg-error "is private" "" { xfail *-*-* } 89 }
+// { dg-error "used here" "" { target *-*-* } 39 }
+// { dg-excess-errors "deleted function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
index 3480d8c5e16..4dcd0500f90 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
@@ -37,5 +37,5 @@ void test01()
test_type t1;
test_type t2(t1);
}
-// { dg-error "within this context" "" { xfail *-*-* } 38 }
-// { dg-error "is private" "" { xfail *-*-* } 88 }
+// { dg-error "used here" "" { target *-*-* } 38 }
+// { dg-excess-errors "deleted function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
index 351df912fff..c7489014334 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
@@ -36,6 +36,10 @@ int main()
bool test __attribute__((unused)) = true;
typedef std::atomic_flag test_type;
+
+ // libstdc++/37907
+ // VERIFY( std::is_standard_layout<test_type>::value );
+
VERIFY( std::has_trivial_default_constructor<test_type>::value );
VERIFY( std::has_trivial_destructor<test_type>::value );
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
new file mode 100644
index 00000000000..724714ed819
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
@@ -0,0 +1,50 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::assignable test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type());
+ return 0;
+}
+
+// { dg-error "used here" "" { target *-*-* } 510 }
+// { dg-excess-errors "deleted function" }
+// { dg-excess-errors "deleted function" }
+// { dg-error "instantiated from" "" { target *-*-* } 38 }
+// { dg-error "instantiated from" "" { target *-*-* } 517 }
+// { dg-error "instantiated from" "" { target *-*-* } 173 }
+// { dg-error "instantiated from" "" { target *-*-* } 404 }
+// { dg-error "instantiated from" "" { target *-*-* } 175 }
+// { dg-excess-errors "In member function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
new file mode 100644
index 00000000000..b5bc8d0c078
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::copy_list_initializable test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
new file mode 100644
index 00000000000..f03ceced11b
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
@@ -0,0 +1,50 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::copy_constructible test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type());
+ return 0;
+}
+
+// { dg-error "used here" "" { target *-*-* } 549 }
+// { dg-excess-errors "deleted function" }
+// { dg-excess-errors "deleted function" }
+// { dg-error "instantiated from" "" { target *-*-* } 38 }
+// { dg-error "instantiated from" "" { target *-*-* } 555 }
+// { dg-error "instantiated from" "" { target *-*-* } 173 }
+// { dg-error "instantiated from" "" { target *-*-* } 404 }
+// { dg-error "instantiated from" "" { target *-*-* } 175 }
+// { dg-excess-errors "In member function" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/atomic_global_fence_compatibility.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
index 7ee633ebb32..3894fd4c343 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/atomic_global_fence_compatibility.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
@@ -28,12 +28,12 @@
// the GNU General Public License.
#include <cstdatomic>
+#include <testsuite_common_types.h>
int main()
{
- using namespace std;
- atomic_flag_fence(&atomic_global_fence_compatibility, memory_order_acquire);
- atomic_global_fence_compatibility.fence(memory_order_release);
-
+ __gnu_test::default_constructible test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type());
return 0;
}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
new file mode 100644
index 00000000000..ac53f318f35
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::direct_list_initializable test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
new file mode 100644
index 00000000000..6572de7cf68
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::single_value_constructible test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
new file mode 100644
index 00000000000..649c34000bf
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::has_bitwise_operators test;
+ using __gnu_test::atomic_integrals_no_bool;
+ __gnu_cxx::typelist::apply_generator(test, atomic_integrals_no_bool::type());
+};
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
new file mode 100644
index 00000000000..0d36bbcd77a
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
@@ -0,0 +1,44 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::bitwise_assignment_operators<std::atomic_bool>();
+ return 0;
+}
+
+// { dg-error "operator" "" { target *-*-* } 413 }
+// { dg-error "operator" "" { target *-*-* } 414 }
+// { dg-error "operator" "" { target *-*-* } 415 }
+// { dg-excess-errors "In file included from" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
new file mode 100644
index 00000000000..f487b6553af
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::has_decrement_operators test;
+ using __gnu_test::atomic_integrals_no_bool;
+ __gnu_cxx::typelist::apply_generator(test, atomic_integrals_no_bool::type());
+};
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
new file mode 100644
index 00000000000..9480af5a236
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
@@ -0,0 +1,45 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::has_decrement_operators test;
+ test.operator()<std::atomic_bool>();
+ return 0;
+}
+
+// { dg-error "operator" "" { target *-*-* } 384 }
+// { dg-error "operator" "" { target *-*-* } 385 }
+// { dg-error "operator" "" { target *-*-* } 386 }
+// { dg-excess-errors "In file included from" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
new file mode 100644
index 00000000000..608ddefbb4c
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
@@ -0,0 +1,40 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::has_increment_operators test;
+ using __gnu_test::atomic_integrals_no_bool;
+ __gnu_cxx::typelist::apply_generator(test, atomic_integrals_no_bool::type());
+};
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
new file mode 100644
index 00000000000..fc2f76b35e0
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
@@ -0,0 +1,45 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+
+// This library 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 2, or (at
+// your option) any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::has_increment_operators test;
+ test.operator()<std::atomic_bool>();
+ return 0;
+}
+
+// { dg-error "operator" "" { target *-*-* } 362 }
+// { dg-error "operator" "" { target *-*-* } 363 }
+// { dg-error "operator" "" { target *-*-* } 364 }
+// { dg-excess-errors "In file included from" }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
new file mode 100644
index 00000000000..4e8a42383b8
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
@@ -0,0 +1,41 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::integral_assignable test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
new file mode 100644
index 00000000000..527dc77691d
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
@@ -0,0 +1,41 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdatomic>
+#include <testsuite_hooks.h>
+#include <testsuite_common_types.h>
+
+int main()
+{
+ __gnu_test::integral_convertable test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type(),
+ __gnu_test::integral_types::type());
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
new file mode 100644
index 00000000000..1b6836fb54c
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
@@ -0,0 +1,32 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+// 2008-10-22 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option)
+// any later version.
+
+// This library 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 this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdatomic>
+#include <testsuite_common_types.h>
+
+void test01()
+{
+ // Check for standard layout requirements
+ __gnu_test::standard_layout test;
+ __gnu_cxx::typelist::apply_generator(test,
+ __gnu_test::atomic_integrals::type());
+}
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc
index 5444d71f378..c7ea8bc74f8 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/functions_std_c++0x.cc
@@ -27,9 +27,8 @@ namespace gnu
using std::atomic_flag_test_and_set_explicit;
using std::atomic_flag_clear;
using std::atomic_flag_clear_explicit;
- using std::atomic_flag_fence;
- using std::atomic_global_fence_compatibility;
+ using std::kill_dependency;
// Sloppy testing for integral types (en masse).
using std::atomic_is_lock_free;
@@ -37,11 +36,12 @@ namespace gnu
using std::atomic_store_explicit;
using std::atomic_load;
using std::atomic_load_explicit;
- using std::atomic_swap;
- using std::atomic_swap_explicit;
- using std::atomic_compare_swap;
- using std::atomic_compare_swap_explicit;
- using std::atomic_fence;
+ using std::atomic_exchange;
+ using std::atomic_exchange_explicit;
+ using std::atomic_compare_exchange_weak;
+ using std::atomic_compare_exchange_strong;
+ using std::atomic_compare_exchange_weak_explicit;
+ using std::atomic_compare_exchange_strong_explicit;
using std::atomic_fetch_add;
using std::atomic_fetch_add_explicit;
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/macros.cc b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/macros.cc
index 62f76ab1f0e..d285a7e2767 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/macros.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/macros.cc
@@ -24,11 +24,20 @@
namespace gnu
{
#ifndef ATOMIC_INTEGRAL_LOCK_FREE
- #error "ATOMIC_INTEGRAL_LOCK_FREE_must_be_a_macro"
+# error "ATOMIC_INTEGRAL_LOCK_FREE must be a macro"
+#else
+# if ATOMIC_INTEGRAL_LOCK_FREE != 0 \
+ && ATOMIC_INTEGRAL_LOCK_FREE != 1 && ATOMIC_INTEGRAL_LOCK_FREE != 2
+# error "ATOMIC_INTEGRAL_LOCK_FREE must be 0, 1, or 2"
+# endif
#endif
#ifndef ATOMIC_ADDRESS_LOCK_FREE
- #error "ATOMIC_ADDRESS_LOCK_FREE_must_be_a_macro"
+# error "ATOMIC_ADDRESS_LOCK_FREE must be a macro"
+# if ATOMIC_INTEGRAL_LOCK_FREE != 0 \
+ && ATOMIC_INTEGRAL_LOCK_FREE != 1 && ATOMIC_INTEGRAL_LOCK_FREE != 2
+# error "ATOMIC_INTEGRAL_LOCK_FREE must be 0, 1, or 2"
+# endif
#endif
#ifndef ATOMIC_FLAG_INIT
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc
index 9a3ab5e636f..182c2d91866 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc
@@ -25,6 +25,7 @@ void test01()
{
using std::memory_order;
using std::memory_order_relaxed;
+ using std::memory_order_consume;
using std::memory_order_acquire;
using std::memory_order_release;
using std::memory_order_acq_rel;
@@ -75,7 +76,4 @@ void test01()
using std::atomic_uintmax_t;
using std::atomic_address;
-
- const std::atomic_flag* p __attribute__((unused))
- = &std::atomic_global_fence_compatibility;
}
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c
index 30368a06bf4..1e65e940dc9 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c
+++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c
@@ -55,24 +55,20 @@ int main()
#error "atomic_store_must_be_a_macro"
#endif
-#ifndef atomic_swap_explicit
- #error "atomic_swap_explicit_must_be_a_macro"
+#ifndef atomic_exchange_explicit
+ #error "atomic_exchange_explicit_must_be_a_macro"
#endif
-#ifndef atomic_swap
- #error "atomic_swap_must_be_a_macro"
+#ifndef atomic_exchange
+ #error "atomic_exchange_must_be_a_macro"
#endif
-#ifndef atomic_compare_swap
- #error "atomic_compare_swap_must_be_a_macro"
+#ifndef atomic_compare_exchange
+ #error "atomic_compare_exchange_must_be_a_macro"
#endif
-#ifndef atomic_compare_swap_explicit
- #error "atomic_compare_swap_explicit_must_be_a_macro"
-#endif
-
-#ifndef atomic_fence
- #error "atomic_fence_must_be_a_macro"
+#ifndef atomic_compare_exchange_explicit
+ #error "atomic_compare_exchange_explicit_must_be_a_macro"
#endif
#ifndef atomic_fetch_add_explicit
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c
index 88bc740c3d7..478fdd8283a 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c
+++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c
@@ -75,7 +75,4 @@ void test01()
typedef atomic_uintmax_t t_45;
typedef atomic_address t_46;
-
- const atomic_flag* p __attribute__((unused))
- = &atomic_global_fence_compatibility;
}
diff --git a/libstdc++-v3/testsuite/30_threads/thread/this_thread/2.cc b/libstdc++-v3/testsuite/30_threads/thread/this_thread/2.cc
index cf60c2ccab2..a632a45942f 100644
--- a/libstdc++-v3/testsuite/30_threads/thread/this_thread/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/thread/this_thread/2.cc
@@ -4,8 +4,9 @@
// { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
+// { dg-require-sched-yield "" }
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc b/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
index 452de7b6b8e..f9f7454ce8c 100644
--- a/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
+++ b/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
@@ -100,13 +100,13 @@ void test01(void) {
aptr5 = __const_pointer_cast<B_pointer>(cbptr); // ok
}
-// { dg-error "invalid conversion " "" { target *-*-* } 289 }
-// { dg-error "initializing argument 1 of" "" { target *-*-* } 289 }
-// { dg-error "invalid conversion " "" { target *-*-* } 295 }
-// { dg-error "initializing argument 1 of" "" { target *-*-* } 295 }
-// { dg-error "invalid conversion " "" { target *-*-* } 312 }
-// { dg-error "initializing argument 1 of" "" { target *-*-* } 312 }
-// { dg-error "invalid conversion " "" { target *-*-* } 320 }
-// { dg-error "initializing argument 1 of" "" { target *-*-* } 320 }
+// { dg-error "invalid conversion " "" { target *-*-* } 299 }
+// { dg-error "initializing argument 1 of" "" { target *-*-* } 299 }
+// { dg-error "invalid conversion " "" { target *-*-* } 305 }
+// { dg-error "initializing argument 1 of" "" { target *-*-* } 305 }
+// { dg-error "invalid conversion " "" { target *-*-* } 322 }
+// { dg-error "initializing argument 1 of" "" { target *-*-* } 322 }
+// { dg-error "invalid conversion " "" { target *-*-* } 330 }
+// { dg-error "initializing argument 1 of" "" { target *-*-* } 330 }
// { dg-excess-errors "In constructor" }
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
index ab3b624e26d..e0076a8e0c2 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
index 167d4c1bf8f..28895416263 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
index 1d253a9c003..7565911f17b 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
index 3bcdebf0eb6..cabe41da46b 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
index acb69119c9d..bf747dbceaa 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
index 64335b09ea6..e59381d116a 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
index 93b2bdda2b0..5c8c866d508 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
@@ -52,6 +52,7 @@
// This can take long on simulators, timing out the test.
// { dg-options "-DPB_DS_REGRESSION -DITERATIONS=5" { target simulator } }
+// { dg-timeout-factor 2.0 }
#ifndef ITERATIONS
#define ITERATIONS 5000
#endif
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index 78072256476..8270376d57e 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -1,6 +1,7 @@
# Handlers for additional dg-xxx keywords in tests.
-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -125,6 +126,15 @@ proc dg-require-nanosleep { args } {
return
}
+proc dg-require-sched-yield { args } {
+ if { ![ check_v3_target_sched_yield ] } {
+ upvar dg-do-what dg-do-what
+ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+ return
+ }
+ return
+}
+
proc dg-require-string-conversions { args } {
if { ![ check_v3_target_string_conversions ] } {
upvar dg-do-what dg-do-what
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 3b2e18b7b2c..bd01b25bc18 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -1,6 +1,6 @@
# libstdc++ "tool init file" for DejaGNU
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -1261,6 +1261,64 @@ proc check_v3_target_nanosleep { } {
return $et_nanosleep
}
+proc check_v3_target_sched_yield { } {
+ global cxxflags
+ global DEFAULT_CXXFLAGS
+ global et_sched_yield
+
+ global tool
+
+ if { ![info exists et_sched_yield_target_name] } {
+ set et_sched_yield_target_name ""
+ }
+
+ # If the target has changed since we set the cached value, clear it.
+ set current_target [current_target_name]
+ if { $current_target != $et_sched_yield_target_name } {
+ verbose "check_v3_target_sched_yield: `$et_sched_yield_target_name'" 2
+ set et_sched_yield_target_name $current_target
+ if [info exists et_sched_yield] {
+ verbose "check_v3_target_sched_yield: removing cached result" 2
+ unset et_sched_yield
+ }
+ }
+
+ if [info exists et_sched_yield] {
+ verbose "check_v3_target_sched_yield: using cached result" 2
+ } else {
+ set et_sched_yield 0
+
+ # Set up and compile a C++0x test program that depends
+ # on the sched_yield facility to be available.
+ set src sched_yield[pid].cc
+ set exe sched_yield[pid].exe
+
+ set f [open $src "w"]
+ puts $f "#include <bits/c++config.h>"
+ puts $f "int main()"
+ puts $f "#ifdef _GLIBCXX_USE_SCHED_YIELD"
+ puts $f "{ return 0; }"
+ puts $f "#endif"
+ close $f
+
+ set cxxflags_saved $cxxflags
+ set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror"
+
+ set lines [v3_target_compile $src $exe executable ""]
+ set cxxflags $cxxflags_saved
+ file delete $src
+
+ if [string match "" $lines] {
+ # No error message, compilation succeeded.
+ set et_sched_yield 1
+ } else {
+ verbose "check_v3_target_sched_yield: compilation failed" 2
+ }
+ }
+ verbose "check_v3_target_sched_yield: $et_sched_yield" 2
+ return $et_sched_yield
+}
+
proc check_v3_target_string_conversions { } {
global cxxflags
global DEFAULT_CXXFLAGS
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
index 6594b286adc..dffab3878d5 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
index d8db3933b18..7f12e2414d6 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
index fd48a46623a..bf17ede76b2 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
index d5bfb417a1d..db6fe1e54c9 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
index 57e9a6b1dfd..3a85df46498 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
index a653fbc6f53..6f069058e5b 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
index 755434044fe..903b0ac4a09 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
index f61dbcf22d7..62ed257aab1 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
index bf3de48e94a..2678b8e9deb 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
index 1e97c6a5ce6..4c8728a4633 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
index a5303e267eb..e8ed33913ad 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
index 78ac26d8dfe..9411a7928cb 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
index a349acd8d20..b6f2c262102 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
index b499a282b7e..9e8a906c7d8 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
index 827c8bf6af7..db1545c12f9 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
index 42c2bf39879..98a889572f0 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
index 0924b1c2015..39cce6c6472 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -25,6 +25,7 @@
#include <string>
#include <tr1/regex>
#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
// Tests C++ string constructor of the basic_regex class.
void test01()
@@ -35,9 +36,19 @@ void test01()
test_type re(s);
}
+void test02()
+{
+ typedef std::tr1::basic_regex<char> test_type;
+ typedef __gnu_test::tracker_allocator<char> alloc_type;
+
+ std::basic_string<char, std::char_traits<char>, alloc_type> s("a*b");
+ test_type re(s);
+}
+
int
main()
{
test01();
+ test02();
return 0;
};
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
index 5e8e70347c3..6ef32e2db68 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
index efdd81a6e14..25a0f1cb8af 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
index f25dee605d8..28c62651fa8 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
index 9ebebf2f601..ed4d5eda11c 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
index 6379fecefc4..9e6a9adc9a2 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
@@ -1,8 +1,8 @@
-// { dg-do link }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -25,6 +25,7 @@
#include <string>
#include <tr1/regex>
#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
// Tests C++ string constructor of the basic_regex class.
void test01()
@@ -35,9 +36,19 @@ void test01()
test_type re(s);
}
+void test02()
+{
+ typedef std::tr1::basic_regex<wchar_t> test_type;
+ typedef __gnu_test::tracker_allocator<wchar_t> alloc_type;
+
+ std::basic_string<wchar_t, std::char_traits<wchar_t>, alloc_type> s(L"a*b");
+ test_type re(s);
+}
+
int
main()
{
test01();
+ test02();
return 0;
};
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_extended.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_extended.cc
index 68e7709722d..2fbf5ba11e0 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_extended.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_extended.cc
@@ -1,8 +1,8 @@
-// { dg-do run }
+// { dg-do compile }
// 2007-03-12 Stephen M. Webb <stephen.webb@bregmasoft.com>
//
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
index 2764e434f75..67373c7d52e 100644
--- a/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
@@ -87,7 +87,7 @@ namespace __gnu_pbds
typedef typename basic_type_rebind::const_reference basic_type_const_reference;
- typedef typename cntnr::allocator_type::template rebind<std::pair<basic_type, basic_type> >::other pair_type_rebind;
+ typedef typename cntnr::allocator_type::template rebind<std::pair<const basic_type, basic_type> >::other pair_type_rebind;
typedef typename pair_type_rebind::const_reference pair_type_const_reference;
template<typename Gen>
diff --git a/libstdc++-v3/testsuite/util/testsuite_common_types.h b/libstdc++-v3/testsuite/util/testsuite_common_types.h
index a746d787e7c..6dc0dfa7ebf 100644
--- a/libstdc++-v3/testsuite/util/testsuite_common_types.h
+++ b/libstdc++-v3/testsuite/util/testsuite_common_types.h
@@ -54,6 +54,7 @@
#ifdef __GXX_EXPERIMENTAL_CXX0X__
#include <cstdatomic>
+#include <type_traits>
#endif
namespace __gnu_test
@@ -279,14 +280,63 @@ namespace __gnu_test
typedef long long a11;
typedef unsigned long long a12;
typedef wchar_t a13;
- // typedef char16_t a14;
- // typedef char16_t a15;
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ typedef char16_t a14;
+ typedef char32_t a15;
+ typedef node<_GLIBCXX_TYPELIST_CHAIN15(a1, a2, a3, a4, a5, a6, a7, a8, a9,
+ a10, a11, a12, a13, a14, a15)> type;
+#else
typedef node<_GLIBCXX_TYPELIST_CHAIN13(a1, a2, a3, a4, a5, a6, a7, a8, a9,
a10, a11, a12, a13)> type;
+#endif
};
#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ struct atomic_integrals_no_bool
+ {
+ typedef std::atomic_char a2;
+ typedef std::atomic_schar a3;
+ typedef std::atomic_uchar a4;
+ typedef std::atomic_short a5;
+ typedef std::atomic_ushort a6;
+ typedef std::atomic_int a7;
+ typedef std::atomic_uint a8;
+ typedef std::atomic_long a9;
+ typedef std::atomic_ulong a10;
+ typedef std::atomic_llong a11;
+ typedef std::atomic_ullong a12;
+ typedef std::atomic_wchar_t a13;
+ typedef std::atomic_char16_t a14;
+ typedef std::atomic_char32_t a15;
+
+ typedef node<_GLIBCXX_TYPELIST_CHAIN14(a2, a3, a4, a5, a6, a7, a8, a9,
+ a10, a11, a12, a13, a14, a15)> type;
+ };
+
+ struct atomic_integrals
+ {
+ typedef std::atomic_bool a1;
+ typedef std::atomic_char a2;
+ typedef std::atomic_schar a3;
+ typedef std::atomic_uchar a4;
+ typedef std::atomic_short a5;
+ typedef std::atomic_ushort a6;
+ typedef std::atomic_int a7;
+ typedef std::atomic_uint a8;
+ typedef std::atomic_long a9;
+ typedef std::atomic_ulong a10;
+ typedef std::atomic_llong a11;
+ typedef std::atomic_ullong a12;
+ typedef std::atomic_wchar_t a13;
+ typedef std::atomic_char16_t a14;
+ typedef std::atomic_char32_t a15;
+
+ typedef node<_GLIBCXX_TYPELIST_CHAIN15(a1, a2, a3, a4, a5, a6, a7, a8, a9,
+ a10, a11, a12, a13, a14, a15)> type;
+ };
+
+
template<typename Tp>
struct atomics
{
@@ -297,6 +347,156 @@ namespace __gnu_test
typedef transform<integral_types::type, atomics>::type atomics_tl;
#endif
+
+ struct has_increment_operators
+ {
+ template<typename _Tp>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ _Tp a;
+ ++a; // prefix
+ a++; // postfix
+ a += a;
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
+ struct has_decrement_operators
+ {
+ template<typename _Tp>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ _Tp a;
+ --a; // prefix
+ a--; // postfix
+ a -= a;
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
+ template<typename _Tp>
+ void
+ bitwise_operators()
+ {
+ _Tp a;
+ _Tp b;
+ a | b;
+ a & b;
+ a ^ b;
+ ~b;
+ }
+
+ template<typename _Tp>
+ void
+ bitwise_assignment_operators()
+ {
+ _Tp a;
+ _Tp b;
+ a |= b; // set
+ a &= ~b; // clear
+ a ^= b;
+ }
+
+ // 17.3.2.1.2 - Bitmask types [lib.bitmask.types]
+ // bitmask_operators
+ template<typename _BitmTp>
+ void
+ bitmask_operators()
+ {
+ bitwise_operators<_BitmTp>();
+ bitwise_assignment_operators<_BitmTp>();
+ }
+
+ struct has_bitwise_operators
+ {
+ template<typename _Tp>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ bitwise_assignment_operators<_Tp>();
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
+ // Generator to test standard layout
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ struct standard_layout
+ {
+ template<typename _Tp>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ // libstdc++/37907
+ // typedef std::is_standard_layout<_Tp> standard_layout_p;
+ // static_assert(standard_layout_p::value, "not standard_layout");
+
+ typedef std::has_trivial_default_constructor<_Tp> ctor_p;
+ static_assert(ctor_p::value, "default ctor not trivial");
+
+ typedef std::has_trivial_destructor<_Tp> dtor_p;
+ static_assert(dtor_p::value, "dtor not trivial");
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+#endif
+
+ // Generator to test base class
+ struct has_required_base_class
+ {
+ template<typename _TBase, typename _TDerived>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ const _TDerived& obj = __a;
+ const _TBase* base __attribute__((unused)) = &obj;
+ }
+
+ _TDerived __a;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
// Generator to test assignment operator.
struct assignable
{
@@ -356,8 +556,8 @@ namespace __gnu_test
}
};
- // Generator to test explicit value constructor.
- struct explicit_value_constructible
+ // Generator to test direct initialization, single value constructor.
+ struct single_value_constructible
{
template<typename _Ttype, typename _Tvalue>
void
@@ -376,5 +576,102 @@ namespace __gnu_test
}
};
+ // Generator to test direct list initialization
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ struct direct_list_initializable
+ {
+ template<typename _Ttype, typename _Tvalue>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ _Ttype __v1 { }; // default ctor
+ _Ttype __v2 { __a }; // single-argument ctor
+ }
+
+ _Tvalue __a;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+#endif
+
+ // Generator to test copy list initialization, aggregate initialization
+ struct copy_list_initializable
+ {
+ template<typename _Ttype, typename _Tvalue>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ { _Ttype __v = {__a}; }
+
+ _Tvalue __a;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
+ // Generator to test integral conversion operator
+ struct integral_convertable
+ {
+ template<typename _Ttype, typename _Tvalue>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ _Tvalue __v0(0);
+ _Tvalue __v1(1);
+ _Ttype __a(__v1);
+ __v0 = __a;
+
+ bool test __attribute__((unused)) = true;
+ VERIFY( __v1 == __v0 );
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
+
+ // Generator to test integral assignment operator
+ struct integral_assignable
+ {
+ template<typename _Ttype, typename _Tvalue>
+ void
+ operator()()
+ {
+ struct _Concept
+ {
+ void __constraint()
+ {
+ _Tvalue __v0(0);
+ _Tvalue __v1(1);
+ _Ttype __a(__v0);
+ __a = __v1;
+ _Tvalue __vr = __a;
+
+ bool test __attribute__((unused)) = true;
+ VERIFY( __v1 == __vr );
+ }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
+ }
+ };
} // namespace __gnu_test
#endif
diff --git a/libstdc++-v3/testsuite/util/testsuite_hooks.h b/libstdc++-v3/testsuite/util/testsuite_hooks.h
index cbd876d61fe..0f870f84cd1 100644
--- a/libstdc++-v3/testsuite/util/testsuite_hooks.h
+++ b/libstdc++-v3/testsuite/util/testsuite_hooks.h
@@ -1,7 +1,7 @@
// -*- C++ -*-
// Utility subroutines for the C++ library testsuite.
//
-// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -100,22 +100,6 @@ namespace __gnu_test
void
verify_demangle(const char* mangled, const char* wanted);
- // 17.3.2.1.2 - Bitmask types [lib.bitmask.types]
- // bitmask_operators
- template<typename bitmask_type>
- void
- bitmask_operators(bitmask_type a = bitmask_type(),
- bitmask_type b = bitmask_type())
- {
- a | b;
- a & b;
- a ^ b;
- ~b;
- a |= b; // set
- a &= ~b; // clear
- a ^= b;
- }
-
// Simple callback structure for variable numbers of tests (all with
// same signature). Assume all unit tests are of the signature
// void test01();
diff --git a/libtool.m4 b/libtool.m4
index 39ba996cb96..66b1a3fbd25 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -2454,16 +2454,21 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+ [lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+ [lt_cv_shlibpath_overrides_runpath=yes])])
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+ ])
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -5111,36 +5116,38 @@ x|xyes)
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- AC_MSG_CHECKING([whether -lc should be explicitly linked in])
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+ AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+ [$RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ ])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
;;
esac
fi
diff --git a/zlib/ChangeLog.gcj b/zlib/ChangeLog.gcj
index 04c6078a0dd..02814a99cd4 100644
--- a/zlib/ChangeLog.gcj
+++ b/zlib/ChangeLog.gcj
@@ -1,3 +1,7 @@
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Steve Ellcey <sje@cup.hp.com>
diff --git a/zlib/configure b/zlib/configure
index 144f0f51954..e7df78adcd3 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -8336,44 +8336,50 @@ x|xyes)
# to ld, don't add -lc before -lgcc.
echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
@@ -8953,12 +8959,17 @@ linux* | k*bsd*-gnu)
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
+
# Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- if test x$gcc_no_link = xyes; then
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
{ (exit 1); exit 1; }; }
@@ -9001,7 +9012,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
+ lt_cv_shlibpath_overrides_runpath=yes
fi
else
@@ -9011,8 +9022,12 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
@@ -10007,7 +10022,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10010 "configure"
+#line 10025 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10103,7 +10118,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10106 "configure"
+#line 10121 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H