* ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
* ipa-prop.c (ipa_set_jf_known_type): Return early when
not devirtualizing.
(ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
do more sanity checks.
(detect_type_change): Return true when giving up early.
(compute_complex_assign_jump_func): Fix type parameter of
ipa_set_ancestor_jf.
(compute_complex_ancestor_jump_func): Likewise.
(update_jump_functions_after_inlining): Fix updating of
ancestor function.
* ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type
to be NULL.
Marek Polacek [Wed, 19 Feb 2014 06:29:49 +0000 (06:29 +0000)]
re PR c/60195 (Strange warnings using atomic types)
PR c/60195
c/
* c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
Call mark_exp_read on exp.value.
(build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
TREE_ADDRESSABLE on old instead of val.
(emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
testsuite/
* gcc.dg/pr60195.c: New test.
Jakub Jelinek [Wed, 19 Feb 2014 06:05:55 +0000 (07:05 +0100)]
re PR preprocessor/58844 (ICE with invalid use of ##)
PR preprocessor/58844
* macro.c (enter_macro_context): Only push
macro_real_token_count (macro) tokens rather than
macro->count tokens, regardless of
CPP_OPTION (pfile, track-macro-expansion).
* c-c++-common/cpp/pr58844-1.c: New test.
* c-c++-common/cpp/pr58844-2.c: New test.
Balaji V. Iyer [Wed, 19 Feb 2014 03:43:21 +0000 (03:43 +0000)]
+ * include/cilk/common.h (__CILKRTS_ABI_VERSION): Set the ABI version + to 1 instead of 0.
2014-02-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * include/cilk/common.h (__CILKRTS_ABI_VERSION): Set the ABI version
+ to 1 instead of 0.
+ * runtime/cilk-abi-cilk-for.cpp (cilk_for_recursive): Added a fix to
+ initialize stack frame correctly.
+
Michael Meissner [Wed, 19 Feb 2014 02:14:17 +0000 (02:14 +0000)]
re PR target/60203 (Support long double/_Decimal128 direct move on power8)
2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
Split 64-bit moves into 2 patterns. Do not allow the use of
direct move for TDmode in little endian, since the decimal value
has little endian bytes within a word, but the 64-bit pieces are
ordered in a big endian fashion, and normal subreg's of TDmode are
not allowed.
(mov<mode>_64bit_dm): Likewise.
(movtd_64bit_nodm): Likewise.
Eric Botcazou [Tue, 18 Feb 2014 23:15:27 +0000 (23:15 +0000)]
re PR tree-optimization/60174 (ICE on ACATS cc3305a)
PR tree-optimization/60174
* tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
statement of an SSA_NAME that occurs in an abnormal PHI node.
Adam Butcher [Tue, 18 Feb 2014 21:07:48 +0000 (21:07 +0000)]
re PR c++/60190 ([c++1y] ICE with invalid return type of template lambda)
Fix PR c++/60190.
PR c++/60190
* parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
scope whenever a template parameter list has been started, independent
of whether the function call operator was well-formed or not.
PR c++/60190
* g++.dg/cpp1y/pr60190.C: New testcase.
Uros Bizjak [Tue, 18 Feb 2014 18:55:35 +0000 (19:55 +0100)]
re PR target/60205 (No ABI warning for AVX-512)
PR target/60205
* config/i386/i386.h (struct ix86_args): Add warn_avx512f.
* config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
(type_natural_mode): Warn ABI change when %zmm register is not
available for AVX512F vector value passing.
testsuite/ChangeLog:
PR target/60205
* gcc.target/i386/pr60205-1.c: New test.
* gcc.target/i386/pr60205-2.c: Ditto.
Arnaud Charlet [Tue, 18 Feb 2014 11:56:35 +0000 (12:56 +0100)]
[multiple changes]
2014-02-18 Robert Dewar <dewar@adacore.com>
* cstand.adb (Build_Signed_Integer_Type): Minor change of formal
from Int to Nat (Build_Unsigned_Integer_Type): New procedure
(Create_Standard): Create new unsigned types.
* exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C
mode (Expand_N_Reference): Removed, problematic and not needed
for now.
* exp_ch4.ads (Expand_N_Reference): Removed, problematic and
not needed for now.
* exp_util.ads, exp_util.adb (Power_Of_Two): New function.
* expander.adb: Remove call to Expand_N_Reference (problematic,
and not needed now).
* sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function.
* stand.adb: Read and write unsigned type entities.
* stand.ads: Add new unsigned types.
* sem_ch4.adb (Analyze_Call): Do not mark a function call
as being inside an assertion expression as the flag is now removed.
(Check_Ghost_Subprogram_Call): Do not query the
In_Assertion_Expression flag as it is now removed, instead use
a predicate function.
* sem_elab.adb (Check_Internal_Call_Continue): Do not query the
In_Assertion_Expression flag as it is now removed, instead use
a predicate function.
* sem_prag.ads: Add new table Assertion_Expression_Pragma.
* sem_util.adb Add with and use clause for Sem_Prag.
(In_Assertion_Expression_Pragma): New routine.
* sem_util.ads (In_Assertion_Expression_Pragma): New routine.
* sinfo.adb (In_Assertion_Expression): Removed.
(Set_In_Assertion_Expression): Removed.
* sinfo.ads Remove flag In_Assertion_Expression along with its
use in nodes.
(In_Assertion_Expression): Removed along with
pragma Inline. (Set_In_Assertion_Expression): Removed along
with pragma Inline.
* sem_attr.adb (Analyze_Attribute): Comment
and code reformatting. Use separate routines to check the
legality of attribute 'Old in certain pragmas. Verify
the use of 'Old, 'Result and locally declared entities
within the prefix of 'Old.
(Check_References_In_Prefix): New routine.
(Check_Use_In_Contract_Cases): New routine.
(Check_Use_In_Test_Case): New routine.
Vincent Celier [Tue, 18 Feb 2014 11:54:13 +0000 (11:54 +0000)]
sem_aux.adb (Is_By_Reference_Type): For each components of a record type...
2014-02-18 Vincent Celier <celier@adacore.com>
* sem_aux.adb (Is_By_Reference_Type): For each components of
a record type, check also if the component is volatile as it
may have an aspect that makes it volatile. If it is, then the
record type is a by reference type.
Robert Dewar [Tue, 18 Feb 2014 11:52:58 +0000 (11:52 +0000)]
exp_attr.adb: Minor reformatting.
2014-02-18 Robert Dewar <dewar@adacore.com>
* exp_attr.adb: Minor reformatting.
* exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure.
* exp_util.adb (Remove_Side_Effects): Add conditional expressions
as another case where we don't generate N_Reference nodes for
primitive types.
* expander.adb (Expand): Add call to Expand_N_Reference.
Jakub Jelinek [Tue, 18 Feb 2014 07:19:46 +0000 (08:19 +0100)]
re PR driver/60233 (AVX instructions emitted with -march=native on host without AVX support)
PR driver/60233
* config/i386/driver-i386.c (host_detect_local_cpu): If
YMM state is not saved by the OS, also clear has_f16c. Move
CPUID 0x80000001 handling before YMM state saving checking.
Eric Botcazou [Mon, 17 Feb 2014 12:00:04 +0000 (12:00 +0000)]
re PR libffi/60073 (64-bit libffi.call/cls_double_va.c FAILs after recent modification)
PR libffi/60073
* src/sparc/v8.S: Assemble only if !SPARC64.
* src/sparc/v9.S: Remove obsolete comment.
* src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
(V8_ABI_P): New macro.
(V9_ABI_P): Likewise.
(FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
* src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
(ffi_prep_args_v9): Compile only if SPARC64.
(ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
(ffi_prep_cif_machdep): Guard access to nfixedargs field.
(ffi_prep_cif_machdep_var): Likewise.
(ffi_v9_layout_struct): Compile only if SPARC64.
(ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
(ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
(ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
(ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
to nfixedargs field.
gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_logical_op_short_circuit): New procedure.
* gcc.dg/binop-xor1.c: XFAIL for logical_op_short_circuit.
* gcc.dg/tree-ssa/forwprop-28.c: Use logical_op_short_circuit
instead of mips*-*-*, arc*-*-*, avr*-*-* and arm_cortex_m tests.
* gcc.dg/tree-ssa/vrp47.c: Likewise.
* gcc.dg/tree-ssa/vrp87.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. Also use
logical_op_short_circuit for the alternative test, extending
it to arm_cortex_m.
Michael Meissner [Sun, 16 Feb 2014 03:08:03 +0000 (03:08 +0000)]
re PR target/60203 (Support long double/_Decimal128 direct move on power8)
[gcc]
2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
into 64-bit and 32-bit moves. On 64-bit moves, add support for
using direct move instructions on ISA 2.07. Also adjust
instruction length for 64-bit.
(mov<mode>_64bit, TFmode/TDmode): Likewise.
(mov<mode>_32bit, TFmode/TDmode): Likewise.
[gcc/testsuite]
2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
* gcc.target/powerpc/pr60203.c: New testsuite.
Alan Modra [Sat, 15 Feb 2014 10:49:55 +0000 (21:19 +1030)]
re PR target/58675 (ICE in rs6000_secondary_reload_inner:15460, type = store)
PR target/58675
PR target/57935
* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
find_replacement on parts of insn rtl that might be reloaded.
Jeff Law [Fri, 14 Feb 2014 20:26:31 +0000 (13:26 -0700)]
re PR rtl-optimization/60131 (RTL check fail in rhs_regno)
PR rtl-optimization/60131
* ree.c (get_extended_src_reg): New function.
(combine_reaching_defs): Use it rather than assuming location
of REG.
(find_and_remove_re): Verify first operand of extension is
a REG before adding the insns to the copy list.
PR rtl-optimization/60131
* g++.dg/torture/pr60131.C: New test.
Roland McGrath [Fri, 14 Feb 2014 17:37:23 +0000 (17:37 +0000)]
Use ud2 assembly mnemonic when available.
gcc/
* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
* configure: Regenerated.
* config.in: Regenerated.
* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
instead of ASM_SHORT.
Vladimir Makarov [Fri, 14 Feb 2014 16:18:29 +0000 (16:18 +0000)]
re PR rtl-optimization/59535 (-Os code size regressions for Thumb1/Thumb2 with LRA)
2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
Richard Earnshaw <rearnsha@arm.com>
PR rtl-optimization/59535
* lra-constraints.c (process_alt_operands): Encourage alternative
when unassigned pseudo class is superset of the alternative class.
(inherit_reload_reg): Don't inherit when optimizing for code size.
* config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
returning CORE_REGS for anything but Thumb1 and BASE_REGS for
modes not less than 4 for Thumb1.
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r207787
Richard Biener [Fri, 14 Feb 2014 14:07:30 +0000 (14:07 +0000)]
cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
2014-02-14 Richard Biener <rguenther@suse.de>
* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
(get_frame_arg): Drop the assert with langhook types_compatible_p.
Do not strip INDIRECT_REFs.
Richard Biener [Fri, 14 Feb 2014 12:03:43 +0000 (12:03 +0000)]
re PR target/60179 (target optimization attribute streaming is broken)
2014-02-14 Richard Biener <rguenther@suse.de>
PR lto/60179
* lto-streamer-out.c (DFS_write_tree_body): Do not follow
DECL_FUNCTION_SPECIFIC_TARGET.
(hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-out.c (pack_ts_target_option): Remove.
(streamer_pack_tree_bitfields): Do not stream
TS_TARGET_OPTION.
(write_ts_function_decl_tree_pointers): Do not stream
DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-in.c (unpack_ts_target_option): Remove.
(unpack_value_fields): Do not stream TS_TARGET_OPTION.
(lto_input_ts_function_decl_tree_pointers): Do not stream
DECL_FUNCTION_SPECIFIC_TARGET.
lto/
* lto.c (compare_tree_sccs_1): Do not compare
DECL_FUNCTION_SPECIFIC_TARGET.
(lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
Jakub Jelinek [Fri, 14 Feb 2014 07:31:23 +0000 (08:31 +0100)]
tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
* tree-vect-loop.c (vect_is_slp_reduction): Don't set
use_stmt twice.
(get_initial_def_for_induction, vectorizable_induction): Ignore
debug stmts when looking for exit_phi.
(vectorizable_live_operation): Fix up condition.
Richard Biener [Thu, 13 Feb 2014 13:35:10 +0000 (13:35 +0000)]
re PR bootstrap/59878 (ISL from cloog does not work with trunk)
2014-02-13 Richard Biener <rguenther@suse.de>
PR bootstrap/59878
* doc/install.texi (ISL): Update recommended version to 0.12.2,
mention the possibility of an in-tree build.
(CLooG): Update recommended version to 0.18.1, mention the
possibility of an in-tree build and clarify that the ISL
bundled with CLooG does not work.
Dominik Vogt [Thu, 13 Feb 2014 12:38:52 +0000 (12:38 +0000)]
s390.c (s390_asm_output_function_label): Fix crash caused by bad second argument to warning_at() with -mhotpatch and...
2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390.c (s390_asm_output_function_label): Fix crash
caused by bad second argument to warning_at() with -mhotpatch and
nested functions (e.g. with gfortran).
Richard Biener [Wed, 12 Feb 2014 16:01:03 +0000 (16:01 +0000)]
vec.c (vec_prefix::calculate_allocation): Move as inline variant to vec.h.
2014-02-12 Richard Biener <rguenther@suse.de>
* vec.c (vec_prefix::calculate_allocation): Move as
inline variant to vec.h.
(vec_prefix::calculate_allocation_1): New out-of-line version.
* vec.h (vec_prefix::calculate_allocation_1): Declare.
(vec_prefix::m_has_auto_buf): Rename to ...
(vec_prefix::m_using_auto_storage): ... this.
(vec_prefix::calculate_allocation): Inline the easy cases
and dispatch to calculate_allocation_1 which doesn't need the
prefix address.
(va_heap::reserve): Use gcc_checking_assert.
(vec<T, A, vl_embed>::embedded_init): Add argument to initialize
m_using_auto_storage.
(auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
member and adjust.
(vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
(vec<T, va_heap, vl_ptr>::release): Avoid casting.
(vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
Thomas Schwinge [Wed, 12 Feb 2014 14:46:30 +0000 (15:46 +0100)]
Refactor common code into new maybe_fold_stmt function.
gcc/
* gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
common code...
(maybe_fold_stmt): ... into this new function.
* omp-low.c (lower_omp): Update comment.
Richard Biener [Wed, 12 Feb 2014 13:36:08 +0000 (13:36 +0000)]
re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
2014-02-12 Richard Biener <rguenther@suse.de>
PR middle-end/60092
* gimple-low.c (lower_builtin_posix_memalign): Lower conditional
of posix_memalign being successful.
(lower_stmt): Restrict lowering of posix_memalign to when
-ftree-bit-ccp is enabled.
* gcc.dg/torture/pr60092.c: New testcase.
* gcc.dg/tree-ssa/alias-31.c: Disable SRA.
Richard Biener [Wed, 12 Feb 2014 09:01:30 +0000 (09:01 +0000)]
re PR fortran/60060 (lto1: internal compiler error: in add_AT_specification, at dwarf2out.c:4096)
2014-02-12 Richard Biener <rguenther@suse.de>
PR lto/60060
* lto-lang.c (lto_write_globals): Do not call
wrapup_global_declarations or emit_debug_global_declarations
but emit debug info for non-function scope variables
directly.
Jakub Jelinek [Wed, 12 Feb 2014 07:35:50 +0000 (08:35 +0100)]
re PR c/60101 (Long compile times when mixed complex floating point datatypes are used in lengthy expressions)
PR c/60101
* c-common.c (merge_tlist): If copy is true, call new_tlist,
if false, add ADD itself, rather than vice versa.
(verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
copy. For SAVE_EXPR, only call merge_tlist once.