1. 16 Mar, 2012 17 commits
  2. 15 Mar, 2012 23 commits
    • re PR target/52568 (suboptimal __builtin_shuffle on cycles with AVX) · 81de8b03
      	PR target/52568
      	* config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New
      	function.
      	(ix86_expand_vec_perm_const_1): Use it.
      
      	* gcc.dg/torture/vshuf-4.inc: Add two new tests.
      	* gcc.dg/torture/vshuf-8.inc: Likewise.
      	* gcc.dg/torture/vshuf-16.inc: Likewise.
      	* gcc.dg/torture/vshuf-32.inc: Likewise.
      
      From-SVN: r185447
      Jakub Jelinek committed
    • re PR target/52568 (suboptimal __builtin_shuffle on cycles with AVX) · b8227739
      	PR target/52568
      	* config/i386/sse.md (UNSPEC_VPERMDF): Remove.
      	(avx2_permv4df): Remove.
      	(avx2_permv4di): Macroize into...
      	(avx2_perm<mode>): ... this using VI8F_256 iterator.
      	(avx2_permv4di_1): Macroize into...
      	(avx2_perm<mode>_1): ... this using VI8F_256 iterator.
      
      From-SVN: r185446
      Jakub Jelinek committed
    • Remove commented out debug printf:s · 192b716b
      From-SVN: r185444
      Janne Blomqvist committed
    • re PR c++/52582 (g++ ICE when compiling qt-4.8.0 with -O2 on PPC (32bit)) · 92caa91a
      	PR c++/52582
      	* method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
      
      From-SVN: r185443
      Jason Merrill committed
    • Enable BUILT_IN_IROUND. · 6715d47b
      2012-03-15  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* f95-lang.c (gfc_init_builtin_functions): Initialize
      	BUILT_IN_IROUND.
      	* mathbuiltins.def: Add IROUND.
      	* trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
      	type size matches.
      	(gfc_build_intrinsic_lib_fndecls): Build iround functions.
      
      From-SVN: r185442
      Janne Blomqvist committed
    • fortran-modules.exp: New file which was forgotten in r185430. · 28eccf2d
      2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
      
              * lib/fortran-modules.exp: New file which was forgotten in r185430.
      
      From-SVN: r185439
      Bernhard Reutner-Fischer committed
    • tree-vect-patterns.c (widened_name_p): Rename to ... · bc4fb355
      ChangeLog:
      
      	* tree-vect-patterns.c (widened_name_p): Rename to ...
      	(type_conversion_p): ... this.  Add new argument to determine
      	if it's a promotion or demotion operation.  Check for
      	CONVERT_EXPR_CODE_P instead of NOP_EXPR.
      	(vect_recog_dot_prod_pattern): Call type_conversion_p instead
      	widened_name_p.
      	(vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
      	vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
      	Likewise.
      	(vect_recog_mixed_size_cond_pattern): Likewise and allow
      	non-constant then and else clauses.
      
      testsuite/ChangeLog:
      
      	* gcc.dg/vect/slp-cond-3.c: New test.
      	* gcc.dg/vect/slp-cond-4.c: New test.
      
      Co-Authored-By: Ulrich Weigand <ulrich.weigand@linaro.org>
      
      From-SVN: r185437
      Ira Rosen committed
    • tree-vectorizer.h (vect_pattern_recog): Add new argument. · f5709183
      ChangeLog:
      
      	* tree-vectorizer.h (vect_pattern_recog): Add new argument.
      	* tree-vect-loop.c (vect_analyze_loop_2): Update call to
      	vect_pattern_recog.
      	* tree-vect-patterns.c (widened_name_p): Pass basic block
      	info to vect_is_simple_use.
      	(vect_recog_dot_prod_pattern): Fail for basic blocks.
      	(vect_recog_widen_sum_pattern): Likewise.
      	(vect_handle_widen_op_by_const): Support basic blocks.
      	(vect_operation_fits_smaller_type,
      	vect_recog_over_widening_pattern): Likewise.
      	(vect_recog_vector_vector_shift_pattern): Support basic blocks.
      	Update call to vect_is_simple_use.
      	(vect_recog_mixed_size_cond_pattern): Support basic blocks.
      	Add printing.
      	(check_bool_pattern): Add an argument, update call to
      	vect_is_simple_use and the recursive calls.
      	(vect_recog_bool_pattern): Update relevant function calls.
      	Add printing.
      	(vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
      	(vect_pattern_recog_1): Check for reduction only in loops.
      	(vect_pattern_recog): Add new argument.  Support basic blocks.
      	* tree-vect-stmts.c (vectorizable_conversion): Pass basic block
      	info to vect_is_simple_use_1.
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic
      	blocks.
      	(vect_slp_analyze_bb_1): Call vect_pattern_recog.
      
      testsuite/ChangeLog:
      
      	* gcc.dg/vect/bb-slp-pattern-1.c: New test.
      	* gcc.dg/vect/bb-slp-pattern-2.c: New test.
      
      Co-Authored-By: Ulrich Weigand <ulrich.weigand@linaro.org>
      
      From-SVN: r185436
      Ira Rosen committed
    • re PR libfortran/52434 (Insufficient number of digits in floating point formatting) · 37b659dd
      2012-03-15  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/52434
              PR libfortran/48878
              PR libfortran/38199
              * io/unit.c (get_internal_unit): Default to ROUND_UNSPECIFIED.
              (init_units): Likewise.
              * io/write_float.def (determine_precision): New function.
              (output_float): Take into account buffer with %f format, no need
              for our own rounding if unspecified or processor specified
              rounding.
              (DTOA): Simplify format string, add parameters.
              (FDTOA): New macros similar to DTOA, but using %f format.
              (OUTPUT_FLOAT_FMT_G): Stack allocate newf, determine correct
              precision and fill buffer.
              (EN_PREC): New macro.
              (determine_en_precision): New function.
              (WRITE_FLOAT): For G format, move buffer filling into
              output_float_FMT_G, use FDTOA for F format.
              (write_float): Increase buffer due to F format.
      
      testsuite ChangeLog:
      
      2012-03-15  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/52434
              PR libfortran/48878
              PR libfortran/38199
              * gfortran.dg/edit_real_1.f90: Don't assume roundTiesToAway.
              * gfortran.dg/round_1.f03: Likewise.
      
      From-SVN: r185433
      Janne Blomqvist committed
    • re PR middle-end/52592 (compilation failure with undefined reference to `__builtin_iround') · ff63ac4d
      	PR middle-end/52592
      	* builtins.c (expand_builtin_int_roundingfn_2): If expanding
      	BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
      	calls instead of __builtin_ir{int,ound}*.
      
      	* gcc.dg/pr52592.c: New test.
      
      Co-Authored-By: Andrew Pinski <apinski@cavium.com>
      
      From-SVN: r185431
      Jakub Jelinek committed
    • gfortran testsuite: implicitly cleanup-modules · b3781fcb
      gcc/ChangeLog:
      2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
      
      	* doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
      	documentation.
      
      gcc/testsuite/ChangeLog:
      
      2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
      
      	* gfortran.fortran-torture/compile/compile.exp: Simplify.
      	* gfortran.fortran-torture/execute/execute.exp: Likewise.
      	* lib/gcc-dg.exp (cleanup-modules): Move to ..
      	* lib/fortran-modules.exp: .. this new file. Adjust users.
      	* lib/gfortran-dg.exp (gfortran-dg-runtest,
      	gfortran-dg-debug-runtest): Call cleanup-modules.
      	* lib/fortran-torture.exp (fortran-torture-execute,
      	fortran-torture): Likewise.
      	* gfortran.dg/coarray/caf.exp: Likewise.
      	* lib/lto.exp: Likewise.
      	* gfortran.dg/class_4a.f03: Adjust cleanup-modules and keep-modules.
      	* gfortran.dg/class_4b.f03: Likewise.
      	* gfortran.dg/class_4c.f03: Likewise.
      	* gfortran.dg/class_45a.f03: Likewise.
      	* gfortran.dg/binding_label_tests_10.f03: Likewise.
      	* gfortran.dg/binding_label_tests_10_main.f03: Likewise.
      	* gfortran.dg/binding_label_tests_11.f03: Likewise.
      	* gfortran.dg/binding_label_tests_11_main.f03: Likewise.
      	* gfortran.dg/binding_label_tests_13.f03: Likewise.
      	* gfortran.dg/binding_label_tests_13_main.f03: Likewise.
      	* gfortran.dg/test_common_binding_labels_2.f03: Likewise.
      	* gfortran.dg/test_common_binding_labels_2_main.f03: Likewise.
      	* gfortran.dg/test_common_binding_labels_3.f03: Likewise.
      	* gfortran.dg/test_common_binding_labels_3_main.f03: Likewise.
      	* gfortran.dg/whole_file_28.f90: Likewise.
      	* gfortran.dg/whole_file_29.f90: Likewise.
      	* gfortran.dg/whole_file_30.f90: Likewise.
      	* gfortran.dg/whole_file_31.f90: Likewise.
      
      From-SVN: r185430
      Bernhard Reutner-Fischer committed
    • Fix date from last commit. · 42183685
      From-SVN: r185429
      Ramana Radhakrishnan committed
    • Fix gnu_unique_object handling for arm-linux-gnueabi · 5ab22850
      2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
      
      	* config.gcc (target_type_format_char): New. Document it. Set it for
              arm*-*-* .
      	* configure.ac (gnu_unique_option): Use target_type_format_char in test.
              Comment rationale.
      	* configure: Regenerate .
      
      From-SVN: r185428
      Ramana Radhakrishnan committed
    • re PR tree-optimization/52267 (a&~N where N has all the bits set up till a… · ad193f32
      re PR tree-optimization/52267 (a&~N where N has all the bits set up till a specific point can be folded to ((unsigned)a) < N)
      
      	PR tree-optimization/52267
      	* tree-vrp.c (masked_increment): New function.
      	(register_edge_assert_for_2): Derive ASSERT_EXPRs
      	from (X & CST1) cmp CST2 tests.
      
      	* gcc.dg/pr52267.c: New test.
      	* gcc.dg/tree-ssa/vrp65.c: New test.
      	* gcc.dg/tree-ssa/vrp66.c: New test.
      
      From-SVN: r185427
      Jakub Jelinek committed
    • re PR middle-end/52580 (171.swim performance drop on x86 – vectorization doesn’t happen anymore) · 9b00587c
      2012-03-15  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/52580
      	* tree-data-ref.c (subscript_dependence_tester_1): Check
      	all dimensions for non-conflicting access functions.
      
      	* gfortran.dg/vect/pr52580.f: New testcase.
      
      From-SVN: r185426
      Richard Guenther committed
    • re PR c++/44783 (implement -ftemplate-backtrace-limit=) · a12bf402
      /c-family
      2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c++/44783
      	* c.opt (ftemplate-backtrace-limit) Add.
      
      /cp
      2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c++/44783
      	* error.c (print_instantiation_partial_context): Use
      	template_backtrace_limit.
      
      /doc
      2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c++/44783
      	* doc/invoke.texi [C++ Language Options]: Document
      	-ftemplate-backtrace-limit.
      
      From-SVN: r185424
      Manuel López-Ibáñez committed
    • [multiple changes] · 1f163ef7
      2012-03-15  Robert Dewar  <dewar@adacore.com>
      
      	* errout.ads: Add entry for translating -gnateinn to
      	/MAX_INSTANTIATIONS for VMS.
      	* hostparm.ads (Max_Instantiations): Moved to Opt.
      	* opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
      	* sem_ch12.adb (Maximum_Instantiations): New name of
      	Max_Instantiations (Analyze_Package_Instantiation): Change error
      	msg for too many instantiations (mention -gnateinn switch).
      	* switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
      	* switch.ads: Minor comment update.
      	* usage.adb (Usage): Output line for -maxeinn switch.
      	* vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
      
      2012-03-15  Yannick Moy  <moy@adacore.com>
      
      	* alfa.ads Update the decription of ALI sections.
      	(Alfa_File_Record): Add a component Unit_File_Name to store the
      	unit file name for subunits.
      	* get_alfa.adb, put_alfa.adb Adapt to the possible presence of
      	a unit file name.
      	* lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
      	file name of the unit.
      
      2012-03-15  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch6.adb (Check_Subprogram_Contract): Do
      	not issue warning on missing 'Result in postcondition if all
      	postconditions and contract-cases already get a warning for only
      	referring to pre-state.
      
      2012-03-15  Bob Duff  <duff@adacore.com>
      
      	* debug.adb: Add new debug switch -gnatd.U, which disables the
      	support added below, in case someone trips over a cycle, and needs
      	to disable this.
      	* sem_attr.adb (Analyze_Access_Attribute):
      	Treat Subp'Access as a call for elaboration purposes.
      	* sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
      	for Subp'Access.
      
      From-SVN: r185422
      Arnaud Charlet committed
    • sem.ads, sem.adb (Preanalyze): New routine. · b3e42de5
      2012-03-15  Vincent Pucci  <pucci@adacore.com>
      
      	* sem.ads, sem.adb (Preanalyze): New routine.
      	* sem_ch4.adb (Analyze_Quantified_Expression): Call to the
      	Preanalyze routine in Sem added.  Renaming of Needs_Expansion
      	into Need_Preanalysis.
      	* sem_ch6.adb (Preanalyze): Removed.
      
      From-SVN: r185421
      Vincent Pucci committed
    • sem_ch4.adb (Analyze_Quantified_Expression): Add comment. · 2a1b208c
      2012-03-15  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
      	* sem_prag.adb: Minor comment additions.
      	* sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
      	is frozen.
      
      From-SVN: r185420
      Robert Dewar committed
    • [multiple changes] · ce6002ec
      2012-03-15  Vincent Pucci  <pucci@adacore.com>
      
      	* sem_ch4.adb (Analyze_Quantified_Expression):
      	Preanalyze the condition when the quantified expression will be
      	further expanded.
      
      2012-03-15  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
      	sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
      	to refer to both Test_Case pragma and Contract_Case pragma (same
      	acronym as in Spec_CTC_List).
      
      From-SVN: r185419
      Arnaud Charlet committed
    • sem_prag.adb, [...]: Minor reformatting. · b285815e
      2012-03-15  Robert Dewar  <dewar@adacore.com>
      
      	* sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
      	sem_warn.adb: Minor reformatting.
      
      From-SVN: r185418
      Robert Dewar committed
    • [multiple changes] · 22f46473
      2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
      	selector names as the function call always appears at the top selected
      	component.
      
      2012-03-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
      	Mode_Conformance check for older versions of the language.
      
      2012-03-15  Yannick Moy  <moy@adacore.com>
      
      	* gnat_ugn.texi Document the extension of option -gnatw.t.
      	* sem_ch3.adb (Analyze_Declaration): Check for suspicious
      	contracts only after contract cases have been semantically
      	analyzed.
      	* sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
      	components of contract cases for detecting suspicious contracts.
      
      From-SVN: r185417
      Arnaud Charlet committed