- 04 Aug, 2015 31 commits
-
-
2015-08-04 Richard Biener <rguenther@suse.de> * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize bool compares on RHS. * match.pd: Add X ==/!= !X is false/true pattern. * gcc.dg/tree-ssa/ssa-ccp-38.c: New testcase. From-SVN: r226576
Richard Biener committed -
gcc/ 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com> * config/aarch64/aarch64.c: Change inner loop statement cost to be consistent with other targets. From-SVN: r226575
Pawel Kupidura committed -
2015-08-04 Christophe Lyon <christophe.lyon@linaro.org> * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian targets. From-SVN: r226574
Christophe Lyon committed -
* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete. (machine_function): Remove pseudos field. From-SVN: r226573
Nathan Sidwell committed -
From-SVN: r226572
Ben Elliston committed -
Since IAMCU tests clear all scratch integer registers with: asm __volatile__ ("xor %%eax, %%eax\n\t" \ "xor %%edx, %%edx\n\t" \ "xor %%ecx, %%ecx\n\t" \ ::: "eax", "edx", "ecx"); PIC register may be trashed between setting PIC register and using it. This patch compiles AMCU tests with -fno-pie -no-pie. PR target/67110 * gcc.target/i386/iamcu/abi-iamcu.exp (additional_flags): Add -fno-pie -no-pie. From-SVN: r226570
H.J. Lu committed -
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/66427 * g++.dg/cpp1y/var-templ34.C: New. From-SVN: r226568
Paolo Carlini committed -
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p): Exit early and use target_option_current_node if processing current pragma. From-SVN: r226567
Kyrylo Tkachov committed -
* doc/extend.texi (AArch64 Function Attributes): New node. (AArch64 Pragmas): Likewise. From-SVN: r226566
Kyrylo Tkachov committed -
* gcc.target/aarch64/pragma_cpp_predefs_1.c: New test. * gcc.target/aarch64/target_attr_1.c: Likewise. * gcc.target/aarch64/target_attr_2.c: Likewise. * gcc.target/aarch64/target_attr_3.c: Likewise. * gcc.target/aarch64/target_attr_4.c: Likewise. * gcc.target/aarch64/target_attr_5.c: Likewise. * gcc.target/aarch64/target_attr_6.c: Likewise. * gcc.target/aarch64/target_attr_7.c: Likewise. * gcc.target/aarch64/target_attr_8.c: Likewise. * gcc.target/aarch64/target_attr_9.c: Likewise. * gcc.target/aarch64/target_attr_10.c: Likewise. * gcc.target/aarch64/target_attr_11.c: Likewise. * gcc.target/aarch64/target_attr_12.c: Likewise. * gcc.target/aarch64/target_attr_13.c: Likewise. * gcc.target/aarch64/target_attr_14.c: Likewise. * gcc.target/aarch64/target_attr_15.c: Likewise. From-SVN: r226565
Kyrylo Tkachov committed -
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p): Initialize simd builtins if TARGET_SIMD. * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): Make sure that the builtins are initialized only once no matter how many times the function is called. (aarch64_init_builtins): Unconditionally initialize crc builtins. (aarch64_relayout_simd_param): New function. (aarch64_simd_expand_args): Use above during argument expansion. * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize simd builtins if TARGET_SIMD. * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New prototype. (aarch64_relayout_simd_types): Likewise. * gcc.target/aarch64/target_attr_crypto_ice_1.c: New test. From-SVN: r226564
Kyrylo Tkachov committed -
* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs. * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define. (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins. * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove static keyword. (aarch64_reset_previous_fndecl): New function. (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of the string. * config/aarch64/aarch64-c.c: New file. * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top. Push and pop options at beginning and end. Remove ifdef __ARM_FEATURE_CRC32. * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON. Add pragma +nothing+simd and +nothing+crypto where appropriate. * config/aarch64/t-aarch64 (aarch64-c.o): New rule. * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins): Define prototype. (aarch64_register_pragmas): Likewise. (aarch64_reset_previous_fndecl): Likewise. (aarch64_process_target_attr): Likewise. (aarch64_override_options_internal): Likewise. * gcc.target/aarch64/arm_neon-nosimd-error.c: Delete. From-SVN: r226563
Kyrylo Tkachov committed -
* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p): New function. (aarch64_can_inline_p): Likewise. (TARGET_CAN_INLINE_P): Define. From-SVN: r226561
Kyrylo Tkachov committed -
* common/config/aarch64/aarch64-common.c (aarch64_handle_option): Remove static. Handle OPT_mgeneral_regs_only, OPT_mfix_cortex_a53_835769, OPT_mstrict_align, OPT_momit_leaf_frame_pointer. * config/aarch64/aarch64.c: Include opts.h and diagnostic.h (aarch64_attr_opt_type): New enum. (aarch64_attribute_info): New struct. (aarch64_handle_attr_arch): New function. (aarch64_handle_attr_cpu): Likewise. (aarch64_handle_attr_tune): Likewise. (aarch64_handle_attr_isa_flags): Likewise. (aarch64_attributes): New table. (aarch64_process_one_target_attr): New function. (num_occurences_in_str): Likewise. (aarch64_process_target_attr): Likewise. (aarch64_option_valid_attribute_p): Likewise. (TARGET_OPTION_VALID_ATTRIBUTE_P): Define. * config/aarch64/aarch64-protos.h: Include input.h (aarch64_handle_option): Declare prototype. From-SVN: r226560
Kyrylo Tkachov committed -
* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define. * config/aarch64/aarch64.c: Include target-globals.h (aarch64_previous_fndecl): New variable. (aarch64_set_current_function): New function. (TARGET_SET_CURRENT_FUNCTION): Define. From-SVN: r226559
Kyrylo Tkachov committed -
* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable. (explicit_arch): Likewise. (x_aarch64_isa_flags): Likewise. (mgeneral-regs-only): Mark as Save. (mfix-cortex-a53-835769): Likewise. (mcmodel=): Likewise. (mstrict-align): Likewise. (momit-leaf-frame-pointer): Likewise. (mtls-dialect): Likewise. (master=): Likewise. * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define. (aarch64_isa_flags): Remove extern declaration. * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool to indicate success or failure. (aarch64_validate_march): Likewise. (aarch64_validate_mtune): Likewise. (aarch64_isa_flags): Delete. (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags instead of aarch64_isa_flags. (aarch64_get_tune_cpu): New function. (aarch64_get_arch): Likewise. (aarch64_override_options): Use above and set up explicit_tune_core and explicit_arch. (aarch64_print_extension): Move earlier in file. Add isa_flags argument and use that instead of the global aarch64_isa_flags. (aarch64_option_save): New function. (aarch64_option_restore): Likewise. (aarch64_option_print): Likewise. (aarch64_declare_function_name): Likewise. (aarch64_start_file): Delete. (TARGET_ASM_FILE_START): Do not define. (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define. * config/aarch64/aarch64-protos.h (aarch64_declare_function_name): Declare prototype. From-SVN: r226558
Kyrylo Tkachov committed -
[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize flag_omit_leaf_frame_pointer to 2. From-SVN: r226557
Kyrylo Tkachov committed -
* config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always define to 0 or 1. (TARGET_FIX_ERR_A53_835769): New macro. * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove handling of opts->x_aarch64_fix_a53_err835769. (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather than aarch64_fix_a53_err835769. * config/aarch64/aarch64-elf-raw.h: Update for above changes. * config/aarch64/aarch64-linux.h: Likewise. From-SVN: r226556
Kyrylo Tkachov committed -
* config/i386/i386.c (ix86_expand_int_movcc): Check result of ix86_expand_int_movcc as boolean. From-SVN: r226555
Uros Bizjak committed -
* config/aarch64/aarch64.opt (aarch64_arch_string): Delete. (aarch64_cpu_string): Likewise. (aarch64_tune_string): Likewise. * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum. (aarch64_parse_extension): Return aarch64_parse_opt_result. Add extra argument to put result into. (aarch64_parse_arch): Likewise. Do not set selected_cpu. (aarch64_parse_cpu): Add arguments to put results into. Return aarch64_parse_opt_result. (aarch64_parse_tune): Likewise. (aarch64_override_options_after_change_1): New function. (aarch64_override_options_internal): New function. (aarch64_validate_mcpu): Likewise. (aarch64_validate_march): Likewise. (aarch64_validate_mtune): Likewise. (aarch64_override_options): Update to reflect above changes. Move some logic into aarch64_override_options_internal. Initialize target_option_default_node and target_option_current_node. (aarch64_override_options_after_change): Move logic into aarch64_override_options_after_change_1 and call it with global_options. (initialize_aarch64_code_model): Take a gcc_options pointer and use the flag values from that. * gcc.target/aarch64/cpu-diagnostics-3.c: Update expected error message. From-SVN: r226554
Kyrylo Tkachov committed -
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH_8A directly rather than with cpp_define_formatted. * config/aarch64/aarch64.c (struct processor): Add arch field. (all_architectures): Handle above, move above all_cores. (all_cores): Handle above. (aarch64_parse_arch): Handle above changes. * config/aarch64/aarch64-arches.def (armv8-a): Extend according to above. Update comments. (armv8.1-a): Likewise. * config/aarch64/aarch64-cores.def: Update according to above. * config/aarch64/aarch64-opts.h (aarch64_arch): New enum. * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to aarch64_arch_driver_info. From-SVN: r226553
Kyrylo Tkachov committed -
* config/aarch64/aarch64.c (struct processor): Add ident field. Rename core sched_core. (all_cores): Handle above changes. (all_architectures): Likewise. (aarch64_parse_arch): Likewise. (aarch64_override_options): Likewise. From-SVN: r226552
Kyrylo Tkachov committed -
gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to fold_binary for GIMPLE_BINARY_RHS and for comparisons... 2015-08-04 Richard Biener <rguenther@suse.de> * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to fold_binary for GIMPLE_BINARY_RHS and for comparisons embedded in [VEC_]COND_EXPRs. From-SVN: r226551
Richard Biener committed -
From-SVN: r226550
Uros Bizjak committed -
* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated code. From-SVN: r226549
Uros Bizjak committed -
re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables) PR fortran/64022 * simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE support to all real kinds. * ieee/ieee_exceptions.F90: Support all real kinds. * ieee/ieee_arithmetic.F90: Likewise. * ieee/ieee_helper.c (ieee_class_helper_10, ieee_class_helper_16): New functions * gfortran.map (GFORTRAN_1.7): Add entries. * gfortran.dg/ieee/ieee_7.f90: Adjust test. * gfortran.dg/ieee/large_1.f90: New test. From-SVN: r226548
Francois-Xavier Coudert committed -
* tree-if-conv.c: Fix various typos in comments. * tree-vect-stmts.c: Likewise. From-SVN: r226544
Abe Skolnik committed -
Reviewed-on: https://go-review.googlesource.com/13095 From-SVN: r226543
Ian Lance Taylor committed -
2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR tree-optimization/67043 * loop-invariant.c (move_invariant_reg): Recompute luids in loop preheader after hoisting invariant in it. (find_defs): Force recomputation of all luids. gcc/testsuite/ PR tree-optimization/67043 * gcc.dg/pr67043.c: New test. From-SVN: r226540
Thomas Preud'homme committed -
* plugin/plugin-nvptx.c: Don't include dlfcn.h. (cuda_errlist): Constify. (errmsg): Move into ... (cuda_error): ... here. Make smaller. (_XSTR, _STR): Delete. (cuda_synames): Delete. (verify_device_library): Delete. (nvptx_init): Don't call it. From-SVN: r226539
Nathan Sidwell committed -
From-SVN: r226538
GCC Administrator committed
-
- 03 Aug, 2015 9 commits
-
-
The struct RawSockaddr contains a field Data which should be uint8 on ppc64 and ppc64le, but is declared as int8 in gccgo. This change adds a two new files which contain the structure declaration for RawSockaddr, one with the correct types for for ppc64 and ppc64le, and the other for non-ppc64 platforms. Fixes golang/go#11469 Reviewed-on: https://go-review.googlesource.com/11946 From-SVN: r226533
Ian Lance Taylor committed -
gcc/ * config/rs6000/htm.md (tabort.): Restrict the source operand to using a base register. gcc/testsuite/ * gcc.target/powerpc/htm-tabort-no-r0.c: New test. From-SVN: r226532
Peter Bergner committed -
gcc/ChangeLog: * main.c (main): Pass in NULL for toplev's external_timer. * timevar.c: Include coretypes.h. (class timer::named_items): New. (timer::named_items::named_items): New. (timer::named_items::~named_items): New. (timer::named_items::push): New. (timer::named_items::pop): New. (timer::named_items::print): New. (timer::timer): Initialize field "m_jit_client_items". (timer::~timer): New. (timer::push): Move bulk of implementation to... (timer::push_internal): ...here. New function. (timer::pop): Move bulk of implementation to... (timer::pop_internal): ...here. New function. (timer::push_client_item): New. (timer::pop_client_item): New. (timer::print_row): New function, taken from timer::print. (timer::print): Print "GCC items" header if we also have client items. Move row-printing to timer::print_row. Print any client items. (timer::get_topmost_item_name): New method. * timevar.def (TV_JIT_ACQUIRING_MUTEX): New. (TV_JIT_CLIENT_CODE): New. * timevar.h (timer::push_client_item): New declaration. (timer::pop_client_item): New declaration. (timer::get_topmost_item_name): New method. (timer::push_internal): New declaration. (timer::pop_internal): New declaration. (timer::print_row): New declaration. (timer::named_items): New declaration. (timer::m_jit_client_items): New field. (timer): Add friend class named_items. (auto_timevar::auto_timevar): Add timer param. (auto_timevar::~auto_timevar): Use field "m_timer". (auto_timevar::m_timer): New field. * toplev.c (initialize_rtl): Add g_timer as param when constructing auto_timevar instance. (toplev::toplev): Add "external_timer" param, and use it to initialize the "g_timer" global if non-NULL. (toplev::~toplev): If this created "g_timer", delete it. * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param with "external_timer" timer *. gcc/jit/ChangeLog: * docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New. * docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY): We no longer show a profile. * docs/topics/index.rst (Topic Reference): Add performance.rst. * docs/topics/performance.rst: New file. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-playback.c (gcc::jit::playback::context::compile): Add timer param when constructing the "toplev" instance. (gcc::jit::playback::context::acquire_mutex): Add timer param when constructing auto_timevar instance. (gcc::jit::playback::context::make_fake_args): If we have a timer, add "-ftime-report". (gcc::jit::playback::context::invoke_driver): Add timer param when constructing auto_timevar instance. (gcc::jit::playback::context::dlopen_built_dso): Likewise. * jit-playback.h (gcc::jit::playback::context::get_timer): New accessor. * jit-recording.c: Include timevar.h. (gcc::jit::recording::context::context): Initialize field "m_timer". * jit-recording.h: Add forward declaration of class timer. (gcc::jit::recording::context::set_timer): New method. (gcc::jit::recording::context::get_timer): New method. (gcc::jit::recording::context::m_timer): New field. * libgccjit++.h (gccjit::timer): New class. (gccjit::auto_time): New class. (gccjit::context::set_timer): New method. (gccjit::context::get_timer): New. (gccjit::timer::timer): New. (gccjit::timer::push): New. (gccjit::timer::pop): New. (timer::print): New. (timer::get_inner_timer): New. (timer::release): New. (auto_time::auto_time): New. (auto_time::~auto_time): New. * libgccjit.c: Include timevar.h. (struct gcc_jit_timer): New. (gcc_jit_timer_new): New function. (gcc_jit_timer_release): New function. (gcc_jit_context_set_timer): New function. (gcc_jit_context_get_timer): New function. (gcc_jit_timer_push): New function. (gcc_jit_timer_pop): New function. (gcc_jit_timer_print): New function. * libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro. (gcc_jit_timer): New typedef. (gcc_jit_timer_new): New function. (gcc_jit_timer_release): New function. (gcc_jit_context_set_timer): New function. (gcc_jit_context_get_timer): New function. (gcc_jit_timer_push): New function. (gcc_jit_timer_pop): New function. (gcc_jit_timer_print): New function. * libgccjit.map (LIBGCCJIT_ABI_4): New. (gcc_jit_timer_new): New function. (gcc_jit_timer_release): New function. (gcc_jit_context_set_timer): New function. (gcc_jit_context_get_timer): New function. (gcc_jit_timer_push): New function. (gcc_jit_timer_pop): New function. (gcc_jit_timer_print): New function. gcc/testsuite/ChangeLog: * jit.dg/test-benchmark.c (test_jit): Add param "timer" and use it to push/pop timing items. (main): For each optimization level, create a gcc_jit_timer, and time all of the iteration within that level cumulatively. * jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case. * jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case. From-SVN: r226530
David Malcolm committed -
Fixes golang/go#11573. Reviewed-on: https://go-review.googlesource.com/12508 From-SVN: r226529
Ian Lance Taylor committed -
PR middle-end/64744 PR middle-end/48470 PR middle-end/43404 * cfgexpand.c (expand_one_var): Add check if stack is going to be used in naked function. * expr.c (expand_expr_addr_expr_1): Remove excess checking whether expression should not reside in MEM. * function.c (use_register_for_decl): Do not use registers for non-register things (volatile, float, BLKMode) in naked functions. PR middle-end/64744 PR middle-end/48470 PR middle-end/43404 * gcc.target/arm/pr43404.c : New testcase. * gcc.target/arm/pr48470.c : New testcase. * gcc.target/arm/pr64744-1.c : New testcase. * gcc.target/arm/pr64744-2.c : New testcase. From-SVN: r226528
Alexander Basov committed -
There is no need to make type descriptors for named types when there are errors during package compilation. Particularly, if the error in package compilation is from a malformed named type, there is no guarantee a type descriptor can be created. Fixes golang/go#11560. Reviewed-on: https://go-review.googlesource.com/12792 From-SVN: r226527
Ian Lance Taylor committed -
This change modifies the "gotest" shell script to kill all processes, including "sleep", spawned by the timeout subshell. This prevents the sleep process from living beyond the gotest process. BACKGROUND The "gotest" shell script spawns "sleep" processes in the background to kill off test cases that run past their specified timeout. There are commands included that appear to kill the sleep process, but they only kill the parent shell, causing the sleep process to reparent. The orphaned sleep process can cause issues when gotest is run under some build systems, such as Ninja [0]. The particular issue with Ninja is the method it uses to identify terminated processes: it creates a pipe, passes the write end to the child process, and waits for EOF. In the case of libgo/gotest, the orphaned sleep process inherits the pipe FD and keeps it open for 4 minutes by default. [0] https://github.com/martine/ninja Reviewed-on: https://go-review.googlesource.com/12227 From-SVN: r226526
Ian Lance Taylor committed -
re PR go/67101 (mprof.goc:408:5: error: calling ‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address]) PR go/67101 runtime: Remove call to __builtin_frame_address. __builtin_frame_address was only supposed to use nonzero arguments for debugging purposes. Calling it with nonzero arguments can have unpredictable results and uses are now marked unsafe when -Wframe-address is enabled. Reviewed-on: https://go-review.googlesource.com/13063 From-SVN: r226525
Ian Lance Taylor committed -
PR target/67060 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber. Adjust splits to match new pattern. From-SVN: r226522
John David Anglin committed
-