summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* * exp_ch2.adb (Expand_Current_Value): Make an appropriate characterebotcazou2016-01-209-192/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | literal if the entity is of a character type. * gcc-interface/lang.opt (fsigned-char): New option. * gcc-interface/misc.c (gnat_handle_option): Accept it. (gnat_init): Adjust comment. * gcc-interface/gigi.h (finish_character_type): New prototype. (maybe_character_type): New inline function. (maybe_character_value): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: For a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Set TYPE_ARTIFICIAL early and call finish_character_type on the type. <E_Enumeration_Subtype>: For a subtype of character with RM_Size and Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Copy TYPE_STRING_FLAG from type to subtype. <E_Array_Type>: Deal with character index types. <E_Array_Subtype>: Likewise. * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with char_type_node throughout. (build_raise_check): Likewise. (get_type_length): Deal with character types. (Attribute_to_gnu) <Attr_Pos>: Likewise. Remove obsolete range check code. Minor tweak. <Attr_Pred>: Likewise. (Loop_Statement_to_gnu): Likewise. (Raise_Error_to_gnu): Likewise. <N_Indexed_Component>: Deal with character index types. Remove obsolete code. <N_Slice>: Likewise. <N_Type_Conversion>: Deal with character types. Minor tweak. <N_Unchecked_Type_Conversion>: Likewise. <N_In>: Likewise. <N_Op_Eq>: Likewise. (emit_index_check): Delete. * gcc-interface/utils.c (finish_character_type): New function. (gnat_signed_or_unsigned_type_for): Deal with built-in character types. * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node with char_type_node. (build_call_raise): Likewise. (build_call_raise_column): Likewise. (build_call_raise_range): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232604 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-20 Richard Biener <rguenther@suse.de>rguenth2016-01-204-8/+42
| | | | | | | | | | | | | PR tree-optimization/69345 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function. (VN_INFO_PTR_INFO): Likewise. * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to info when it is equal between non-dominating SSA names. * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Make sure to look at original SSA infos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232603 138bc75d-0d04-0410-961f-82ee72b054a4
* Add BZ markerslaw2016-01-202-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232602 138bc75d-0d04-0410-961f-82ee72b054a4
* [PATCH] [target/25114] Improve comparisons against some small integers for m68klaw2016-01-205-3/+137
| | | | | | | | | | | | | * config/m68k/predicates.md (pow2_m1_operand): New predicate extracted from ... (reg_or_pow2_m1_operand): Call pow2_m1_operand. (pc_or_label_operand): New predicate. * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU tests for small integers that are 2^n - 1. * gcc.target/m68k/pr25114.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232601 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-20 Andre Vieira <andre.simoesdiasvieira@arm.com>thopre012016-01-202-0/+6
| | | | | | | | gcc/testsuite/ * gcc.target/arm/memset-inline-10.c: Added dg-require-effective-target arm_thumb2_ok. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232600 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (Options Summary): Add '.' after @xref.redi2016-01-202-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232599 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-01-201-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232598 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/69347law2016-01-192-0/+12
| | | | | | | | * tree-ssa-threadbackwards.c (fsm_find_control_statement_thread_paths): Do not try to lookup FSM paths for SSA_NAMEs appearing in abnormal PHIs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232593 138bc75d-0d04-0410-961f-82ee72b054a4
* * uninclude: Fix third argument to gensub.redi2016-01-192-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232589 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:kugan2016-01-192-4/+5
| | | | | | | | | | | 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org> * doc/lto.texi: Remove text that says only Gold has linker plugin support. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232587 138bc75d-0d04-0410-961f-82ee72b054a4
* Add C++-conforming wrappers for stdlib.h and math.hredi2016-01-1910-17/+124
| | | | | | | | | | | | | | | | | | | | PR libstdc++/14608 PR libstdc++/60401 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for --enable-cheaders=c_global configs. * include/Makefile.in: Regenerate. * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C test and allow inclusion from C files. * include/c_compatibility/stdlib.h: Likewise. Support freestanding. (at_quick_exit, quick_exit): Add using directives. * include/c_global/cmath: Use #include_next for math.h. * include/c_global/cstdlib: Use #include_next for stdlib.h. * testsuite/26_numerics/headers/cmath/14608.cc: New. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Remove xfail for most targets. * testsuite/26_numerics/headers/cstdlib/60401.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232586 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2out.c (need_endianity_attribute_p): New inline predicate.ebotcazou2016-01-194-46/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to the DIE accordingly. (modified_type_die): Add REVERSE parameter and pass it recursively, as well as to base_type_die. Adjust presence check accordingly. (base_type_for_mode): Adjust call to modified_type_die. (add_type_attribute): Add REVERSE parameter and pass it to modified_type_die. (generic_parameter_die): Adjust call to add_type_attribute. (add_scalar_info): Likewise. (add_subscript_info): Likewise. (gen_array_type_die): Likewise. (gen_descr_array_type_die): Likewise. (gen_entry_point_die): Likewise. (gen_enumeration_type_die): Likewise. (gen_formal_parameter_die): Likewise. (gen_subprogram_die): Likewise. (gen_variable_die ): Likewise. (gen_const_die): Likewise. (gen_field_die): Likewise. (gen_pointer_type_die): Likewise. (gen_reference_type_die): Likewise. (gen_ptr_to_mbr_type_die): Likewise. (gen_inheritance_die): Likewise. (gen_subroutine_type_die): Likewise. (gen_typedef_die): Likewise. (force_type_die): Adjust call to modified_type_die. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232585 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>sandra2016-01-193-138/+150
| | | | | | | | | | | | gcc/ * doc/standards.texi: Copy-editing for grammar, markup, and sentence flow throughout the file. Fix broken link to Objective-C 2.0 documentation. * doc/invoke.texi: More copy-editing; fix numerous typos and spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232583 138bc75d-0d04-0410-961f-82ee72b054a4
* PR jit/69144: Ensure that libgccjit's tempdir is fully cleaned-updmalcolm2016-01-197-508/+691
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a couple of ways that libgccjit could fail to unlink all of its tempfiles, leading to /tmp/libgccjit-* tempdirs lingering after the build: - dumpfiles requested by gcc_jit_context_enable_dump - ahead-of-time compilation artifacts which lingered in the tempdir after they've been copied up to the output_path. This was only the case for GCC_JIT_OUTPUT_KIND_OBJECT_FILE and GCC_JIT_OUTPUT_KIND_EXECUTABLE. The following patch fixes these by introducing a vec of additional cleanups to be performed by gcc:jit::tempdir's dtor. In addition, if a gcc_jit_result * is leaked and GCC_JIT_BOOL_OPTION_DEBUGINFO is enabled, the tempdir will also not be cleaned up. This was the case for tut04-toyvm/toyvm.cc which the patch fixes by introducing a wrapper around gcc_jit_result *. Doing this required some updates to the corresponding docs. gcc/jit/ChangeLog: PR jit/69144 * jit-playback.c (gcc::jit::playback::compile_to_file::postprocess): Potentially add the temporary artifact to the tempdir's list of tempfiles needing additional cleanup. (gcc::jit::playback::context::extract_any_requested_dumps): Likewise for the dumpfile. * jit-tempdir.c (gcc::jit::tempdir::~tempdir): Clean up additional tempfiles. * jit-tempdir.h (gcc::jit::tempdir::add_temp_file): New method. (gcc::jit::tempdir::m_tempfiles): New field. * docs/cp/intro/tutorial04.rst: Update for changes to toyvm.cc. * docs/examples/tut04-toyvm/toyvm.cc (class compilation_result): New. (toyvm_function::compile): Change return type from function ptr to a compilation_result. (toyvm_function::get_function_name): New accessor. (toyvm_function::m_funcname): New field. (get_function_name): Convert to... (toyvm_function::make_function_name): ...this new method. (toyvm_function::parse): Call make_function_name. (toyvm_function::compile): Convert return type from function ptr to a compilation_result. Use get_function_name. (compilation_state::compile): Convert return type from gcc_jit_result * to a compilation_result. (test_script): Update for above changes, extracting the code from the compilation_result. (main): Likewise. * docs/_build/texinfo/libgccjit.texi: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232582 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Remove dead code.torvald2016-01-193-1909/+6
| | | | | | | | * local_type_traits: Remove file. * libitm_i.h: Don't include it anymore. (sized_integral): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232581 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/59759jason2016-01-194-6/+74
| | | | | | * pt.c (convert_template_argument): Handle VAR_DECL properly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232580 138bc75d-0d04-0410-961f-82ee72b054a4
* [Patch] Fix spurious warning in ccmp.cjiwang2016-01-192-1/+5
| | | | | | | | | | 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com> * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232576 138bc75d-0d04-0410-961f-82ee72b054a4
* PR testsuite/68820uros2016-01-194-3/+28
| | | | | | | | | | * gcc.c-torture/execute/builtins/memops-asm.x: New file. * gcc.c-torture/execute/builtins/strstr-asm.x: Ditto. * gcc.c-torture/execute/builtins/strstr-asm.c: Remove dg-options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232573 138bc75d-0d04-0410-961f-82ee72b054a4
* PR ipa/66223hubicka2016-01-194-2/+64
| | | | | | | | | | | | * ipa-devirt.c (is_cxa_pure_virtual_p): New function. (maybe_record_node): Record cxa_pure_virtual as the only possible target if there are not ohter candidates. (possible_polymorphic_call_target_p): Accept cxa_pure_virtual. * g++.dg/ipa/devirt-50.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232572 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-19 Richard Biener <rguenther@suse.de>rguenth2016-01-192-10/+15
| | | | | | | | | * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants and name. (get_memory_order): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232571 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/68965mpolacek2016-01-195-1/+59
| | | | | | | | | | * pt.c (tsubst_copy): Mark elements in expanded vector as used. * g++.dg/cpp1y/parameter-pack-1.C: New test. * g++.dg/cpp1y/parameter-pack-2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232569 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix ICE in vectorizable_store ().kyukhin2016-01-192-2/+11
| | | | | | | | | gcc/ * tree-vect-stmts.c (vectorizable_store): Check rhs vectype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232568 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix memory chunk corruption for opts_obstack (PR jit/68446)dmalcolm2016-01-194-10/+26
| | | | | | | | | | | | | | | | | | | gcc/ChangeLog: PR jit/68446 * gcc.c (driver::decode_argv): Add call to init_opts_obstack before init_options_struct. * opts.c (init_opts_obstack): Remove idempotency. (init_options_struct): Replace call to init_opts_obstack with a gcc_assert to verify that it has already been called. * toplev.c (toplev::main): Add call to init_opts_obstack before calls to init_options_struct. (toplev::finalize): Move cleanup of opts_obstack next to cleanup of save_decoded_options, clearing the latter, and save_decoded_options_count. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232567 138bc75d-0d04-0410-961f-82ee72b054a4
* [ARM] PR target/69135: Mark ARMv8 vcvt instructions as unconditionalktkachov2016-01-194-1/+57
| | | | | | | | | | | | PR target/69135 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds" attribute to unconditional. Remove %? from output template. * gcc.target/arm/pr69135_1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232566 138bc75d-0d04-0410-961f-82ee72b054a4
* [PATCH 4/4] Add CCMP selection based on rtx costsjiwang2016-01-194-17/+75
| | | | | | | | | | | | | | | | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> Jiong Wang <jiong.wang@arm.com> gcc/ * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences generated from different expand order. gcc/testsuite/ * gcc.target/aarch64/ccmp_1.c: Add new tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232565 138bc75d-0d04-0410-961f-82ee72b054a4
* [PATCH 3/4] Add support for rtx costing of CCMP on AArch64jiwang2016-01-192-0/+25
| | | | | | | | | | | | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * /config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add support for CCMP costing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232564 138bc75d-0d04-0410-961f-82ee72b054a4
* [PATCH 2/4] Add support for float CCMPjiwang2016-01-196-8/+154
| | | | | | | | | | | | | | | | | | | | | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * ccmp.c (ccmp_candidate_p): Remove integer-only restriction. * config/aarch64/aarch64.md (fccmp<mode>): New pattern. (fccmpe<mode>): Likewise. (fcmp): Rename to fcmp and globalize pattern. (fcmpe): Likewise. * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support. (aarch64_gen_ccmp_next): Add FP support. gcc/testsuite/ * gcc.target/aarch64/ccmp_1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232563 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/68586mpolacek2016-01-197-0/+50
| | | | | | | | | | | | * constexpr.c (clear_cv_cache): New. * cp-gimplify.c (clear_fold_cache): New. * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare. * decl.c (finish_enum_value_list): Call them. * g++.dg/cpp0x/enum30.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232562 138bc75d-0d04-0410-961f-82ee72b054a4
* [Patch 1/4] Simplify the representation of CCMP patterns by usingjiwang2016-01-198-365/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * target.def (gen_ccmp_first): Update documentation. (gen_ccmp_next): Likewise. * doc/tm.texi (gen_ccmp_first): Update documentation. (gen_ccmp_next): Likewise. * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of expand_ccmp_expr_1. Improve comments. * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp. (ccmp_ior<mode>): Remove pattern. (cmp<mode>): Remove expand. (cmp): Globalize pattern. (cstorecc4): Use cc_register. (mov<mode>cc): Remove ccmp_cc_register check. * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Simplify after removal of CC_DNE/* modes. (aarch64_ccmp_mode_to_code): Remove. (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases. In 'k' case use integer as condition. (aarch64_nzcv_codes): Remove inverted cases. (aarch64_code_to_ccmode): Remove. (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct comparison with CC register to be used in folowing CCMP/branch/CSEL. (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP pattern. Return the comparison with CC register. Invert conditions when bitcode is OR. * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes. * config/aarch64/predicates.md (ccmp_cc_register): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232561 138bc75d-0d04-0410-961f-82ee72b054a4
* * cgraphunit.c (cgraph_node::reset): Clear thunk info andhubicka2016-01-192-0/+7
| | | | | | | instrumented_version. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232560 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-19 Richard Biener <rguenther@suse.de>rguenth2016-01-194-3/+101
| | | | | | | | | | | | PR tree-optimization/69336 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all handled components with get_ref_base_and_extent. (equal_mem_array_ref_p): Adjust. * g++.dg/tree-ssa/pr69336.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232559 138bc75d-0d04-0410-961f-82ee72b054a4
* PR debug/65779jakub2016-01-194-4/+96
| | | | | | | | | | | | | | | | | * shrink-wrap.c: Include valtrack.h. (move_insn_for_shrink_wrap): Add DEBUG argument. If MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs in between insn and where it will be moved to. Call dead_debug_insert_temp. (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init first and dead_debug_local_finish at the end. For uses and defs bitmap, handle all regs in between REGNO and END_REGNO, not just the first one. * gcc.dg/pr65779.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232558 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-19 Richard Biener <rguenther@suse.de>rguenth2016-01-194-4/+64
| | | | | | | | | | | | PR tree-optimization/69352 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1. (equal_mem_array_ref_p): Constrain size and max size properly. Compare the reverse flag. * gcc.dg/torture/pr69352.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232557 138bc75d-0d04-0410-961f-82ee72b054a4
* * ira.c (ira): Update regstat data if we deleted insns.bernds2016-01-192-4/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232556 138bc75d-0d04-0410-961f-82ee72b054a4
* PR sanitizer/68824jakub2016-01-192-0/+21
| | | | | | | | * tsan/tsan_interceptors.cc (NEED_TLS_GET_ADDR, __tls_get_addr, InitializeInterceptors): Cherry pick upstream r258119. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232555 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/68955jakub2016-01-195-15/+76
| | | | | | | | | | | | PR rtl-optimization/64557 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr here. Fix up formatting. * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P. * gcc.dg/torture/pr68955.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232554 138bc75d-0d04-0410-961f-82ee72b054a4
* PR lto/69136hubicka2016-01-194-0/+19
| | | | | | | | | * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract decls have no assemblernames. * g++.dg/torture/pr69136.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232553 138bc75d-0d04-0410-961f-82ee72b054a4
* PR lto/69133hubicka2016-01-196-3/+62
| | | | | | | | | | | | * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple assume that the node has body. * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p check. * g++.dg/lto/pr69133_0.C: New testcase. * g++.dg/lto/pr69133_1.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232552 138bc75d-0d04-0410-961f-82ee72b054a4
* * lto-streamer-out.c (lto_output): Do not stream instrumentationhubicka2016-01-192-1/+7
| | | | | | | thunks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232551 138bc75d-0d04-0410-961f-82ee72b054a4
* * symtab.c (symtab_node::asm_name): Do not call printable name directly.hubicka2016-01-192-1/+13
| | | | | | | (symtab_node::name): Report name as unnamed if DECL_NAME is not set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232550 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge of HSAjamborm2016-01-1960-197/+18448
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-01-19 Martin Jambor <mjambor@suse.cz> Martin Liska <mliska@suse.cz> Michael Matz <matz@suse.de> libgomp/ * plugin/Makefrag.am: Add HSA plugin requirements. * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable. (HSA_RUNTIME_LIB): Likewise. (HSA_RUNTIME_CPPFLAGS): Likewise. (HSA_RUNTIME_INCLUDE): New substitution. (HSA_RUNTIME_LIB): Likewise. (HSA_RUNTIME_LDFLAGS): Likewise. (hsa-runtime): New configure option. (hsa-runtime-include): Likewise. (hsa-runtime-lib): Likewise. (PLUGIN_HSA): New substitution variable. Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new configure options. (PLUGIN_HSA_CPPFLAGS): Likewise. (PLUGIN_HSA_LDFLAGS): Likewise. (PLUGIN_HSA_LIBS): Likewise. Check that we have access to HSA run-time. * libgomp-plugin.h (offload_target_type): New element OFFLOAD_TARGET_TYPE_HSA. * libgomp.h (gomp_target_task): New fields firstprivate_copies and args. (bool gomp_create_target_task): Updated. (gomp_device_descr): Extra parameter of run_func and async_run_func, new field can_run_func. * libgomp_g.h (GOMP_target_ext): Update prototype. * oacc-host.c (host_run): Added a new parameter args. * target.c (calculate_firstprivate_requirements): New function. (copy_firstprivate_data): Likewise. (gomp_target_fallback_firstprivate): Use them. (gomp_target_unshare_firstprivate): New function. (gomp_get_target_fn_addr): Allow returning NULL for shared memory devices. (GOMP_target): Do host fallback for all shared memory devices. Do not pass any args to plugins. (GOMP_target_ext): Introduce device-specific argument parameter args. Allow host fallback if device shares memory. Do not remap data if device has shared memory. (gomp_target_task_fn): Likewise. Also treat shared memory devices like host fallback for mappings. (GOMP_target_data): Treat shared memory devices like host fallback. (GOMP_target_data_ext): Likewise. (GOMP_target_update): Likewise. (GOMP_target_update_ext): Likewise. Also pass NULL as args to gomp_create_target_task. (GOMP_target_enter_exit_data): Likewise. (omp_target_alloc): Treat shared memory devices like host fallback. (omp_target_free): Likewise. (omp_target_is_present): Likewise. (omp_target_memcpy): Likewise. (omp_target_memcpy_rect): Likewise. (omp_target_associate_ptr): Likewise. (gomp_load_plugin_for_device): Also load can_run. * task.c (GOMP_PLUGIN_target_task_completion): Free firstprivate_copies. (gomp_create_target_task): Accept new argument args and store it to ttask. * plugin/plugin-hsa.c: New file. gcc/ * Makefile.in (OBJS): Add new source files. (GTFILES): Add hsa.c. * common.opt (disable_hsa): New variable. (-Whsa): New warning. * config.in (ENABLE_HSA): New. * configure.ac: Treat hsa differently from other accelerators. (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to $enable_offloading. (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa. * doc/install.texi (Configuration): Document --with-hsa-runtime, --with-hsa-runtime-include, --with-hsa-runtime-lib and --with-hsa-kmt-lib. * doc/invoke.texi (-Whsa): Document. (hsa-gen-debug-stores): Likewise. * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt to invoke offload compiler for hsa acclerator. * opts.c (common_handle_option): Determine whether HSA offloading should be performed. * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter. * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New. (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed. (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New. * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY. * gimple-pretty-print.c (dump_gimple_omp_for): Also handle GF_OMP_FOR_KIND_GRID_LOOP. (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY. (pp_gimple_stmt_1): Likewise. * gimple-walk.c (walk_gimple_stmt): Likewise. * gimple.c (gimple_build_omp_grid_body): New function. (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY. * gimple.def (GIMPLE_OMP_GRID_BODY): New. * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY, GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and GF_OMP_TEAMS_GRID_PHONY. (gimple_statement_omp_single_layout): Updated comments. (gimple_build_omp_grid_body): New function. (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY. (gimple_omp_for_grid_phony): New function. (gimple_omp_for_set_grid_phony): Likewise. (gimple_omp_parallel_grid_phony): Likewise. (gimple_omp_parallel_set_grid_phony): Likewise. (gimple_omp_teams_grid_phony): Likewise. (gimple_omp_teams_set_grid_phony): Likewise. (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY. * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New. (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise. (BUILT_IN_GOMP_TARGET): Updated type. * omp-low.c: Include symbol-summary.h, hsa.h and params.h. (adjust_for_condition): New function. (get_omp_for_step_from_incr): Likewise. (extract_omp_for_data): Moved parts to adjust_for_condition and get_omp_for_step_from_incr. (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY. (fixup_child_record_type): Bail out if receiver_decl is NULL. (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_. (scan_omp_parallel): Do not create child functions for phony constructs. (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY. (scan_omp_1_op): Checking assert we are not remapping to ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY. (parallel_needs_hsa_kernel_p): New function. (expand_parallel_call): Register apprpriate parallel child functions as HSA kernels. (grid_launch_attributes_trees): New type. (grid_attr_trees): New variable. (grid_create_kernel_launch_attr_types): New function. (grid_insert_store_range_dim): Likewise. (grid_get_kernel_launch_attributes): Likewise. (get_target_argument_identifier_1): Likewise. (get_target_argument_identifier): Likewise. (get_target_argument_value): Likewise. (push_target_argument_according_to_value): Likewise. (get_target_arguments): Likewise. (expand_omp_target): Call get_target_arguments instead of looking up for teams and thread limit. (grid_expand_omp_for_loop): New function. (grid_arg_decl_map): New type. (grid_remap_kernel_arg_accesses): New function. (grid_expand_target_kernel_body): New function. (expand_omp): Call it. (lower_omp_for): Do not emit phony constructs. (lower_omp_taskreg): Do not emit phony constructs but create for them a temporary variable receiver_decl. (lower_omp_taskreg): Do not emit phony constructs. (lower_omp_teams): Likewise. (lower_omp_grid_body): New function. (lower_omp_1): Call it. (grid_reg_assignment_to_local_var_p): New function. (grid_seq_only_contains_local_assignments): Likewise. (grid_find_single_omp_among_assignments_1): Likewise. (grid_find_single_omp_among_assignments): Likewise. (grid_find_ungridifiable_statement): Likewise. (grid_target_follows_gridifiable_pattern): Likewise. (grid_remap_prebody_decls): Likewise. (grid_copy_leading_local_assignments): Likewise. (grid_process_kernel_body_copy): Likewise. (grid_attempt_target_gridification): Likewise. (grid_gridify_all_targets_stmt): Likewise. (grid_gridify_all_targets): Likewise. (execute_lower_omp): Call grid_gridify_all_targets. (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY. * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_. (tree_omp_clause): Added union field dimension. * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_. * tree.c (omp_clause_num_ops): Added number of arguments of OMP_CLAUSE__GRIDDIM_. (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_. (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_. * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New. (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise. (OMP_CLAUSE_GRIDDIM_SIZE): Likewise. (OMP_CLAUSE_GRIDDIM_GROUP): Likewise. * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail. * tree-pass.h (make_pass_gen_hsail): Declare. (make_pass_ipa_hsa): Likewise. * ipa-hsa.c: New file. * lto-section-in.c (lto_section_name): Add hsa section name. * lto-streamer.h (lto_section_type): Add hsa section. * timevar.def (TV_IPA_HSA): New. * hsa-brig-format.h: New file. * hsa-brig.c: New file. * hsa-dump.c: Likewise. * hsa-gen.c: Likewise. * hsa.c: Likewise. * hsa.h: Likewise. * toplev.c (compile_file): Call hsa_output_brig. * hsa-regalloc.c: New file. gcc/fortran/ * types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New. (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed. (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New. gcc/lto/ * lto-partition.c: Include "hsa.h" (add_symbol_to_partition_1): Put hsa implementations into the same partition as host implementations. liboffloadmic/ * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_async_run): New unused parameter. (GOMP_OFFLOAD_run): Likewise. include/ * gomp-constants.h (GOMP_DEVICE_HSA): New macro. (GOMP_VERSION_HSA): Likewise. (GOMP_TARGET_ARG_DEVICE_MASK): Likewise. (GOMP_TARGET_ARG_DEVICE_ALL): Likewise. (GOMP_TARGET_ARG_SUBSEQUENT_PARAM): Likewise. (GOMP_TARGET_ARG_ID_MASK): Likewise. (GOMP_TARGET_ARG_NUM_TEAMS): Likewise. (GOMP_TARGET_ARG_THREAD_LIMIT): Likewise. (GOMP_TARGET_ARG_VALUE_SHIFT): Likewise. (GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232549 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-18 Jeff Law <law@redhat.com>law2016-01-198-6/+144
| | | | | | | | | | | | | | | | | | | PR tree-optimization/69320 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean ranged object, do nothing if the RHS constant is not [0..1]. (optimize_stmt): Comparing a boolean ranged object against a constant outside [0..1] results in a compile-time constant. * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary test. PR tree-optimization/69320 * gcc.c-torture/pr69320-1.c: New test. * gcc.c-torture/pr69320-2.c: New test. * gcc.c-torture/pr69320-3.c: New test. * gcc.c-torture/pr69320-4.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232548 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix the remaining PR c++/24666 blockers (arrays decay to pointers too early)ppalka2016-01-1913-5/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/cp/ChangeLog: PR c++/11858 PR c++/24663 PR c++/24664 * decl.c (grokdeclarator): Don't decay array parameter type to a pointer type if it's dependent. (grokparms): Invoke strip_top_quals instead of directly invoking cp_build_qualified_type. * pt.c (decay_dependent_array_parm_type): New static function. (type_unification_real): Call decay_dependent_array_parm_type to decay a dependent array parameter type to its corresponding pointer type before unification. (more_specialized_fn): Likewise. (get_bindings): Likewise. * tree.c (cp_build_qualified_type): Trivial typofix in documentation. gcc/testsuite/ChangeLog: PR c++/11858 PR c++/24663 PR c++/24664 * g++.dg/template/pr11858.C: New test. * g++.dg/template/pr24663.C: New test. * g++.dg/template/unify12.C: New test. * g++.dg/template/unify13.C: New test. * g++.dg/template/unify14.C: New test. * g++.dg/template/unify15.C: New test. * g++.dg/template/unify16.C: New test. * g++.dg/template/unify17.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232547 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-01-191-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232546 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>sandra2016-01-183-1403/+1449
| | | | | | | | | | | | | | | | | gcc/ * doc/invoke.texi (Invoking GCC): Add new section to menu. (Option Summary): Update to reflect new section and moved options. (C++ Dialect Options): Move -fstats to new section. (Debugging Options): Move all dump, statistics, and other GCC developer options to new section. Rewrite section introduction and re-order remaining options to put the more basic ones first. (Optimization Options): Move -fira-verbose and -flto-report* to new section. (Developer Options): New section incorporating moved options. * doc/cppopts.texi (-dM): Update cross-reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232541 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/69176rth2016-01-184-70/+118
| | | | | | | | | | | | | | | | * config/aarch64/aarch64.md (add<GPI>3): Move long immediate operands to pseudo only if CSE is expected. Split long immediate operands only after reload, and for the stack pointer. (*add<GPI>3_pluslong): Remove. (*addsi3_aarch64, *adddi3_aarch64): Merge into... (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative. (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative. (*add<GPI>3 peepholes): New. (*add<GPI>3 splitters): New. * config/aarch64/constraints.md (Upl): New. * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232540 138bc75d-0d04-0410-961f-82ee72b054a4
* libstdc++: Fix usage of __GXX_WEAK__ in TM TS support.torvald2016-01-184-28/+45
| | | | | | | | | | | | | * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New. (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF and move after its definition. * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override. * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of __GXX_WEAK__, and only provide transactional clones if _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232539 138bc75d-0d04-0410-961f-82ee72b054a4
* * mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Avoidjakub2016-01-182-6/+11
| | | | | | | -Wdiscarded-qualifiers warning. Fix up formatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232537 138bc75d-0d04-0410-961f-82ee72b054a4
* PR testsuite/69181: ensure expected multiline outputs is cleared per-testdmalcolm2016-01-185-31/+56
| | | | | | | | | | | | | | | | | | | | | | | gcc/testsuite/ChangeLog: PR testsuite/69181 * gcc.dg/pr69181-1.c: New test file. * gcc.dg/pr69181-2.c: New test file. * lib/gcc-dg.exp (dg-test): Consolidate post-test cleanup of globals by moving it to... (cleanup-after-saved-dg-test): ...this new function. Add "global additional_sources_used". Add reset of global multiline_expected_outputs to the empty list. * lib/multiline.exp (_multiline_expected_outputs): Rename this global to... (multiline_expected_outputs): ...this, and updated comments to note that it is modified from gcc-dg.exp. (dg-end-multiline-output): Update for the above renaming. (handle-multiline-outputs): Likewise. Remove the clearing of the expected outputs to the empty list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232535 138bc75d-0d04-0410-961f-82ee72b054a4
* Add test for PR 60637redi2016-01-182-0/+38
| | | | | | | PR libstdc++/60637 * testsuite/26_numerics/headers/cmath/60637.cc: Add test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232534 138bc75d-0d04-0410-961f-82ee72b054a4