1. 27 Jun, 2012 4 commits
    • i386: Correct costs on CONST_DOUBLE and CONST_VECTOR · a247af83
      We were always falling through to the memory default.
      Also use standard_sse_constant_p on CONST_VECTOR.
      
              * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
              and don't fall thru from standard_80387_constant_p to the memory
              fallback,
      
      From-SVN: r189007
      Richard Henderson committed
    • i386: Implement widen_smul_*_v4si for plain sse2 · 87b78516
      If we don't implement this pattern, the vectorizer is happy to
      unpack the v4si and use the full mulv2di3.  This results in
      more element shuffling than is required.
      
              * config/i386/i386.c (bdesc_args): Update.  Change
              IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
              (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
              (ix86_builtin_mul_widen_even): Use it.
              (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
              (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
              * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
              for all SSE2.
              (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
              (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise.  Relax from V124_AVX2.
              (vec_widen_smult_even_v4si): New.
      
      From-SVN: r189006
      Richard Henderson committed
    • i386: Expand mul<VI8_AVX2> earlier · 298301d9
      Move the expansion code to i386.c next to mulv4si3.  Eliminate
      one shift by adding the highparts before shifting.  Correct costs.
      
              * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
              to expander; move guts to ...
              * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here.  Add
              highparts before shifting up.
              * config/i386/i386-protos.h: Update.
      
      From-SVN: r189005
      Richard Henderson committed
    • Daily bump. · e2a3a098
      From-SVN: r189003
      GCC Administrator committed
  2. 26 Jun, 2012 23 commits
    • system.h (USE_COMMON_FOR_ONE_ONLY): Poison. · 4e2edffd
      	* system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
      	* defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
      	* config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
      
      From-SVN: r188999
      Steven Bosscher committed
    • var-tracking.c (vt_add_function_parameter): Use a preserved VALUE for the MEM… · de2c775d
      var-tracking.c (vt_add_function_parameter): Use a preserved VALUE for the MEM address of an incoming parameter.
      
      * var-tracking.c (vt_add_function_parameter): Use a preserved
      VALUE for the MEM address of an incoming parameter.
      
      From-SVN: r188998
      Alexandre Oliva committed
    • scandump.exp (scan-dump, [...]): Use printable pattern in test name. · 2ef1bce6
      	* lib/scandump.exp (scan-dump, scan-dump-not, scan-dump-dem,
      	scan-dump-dem-not): Use printable pattern in test name.
      
      From-SVN: r188996
      Janis Johnson committed
    • [multiple changes] · 8a0320ad
      2012-06-26  Vincent Pucci  <pucci@adacore.com>
      
      	* exp_ch3.adb (Build_Init_Statements): Don't check the parents
      	in the Rep Item Chain of the task for aspects Interrupt_Priority,
      	Priority, CPU and Dispatching_Domain.
      	* exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority,
      	_CPU and _Domain are present in the corresponding record type
      	only if the task entity has a pragma, attribute definition
      	clause or aspect specification.
      	(Make_Initialize_Protection): Don't check the parents in the Rep Item
      	Chain of the task for aspects Interrupt_Priority, Priority, CPU and
      	Dispatching_Domain.
      	* freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point
      	call replaced by Analyze_Aspects_At_Freeze_Point.
      	* sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point):
      	Renaming of Evaluate_Aspects_At_Freeze_Point.
      
      2012-06-26  Yannick Moy  <moy@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a
      	postcondition, and issue an error in such a case.
      
      2012-06-26  Yannick Moy  <moy@adacore.com>
      
      	* gnat_rm.texi: Minor editing.
      
      2012-06-26  Tristan Gingold  <gingold@adacore.com>
      
      	* raise-gcc.c: Minor cleanup: remove unused prototype.
      	* seh_init.c: Do not create an image wide unwind info to catch
      	SEH when SEH unwind info are emitted by the compiler.
      
      From-SVN: r188995
      Arnaud Charlet committed
    • pubtypes-2.c: Update expected output. · 59b7e90f
      2012-06-26  Sterling Augustine  <saugustine@google.com>
      	    Dominique Dhumieres  <dominiq@lps.ens.fr>
      
      	* gcc.dg/pubtypes-2.c: Update expected output.
      	* gcc.dg/pubtypes-3.c: Likewise.
      	* gcc.dg/pubtypes-4.c: Likewise.
      
      
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r188994
      Sterling Augustine committed
    • Obvious ChangeLog formatting fix. · 1542460a
      From-SVN: r188993
      Sterling Augustine committed
    • dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator. · d44f5f25
      2012-06-26  Sterling Augustine <saugustine@google.com>
      
              * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
              (prune_unused_types): Likewise.
      
      From-SVN: r188992
      Sterling Augustine committed
    • system.h (UNALIGNED_SHORT_ASM_OP, [...]): Poison. · 01a07a64
      	* system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
      	UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
      	* vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
      	UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
      	VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
      	VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
      	* config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
      	UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
      	* doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
      	documentation.
      	* doc/tm.texi: Regenerate.
      	* doc/cpp.texi: Make example for #error generic.
      	* config/frv/frv.h: Fix example text to match tm.texi.
      
      From-SVN: r188991
      Steven Bosscher committed
    • tree-pass.h (pass_strength_reduction): New decl. · f9453c07
      gcc:
      
      2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	* tree-pass.h (pass_strength_reduction): New decl.
      	* tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
      	(finalize_costs): Likewise.
      	* timevar.def (TV_TREE_SLSR): New timevar.
      	* gimple-ssa-strength-reduction.c: New.
      	* tree-flow.h (initialize_costs): New decl.
      	(finalize_costs): Likewise.
      	* Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
      	* passes.c (init_optimization_passes): Add pass_strength_reduction.
      
      gcc/testsuite:
      
      2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	* gcc.dg/tree-ssa/slsr-1.c: New test.
      	* gcc.dg/tree-ssa/slsr-2.c: Likewise.
      	* gcc.dg/tree-ssa/slsr-3.c: Likewise.
      	* gcc.dg/tree-ssa/slsr-4.c: Likewise.
      
      From-SVN: r188989
      Bill Schmidt committed
    • re PR target/35294 (iwmmxt intrinsics, internal compiler error) · 703ae70c
      	* doc/extend.texi (__builtin_arm_tinsrb): Add missing second
      	parameter.
      	(__builtin_arm_tinsrh): Likewise.
      	(__builtin_arm_tinsrw): Likewise.
      	(__builtin_arm_wsadb): Add missing v2si parameter.
      	(__builtin_arm_wsadh): Likewise.
      	(__builtin_arm_getwcx): Delete.
      	(__builtin_arm_setwcx): Delete.
      	(__builtin_arm_getwcgr0): Add.
      	(__builtin_arm_getwcgr1): Add.
      	(__builtin_arm_getwcgr2): Add.
      	(__builtin_arm_getwcgr3): Add.
      	(__builtin_arm_setwcgr0): Add.
      	(__builtin_arm_setwcgr1): Add.
      	(__builtin_arm_setwcgr2): Add.
      	(__builtin_arm_setwcgr3): Add.
      
      	PR target/35294
      	* gcc.target/arm/mmx-2.c: New.
      
      From-SVN: r188988
      Matt Turner committed
    • re PR c++/53752 (ice in write_array_type) · 72e732f8
      2012-06-26  Richard Guenther  <rguenther@suse.de>
      
      	PR c++/53752
      	* mangle.c (write_array_type): Truncate the number-of-elements
      	result.
      
      	* g++.dg/torture/pr53752.C: New testcase.
      
      From-SVN: r188986
      Richard Guenther committed
    • revert: tree-inline.c (estimate_num_insns): Estimate call cost for tailcalls properly. · 3c04921b
      2012-06-26  Richard Guenther  <rguenther@suse.de>
      
      	Revert
      	2012-06-21  Richard Guenther  <rguenther@suse.de>
      
      	* tree-inline.c (estimate_num_insns): Estimate call cost for
      	tailcalls properly.
      
      From-SVN: r188985
      Richard Guenther committed
    • re PR middle-end/33190 (tm.texi describes some non-existing hooks) · a8d56c30
              PR other/33190
      	* doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r188984
      Steven Bosscher committed
    • re PR middle-end/33190 (tm.texi describes some non-existing hooks) · 0c93ed52
      	PR other/33190
      	* config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
      	* config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
      	* doc/tm.texi.in: Remove documentation for unused target macros
      	ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
      	DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
      	REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
      	TARGET_NARROW_VOLATILE_BITFIELDS.
      	Document that MD_HANDLE_UNWABI is a macro in libgcc.
      	* doc/tm.texi: Regenerate.
      	* system.h: Poison target macros
      	ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
      	DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
      	REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
      	TARGET_NARROW_VOLATILE_BITFIELDS
      
      From-SVN: r188983
      Steven Bosscher committed
    • re PR lto/53572 (Some public symbols don't get to serialized LTO) · 3d2e04fd
      
      	PR lto/53572
      	* cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
      	used symbols.
      
      From-SVN: r188982
      Jan Hubicka committed
    • tree-inline.c: (expand_call_inline): Ensure that lexical block's source location is consistant... · 035775c8
      2012-06-26  Dehao Chen  <dehao@google.com>
      
      	* tree-inline.c: (expand_call_inline): Ensure that lexical block's
      	source location is consistant with the call stmt.
      
      From-SVN: r188981
      Dehao Chen committed
    • re PR regression/53729 (PR53636 fix caused bb-slp-16.c to FAIL on sparc64 and powerpc64) · 38eec4c6
      	PR tree-optimization/53729
      	PR tree-optimization/53636
      	* tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
      	vect_verify_datarefs_alignment until after statements have
      	been marked as relevant/irrelevant.
      	* tree-vect-data-refs.c (vect_verify_datarefs_alignment):
      	Skip irrelevant statements.
      	(vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
      	instead of STMT_VINFO_RELEVANT.
      	(vect_get_data_access_cost): Do not check for supportable
      	alignment before calling vect_get_load_cost/vect_get_store_cost.
      	* tree-vect-stmts.c (vect_get_store_cost): Do not abort when
      	handling unsupported alignment.
      	(vect_get_load_cost): Likewise.
      
      From-SVN: r188979
      Ulrich Weigand committed
    • rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP. · e4ae19bc
      	* config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
      	Do not define JMP_BUF_SIZE.
      
      From-SVN: r188978
      Steven Bosscher committed
    • re PR tree-optimization/53748 (ice in fold_convert_loc) · 5dcf6b7f
      	PR tree-optimization/53748
      	* tree-ssa-phiopt.c (conditional_replacement): Only optimize
      	if arg0/arg1 have integral or pointer types.
      
      	* gcc.c-torture/compile/pr53748.c: New test.
      
      From-SVN: r188975
      Jakub Jelinek committed
    • re PR c++/53498 (Compiler crashes during C++11 template magic compilation) · eaccea2a
      	PR c++/53498
      	PR c++/53305
      	* pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN
      	if cp_unevaluated_operand is set.
      	(tsubst_copy) [PARM_DECL]: Don't copy before tsubsting.
      
      From-SVN: r188973
      Jason Merrill committed
    • target-supports-dg.exp (testname-for-summary): New. · e3b205be
      	* lib/target-supports-dg.exp (testname-for-summary): New.
      	* lib/profopt.exp (profopt_execute): Define testname_with_flags.
      	* lib/gcc-dg.exp (cleanup-coverage-files, cleanup-repo-notes,
      	cleanup-stack-usage, cleanup-dump, cleanup-saved-temps, scan-module,
      	scan-module-absence, output-exists, output-exists-not: Use
      	testname-for-summary.
      	(dg-test): Clean up testname_with_flags.
      	* lib/scanasm.exp (scan-assembler, scan-assembler-not, scan-hidden,
      	scan-not-hidden, scan-file, scan-file-not, scan-stack-usage,
      	scan-stack-usage-not, scan-assembler-times, scan-assembler-dem,
      	scan-assembler-dem-not, object-size: Use testname-for-summary.
      	* lib/gcov.exp (run-gcov): Likewise.
      	* lib/scandump.exp (scan-dump, scan-dump-times, scan-dump-not,
      	scan-dump-dem, scan-dump-dem-note): Likewise.
      
      From-SVN: r188972
      Janis Johnson committed
    • Daily bump. · 25038c7e
      From-SVN: r188971
      GCC Administrator committed
  3. 25 Jun, 2012 13 commits
    • Obvious ChangeLog fix. · 0aba8600
      From-SVN: r188966
      Sterling Augustine committed
    • user.cfg.in: Change COMPACT_LATEX to NO. · c9a0e750
      2012-06-25  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* doc/doxygen/user.cfg.in: Change COMPACT_LATEX to NO.
      
      From-SVN: r188965
      Benjamin Kosnik committed
    • profopt.exp: Make prof_option_list local to profopt-execute. · ce15c7d5
      	* lib/profopt.exp: Make prof_option_list local to profopt-execute.
      	* g++.dg/tree-prof/tree-prof.exp (PROFOPT_OPTIONS): Define after
      	including profopt.opt; save and restore existing value.
      	* g++.dg/bprob/bprob.exp: Likewise.
      	* gcc.dg/matrix/matrix.exp: Likewise.
      	* gcc.dg/tree-prof/tree-prof.exp: Likewise.
      	* gcc.misc-tests/bprob.exp: Likewise; also replace formerly-ignored
      	PROFOPT_OPTIONS.
      
      From-SVN: r188964
      Janis Johnson committed
    • Obvious fix to Changelog entry. · ef25bad4
      From-SVN: r188961
      Sterling Augustine committed
    • i386: Delete sse sdot_prod; add sdot_prodv4si for xop · a2051b26
      Now that we support mult_even/odd hooks, the vectorizer can
      generate the exact same code for plain sse dot_prod by itself,
      as well as other reductions other than plus.
      
      From-SVN: r188960
      Richard Henderson committed
    • i386: Add widen_multiply_even/odd builtins and hooks · 93703e79
      From-SVN: r188959
      Richard Henderson committed
    • i386: Use vpmacsdd for mulv4si3 · 379eaa6f
      From-SVN: r188958
      Richard Henderson committed
    • i386: Cleanup and unify widening multiply patterns · ac357108
      Prepares for exposing builtin_mul_widen_even/odd hooks
      for more efficient reduction.  Adds QImode multiplication.
      Shares code between mulv4si3 and the widening multiplies.
      
      From-SVN: r188957
      Richard Henderson committed
    • Testcase for pr53749 · f008d5dc
      From-SVN: r188956
      Richard Henderson committed
    • re PR c++/52988 (std::async not executed on function returning nullptr_t) · ec62cbe1
      	PR c++/52988
      	* typeck.c (decay_conversion): Don't discard side-effects from
      	expressions of nullptr_t.
      
      From-SVN: r188955
      Jason Merrill committed
    • Commit for Christophe Lyon. · 8490252a
      2012-06-25  Christophe Lyon  <christophe.lyon@st.com>
      
      	* config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
      	(neon_vld1_dup): Restrict to VQ operands.
      	(neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
      
      
      2012-06-25  Christophe Lyon  <christophe.lyon@st.com>
      
      	* gcc.target/arm/neon-vld1_dupQ.c: New.
      
      From-SVN: r188951
      Christophe Lyon committed
    • C++: Reject variably modified types in operator new · 4ebc46e9
      From-SVN: r188948
      Florian Weimer committed
    • arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins. · 9e94a7fc
      2012-05-25  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
                  James Greenhalgh  <james.greenhalgh@arm.com>
      	* gcc/config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
      	(TARGET_FMA): New macro.
      	(TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
      	(TARGET_ARM_ARCH): Likewise.
      	(TARGET_ARM_ARCH_ISA_THUMB): Likewise.
      	(TARGET_V6M, TARGET_V7M): Likewise.
      	(TARGET_ARM_ARCH_PROFILE): Likewise.
      	(TARGET_ARM_FEATURE_LDREX): Likewise.
      	(TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
      	(ARM_MIN_ENUM_SIZE): Likewise.
      	* gcc/config/arm/arm.c (arm_file_start): Refactor appropriately.
      	(base_architecture): New enumeration.
      	(arm_base_arch): New global variable.
      	(processors): Add field base_arch.
      	(ARM_ARCH, ARM_CORE): Adjust accordingly.
      	(arm_option_override): Add initialization of arm_base_arch.
      	* gcc/doc/cpp.texi (system-specific predefined macros.): Change.
      	* gcc/testsuite/gcc.target/arm/ftest-support-arm.h New testcase.
      	* gcc/testsuite/gcc.target/arm/ftest-support-thumb.h Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-support.h Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv4-arm.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv4t-arm.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv4t-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv5t-arm.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv5t-thumb.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv5te-arm.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv5te-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6-arm.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6-thumb.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6k-arm.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6k-thumb.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6m-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6t2-arm.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6t2-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6z-arm.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv6z-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7m-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7em-thumb.c: Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c Likewise.
      	* gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c Likewise.
      	* gcc/testsuite/lib/target-supports.exp
      	(check_effective_target_arm_arch_FUNC): Add support for more
      	architectures.
      	(add_options_for_arm_arch_FUNC): Likewise.
      	(check_effective_target_arm_arch_FUNC_multilib): New functions.
      
      Co-Authored-By: James Greenhalgh <james.greenhalgh@arm.com>
      
      From-SVN: r188946
      Matthew Gretton-Dann committed