aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2015-09-16Share memory blocks between pool allocatorsMikhail Maltsev35-126/+357
gcc/ * Makefile.in: Add memory-block.cc (pool_allocator::initialize): Use fixed block size. (pool_allocator::release): Use memory_block_pool. (pool_allocator::allocate): Likewise. * asan.c (asan_mem_ref_pool): Adjust to use common block size in all object pools. * cfg.c (initialize_original_copy_tables): Likewise. * cselib.c (elt_list_pool, elt_loc_list_pool, cselib_val_pool): Likewise. * df-problems.c (df_chain_alloc): Likewise. * df-scan.c (df_scan_alloc): Likewise. * dse.c (cse_store_info_pool, rtx_store_info_pool, read_info_type_pool, insn_info_type_pool, bb_info_pool, group_info_pool, deferred_change_pool): Likewise. * et-forest.c (et_nodes, et_occurrences): Likewise. * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool, ipcp_agg_lattice_pool): Likewise. * ipa-inline-analysis.c (edge_predicate_pool): Likewise. * ipa-profile.c (histogram_pool): Likewise. * ipa-prop.c (ipa_refdesc_pool): Likewise. * ira-build.c (live_range_pool, allocno_pool, object_pool, initiate_cost_vectors, pref_pool, copy_pool): Likewise. * ira-color.c (update_cost_record_pool): Likewise. * lra-lives.c (lra_live_range_pool): Likewise. * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise. * memory-block.cc: New file. * memory-block.h: New file. * regcprop.c (queued_debug_insn_change_pool): Use common block size. * sched-deps.c (sched_deps_init): Likewise. * sel-sched-ir.c (sched_lists_pool): Likewise. * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise. * tree-sra.c (access_pool): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise. * tree-ssa-reassoc.c (operand_entry_pool): Likewise. * tree-ssa-sccvn.c (allocate_vn_table): Likewise. * tree-ssa-strlen.c (strinfo_pool): Likewise. * tree-ssa-structalias.c (variable_info_pool): Likewise. * var-tracking.c (attrs_def_pool, var_pool, valvar_pool, location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise. gcc/c-family/ * c-format.c (check_format_arg): Adjust to use common block size in all object pools. From-SVN: r227817
2015-09-16Daily bump.GCC Administrator1-1/+1
From-SVN: r227816
2015-09-15compiler: Report init dependency errors with builtin functions.Ian Lance Taylor2-6/+8
Fixes golang/go#12319. Reviewed-on: https://go-review.googlesource.com/13931 From-SVN: r227813
2015-09-15libgo: If compiler can split-stack and linker can not, use -fno-split-stack.Ian Lance Taylor1-1/+1
If the compiler supports split-stack but we are using a gold linker that does not, as happens on PPC with current GCC but old gold, then we need to compile the Go code with -fno-split-stack to avoid a linker error avoid the inability to call from split-stack code to non-split-stack code. Reviewed-on: https://go-review.googlesource.com/14598 From-SVN: r227811
2015-09-15xtensa: fix xtensa_fallback_frame_state for call0 ABIMax Filippov2-1/+10
2015-09-15 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New definition. (DWARF_FRAME_REGISTERS): Reserve space for one extra register in call0 ABI. libgcc/ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Add support for call0 ABI. From-SVN: r227809
2015-09-15xtensa: fix TLS calls for call0 ABIMax Filippov3-7/+19
2015-09-15 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2 to pass TLS call argument, according to current ABI. * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or callx0 for TLS call, according to current ABI. From-SVN: r227808
2015-09-15tree-eh.c (lower_try_finally_dup_block): Clear location information on stack ↵Eric Botcazou5-28/+34
restore statements. * tree-eh.c (lower_try_finally_dup_block): Clear location information on stack restore statements. (decide_copy_try_finally): Do not consider a stack restore statement as coming from sources. From-SVN: r227805
2015-09-15alpha.c (alpha_expand_block_clear): Use HOST_WIDE_INT_M1U instead of ↵Uros Bizjak2-4/+9
~(HOST_WIDE_INT)0 when shifting. * config/alpha/alpha.c (alpha_expand_block_clear): Use HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting. From-SVN: r227804
2015-09-15re PR c/67580 (Improve error message on missing "struct" tag)Marek Polacek6-2/+67
PR c/67580 * c-decl.c (tag_exists_p): New function. * c-parser.c (c_parser_declaration_or_fndef): Give a hint when struct/union/enum keywords are missing. * c-tree.h (tag_exists_p): Declare. * gcc.dg/pr67580.c: New test. From-SVN: r227803
2015-09-15libgo: test linking split-stack and non-split-stack togetherIan Lance Taylor1-1/+1
PPC has split-stack support in current GCC, but old version of gold will reject attempts to link PPC split-stack and non-split-stack code together. Test for that, and don't compile the C code with -fsplit-stack if it doesn't work. Reviewed-on: https://go-review.googlesource.com/14594 From-SVN: r227802
2015-09-15[PATCH] More class-ification of DOMJeff Law2-140/+218
PR tree-optimization/47679 * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors, methods and private members. (avail_exprs_stack): Similarly. Change type of global from a pair of expr_hash_elt_t to the new class. (expr_elt_hasher::hash): Corresponding changes. (expr_elt_hasher::equal): Similarly. (avail_expr_hash): Similarly. (pass_dominator::execute): Similarly. (dom_opt_dom_walker::thread_across_edge): Similarly. (record_cond): Similarly. (dom_opt_dom_walker::before_dom_children): Similarly. (dom_opt_dom_walker::after_dom_children): Similarly. (lookup_avail_expr): Likewise. (initialize_hash_element): Now a expr_hash_elt constructor. (initialize_hash_element_from_expr): Similarly. (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt. (free_expr_hash_elt): Call dtor for the element. (remove_local_expressions_from_table): Now the "pop_to_marker" method in the available_exprs_stack class. (avail_expr_stack::record_expr): Method factored out. (print_expr_hash_elt): Now a method in the expr_hash_elt class. Fix formatting. (hashable_expr_equal_p): Fix formatting. From-SVN: r227801
2015-09-15Change of location_get_source_line signatureDavid Malcolm7-16/+31
gcc/ChangeLog: * input.h (location_get_source_line): Drop "expanded_location" param in favor of a file and line number. * input.c (location_get_source_line): Likewise. (dump_location_info): Update for change in signature of location_get_source_line. * diagnostic.c (diagnostic_print_caret_line): Likewise. gcc/c-family/ChangeLog: * c-format.c (location_from_offset): Update for change in signature of location_get_source_line. * c-indentation.c (get_visual_column): Likewise. (line_contains_hash_if): Likewise. From-SVN: r227800
2015-09-15defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.Eric Botcazou4-11/+23
* defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions. Bump to 4KB for SJLJ exceptions. (STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions. * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust. * doc/tm.texi: Regenerate. From-SVN: r227799
2015-09-15[ARM] Fix arm bootstrap failure due to -Werror=shift-negative-valueKyrylo Tkachov2-4/+10
* config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT. Update prototype. From-SVN: r227798
2015-09-15re PR tree-optimization/67470 (ICE at -O3 on x86_64-linux-gnu in ↵Richard Biener4-0/+59
compute_live_loop_exits, at tree-ssa-loop-manip.c:235) 2015-09-15 Richard Biener <rguenther@suse.de> PR tree-optimization/67470 * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI structure for PHI hoisting by inserting a forwarder block if appropriate. * gcc.dg/torture/pr67470.c: New testcase. From-SVN: r227797
2015-09-15arm.c (TARGET_OPTION_PRINT): Define.Christian Bruel2-1/+23
2015-09-15 Christian Bruel <christian.bruel@st.com> * config/arm/arm.c (TARGET_OPTION_PRINT): Define. (arm_option_print): New function. From-SVN: r227796
2015-09-15re PR target/52144 (ARM should support arm/thumb function attribute to ↵Christian Bruel5-77/+66
permit different instruction sets in the same source) 2015-09-15 Christian Bruel <christian.bruel@st.com> PR target/52144 * config/arm/arm.c (arm_option_params_internal): Remove opts parameter. * config/arm/arm-c.c (arm_cpu_builtins): Declare static. Remove flags parameter. * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P) (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P) (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P) (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with... (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX) (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX) (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros. * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration. From-SVN: r227795
2015-09-15[AArch64 array_mode 8/8] Add d-registers to TARGET_ARRAY_MODE_SUPPORTED_PAlan Lawrence5-1/+41
gcc/: * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New. * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add AARCH64_VALID_SIMD_DREG_MODE. gcc/testsuite/: * gcc.target/aarch64/vect_int32x2x4_1.c: New. From-SVN: r227794
2015-09-15[AArch64 array_mode 7/8] Combine the expanders using VSTRUCT:nregsAlan Lawrence3-115/+39
* config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>, aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making... (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this. (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>, aarch64_ld4_lane<mode>): Combine together, making... (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this. (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>, aarch64_st4_lane<mode>): Combine together, making... (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this. * config/aarch64/iterators.md (nregs): Add comment. From-SVN: r227793
2015-09-15c-decl.c (lookup_label): Return NULL_TREE instead of 0.Marek Polacek2-14/+26
* c-decl.c (lookup_label): Return NULL_TREE instead of 0. (lookup_tag): Change the type of THISLEVEL_ONLY to bool. Return NULL_TREE instead of 0. (lookup_name): Return NULL_TREE instead of 0. (lookup_name_in_scope): Likewise. (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0. (parser_xref_tag): Use false instead of 0. (start_struct): Use true instead of 1. (start_enum): Use true instead of 1 and NULL_TREE instead of 0. From-SVN: r227791
2015-09-15[AArch64 array_mode 6/8] Remove V_TWO_ELEM, again using BLKmode + set_mem_size.Alan Lawrence3-20/+21
* config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): Change operand mode from <V_TWO_ELEM> to BLK. (aarch64_vec_load_lanesoi_lane<mode>): Likewise. (aarch64_vec_store_lanesoi_lane<mode): Likewise (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. (aarch64_ld2_lane<mode>): Likewise. (aarch64_st2_lane<VQ:mode>): Likewise. * config/aarch64/iterators.md (V_TWO_ELEM): Remove. From-SVN: r227790
2015-09-15[AArch64 array_mode 5/8] Remove V_FOUR_ELEM, again using BLKmode + set_mem_size.Alan Lawrence3-23/+24
* config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>): Change operand mode from <V_FOUR_ELEM> to BLK. (aarch64_vec_load_lanesxi_lane<mode>): Likewise. (aarch64_vec_store_lanesxi_lane<mode): Likewise. (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. (aarch64_ld4_lane<mode>): Likewise. (aarch64_st4_lane<mode>): Likewise. * config/aarch64/iterators.md (V_FOUR_ELEM): Remove. From-SVN: r227789
2015-09-15re PR middle-end/67563 (verify_flow_info failed)Richard Biener4-11/+39
2015-09-15 Richard Biener <rguenther@suse.de> PR middle-end/67563 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not transfer EH info from old to new stmt. (replace_call_with_value): Likewise. (replace_call_with_call_and_fold): Likewise. (gimple_fold_builtin_memory_op): Likewise. (gimple_fold_builtin_memset): Likewise. (gimple_fold_builtin_stpcpy): Likewise. (gimple_fold_call): Likewise. * gcc.dg/pr67563.c: New testcase. From-SVN: r227788
2015-09-15[AArch64 array_mode 4/8] Remove EImodeAlan Lawrence4-13/+14
* config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update comment. * config/aarch64/aarch64-builtins.c (ei_UP): Remove. (aarch64_simd_intEI_type_node): Likewise. (aarch64_simd_builtin_std_type): Remove EImode case. (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node. * config/aarch64/aarch64-modes.def: Remove EImode. From-SVN: r227787
2015-09-15runtime: Ignore stack sizes when deciding when to GC.Ian Lance Taylor1-1/+1
This restores https://golang.org/cl/6081043 which was lost accidentally when updating a new version of libgo in https://golang.org/cl/22440043 . Reviewed-on: https://go-review.googlesource.com/14569 From-SVN: r227784
2015-09-15[AArch64 array_mode 3/8] Stop using EImode in aarch64-simd.md and iterators.mdAlan Lawrence3-22/+24
* config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>): Change operand mode from <V_THREE_ELEM> to BLK. (aarch64_vec_load_lanesci_lane<mode>): Likewise. (aarch64_vec_store_lanesci_lane<mode>): Likewise. (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. (aarch64_ld3_lane<mode>): Likewise. (aarch64_st3_lane<mode>): Likewise. * config/aarch64/iterators.md (V_THREE_ELEM): Remove. From-SVN: r227783
2015-09-15[AArch64 array_mode 2/8] Remove VSTRUCT_DREG, use BLKmode for d-reg ↵Alan Lawrence3-30/+50
aarch64_st/ld expands * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ): Change all TImode operands to BLKmode. (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX): Change all EImode operands to BLKmode. (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX): Change all OImode operands to BLKmode. (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode and call set_mem_size. (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise * config/aarch64/iterators.md (VSTRUCT_DREG): Remove. From-SVN: r227782
2015-09-15[AArch64 array_mode 1/8] Rename vec_store_lanes<mode>_lane to ↵Alan Lawrence2-6/+27
aarch64_vec_store_lanes<mode>_lane * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename to... (aarch64_vec_store_lanesoi_lane<mode>): ...this. (vec_store_lanesci_lane<mode>): Rename to... (aarch64_vec_store_lanesci_lane<mode>): ...this. (vec_store_lanesxi_lane<mode>): Rename to... (aarch64_vec_store_lanesxi_lane<mode>): ...this. (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>, aarch64_st4_lane<mode>): Follow renaming. From-SVN: r227781
2015-09-15S/390: Add missing brackets.Andreas Krebbel2-1/+6
gcc/ChangeLog: 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_const_operand_ok): Add missing brackets. From-SVN: r227780
2015-09-15re PR lto/67568 (lto-streamer-in.c sanitizer runtime error: load of value ↵Richard Biener3-1/+9
255, which is not a valid value for type 'bool') 2015-09-15 Richard Biener <rguenther@suse.de> PR lto/67568 * lto-streamer.h (lto_location_cache::current_sysp): Properly initialize. * lto-streamer-out.c (clear_line_info): Likewise. From-SVN: r227779
2015-09-15match-and-simplify.texi: Fix wording.Richard Biener2-1/+5
2015-09-15 Richard Biener <rguenther@suse.de> * doc/match-and-simplify.texi: Fix wording. From-SVN: r227778
2015-09-15libgo: don't provide ustat on arm64 GNU/LinuxIan Lance Taylor1-1/+1
This avoids linker warnings when linking against glibc, as apparently arm64 GNU/Linux does not support the ustat system call. Also update to automake 1.11.6, as that is the new GCC standard. Reviewed-on: https://go-review.googlesource.com/14567 From-SVN: r227777
2015-09-15tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip unnecessary type ↵Bin Cheng2-0/+6
conversion in op1. * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip unnecessary type conversion in op1. From-SVN: r227776
2015-09-15shrink-wrap: RewriteSegher Boessenkool2-366/+431
This patch rewrites the shrink-wrapping algorithm, allowing non-linear pieces of CFG to be duplicated for use without prologue instead of just linear pieces. * shrink-wrap.c (requires_stack_frame_p): Fix formatting. (dup_block_and_redirect): Delete function. (can_dup_for_shrink_wrapping): New function. (fix_fake_fallthrough_edge): New function. (try_shrink_wrapping): Rewrite function. (convert_to_simple_return): Call fix_fake_fallthrough_edge. From-SVN: r227775
2015-09-15configure.ac: [SH] Fix target pattern for TLS support test so to enable more ↵Rich Felker3-2/+8
arches. * configure.ac: [SH] Fix target pattern for TLS support test so to enable more arches. From-SVN: r227774
2015-09-15Daily bump.GCC Administrator1-1/+1
From-SVN: r227773
2015-09-14[PATCH] Minor DOM cleanupJeff Law2-3/+9
PR tree-optimization/47679 * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real type rather than void *. From-SVN: r227762
2015-09-14re PR c++/44282 (fastcall is not mangled at all)Jason Merrill3-21/+51
PR c++/44282 * mangle.c (write_CV_qualifiers_for_type): Also warn about regparm mangling with lower -fabi-version. From-SVN: r227761
2015-09-14The flag diagnostic_context::some_warnings_are_errors controls whether to ↵Manuel López-Ibáñez5-9/+41
give... The flag diagnostic_context::some_warnings_are_errors controls whether to give the message "all warnings being treated as errors". However, when warnings are buffered and then discarded, this flag is not reset. It turns out we do not need this flag at all, since we already count explicitly how many warnings were converted into errors, and this number is kept up to date for the buffered diagnostics used by Fortran. gcc/ChangeLog: 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/67460 * diagnostic.c (diagnostic_initialize): Do not set some_warnings_are_errors. (diagnostic_finish): Use DK_WERROR count instead. (diagnostic_report_diagnostic): Do not set some_warnings_are_errors. * diagnostic.h (struct diagnostic_context): Remove some_warnings_are_errors. gcc/testsuite/ChangeLog: 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/67460 * gfortran.dg/pr67460.f90: New test. From-SVN: r227760
2015-09-14compiler: Ignore result context in constant expressions.Ian Lance Taylor2-12/+19
When evaluating a constant expression, the gofrontend would incorrectly force each operand to be represented as the resulting type before checking if the operation was valid with the untyped constants. According to the language specification on constant expressions(http://golang.org/ref/spec#Constant_expressions): "Untyped boolean, numeric, and string constants may be used as operands wherever it is legal to use an operand of boolean, numeric, or string type, respectively." Fixes golang/go#11566. Reviewed-on: https://go-review.googlesource.com/12716 From-SVN: r227758
2015-09-14[SPARC] Simplify const_all_ones_operandRichard Sandiford2-25/+8
gen_rtx_CONST_VECTOR ensures that there is a single instance of: (const_vector:M [(const_int -1) ... (const_int -1)]) for each M, so pointer equality with CONSTM1_RTX is enough. Also, HOST_BITS_PER_WIDE_INT == 32 is doubly dead: HOST_WIDE_INT is always 64 bits now, and we always use const_int rather than const_double or const_wide_int for all-ones values (or any other value that fits in a signed HOST_WIDE_INT). gcc/ * config/sparc/predicates.md (const_all_ones_operand): Use CONSTM1_RTX to simplify definition. From-SVN: r227757
2015-09-14ChangeLog: Fix shitespace.Uros Bizjak2-41/+42
* ChangeLog: Fix shitespace. * testsuite/ChangeLog: Ditto. From-SVN: r227756
2015-09-14dump-new-function-3.c (dg-final): Also scan for $loopfn.Uros Bizjak3-2/+7
* gcc.dg/gomp/dump-new-function-3.c (dg-final): Also scan for $loopfn. * gcc.dg/gomp/notify-new-function-3.c (dg-final): Ditto. From-SVN: r227755
2015-09-14re PR c++/51911 ([C++11] G++ accepts new auto { list })Paolo Carlini4-2/+39
/cp 2015-09-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51911 * parser.c (cp_parser_new_expression): Enforce 5.3.4/2 (as amended per the spirit of DR 1467). /testsuite 2015-09-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51911 * g++.dg/cpp0x/new-auto1.C: New. From-SVN: r227753
2015-09-14re PR target/67061 (sh64-elf: internal compiler error: in ↵Oleg Endo2-15/+16
sh_find_set_of_reg, at config/sh/sh-protos.h:235) gcc/ PR target/67061 * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop. Handle call insns. From-SVN: r227750
2015-09-14lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret...Chung-Lin Tang2-0/+15
2015-09-14 Chung-Lin Tang <cltang@codesourcery.com> * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret, OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and OPT_fshow_column to handled saved option cases. (append_compiler_options): Do not skip the above added options. From-SVN: r227749
2015-09-14[AArch64] Handle literal pools for functions > 1 MiB in size.Ramana Radhakrishnan7-4/+169
This patch fixes the issue in PR63304 where we have functions that are > 1MiB. The idea is to use adrp / ldr or adrp / add instructions to address the literal pools under the use of a command line option. I would like to turn this on by default on trunk but keep this disabled by default for the release branches in order to get some serious testing for this feature while it bakes on trunk. As a follow-up I would like to try and see if estimate_num_insns or something else can give us a heuristic to turn this on for "large" functions. After all the number of incidences of this are quite low in real life, so may be we should look to restrict this use as much as possible on the grounds that this code generation implies an extra integer register for addressing for every floating point and vector constant and I don't think that's great in code that already may have high register pressure. Tested on aarch64-none-elf with no regressions. A previous version was bootstrapped and regression tested. Applied to trunk. regards Ramana 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/63304 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle nopcrelative_literal_loads. (aarch64_classify_address): Likewise. (aarch64_constant_pool_reload_icode): Define. (aarch64_secondary_reload): Handle secondary reloads for literal pools. (aarch64_override_options): Handle nopcrelative_literal_loads. (aarch64_classify_symbol): Handle nopcrelative_literal_loads. * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Define. (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option. * config/aarch64/predicates.md (aarch64_constant_pool_symref): New predicate. * doc/invoke.texi (mpc-relative-literal-loads): Document. From-SVN: r227748
2015-09-14re PR middle-end/67401 (Incorrect expand of __atomic_compare_exchange_8 ↵John David Anglin2-3/+10
using __sync_val_compare_and_swap_8) PR middle-end/67401 * optabs.c (expand_atomic_compare_and_swap): Move result of emitting sync_compare_and_swap_optab libcall to target_oval. From-SVN: r227746
2015-09-14c-opts.c (c_common_post_options): Set C++ standard earlier, before setting ↵Marek Polacek2-4/+9
various warnings. * c-opts.c (c_common_post_options): Set C++ standard earlier, before setting various warnings. From-SVN: r227744
2015-09-14c-common.c (warn_for_sign_compare): Cast to unsigned when shifting a ↵Marek Polacek7-7/+22
negative value. * c-common.c (warn_for_sign_compare): Cast to unsigned when shifting a negative value. * c-typeck.c (set_nonincremental_init_from_string): Use HOST_WIDE_INT_M1U when shifting a negative value. * rtlanal.c (split_double): Cast to unsigned when shifting a negative value. * sched-int.h (UNKNOWN_DEP_COST): Likewise. From-SVN: r227743