- 04 Feb, 2015 23 commits
-
-
* gcc.dg/guality/pr41447-1.c: Remove xfail. * gcc.dg/guality/pr41616-1.c: Ditto. From-SVN: r220411
Segher Boessenkool committed -
* config/rl78/fpmath-sf.S (__rl78_int_pack_a_r8): Fix edge case rounding up the fraction. * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs inside a MEM. From-SVN: r220410
Nick Clifton committed -
gcc/jit/ChangeLog: * docs/topics/contexts.rst (gcc_jit_context_acquire): Fix typo. * docs/_build/texinfo/libgccjit.texi: Regenerate. From-SVN: r220408
David Malcolm committed -
* builtins.def (DEF_BUILTIN_CHKP): Define if not defined. (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine. (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead of DEF_BUILTIN. (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT, BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN. (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK, BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN. * tree-core.h (enum built_in_function): In between BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values for builtins that use DEF_BUILTIN_CHKP macro. From-SVN: r220407
Jakub Jelinek committed -
for gcc/ChangeLog PR debug/64817 * cfgexpand.c (expand_debug_expr): Compute unsignedp from operands for tcc_comparison exprs. Fix typos. for gcc/testsuite/ChangeLog PR debug/64817 * gcc.dg/pr64817-3.c: New. From-SVN: r220406
Alexandre Oliva committed -
for gcc/ChangeLog PR debug/64817 * simplify-rtx.c (simplify_binary_operation_1): Simplify one of two XORs that have an intervening AND or IOR. From-SVN: r220405
Alexandre Oliva committed -
for gcc/ChangeLog PR debug/64817 * simplify-rtx.c (simplify_binary_operation_1): Rewrite simplification of XOR of AND to not allocate new rtx before committing to a simplification. From-SVN: r220404
Alexandre Oliva committed -
* config/aarch64/aarch64-ldpstp.md: Use std::swap instead of manual swaps in all peepholes. From-SVN: r220403
Kyrylo Tkachov committed -
* config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead of manual swapping implementation. (aarch64_expand_vec_perm_const_1): Likewise. From-SVN: r220402
Kyrylo Tkachov committed -
gcc/ * config/aarch64/aarch64.c (NAMED_PARAM): Delete it. (generic_addrcost_table): Remove NAMED_PARAM. (cortexa57_addrcost_table): Likewise. (xgene1_addrcost_table): Likewise. (generic_regmove_table): Likewise. (cortexa53_regmove_table): Likewise. (xgene1_regmove_table): Likewise. (generic_vector_table): Likewise. (cortexa57_vector_table): Likewise. (xgene1_vector_table): Likewise. (generic_tunings): Likewise. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (xgene1_tunings): Likewise. From-SVN: r220401
James Greenhalgh committed -
PR target/64408 * config/fr30/predicates.md (di_operand): Add SUBREG to the list of accepted codes. (nonimmediate_di_operand): Likewise. From-SVN: r220400
Nick Clifton committed -
gcc/ * config/arm/arm-cores.def: Add cortex-a72 and cortex-a72.cortex-a53. * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise. * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise. * config/arm/arm-tune.md: Regenerate. * config/arm/arm-tables.opt: Add entries for "cortex-a72" and "cortex-a72.cortex-a53". * doc/invoke.texi (ARM Options/-mtune): Likewise. From-SVN: r220399
Matthew Wahab committed -
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> From-SVN: r220398
Jakub Jelinek committed -
2015-02-04 Alan Lawrence <alan.lawrence@arm.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * gcc.dg/combine_ashiftrt_1.c: Sort, complete and explain target list, allow for multilibed targets. * gcc.dg/combine_ashiftrt_2.c: Likewise. Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r220397
Alan Lawrence committed -
* config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more prefixes of known F5 using MSP430 MCUs. From-SVN: r220396
Nick Clifton committed -
* config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF. * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf instead of __builtin_sqrt. From-SVN: r220395
Kyrylo Tkachov committed -
* gcc.dg/builtins-58.c: Check for pow at the end of words only. * gcc.dg/pr46728-6.c: Ditto. From-SVN: r220394
Segher Boessenkool committed -
2015-02-04 Robert Suchanek <robert.suchanek@imgtec.com> * gcc.target/mips/loongson-simd.c: Update comment to clarify the need for mips_nanlegacy target. From-SVN: r220393
Robert Suchanek committed -
libstdc++-v3/ 2015-02-02 Matthew Wahab <matthew.wahab@arm.com> PR libstdc++/64467 * testsuite/28_regex/testsuiteraits/char/isctype.cc (test01): Add newlib special case for '\n'. * test01estsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise. From-SVN: r220392
Matthew Wahab committed -
gcc/ * varasm.c (do_assemble_alias): Follow transparent alias chain for target. (default_assemble_visibility): Follow transparent alias chain for decl name. gcc/testsuite/ * gcc.target/i386/chkp-hidden-def.c: New. From-SVN: r220391
Ilya Enkovich committed -
2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR middle-end/62103 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION to compute size of referenced value in the constant case. gcc/testsuite/ PR middle-end/62103 * gcc.c-torture/execute/bitfld-7.c: New test adapted from bitfld-6.c to use 24 bits for bitfield b. From-SVN: r220390
Thomas Preud'homme committed -
2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com> PR testsuite/64796 * lib/target-supports.exp (check_effective_target_bswap64): Do not cache result in a global variable. Include all 32-bit targets for bswap64 tests. From-SVN: r220388
Thomas Preud'homme committed -
From-SVN: r220387
GCC Administrator committed
-
- 03 Feb, 2015 16 commits
-
-
2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org> * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1. From-SVN: r220381
Steven G. Kargl committed -
The go/types package was removed in July 2013, but the testdata files were accidentally left behind. From-SVN: r220378
Ian Lance Taylor committed -
PR rtl-optimization/64756 * cse.c (invalidate_dest): New function. (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record, invalidate and do not record it. * gcc.c-torture/execute/pr64756.c: New test. From-SVN: r220377
Jakub Jelinek committed -
gcc/ PR target/64660 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard, atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb, atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard, atomic_nand<mode>_soft_tcb): New insns. (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split. Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused. (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split. Split into atomic_not_fetchsi_hard if operands[0] is unused. (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split. Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused. (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into atomic_not<mode>_hard if operands[0] is unused. (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa if operands[0] is unused. (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused. (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split. Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is unused. (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split into atomic_not<mode>_soft_tcb if operands[0] is unused. (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask if operands[0] is unused. (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split into atomic_not_fetch<mode>_soft_imask is operands[0] is unused. (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into atomic_nand_fetchsi_hard if operands[0] is unused. (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into atomic_nand<mode>_hard if operands[0] is unused. (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused. (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split into atomic_nand<mode>_soft_tcb if operands[0] is unused. (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused. (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split. Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused. (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into atomic_not<mode>_hard if operands[0] is unused. (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split. Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is unused. (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split into atomic_not<mode>_soft_tcb if operands[0] is unused. (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into atomic_nand<mode>_hard if operands[0] is unused. (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split into atomic_nand<mode>_soft_tcb if operands[0] is unused. gcc/testsuite/ PR target/64660 * gcc.target/sh/pr64660-0.h: New. * gcc.target/sh/pr64660-1.c: New. * gcc.target/sh/pr64660-2.c: New. * gcc.target/sh/pr64660-3.c: New. * gcc.target/sh/pr64660-4.c: New. From-SVN: r220376
Oleg Endo committed -
gcc/jit/ChangeLog: * jit-logging.h (gcc::jit::log_user::log): Make const. * jit-recording.c (gcc::jit::recording::context::set_str_option): Log the new value of the option. (gcc::jit::recording::context::set_int_option): Likewise. (gcc::jit::recording::context::set_bool_option): Likewise. (gcc::jit::recording::context::compile): Log the value of all options. (gcc::jit::recording::context::compile_to_file): Likewise. (gcc::jit::recording::context::log_all_options): New function. (gcc::jit::recording::context::log_str_option): New function. (gcc::jit::recording::context::log_int_option): New function. (gcc::jit::recording::context::log_bool_option): New function. * jit-recording.h (gcc::jit::recording::context::log_all_options): New function. (gcc::jit::recording::context::log_str_option): New function. (gcc::jit::recording::context::log_int_option): New function. (gcc::jit::recording::context::log_bool_option): New function. * docs/internals/test-hello-world.exe.log.txt: Update for above changes. From-SVN: r220375
David Malcolm committed -
/cp 2015-02-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/64877 * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings for generated expressions. /testsuite 2015-02-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/64877 * g++.dg/warn/Waddress-2.C: New. From-SVN: r220374
Paolo Carlini committed -
gcc/ChangeLog: PR jit/64810 * Makefile.in (GCC_OBJS): Add gcc-main.o. * gcc-main.c: New file, containing "main" taken from gcc.c. * gcc.c (do_self_spec): Free decoded_options. (class driver): Move declaration to gcc.h. (main): Move declaration and implementation to new file gcc-main.c. (driver_get_configure_time_options): New function. * gcc.h (class driver): Move this declaration here, from gcc.c. (driver_get_configure_time_options): New declaration. gcc/jit/ChangeLog: PR jit/64810 * Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o. (LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS. * jit-playback.c: Include gcc.h. (gcc::jit::playback::context::compile): Move mutex acquisition to before the call to make_fake_args. (append_arg_from_driver): New function. (gcc::jit::playback::context::make_fake_args): On the first call, call into driver_get_configure_time_options to get configure-time default options and cache them. Add them to the args for toplev::main. * jit-spec.c: New source file. * docs/internals/test-hello-world.exe.log.txt: Update to reflect above changes. From-SVN: r220373
David Malcolm committed -
* ipa-inline-analysis.c (simple_edge_hints): Fix check for cross-module inlining. * cgraph.h (cgraph_node): Add flag merged. * ipa-icf.c (sem_function::merge): Maintain it. * lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag. From-SVN: r220372
Jan Hubicka committed -
gcc/ * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P instead of OBJECT_P. From-SVN: r220371
Richard Sandiford committed -
PR middle-end/61225 gcc.target/i386/pr49095.c: XFAIL for ia32. From-SVN: r220370
Segher Boessenkool committed -
PR target/62631 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS. (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL. * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set. From-SVN: r220369
Eric Botcazou committed -
PR other/63504 * combine.c (reg_n_sets_max): New variable. (can_change_dest_mode, reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, get_last_value_validate, get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max. (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max. (rest_of_handle_combine): Initialize reg_n_sets_max. From-SVN: r220368
Jakub Jelinek committed -
Consider the example code mentionned in this PR: $ cat -n test.c 1 #define C(a, b) a ## b 2 #define L(x) C(L, x) 3 #define M(a) goto L(__LINE__); __LINE__; L(__LINE__): 4 M(a /* --> this is the line of the expansion point of M. */ 5 ); /* --> this is the line of the end of the invocation of M. */ $ "cc1 -quiet -E test.c" yields: goto L5; 5; L4: ; Notice how we have a 'L4' there, where it should be L5. That is the issue. My understanding is that during the *second* expansion of __LINE__ (the one between the two L(__LINE__)), builtin_macro() is called by enter_macro_context() with the location of the expansion point of M (which is at line 4). Then _cpp_builtin_macro_text() expands __LINE__ into the line number of the location of the last token that has been lexed, which is the location of the closing parenthesis of the invocation of M, at line 5. So that invocation of __LINE__ is expanded into 5. Now let's see why the last invocation of __LINE__ is expanded into 4. In builtin_macro(), we have this code at some point: /* Set pfile->cur_token as required by _cpp_lex_direct. */ pfile->cur_token = _cpp_temp_token (pfile); cpp_token *token = _cpp_lex_direct (pfile); /* We should point to the expansion point of the builtin macro. */ token->src_loc = loc; The first two statements insert a new token in the stream of lexed token and pfile->cur_token[-1], is the "new" last token that has been lexed. But the location of pfile->cur_token[-1] is the same location as the location of the "previous" pfile->cur_token[-1], by courtesy of _cpp_temp_token(). So normally, in subsequent invocations of builtin_macro(), the location of pfile->cur_token[-1] should always be the location of the closing parenthesis of the invocation of M at line 5. Except that that code in master now has the statement "token->src_loc = loc;" on the next line. That statement actually sets the location of pfile->cur_token[-1] to 'loc'. Which is the location of the expansion point of M, which is on line 4. So in the subsequent call to builtin_macro() (for the last expansion of __LINE__ in L(__LINE__)), for _cpp_builtin_macro_text(), pfile->cur_token[-1].src_loc is going to have a line number of 4. I think the core issue here is that the location that is passed to builtin_macro() from enter_macro_context() is not correct when we are in presence of a top-most function-like macro invocation; in that case, that location should be the location of the closing parenthesis of the macro invocation. Otherwise, if we are in presence of a a top-most object-like macro invocation then the location passed down to builtin_macro should be the location of the expansion point of the macro. That way, in the particular case of the input code above, the location received by builtin_macro() will always have line number 5. Boostrapped and tested on x86_64-unknown-linux-gnu against trunk. libcpp/ChangeLog: * internal.h (cpp_reader::top_most_macro_node): New data member. * macro.c (enter_macro_context): Pass the location of the end of the top-most invocation of the function-like macro, or the location of the expansion point of the top-most object-like macro. (cpp_get_token_1): Store the top-most macro node in the new pfile->top_most_macro_node data member. (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node data member. gcc/testsuite/ChangeLog: * gcc.dg/cpp/builtin-macro-1.c: New test case. Signed-off-by: Dodji Seketeli <dodji@redhat.com> From-SVN: r220367
Dodji Seketeli committed -
PR go/64836 PR go/64838 compiler: Use int64_t for backend type size and alignment. Fixes 32-bit host 64-bit target cross-compilation. * go-gcc.cc (Gcc_backend::type_size): Change return type to int64_t. (Gcc_backend::type_alignment): Likewise. (Gcc_backend::type_field_alignment): Likewise. (Gcc_backend::type_field_offset): Likewise. (Gcc_backend::implicit_variable): Change alignment parameter type to int64_t. From-SVN: r220364
Ian Lance Taylor committed -
PR c++/64901 * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and DECL_OVERRIDE_P. From-SVN: r220363
Ville Voutilainen committed -
From-SVN: r220362
GCC Administrator committed
-
- 02 Feb, 2015 1 commit
-
-
* ipa-inline.c (early_inliner): Skip inlining only in always_inlined; if some always_inline was inlined, apply changes before inlining heuristically. * g++.dg/ipa/devirt-37.C: Disable early inlining. From-SVN: r220359
Jan Hubicka committed
-