charlet [Thu, 20 Nov 2014 11:02:25 +0000 (11:02 +0000)]
2014-11-20 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Analyze_Function_Return): For functions returning
an access to an interface add an implicit conversion to the target
type to force the displacement of the pointer to the object to
reference the secondary dispatch table.
(Check_Anonymous_Return): Skip internally built functions which handle
the case of null access when locating the master of a task.
* sem_res.adb (Valid_Conversion): Return true for internally
generated conversions of access to interface types added to force
the displacement of the pointer to reference the corresponding
dispatch table.
2014-11-20 Pascal Obry <obry@adacore.com>
* adaint.c (add_handle): realloc with a size of +100.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217836
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 11:00:44 +0000 (11:00 +0000)]
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate
back the resolved operands to the original call node, taking
into account that the original call may have named associations.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* inline.adb (Has_Some_Contract): Change the
guard to test the Ekind of the entity rather than the Analyzed
flag. This handles partially analyzed contexts.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do
not reject the renaming of a function result if the renaming
does not come for source.
2014-11-20 Robert Dewar <dewar@adacore.com>
* exp_util.ads: Minor addition of ??? clause.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Variable): For an Ada 2012 implicit
dereference introduced for an indexing opertion, check that the
type of the corresponding access discriminant is not an access
to constant.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): Inherit
the ghostness of the matching spec, the same way convention
is inherited.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217835
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 10:56:01 +0000 (10:56 +0000)]
2014-11-20 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of
tests in a condition so Following_Address_Clause is invoked
only if need be.
* exp_util.ads (Following_Address_Clause): Add small note.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217834
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 10:47:23 +0000 (10:47 +0000)]
Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217833
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 10:47:11 +0000 (10:47 +0000)]
2014-11-20 Pascal Obry <obry@adacore.com>
* adaint.c (remove_handle): New local routine without a lock.
(win32_wait): fix the critical section to properly protect needed
code, use new remove_handle.
(__gnat_win32_remove_handle): refactor code with remove_handle.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217832
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 10:46:08 +0000 (10:46 +0000)]
2014-11-20 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Analyze_Inlined_Bodies): Iterate between loading
of the inlined bodies and instantiation of the generic bodies
until no more bodies need to be loaded.
2014-11-20 Vincent Celier <celier@adacore.com>
* prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name:
Update_Ignore_Missing_With becomes Set_Ignore_Missing_With.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217831
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 20 Nov 2014 10:43:45 +0000 (10:43 +0000)]
PR target/63966
* lex.c [__i386__ || __x86_64__]: Include system <cpuid.h> for
GCC_VERSION < 5000.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217830
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Thu, 20 Nov 2014 10:01:05 +0000 (10:01 +0000)]
2014-11-20 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb,
sem_ch6.adb: Minor reformatting.
2014-11-20 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit
conversion to force the displacement of the pointer to the object
to reference the secondary dispatch table.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217829
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 20 Nov 2014 09:26:48 +0000 (09:26 +0000)]
2014-11-20 Richard Biener <rguenther@suse.de>
PR middle-end/63962
* match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
Guard with single-use operand 0.
* gcc.dg/tree-ssa/forwprop-30.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217828
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 20 Nov 2014 08:40:52 +0000 (08:40 +0000)]
2014-11-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/63677
* tree-ssa-dom.c: Include gimplify.h for unshare_expr.
(avail_exprs_stack): Make a vector of pairs.
(struct hash_expr_elt): Replace stmt member with vop member.
(expr_elt_hasher::equal): Simplify.
(initialize_hash_element): Adjust.
(initialize_hash_element_from_expr): Likewise.
(dom_opt_dom_walker::thread_across_edge): Likewise.
(record_cond): Likewise.
(dom_opt_dom_walker::before_dom_children): Likewise.
(print_expr_hash_elt): Likewise.
(remove_local_expressions_from_table): Restore previous state
if requested.
(record_equivalences_from_stmt): Record &x + CST as constant
&MEM[&x, CST] for further propagation.
(vuse_eq): New function.
(lookup_avail_expr): For loads use the alias oracle to see
whether a candidate from the expr hash is usable.
(avail_expr_hash): Do not hash VUSEs.
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: New testcase.
* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217827
138bc75d-0d04-0410-961f-
82ee72b054a4
ramana [Thu, 20 Nov 2014 08:38:34 +0000 (08:38 +0000)]
Fix missing output formatter.
2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/59593
* config/arm/arm.md (*movhi_insn): Use right formatting
for immediate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217826
138bc75d-0d04-0410-961f-
82ee72b054a4
ienkovich [Thu, 20 Nov 2014 08:15:21 +0000 (08:15 +0000)]
gcc/
PR sanitizer/63845
* function.c (assign_parms): Move init of pic_offset_table_rtx
from here to...
* cfgexpand.c (expand_used_vars): ...here.
gcc/testsuite/
PR sanitizer/63845
* gcc.dg/asan/pr63845.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217825
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Thu, 20 Nov 2014 06:15:03 +0000 (06:15 +0000)]
* tree.c (free_lang_data_in_type): If BINFO has no important
information in it, set it to NULL.
(get_binfo_at_offset): Do not walk fields, only bases.
* ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
to be NULL.
* ipa-polymorphic-call.c (record_known_type): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217824
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 20 Nov 2014 03:25:26 +0000 (03:25 +0000)]
PR c++/56041
* cp-tree.h (struct processing_template_decl_sentinel): New.
* pt.c (instantiate_non_dependent_expr_internal): Split out from...
(instantiate_non_dependent_expr_sfinae): Here.
(convert_nontype_argument): Use them.
* constexpr.c (fold_non_dependent_expr): Use them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217823
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 20 Nov 2014 00:16:25 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217822
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 22:33:36 +0000 (22:33 +0000)]
PR sanitizer/63939
* c-c++-common/asan/global-overflow-1.c: Allow extra spaces after
stack pointer address, to fit darwin output when symbolizer is not
present.
* c-c++-common/asan/heap-overflow-1.c: Likewise.
* c-c++-common/asan/memcmp-1.c: Likewise.
* c-c++-common/asan/misalign-1.c: Likewise.
* c-c++-common/asan/misalign-2.c: Likewise.
* c-c++-common/asan/null-deref-1.c: Likewise.
* c-c++-common/asan/stack-overflow-1.c: Likewise.
* c-c++-common/asan/strlen-overflow-1.c: Likewise.
* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
* c-c++-common/asan/use-after-free-1.c: Likewise.
* g++.dg/asan/deep-stack-uaf-1.C: Likewise.
* g++.dg/asan/deep-tail-call-1.C: Likewise.
* g++.dg/asan/large-func-test-1.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217817
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 22:06:47 +0000 (22:06 +0000)]
PR sanitizer/63939
* g++.dg/asan/large-func-test-1.C: Ajust dg-output.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217816
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 22:06:26 +0000 (22:06 +0000)]
PR c++/63885
* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
complain yet about a reference.
[TARGET_EXPR]: Handle TARGET_EXPR with addr == true.
[ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR.
(cxx_bind_parameters_in_call): In the new scheme addr is always false.
* typeck.c (build_address): Don't take the address of a CONSTRUCTOR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217815
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 22:06:17 +0000 (22:06 +0000)]
PR c++/57979
* init.c (decl_really_constant_value): Rename from
integral_constant_value.
(scalar_constant_value): Similar but limited to scalar results.
(decl_constant_value_safe): Remove.
(constant_value_1): Respect return_aggregate_cst_ok_p.
* typeck.c (decay_conversion): Use scalar_constant_value.
* call.c (convert_like_real): Likewise.
* cvt.c (ocp_convert): No need to check CLASS_TYPE_P.
* typeck.c (decay_conversion): Or ARRAY_TYPE.
* constexpr.c (struct constexpr_ctx): Add strict field.
(cxx_eval_constant_expression) [VAR_DECL]: Use it to select between
decl_constant_value and decl_really_constant_value.
(cxx_eval_outermost_constant_expr): Add strict parm.
(maybe_constant_init): Not strict.
(potential_constant_expression_1): Add strict parm.
Shorten most internal calls with RECUR macro.
* cp-tree.h, pt.c, semantics.c: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217814
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 21:31:23 +0000 (21:31 +0000)]
PR sanitizer/63939
* c-c++-common/asan/heap-overflow-1.c: Ajust dg-output.
* c-c++-common/asan/memcmp-1.c: Likewise.
* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
* c-c++-common/asan/use-after-free-1.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217813
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:45:03 +0000 (20:45 +0000)]
PR jit/63854: Fix leaks in test-fuzzer.c
gcc/testsuite/ChangeLog:
PR jit/63854
* jit.dg/test-fuzzer.c (fuzzer_init): Free malloced buffers.
(make_random_function): Free ff->locals.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217812
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:42:29 +0000 (20:42 +0000)]
PR jit/63854: Fix leak in ipa-icf.c
gcc/ChangeLog:
PR jit/63854
* ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
congruence_class_group *.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217811
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 19 Nov 2014 20:38:59 +0000 (20:38 +0000)]
PR target/63947
* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
Output "b" and "nb" suffix for FP mode.
testsuite/ChangeLog:
PR target/63947
* gcc.target/i386/pr63947.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217810
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Wed, 19 Nov 2014 20:35:49 +0000 (20:35 +0000)]
PR bootstrap/63963
* tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
DECL_FUNCTION_SPECIFIC_TARGET
* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
DECL_FUNCTION_SPECIFIC_TARGET.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217809
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:31:52 +0000 (20:31 +0000)]
PR jit/63854: Fix leaking vec in jit
gcc/jit/ChangeLog:
PR jit/63854
* jit-playback.c (gcc::jit::playback::compound_type::set_fields):
Convert param from const vec<playback::field *> & to
const auto_vec<playback::field *> *.
(gcc::jit::playback::context::new_function_type): Convert param
"param_types" from vec<type *> * to const auto_vec<type *> *.
(gcc::jit::playback::context::new_function): Convert param
"params" from vec<param *> * to const auto_vec<param *> *.
(gcc::jit::playback::context::build_call): Convert param "args"
from vec<rvalue *> to const auto_vec<rvalue *> *.
(gcc::jit::playback::context::new_call): Likewise.
(gcc::jit::playback::context::new_call_through_ptr): Likewise.
(wrapper_finalizer): New function.
(gcc::jit::playback::wrapper::operator new): Call the finalizer
variant of ggc_internal_cleared_alloc, supplying
wrapper_finalizer.
(gcc::jit::playback::function::finalizer): New.
(gcc::jit::playback::block::finalizer): New.
(gcc::jit::playback::source_file::finalizer): New.
(gcc::jit::playback::source_line::finalizer): New.
* jit-playback.h
(gcc::jit::playback::context::new_function_type): Convert param
"param_types" from vec<type *> * to const auto_vec<type *> *.
(gcc::jit::playback::context::new_function): Convert param
"params" from vec<param *> * to const auto_vec<param *> *.
(gcc::jit::playback::context::new_call): Convert param
"args" from vec<rvalue *> to const auto_vec<rvalue *> *.
(gcc::jit::playback::context::new_call_through_ptr): Likewise.
(gcc::jit::playback::context::build_call): Likewise.
(gcc::jit::playback::context): Convert fields "m_functions",
"m_source_files", "m_cached_locations" from vec to auto_vec.
(gcc::jit::playback::wrapper::finalizer): New virtual function.
(gcc::jit::playback::compound_type::set_fields): Convert param fro
const vec<playback::field *> & to
const auto_vec<playback::field *> *.
(gcc::jit::playback::function::finalizer): New.
(gcc::jit::playback::block::finalizer): New.
(gcc::jit::playback::source_file::finalizer): New.
(gcc::jit::playback::source_line::finalizer): New.
* jit-recording.c
(gcc::jit::recording::function_type::replay_into): Convert local
from a vec into an auto_vec.
(gcc::jit::recording::fields::replay_into): Likewise.
(gcc::jit::recording::function::replay_into): Likewise.
(gcc::jit::recording::call::replay_into): Likewise.
(gcc::jit::recording::call_through_ptr::replay_into): Likewise.
* jit-recording.h (gcc::jit::recording::context): Convert fields
"m_mementos", "m_compound_types", "m_functions" from vec<> to
auto_vec <>.
(gcc::jit::recording::function_type::get_param_types): Convert
return type from vec<type *> to const vec<type *> &.
(gcc::jit::recording::function_type): Convert field
"m_param_types" from a vec<> to an auto_vec<>.
(gcc::jit::recording::fields): Likewise for field "m_fields".
(gcc::jit::recording::function::get_params): Convert return type
from vec <param *> to const vec<param *> &.
(gcc::jit::recording::function): Convert fields "m_params",
"m_locals", "m_blocks" from vec<> to auto_vec<>.
(gcc::jit::recording::block): Likewise for field "m_statements".
vec<> to auto_vec<>.
(gcc::jit::recording::call): Likewise for field "m_args".
(gcc::jit::recording::call_through_ptr): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217808
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:26:57 +0000 (20:26 +0000)]
PR jit/63854: Add all_late_ipa_passes to GCC_PASS_LISTS
gcc/ChangeLog:
PR jit/63854
* pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217807
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:21:19 +0000 (20:21 +0000)]
PR jit/63854: lra.c: Fix leak of point_freq_vec's buffer when calling lra_inheritance
gcc/ChangeLog:
PR jit/63854
* lra.c (lra): After creating live ranges in preparation for call
to lra_inheritance, set live_p to true.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217806
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:17:44 +0000 (20:17 +0000)]
PR jit/63854: Fix leak of paths within jump threading
gcc/ChangeLog:
PR jit/63854
* tree-ssa-threadedge.c (thread_across_edge): Don't just release
"path", delete it.
* tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217804
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:14:18 +0000 (20:14 +0000)]
PR jit/63854: Fix leak of "avail" within tree-ssa-pre.c
gcc/ChangeLog:
PR jit/63854
* tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
vec<> to auto_vec<> to fix a leak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217803
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 20:10:00 +0000 (20:10 +0000)]
PR jit/63854: Fix leak of worklist within jit-recording.c
gcc/jit/ChangeLog:
PR jit/63854
* jit-recording.c (recording::function::validate): Convert
"worklist" from vec<> to autovec<> to fix a leak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217802
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:57:09 +0000 (19:57 +0000)]
PR jit/63854: Don't leak producer_string in dwarf2out.c
gcc/ChangeLog:
PR jit/63854
* dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217801
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:49:28 +0000 (19:49 +0000)]
PR jit/63854: Add ira_costs_c_finalize
gcc/ChangeLog:
PR jit/63854
* ira-costs.c (ira_costs_c_finalize): New function.
* ira.h (ira_costs_c_finalize): New prototype.
* toplev.c (toplev::finalize): Call ira_costs_c_finalize.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217800
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:45:39 +0000 (19:45 +0000)]
PR jit/63854: Fix leak of optimization_summary_obstack
gcc/ChangeLog:
PR jit/63854
* ipa-reference.c (ipa_reference_c_finalize): Release
optimization_summary_obstack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217797
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:43:20 +0000 (19:43 +0000)]
PR jit/63854: Fix leak of opts_obstack
gcc/ChangeLog:
PR jit/63854
* toplev.c (toplev::finalize): Free opts_obstack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217796
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:33:49 +0000 (19:33 +0000)]
PR jit/63854: Fix memory leak of save_decoded_options
gcc/ChangeLog:
PR jit/63854
* toplev.c (toplev::finalize): Clean up save_decoded_options.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217795
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:28:33 +0000 (19:28 +0000)]
PR jit/63854: Fix memory leak within bb-reorder.c
gcc/ChangeLog:
PR jit/63854
* bb-reorder.c
(find_rarely_executed_basic_blocks_and_crossing_edges): Convert
local bbs_in_hot_partition from vec<> to auto_vec<>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217794
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:23:06 +0000 (19:23 +0000)]
PR jit/63854: Fix memory leaks within context/pass_manager/dump_manager
gcc/ChangeLog:
PR jit/63854
* config/alpha/alpha.c (alpha_option_override): Remove static from
"handle_trap_shadows_info" and "align_insns_info".
* config/i386/i386.c (ix86_option_override): Likewise for
"insert_vzeroupper_info".
* config/rl78/rl78.c (rl78_asm_file_start): Likewise for
"rl78_devirt_info" and "rl78_move_elim_info".
* config/rs6000/rs6000.c (rs6000_option_override): Likewise for
"analyze_swaps_info".
* context.c (gcc::context::~context): New.
* context.h (gcc::context::~context): New.
* dumpfile.c (dump_files): Add "false" initializers for new field
"owns_strings".
(gcc::dump_manager::~dump_manager): New.
(gcc::dump_manager::dump_register): Add param "take_ownership".
* dumpfile.h (struct dump_file_info): Add field "owns_strings".
(gcc::dump_manager::~dump_manager): New.
(gcc::dump_manager::dump_register): Add param "take_ownership".
* pass_manager.h (gcc::pass_manager::operator delete): New.
(gcc::pass_manager::~pass_manager): New.
* passes.c (pass_manager::register_one_dump_file): Pass "true" to
new "owns_strings" argument to dump_register.
(pass_manager::operator delete): New.
(delete_pass_tree): New function.
(pass_manager::~pass_manager): New.
* statistics.c (statistics_early_init): Pass "false" to
new "owns_strings" argument to dump_register.
* toplev.c (toplev::finalize): Clean up the context and thus the
things it owns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217793
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:11:37 +0000 (19:11 +0000)]
PR jit/63854: Fix memory leak of reginfo.c: valid_mode_changes_obstack
gcc/ChangeLog:
PR jit/63854
* reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
obstack_free when cleaning up valid_mode_changes_obstack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217792
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 19:08:29 +0000 (19:08 +0000)]
PR jit/63854: Fix memory leak within gcc_options
gcc/ChangeLog:
PR jit/63854
* opts.c (finalize_options_struct): New.
* opts.h (finalize_options_struct): New.
* toplev.c (toplev::finalize): Call finalize_options_struct
on global_options and global_options_set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217791
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 19:03:20 +0000 (19:03 +0000)]
PR c++/63928
* constexpr.c (cxx_eval_store_expression): Return init, not *valp.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217790
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 18:11:54 +0000 (18:11 +0000)]
PR driver/36312
PR driver/63837
* gcc.c (process_command): Don't check for input/output
filename equality if output is HOST_BIT_BUCKET.
* toplev.c (init_asm_output): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217789
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 19 Nov 2014 17:40:42 +0000 (17:40 +0000)]
/cp
2014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55425
* constexpr.c (constexpr_fn_retval): Accept __func__, __FUNCTION__,
and __PRETTY_FUNCTION__.
/testsuite
2014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55425
* g++.dg/cpp0x/constexpr-__func__.C
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217788
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Wed, 19 Nov 2014 17:00:54 +0000 (17:00 +0000)]
Merger of git branch "gimple-classes-v2-option-3"
gcc/ChangeLog:
Merger of git branch "gimple-classes-v2-option-3".
* ChangeLog.gimple-classes: New.
* coretypes.h (struct gcond): Add forward decl.
(struct gdebug): Likewise.
(struct ggoto): Likewise.
(struct glabel): Likewise.
(struct gswitch): Likewise.
(struct gassign): Likewise.
(struct gasm): Likewise.
(struct gcall): Likewise.
(struct gtransaction): Likewise.
(struct greturn): Likewise.
(struct gbind): Likewise.
(struct gcatch): Likewise.
(struct geh_filter): Likewise.
(struct geh_mnt): Likewise.
(struct geh_else): Likewise.
(struct gresx): Likewise.
(struct geh_dispatch): Likewise.
(struct gphi): Likewise.
(struct gtry): Likewise.
(struct gomp_atomic_load): Likewise.
(struct gomp_atomic_store): Likewise.
(struct gomp_continue): Likewise.
(struct gomp_critical): Likewise.
(struct gomp_for): Likewise.
(struct gomp_parallel): Likewise.
(struct gomp_task): Likewise.
(struct gomp_sections): Likewise.
(struct gomp_single): Likewise.
(struct gomp_target): Likewise.
(struct gomp_teams): Likewise.
* doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
for renaming of gimple subclasses.
* gdbhooks.py: Update.
* gimple-iterator.c (gsi_for_phi): New.
(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
to gphi_iterator.
* gimple-iterator.h (struct gphi_iterator): New subclass of
gimple_stmt_iterator.
(gsi_for_phi): New prototype.
(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
to gphi_iterator.
(gsi_next_nonvirtual_phi): Strengthen param from
gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
gimple to gphi *.
* gsstruct.def: Update for renamings of classes.
* gimple.c (gimple_build_return): Strengthen return type from
gimple to greturn *.
(gimple_call_reset_alias_info): Strengthen param to gcall *.
(gimple_build_call_1): Strengthen return type from gimple to
gcall *.
(gimple_build_call_vec): Likewise.
(gimple_build_call): Likewise.
(gimple_build_call_valist): Likewise.
(gimple_build_call_internal_1): Likewise.
(gimple_build_call_internal): Likewise.
(gimple_build_call_internal_vec): Likewise.
(gimple_build_call_from_tree): Likewise.
(gimple_build_assign_stat): Strengthen return type from gimple to
gassign *.
(gimple_build_assign_with_ops): Likewise.
(gimple_build_assign_with_ops): Likewise.
(gimple_build_cond): Strengthen return type from gimple to
gcond *.
(gimple_build_cond_from_tree): Likewise.
(gimple_cond_set_condition_from_tree): Require a gcond *.
(gimple_build_label): Strengthen return type from gimple to
glabel *.
(gimple_build_goto): Strengthen return type from gimple to
ggoto *.
(gimple_build_bind): Strengthen return type from gimple to
gbind *.
(gimple_build_asm_1): Strengthen return type from gimple to
gasm *.
(gimple_build_asm_vec): Likewise.
(gimple_build_catch): Strengthen return type from gimple to
gcatch *.
(gimple_build_eh_filter): Strengthen return type from gimple to
geh_filter *.
(gimple_build_eh_must_not_throw): Strengthen return type from
gimple to geh_mnt *.
(gimple_build_eh_else): Strengthen return type from gimple to
geh_else *.
(gimple_build_try): Update for renaming of gimple_statement_try to
gtry.
(gimple_build_resx): Strengthen return type from gimple to
gresx *.
(gimple_build_switch_nlabels): Strengthen return type from gimple
to gswitch *.
(gimple_build_switch): Likewise.
(gimple_build_eh_dispatch): Strengthen return type from gimple to
geh_dispatch *.
(gimple_build_debug_bind_stat): Strengthen return type from gimple
to gdebug *.
(gimple_build_debug_source_bind_stat): Strengthen return type from
gimple to gdebug *.
(gimple_build_omp_critical): Strengthen return type from gimple to
gomp_critical *.
(gimple_build_omp_for): Strengthen return type from gimple to
gomp_for *.
(gimple_build_omp_parallel): Strengthen return type from gimple to
gomp_parallel *.
(gimple_build_omp_task): Strengthen return type from gimple to
gomp_task *.
(gimple_build_omp_continue): Strengthen return type from gimple to
gomp_continue *.
(gimple_build_omp_sections): Strengthen return type from gimple to
gomp_sections *.
(gimple_build_omp_single): Strengthen return type from gimple to
gomp_single *.
(gimple_build_omp_target): Strengthen return type from gimple to
gomp_target *.
(gimple_build_omp_teams): Strengthen return type from gimple to
gomp_teams *.
(gimple_build_omp_atomic_load): Strengthen return type from gimple
to gomp_atomic_load *.
(gimple_build_omp_atomic_store): Strengthen return type from gimple
to gomp_atomic_store *.
(gimple_build_transaction): Strengthen return type from gimple
to gtransaction *.
(empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
(gimple_call_fnspec): Require a const gcall *.
(gimple_call_arg_flags): Likewise.
(gimple_call_return_flags): Likewise.
(gimple_set_bb): Add a checked cast.
(gimple_copy): Within the cases, add locals of the appropriate
subclass and use in place of "stmt" and "copy" for typesafety.
(gimple_has_side_effects): Add a checked cast.
(gimple_could_trap_p_1): Likewise.
(gimple_call_copy_skip_args): Require a gcall *, and return one.
(gimple_asm_clobbers_memory_p): Require a const gasm *.
(infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
dyn_cast, introducing local "return_stmt" and using ti in place
of "stmt".
* gimple.h (gimple_vec): Eliminate this typedef.
(struct gimple_statement_call): Rename to...
(struct gcall): ...this.
(struct gimple_statement_bind): Rename to...
(struct gbind): ...this.
(struct gimple_statement_catch): Rename to...
(struct gcatch): ...this.
(struct gimple_statement_eh_filter): Rename to...
(struct geh_filter): ...this.
(struct gimple_statement_eh_else): Rename to...
(struct geh_else): ...this.
(struct gimple_statement_eh_mnt): Rename to...
(struct geh_mnt): ...this.
(struct gimple_statement_phi): Rename to...
(struct gphi): ...this.
(struct gimple_statement_resx): Rename to...
(struct gresx): ...this.
(struct gimple_statement_eh_dispatch): Rename to...
(struct geh_dispatch): ...this.
(struct gimple_statement_try): Rename to...
(struct gtry): ...this.
(struct gimple_statement_asm): Rename to...
(struct gasm): ...this.
(struct gimple_statement_omp_critical): Rename to...
(struct gomp_critical): ...this.
(struct gimple_statement_omp_for): Rename to...
(struct gomp_for): ...this.
(struct gimple_statement_omp_parallel): Rename to...
(struct gomp_parallel): ...this.
(struct gimple_statement_omp_target): Rename to...
(struct gomp_target): ...this.
(struct gimple_statement_omp_task): Rename to...
(struct gomp_task): ...this.
(struct gimple_statement_omp_sections): Rename to...
(struct gomp_sections): ...this.
(struct gimple_statement_omp_continue): Rename to...
(struct gomp_continue): ...this.
(struct gimple_statement_omp_single): Rename to...
(struct gomp_single): ...this.
(struct gimple_statement_omp_teams): Rename to...
(struct gomp_teams): ...this.
(struct gimple_statement_omp_atomic_load): Rename to...
(struct gomp_atomic_load): ...this.
(struct gimple_statement_omp_atomic_store :): Rename to...
(struct gomp_atomic_store :): ...this.
(struct gimple_statement_transaction): Rename to...
(struct gtransaction): ...this.
(struct gcond): New subclass.
(struct gdebug): New subclass.
(struct ggoto): New subclass.
(struct glabel): New subclass.
(struct gswitch): New subclass.
(struct gassign): New subclass.
(struct greturn): New subclass.
(is_a_helper <gimple_statement_asm *>::test): Rename to...
(is_a_helper <gasm *>::test): ...this.
(is_a_helper <gimple_statement_bind *>::test): Rename to...
(is_a_helper <gbind *>::test): ...this.
(is_a_helper <gassign *>::test): New.
(is_a_helper <gimple_statement_call *>::test): Rename to...
(is_a_helper <gcall *>::test): ...this.
(is_a_helper <gimple_statement_catch *>::test): Rename to...
(is_a_helper <gcatch *>::test): ...this.
(is_a_helper <gimple_statement_resx *>::test): Rename to...
(is_a_helper <gresx *>::test): ...this.
(is_a_helper <gcond *>::test): New.
(is_a_helper <gdebug *>::test): New.
(is_a_helper <ggoto *>::test): New.
(is_a_helper <glabel *>::test): New.
(is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
(is_a_helper <geh_dispatch *>::test): ...this.
(is_a_helper <gimple_statement_eh_else *>::test): Rename to...
(is_a_helper <geh_else *>::test): ...this.
(is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
(is_a_helper <geh_filter *>::test): ...this.
(is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
(is_a_helper <geh_mnt *>::test): ...this.
(is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
(is_a_helper <gomp_atomic_load *>::test): ...this.
(is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
(is_a_helper <gomp_atomic_store *>::test): ...this.
(is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
(is_a_helper <gomp_continue *>::test): ...this.
(is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
(is_a_helper <gomp_critical *>::test): ...this.
(is_a_helper <gimple_statement_omp_for *>::test): Rename to...
(is_a_helper <gomp_for *>::test): ...this.
(is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
(is_a_helper <gomp_parallel *>::test): ...this.
(is_a_helper <gimple_statement_omp_target *>::test): Rename to...
(is_a_helper <gomp_target *>::test): ...this.
(is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
(is_a_helper <gomp_sections *>::test): ...this.
(is_a_helper <gimple_statement_omp_single *>::test): Rename to...
(is_a_helper <gomp_single *>::test): ...this.
(is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
(is_a_helper <gomp_teams *>::test): ...this.
(is_a_helper <gimple_statement_omp_task *>::test): Rename to...
(is_a_helper <gomp_task *>::test): ...this.
(is_a_helper <gimple_statement_phi *>::test): Rename to...
(is_a_helper <gphi *>::test): ...this.
(is_a_helper <gimple_statement_transaction *>::test): Rename to...
(is_a_helper <gtransaction *>::test): ...this.
(is_a_helper <greturn *>::test): New.
(is_a_helper <gswitch *>::test): New.
(is_a_helper <gimple_statement_try *>::test): Rename to...
(is_a_helper <gtry *>::test): ...this.
(is_a_helper <const gimple_statement_asm *>::test): Rename to...
(is_a_helper <const gasm *>::test): ...this.
(is_a_helper <const gimple_statement_bind *>::test): Rename to...
(is_a_helper <const gbind *>::test): ...this.
(is_a_helper <const gimple_statement_call *>::test): Rename to...
(is_a_helper <const gcall *>::test): ...this.
(is_a_helper <const gimple_statement_catch *>::test): Rename to...
(is_a_helper <const gcatch *>::test): ...this.
(is_a_helper <const gimple_statement_resx *>::test): Rename to...
(is_a_helper <const gresx *>::test): ...this.
(is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
(is_a_helper <const geh_dispatch *>::test): ...this.
(is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
(is_a_helper <const geh_filter *>::test): ...this.
(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
Rename to...
(is_a_helper <const gomp_atomic_load *>::test): ...this.
(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
Rename to...
(is_a_helper <const gomp_atomic_store *>::test): ...this.
(is_a_helper <const gimple_statement_omp_continue *>::test):
Rename to...
(is_a_helper <const gomp_continue *>::test): ...this.
(is_a_helper <const gimple_statement_omp_critical *>::test):
Rename to...
(is_a_helper <const gomp_critical *>::test): ...this.
(is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
(is_a_helper <const gomp_for *>::test): ...this.
(is_a_helper <const gimple_statement_omp_parallel *>::test):
Rename to...
(is_a_helper <const gomp_parallel *>::test): ...this.
(is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
(is_a_helper <const gomp_target *>::test): ...this.
(is_a_helper <const gimple_statement_omp_sections *>::test):
Rename to...
(is_a_helper <const gomp_sections *>::test): ...this.
(is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
(is_a_helper <const gomp_single *>::test): ...this.
(is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
(is_a_helper <const gomp_teams *>::test): ...this.
(is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
(is_a_helper <const gomp_task *>::test): ...this.
(is_a_helper <const gimple_statement_phi *>::test): Rename to...
(is_a_helper <const gphi *>::test): ...this.
(is_a_helper <const gimple_statement_transaction *>::test): Rename to...
(is_a_helper <const gtransaction *>::test): ...this.
(gimple_build_return): Strengthen return type to greturn *.
(gimple_call_reset_alias_info): Require a gcall *.
(gimple_build_call_vec): Return a gcall *.
(gimple_build_call): Likewise.
(gimple_build_call_valist): Likewise.
(gimple_build_call_internal): Likewise.
(gimple_build_call_internal_vec): Likewise.
(gimple_build_call_from_tree): Likewise.
(gimple_build_assign_stat): Return a gassign *.
(gimple_build_assign_with_ops): Likewise.
(gimple_build_cond): Return a gcond *.
(gimple_build_cond_from_tree): Likewise.
(gimple_cond_set_condition_from_tree): Require a gcond *.
(gimple_build_label): Return a glabel *.
(gimple_build_goto): Return a ggoto *.
(gimple_build_bind): Return a gbind *.
(gimple_build_asm_vec): Return a gasm *.
(gimple_build_catch): Return a gcatch *.
(gimple_build_eh_filter): Return a geh_filter *.
(gimple_build_eh_must_not_throw): Return a geh_mnt *.
(gimple_build_eh_else): Return a geh_else *.
(gimple_build_try): Return a gtry *.
(gimple_build_resx): Return a gresx *.
(gimple_build_switch_nlabels): Return a gswitch *.
(gimple_build_switch): Return a gswitch *.
(gimple_build_eh_dispatch): Return a geh_dispatch *.
(gimple_build_debug_bind_stat): Return a gdebug *.
(gimple_build_debug_source_bind_stat): Return a gdebug *.
(gimple_build_omp_critical): Return a gomp_critical *.
(gimple_build_omp_for): Return a gomp_for *.
(gimple_build_omp_parallel): Return a gomp_parallel *.
(gimple_build_omp_task): Return a gomp_task *.
(gimple_build_omp_continue): Return a gomp_continue *.
(gimple_build_omp_sections): Return a gomp_sections *.
(gimple_build_omp_single): Return a gomp_single *.
(gimple_build_omp_target): Return a gomp_target *.
(gimple_build_omp_teams): Return a gomp_teams *.
(gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
(gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
(gimple_build_transaction): Return a gtransaction *.
(gimple_call_arg_flags): Require a const gcall *.
(gimple_call_return_flags): Likewise.
(gimple_call_copy_skip_args): Require and return a gcall *.
(gimple_asm_clobbers_memory_p): Require a const gasm *.
(gimple_seq_first_stmt_as_a_bind): New.
(gimple_assign_nontemporal_move_p): Require a const gassign *
rather than a const_gimple.
(gimple_call_internal_fn): Update for renaming to gcall.
(gimple_call_fntype): Likewise.
(gimple_call_set_fntype): Require a gcall * rather than a gimple.
(gimple_call_set_fn): Likewise.
(gimple_call_set_internal_fn): Likewise.
(gimple_call_set_chain): Likewise.
(gimple_call_set_tail): Likewise.
(gimple_call_tail_p): Likewise.
(gimple_call_set_return_slot_opt): Likewise.
(gimple_call_return_slot_opt_p): Likewise.
(gimple_call_set_from_thunk): Likewise.
(gimple_call_from_thunk_p): Likewise.
(gimple_call_set_va_arg_pack): Likewise.
(gimple_call_va_arg_pack_p): Likewise.
(gimple_call_set_nothrow): Likewise.
(gimple_call_nothrow_p): Likewise.
(gimple_call_set_alloca_for_var): Likewise.
(gimple_call_alloca_for_var_p): Likewise.
(gimple_call_use_set): Likewise.
(gimple_call_clobber_set): Likewise.
(gimple_call_return_type): Require a const gcall * rather than a
const_gimple.
(gimple_call_chain_ptr): Likewise.
(gimple_call_copy_flags): Require a pair of gcall *.
(gimple_cond_set_code): Require a gcond * rather than a gimple
(gimple_cond_set_lhs): Likewise.
(gimple_cond_set_rhs): Likewise.
(gimple_cond_set_true_label): Likewise.
(gimple_cond_set_false_label): Likewise.
(gimple_cond_make_false): Likewise.
(gimple_cond_make_true): Likewise.
(gimple_cond_lhs_ptr): Require a const gcond * rather than a
const_gimple.
(gimple_cond_rhs_ptr): Likewise.
(gimple_cond_true_label): Likewise.
(gimple_cond_false_label): Likewise.
(gimple_cond_true_p): Likewise.
(gimple_cond_false_p): Likewise.
(gimple_cond_set_condition): Likewise.
(gimple_label_label): Require a const glabel *.
(gimple_label_set_label): Require a glabel *.
(gimple_goto_set_dest): Require a ggoto *.
(gimple_bind_vars): Require a const gbind *.
(gimple_bind_block): Likewise.
(gimple_bind_set_vars): Require a gbind *.
(gimple_bind_append_vars): Likewise.
(gimple_bind_body_ptr): Likewise.
(gimple_bind_body): Likewise.
(gimple_bind_set_body): Likewise.
(gimple_bind_add_stmt): Likewise.
(gimple_bind_add_seq): Likewise.
(gimple_bind_set_block): Likewise.
(gimple_asm_ninputs): Require a const gasm *.
(gimple_asm_noutputs): Likewise.
(gimple_asm_nclobbers): Likewise.
(gimple_asm_nlabels): Likewise.
(gimple_asm_input_op): Likewise.
(gimple_asm_input_op_ptr): Likewise.
(gimple_asm_output_op): Likewise.
(gimple_asm_output_op_ptr): Likewise.
(gimple_asm_clobber_op): Likewise.
(gimple_asm_label_op): Likewise.
(gimple_asm_string): Likewise.
(gimple_asm_volatile_p): Likewise.
(gimple_asm_input_p): Likewise.
(gimple_asm_set_input_op): Require a gasm *.
(gimple_asm_set_output_op): Likewise.
(gimple_asm_set_clobber_op): Likewise.
(gimple_asm_set_label_op): Likewise.
(gimple_asm_set_volatile): Likewise.
(gimple_asm_set_input): Likewise.
(gimple_catch_types): Require a const gcatch *.
(gimple_catch_types_ptr): Require a gcatch *.
(gimple_catch_handler_ptr): Likewise.
(gimple_catch_handler): Likewise.
(gimple_catch_set_types): Likewise.
(gimple_catch_set_handler): Likewise.
(gimple_eh_filter_types): Update for renaming of subclass to
geh_filter.
(gimple_eh_filter_types_ptr): Likewise.
(gimple_eh_filter_failure_ptr): Likewise.
(gimple_eh_filter_set_types): Require a geh_filter *.
(gimple_eh_filter_set_failure): Likewise.
(gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
(gimple_eh_must_not_throw_set_fndecl): Likewise.
(gimple_eh_else_n_body_ptr): Require a geh_else *.
(gimple_eh_else_n_body): Likewise.
(gimple_eh_else_e_body_ptr): Likewise.
(gimple_eh_else_e_body): Likewise.
(gimple_eh_else_set_n_body): Likewise.
(gimple_eh_else_set_e_body): Likewise.
(gimple_try_set_kind): Require a gtry *.
(gimple_try_set_catch_is_cleanup): Likewise.
(gimple_try_set_eval): Likewise.
(gimple_try_set_cleanup): Likewise.
(gimple_try_eval_ptr): Update for renaming of subclass to gtry.
(gimple_try_cleanup_ptr): Likewise.
(gimple_phi_capacity): Update for renaming of subclass to gphi.
(gimple_phi_num_args): Likewise.
(gimple_phi_result): Likewise.
(gimple_phi_result_ptr): Likewise.
(gimple_phi_arg): Likewise.
(gimple_phi_set_result): Require a gphi *.
(gimple_phi_set_arg): Likewise.
(gimple_phi_arg_def_ptr): Likewise.
(gimple_phi_arg_edge): Likewise.
(gimple_phi_arg_location): Likewise.
(gimple_phi_arg_location_from_edge): Likewise.
(gimple_phi_arg_set_location): Likewise.
(gimple_phi_arg_has_location): Likewise.
(gimple_resx_region): Require a const gresx *.
(gimple_resx_set_region): Require a gresx *.
(gimple_eh_dispatch_region): Require a const geh_dispatch *.
(gimple_eh_dispatch_set_region): Require a geh_dispatch *.
(gimple_switch_num_labels): Require a const gswitch *.
(gimple_switch_set_num_labels): Likewise.
(gimple_switch_index): Likewise.
(gimple_switch_index_ptr): Likewise.
(gimple_switch_label): Likewise.
(gimple_switch_default_label): Likewise.
(gimple_switch_set_index): Require a gswitch *.
(gimple_switch_set_label): Likewise.
(gimple_switch_set_default_label): Likewise.
(gimple_omp_critical_name): Require a const gomp_critical *.
(gimple_omp_critical_name_ptr): Require a gomp_critical *.
(gimple_omp_critical_set_name): Likewise.
(gimple_omp_for_set_kind): Require a gomp_for *.
(gimple_omp_for_set_combined_p): Likewise.
(gimple_omp_for_set_combined_into_p): Likewise.
(gimple_omp_for_clauses): Update for renaming of subclass to
gomp_for.
(gimple_omp_for_clauses_ptr): Likewise.
(gimple_omp_for_set_clauses): Likewise.
(gimple_omp_for_collapse): Likewise.
(gimple_omp_for_index): Likewise.
(gimple_omp_for_index_ptr): Likewise.
(gimple_omp_for_set_index): Likewise.
(gimple_omp_for_initial): Likewise.
(gimple_omp_for_initial_ptr): Likewise.
(gimple_omp_for_set_initial): Likewise.
(gimple_omp_for_final): Likewise.
(gimple_omp_for_final_ptr): Likewise.
(gimple_omp_for_set_final): Likewise.
(gimple_omp_for_incr): Likewise.
(gimple_omp_for_incr_ptr): Likewise.
(gimple_omp_for_set_incr): Likewise.
(gimple_omp_for_pre_body): Likewise.
(gimple_omp_for_set_pre_body): Likewise.
(gimple_omp_parallel_clauses): Update for renaming of subclass to
gomp_parallel.
(gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
(gimple_omp_parallel_set_clauses): Likewise.
(gimple_omp_parallel_child_fn_ptr): Likewise.
(gimple_omp_parallel_set_child_fn): Likewise.
(gimple_omp_parallel_data_arg_ptr): Likewise.
(gimple_omp_parallel_set_data_arg): Likewise.
(gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
(gimple_omp_parallel_data_arg): Likewise.
(gimple_omp_task_clauses): Update for renaming of subclass to
gomp_task.
(gimple_omp_task_clauses_ptr): Likewise.
(gimple_omp_task_set_clauses): Likewise.
(gimple_omp_task_child_fn): Likewise.
(gimple_omp_task_child_fn_ptr): Likewise.
(gimple_omp_task_set_child_fn): Likewise.
(gimple_omp_task_data_arg): Likewise.
(gimple_omp_task_data_arg_ptr): Likewise.
(gimple_omp_task_set_data_arg): Likewise.
(gimple_omp_taskreg_clauses): Whitespace fixes.
(gimple_omp_taskreg_clauses_ptr): Likewise.
(gimple_omp_taskreg_set_clauses): Likewise.
(gimple_omp_taskreg_child_fn): Likewise.
(gimple_omp_taskreg_child_fn_ptr): Likewise.
(gimple_omp_taskreg_set_child_fn): Likewise.
(gimple_omp_taskreg_data_arg): Likewise.
(gimple_omp_taskreg_data_arg_ptr): Likewise.
(gimple_omp_taskreg_set_data_arg): Likewise.
(gimple_omp_task_copy_fn): Update for renaming of subclass to
gomp_task.
(gimple_omp_task_copy_fn_ptr): Likewise.
(gimple_omp_task_set_copy_fn): Likewise.
(gimple_omp_task_arg_size): Likewise.
(gimple_omp_task_arg_size_ptr): Likewise.
(gimple_omp_task_set_arg_size): Likewise.
(gimple_omp_task_arg_align): Likewise.
(gimple_omp_task_arg_align_ptr): Likewise.
(gimple_omp_task_set_arg_align): Likewise.
(gimple_omp_single_clauses): Update for renaming of subclass to
gomp_single.
(gimple_omp_single_clauses_ptr): Likewise.
(gimple_omp_single_set_clauses): Likewise.
(gimple_omp_target_clauses): Update for renaming of subclass to
gomp_target.
(gimple_omp_target_clauses_ptr): Likewise.
(gimple_omp_target_set_clauses): Require a gomp_target *.
(gimple_omp_target_set_kind): Likewise.
(gimple_omp_target_child_fn_ptr): Likewise.
(gimple_omp_target_set_child_fn): Likewise.
(gimple_omp_target_data_arg_ptr): Likewise.
(gimple_omp_target_set_data_arg): Likewise.
(gimple_omp_target_child_fn): Require a const gomp_target *.
(gimple_omp_target_data_arg): Likewise.
(gimple_omp_teams_clauses): Update for renaming of subclass to
gomp_teams.
(gimple_omp_teams_clauses_ptr): Likewise.
(gimple_omp_teams_set_clauses): Require a gomp_teams *.
(gimple_omp_sections_clauses): Update for renaming of subclass to
gomp_sections.
(gimple_omp_sections_clauses_ptr): Likewise.
(gimple_omp_sections_set_clauses): Likewise.
(gimple_omp_sections_control): Likewise.
(gimple_omp_sections_control_ptr): Likewise.
(gimple_omp_sections_set_control): Likewise.
(gimple_omp_for_set_cond): Likewise.
(gimple_omp_for_cond): Likewise.
(gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
(gimple_omp_atomic_store_val_ptr): Likewise.
(gimple_omp_atomic_load_set_lhs): Likewise.
(gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
(gimple_omp_atomic_load_lhs): Likewise.
(gimple_omp_atomic_load_rhs): Likewise.
(gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
(gimple_omp_atomic_load_set_rhs): Likewise.
(gimple_omp_atomic_load_rhs_ptr): Likewise.
(gimple_omp_continue_control_def): Require a const gomp_continue *.
(gimple_omp_continue_control_use): Likewise.
(gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
(gimple_omp_continue_set_control_def): Likewise.
(gimple_omp_continue_control_use_ptr): Likewise.
(gimple_omp_continue_set_control_use): Likewise.
(gimple_transaction_body_ptr): Require a gtransaction *.
(gimple_transaction_body): Likewise.
(gimple_transaction_label_ptr): Likewise.
(gimple_transaction_label): Require a const gtransaction *.
(gimple_transaction_subcode): Likewise.
(gimple_transaction_set_body): Require a gtransaction *.
(gimple_transaction_set_label): Likewise.
(gimple_transaction_set_subcode): Likewise.
(gimple_return_retval_ptr): Require a const greturn *.
(gimple_return_retval): Likewise.
(gimple_return_set_retval): Require a greturn *.
(gimple_expr_type): Introduce local "call_stmt" and use in place of
"stmt" for typesafety.
* asan.c: Use gimple subclasses.
* auto-profile.c: Likewise.
* builtins.c: Likewise.
* builtins.h: Likewise.
* cfgexpand.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* expr.h: Likewise.
* gimple-builder.c: Likewise.
* gimple-builder.h: Likewise.
* gimple-fold.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-ssa-isolate-paths.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimple-walk.c: Likewise.
* gimplify-me.c: Likewise.
* gimplify.c: Likewise.
* gimplify.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* internal-fn.c: Likewise.
* internal-fn.def:: Likewise.
* internal-fn.h: Likewise.
* ipa-icf-gimple.c: Likewise.
* ipa-icf-gimple.h: Likewise.
* ipa-icf.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-split.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* omp-low.c: Likewise.
* predict.c: Likewise.
* sanopt.c: Likewise.
* sese.c: Likewise.
* ssa-iterators.h: Likewise.
* stmt.c: Likewise.
* trans-mem.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfg.h: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chkp.c: Likewise.
* tree-chkp.h: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-eh.h: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-into-ssa.h: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nrv.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-phinodes.h: Likewise.
* tree-predcom.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-scalar-evolution.h
* tree-sra.cn_function):
* tree-ssa-alias.c: Likewise.
* tree-ssa-alias.h: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-loop-unswitch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-propagate.h: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* tree-ssa-sink.c: Likewise.
* tree-ssa-strlen.c
* tree-ssa-structalias.c
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadedge.h: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.h: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* ubsan.c: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
* vtable-verify.c: Likewise.
gcc/c-family/ChangeLog:
Merger of git branch "gimple-classes-v2-option-3".
* ChangeLog.gimple-classes: New.
* c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
from being just a vec<gimple> to a vec<gbind *>.
gcc/java/ChangeLog:
Merger of git branch "gimple-classes-v2-option-3".
* ChangeLog.gimple-classes: New.
* java-gimplify.c (java_gimplify_block): Strengthen local "outer"
from gimple to gbind *.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217787
138bc75d-0d04-0410-961f-
82ee72b054a4
renlin [Wed, 19 Nov 2014 16:34:38 +0000 (16:34 +0000)]
[AArch64] Implement <su><maxmin>v2di3 pattern
gcc/:
PR target/63424
* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
gcc/testsuite/:
PR target/63424
* gcc.target/aarch64/pr63424.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217786
138bc75d-0d04-0410-961f-
82ee72b054a4
trippels [Wed, 19 Nov 2014 16:28:23 +0000 (16:28 +0000)]
rs6000: Fix signed integer overflows
bootstrap-ubsan on gcc112 shows a couple of signed integer overflows:
config/rs6000/constraints.md:143:33: runtime error: signed integer overflow:
9223372036854775807 + 32768 cannot be represented in type 'long int'
config/rs6000/predicates.md:396:22: runtime error: signed integer overflow:
9223372036854775807 +
2147516416 cannot be represented in type 'long int'
config/rs6000/predicates.md:856:11: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:862:12: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:865:11: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:868:12: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:914:11: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:917:12: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:940:11: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:946:12: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:949:11: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
config/rs6000/predicates.md:955:12: runtime error: negation of -
9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself
2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de>
* config/rs6000/constraints.md: Avoid signed integer overflows.
* config/rs6000/predicates.md: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217785
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Wed, 19 Nov 2014 16:15:34 +0000 (16:15 +0000)]
Fix up accidentally twice-applied patch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217784
138bc75d-0d04-0410-961f-
82ee72b054a4
renlin [Wed, 19 Nov 2014 15:15:51 +0000 (15:15 +0000)]
2014-11-19 Renlin Li <Renlin.Li@arm.com>
PR middle-end/63762
* ira.c (ira): Update preferred class.
* gcc.dg/pr63762.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217783
138bc75d-0d04-0410-961f-
82ee72b054a4
mkuvyrkov [Wed, 19 Nov 2014 15:09:29 +0000 (15:09 +0000)]
* MAINTAINERS (OS Port Maintainers): Add overdue maintainership note
from 2 years ago.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217782
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 14:43:02 +0000 (14:43 +0000)]
* gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
(gimple_assign_set_rhs_with_ops_1): Renamed to ...
(gimple_assign_set_rhs_with_ops): ... this. Adjust binary arg
inline overload to use it. Add unary arg overload.
* gimple.c (gimple_build_assign_with_ops): New unary arg overload.
(gimple_assign_set_rhs_from_tree): Use
gimple_assign_set_rhs_with_ops instead of
gimple_assign_set_rhs_with_ops_1.
(gimple_assign_set_rhs_with_ops_1): Renamed to ...
(gimple_assign_set_rhs_with_ops): ... this.
* ipa-split.c (split_function): Remove last NULL argument
from gimple_build_assign_with_ops call.
* tree-ssa-loop-im.c
(move_computations_dom_walker::before_dom_children): Likewise.
* tsan.c (instrument_builtin_call): Likewise.
* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
vectorizable_conversion, vectorizable_load): Likewise.
* tree-vect-loop.c (vect_is_simple_reduction_1,
get_initial_def_for_induction): Likewise.
* tree-loop-distribution.c (generate_memset_builtin): Likewise.
* tree-vect-patterns.c (vect_handle_widen_op_by_const,
vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
* tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
neg_replacement): Likewise.
* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
* omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
simd_clone_adjust): Likewise.
* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
* gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
replace_one_candidate): Likewise.
* gimple-builder.c (build_type_cast): Likewise.
* tree-ssa-forwprop.c (simplify_rotate): Likewise.
(forward_propagate_addr_expr_1): Remove last NULL argument
from gimple_assign_set_rhs_with_ops call.
(simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
instead of gimple_assign_set_rhs_with_ops_1.
* tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
argument from gimple_build_assign_with_ops call.
(repropagate_negates): Remove last NULL argument from
gimple_assign_set_rhs_with_ops call.
* ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
last NULL argument from gimple_build_assign_with_ops call.
(instrument_bool_enum_load): Likewise. Remove last NULL argument
from gimple_assign_set_rhs_with_ops call.
* tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
Remove last NULL argument from gimple_build_assign_with_ops call.
(bswap_replace): Likewise. Use gimple_assign_set_rhs_with_ops instead
of gimple_assign_set_rhs_with_ops_1.
(convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
instead of gimple_assign_set_rhs_with_ops_1.
* gimple-fold.c (replace_stmt_with_simplification): Likewise.
(rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
from gimple_build_assign_with_ops call.
* tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
from gimple_assign_set_rhs_with_ops call.
* tree-vrp.c (simplify_truth_ops_using_ranges,
simplify_bit_ops_using_ranges): Remove last NULL argument from
gimple_assign_set_rhs_with_ops call.
(simplify_float_conversion_using_ranges,
simplify_internal_call_using_ranges): Remove last NULL argument from
gimple_build_assign_with_ops call.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217781
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Wed, 19 Nov 2014 14:40:26 +0000 (14:40 +0000)]
[AArch64] Adjust generic move costs
2014-11-19 Wilco Dijkstra <wdijkstr@arm.com>
PR target/61915
* config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move cost.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217780
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 14:32:09 +0000 (14:32 +0000)]
Fixing the mess I did with the two previous commits. Sorry!
PR sanitizer/62132
* c-c++-common/asan/misalign-1.c: Pass -fno-omit-frame-pointer on
darwin, adjust dg-output.
* c-c++-common/asan/misalign-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217779
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Wed, 19 Nov 2014 14:32:02 +0000 (14:32 +0000)]
PR sanitizer/63690
* ubsan.c (instrument_object_size): Check for MEM_REF.
* gcc.dg/ubsan/pr63690.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217778
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 14:29:43 +0000 (14:29 +0000)]
PR sanitizer/62132
* c-c++-common/asan/misalign-1.c: Pass -fno-omit-frame-pointer on
darwin, adjust dg-output.
* c-c++-common/asan/misalign-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217777
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Wed, 19 Nov 2014 14:28:23 +0000 (14:28 +0000)]
PR sanitizer/62132
* c-c++-common/asan/misalign-1.c: Pass -fno-omit-frame-pointer on
darwin, adjust dg-output.
* c-c++-common/asan/misalign-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217776
138bc75d-0d04-0410-961f-
82ee72b054a4
avelenko [Wed, 19 Nov 2014 14:09:26 +0000 (14:09 +0000)]
* MAINTAINERS (Write After Approval): Revert my previous change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217775
138bc75d-0d04-0410-961f-
82ee72b054a4
renlin [Wed, 19 Nov 2014 14:03:47 +0000 (14:03 +0000)]
2014-11-19 Renlin Li <Renlin.Li@arm.com>
* MAINTAINERS (Write After Approval): Revert my previous change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217774
138bc75d-0d04-0410-961f-
82ee72b054a4
iverbin [Wed, 19 Nov 2014 13:52:12 +0000 (13:52 +0000)]
PR regression/63868
* cgraph.c (cgraph_node::create): Guard g->have_offload with
ifdef ENABLE_OFFLOADING.
* omp-low.c (create_omp_child_function): Likewise.
(expand_omp_target): Guard node->mark_force_output and offload_funcs
with ifdef ENABLE_OFFLOADING.
* varpool.c (varpool_node::get_create): Guard g->have_offload and
offload_vars with ifdef ENABLE_OFFLOADING.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217773
138bc75d-0d04-0410-961f-
82ee72b054a4
fyang [Wed, 19 Nov 2014 13:46:16 +0000 (13:46 +0000)]
PR target/59593
* config/arm/arm.md (define_attr "arch"): Add v6t2.
(define_attr "arch_enabled"): Add test for the above.
(*movhi_insn_arch4): Add new alternative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217772
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Wed, 19 Nov 2014 13:31:24 +0000 (13:31 +0000)]
Allow the static chain to be set from C
We need to be able to set the static chain on a few calls within the
Go runtime, so expose this with __builtin_call_with_static_chain.
* c-family/c-common.c (c_common_reswords): Add
__builtin_call_with_static_chain.
* c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
* c/c-parser.c (c_parser_postfix_expression): Handle it.
* doc/extend.texi (__builtin_call_with_static_chain): Document it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217771
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Wed, 19 Nov 2014 13:30:59 +0000 (13:30 +0000)]
Allow the front-end to create calls with a static chain
And, at the same time, allow indirect calls to have a static chain.
We'll always eliminate the static chain if we can prove it's unused.
* calls.c (prepare_call_address): Allow decl or type for first arg.
(expand_call): Pass type to prepare_call_address if no decl.
* gimple-fold.c (gimple_fold_call): Eliminate the static chain if
the function doesn't use it; fold it otherwise.
* gimplify.c (gimplify_call_expr): Gimplify the static chain.
* tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
function calls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217770
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Wed, 19 Nov 2014 13:30:34 +0000 (13:30 +0000)]
Make TARGET_STATIC_CHAIN allow a function type
As opposed to always being a decl. This is a prerequisite
to allowing the static chain to be loaded for indirect calls.
* targhooks.c (default_static_chain): Remove check for
DECL_STATIC_CHAIN.
* config/moxie/moxie.c (moxie_static_chain): Likewise.
* config/i386/i386.c (ix86_static_chain): Allow decl or type
as the first argument.
* config/xtensa/xtensa.c (xtensa_static_chain): Change the name
of the unused first parameter.
* doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
may be a type.
* target.def (static_chain): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217769
138bc75d-0d04-0410-961f-
82ee72b054a4
renlin [Wed, 19 Nov 2014 12:47:26 +0000 (12:47 +0000)]
This is simple patch to add more conditional macros defined in ACLE 2.0.
2014-10-17 Renlin Li <Renlin.Li@arm.com>
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
__ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217768
138bc75d-0d04-0410-961f-
82ee72b054a4
renlin [Wed, 19 Nov 2014 12:30:32 +0000 (12:30 +0000)]
2014-11-19 Renlin Li <Renlin.Li@arm.com>
* MAINTAINERS (Write After Approval): Add myself.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217767
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Wed, 19 Nov 2014 12:03:04 +0000 (12:03 +0000)]
PR sanitizer/63879
* fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
!TYPE_OVERFLOW_SANITIZED.
(fold_negate_expr) <case INTEGER_CST>: Fold when overflow
does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
is 0.
* c-c++-common/ubsan/pr63879-1.c: New test.
* c-c++-common/ubsan/pr63879-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217766
138bc75d-0d04-0410-961f-
82ee72b054a4
tocarip [Wed, 19 Nov 2014 11:48:48 +0000 (11:48 +0000)]
gcc/
2014-11-19 Ilya Tocar <ilya.tocar@intel.com>
* collect2.c (main): Don't call fatal_error before
diagnostic_initialize.
* lto-wrapper.c (main): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217765
138bc75d-0d04-0410-961f-
82ee72b054a4
avelenko [Wed, 19 Nov 2014 10:47:58 +0000 (10:47 +0000)]
* MAINTAINERS: Added myself to maintainers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217762
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Wed, 19 Nov 2014 10:44:58 +0000 (10:44 +0000)]
Fix tail-merge pass for dead type-unsafe code
2014-11-19 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/62167
* tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
conservatively.
(gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
assigns.
* gcc.dg/pr51879-12.c: Add xfails.
* gcc.dg/pr62167-run.c: New test.
* gcc.dg/pr62167.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217761
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 19 Nov 2014 10:30:29 +0000 (10:30 +0000)]
* testsuite/libgomp.c/examples-4/e.53.5.c: Require
vect_simd_clones effective target.
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217760
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 09:50:58 +0000 (09:50 +0000)]
PR tree-optimization/63915
* tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
true instead of false as last argument to gsi_replace.
* c-c++-common/gomp/pr60823-4.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217759
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 09:49:18 +0000 (09:49 +0000)]
PR sanitizer/63520
* internal-fn.c (expand_ubsan_result_store): New function.
(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
Use it instead of just emit_move_insn.
* c-c++-common/ubsan/pr63520.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217758
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 19 Nov 2014 09:47:19 +0000 (09:47 +0000)]
2014-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/63844
* omp-low.c (fixup_child_record_type): Use a restrict qualified
referece type for the receiver parameter.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217757
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 19 Nov 2014 09:36:40 +0000 (09:36 +0000)]
2014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57654
* g++.dg/cpp0x/constexpr-ref7.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217756
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 09:27:30 +0000 (09:27 +0000)]
PR sanitizer/63913
* ubsan.c: Include tree-eh.h.
(instrument_bool_enum_load): Handle loads that can throw.
* g++.dg/ubsan/pr63913.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217755
138bc75d-0d04-0410-961f-
82ee72b054a4
schwab [Wed, 19 Nov 2014 08:48:54 +0000 (08:48 +0000)]
* gcc.dg/pure-2.c: Update line numbers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217754
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 19 Nov 2014 08:18:53 +0000 (08:18 +0000)]
PR rtl-optimization/63843
* simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
optimization of ashiftrt of subreg of lshiftrt, check that code
is ASHIFTRT.
* gcc.c-torture/execute/pr63843.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217753
138bc75d-0d04-0410-961f-
82ee72b054a4
amacleod [Wed, 19 Nov 2014 03:37:34 +0000 (03:37 +0000)]
2014-11-18 Andrew MacLeod <amacleod@redhat.com>
* attribs.c (decl_attributes): Remove always true condition,
TREE_TYPE(x) will never compare equal to a TYPE_DECL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217750
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 03:03:45 +0000 (03:03 +0000)]
PR c++/63924
* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: A load
from a variable of empty class type is constant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217749
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 03:03:39 +0000 (03:03 +0000)]
* constexpr.c (cxx_eval_statement_list): Handle statement-expressions.
(potential_constant_expression_1): Handle STMT_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217748
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 03:03:34 +0000 (03:03 +0000)]
* constexpr.c (cxx_eval_constant_expression): Give jump_target a
default argument.
(lots): Omit NULL jump_target arguments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217747
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 19 Nov 2014 03:03:28 +0000 (03:03 +0000)]
* constexpr.c (struct constexpr_ctx): Add quiet field.
(cxx_eval_outermost_constant_expr, is_sub_constant_expr): Set it.
(lots): Replace allow_non_constant parameter with ctx->quiet.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217746
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 19 Nov 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217745
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Tue, 18 Nov 2014 22:45:21 +0000 (22:45 +0000)]
[Patch] PR target/63937 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P should take an unsigned HOST_WIDE_INT size argument
gcc/
PR target/63937
* target.def (use_by_pieces_infrastructure_p): Take unsigned
HOST_WIDE_INT as the size parameter.
* targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
* targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
* config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
* config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
* config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
* config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
* config/aarch64/aarch64.c
(aarch64_use_by_pieces_infrastructure_p)): Likewise.
* doc/tm.texi: Regenerate.
gcc/testsuite/
PR target/63937
* gcc.dg/memset-2.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217742
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 18 Nov 2014 22:15:42 +0000 (22:15 +0000)]
PR sanitizer/63813
* c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
argument to ptype, set type to TREE_TYPE (ptype). Don't call
get_pointer_alignment for non-pointers. Use ptype, or if it is
reference type, corresponding pointer type, as type of kind
argument.
(ubsan_maybe_instrument_reference,
ubsan_maybe_instrument_member_call): Adjust callers.
* g++.dg/ubsan/pr63813.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217741
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 18 Nov 2014 22:13:16 +0000 (22:13 +0000)]
PR tree-optimization/61042
* gcc.c-torture/compile/pr61042.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217740
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Tue, 18 Nov 2014 22:12:52 +0000 (22:12 +0000)]
2014-11-17 Bob Dunlop <bob.dunlop@xyzzy.org.uk>
* mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than
overwriting.
(CXXFLAGS_FOR_TARGET): Similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217739
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 18 Nov 2014 21:14:49 +0000 (21:14 +0000)]
PR c++/63940
* constexpr.c (cxx_eval_binary_expression): Don't assume the
expression was already folded.
(cxx_eval_unary_expression): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217738
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Tue, 18 Nov 2014 20:44:16 +0000 (20:44 +0000)]
* ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
(ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
(ipa_get_indirect_edge_target_1): Use opt_for_fn.
(good_cloning_opportunity_p): Likewise.
(ipa-cp gate): Enable ipa-cp with LTO.
* ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
* ipa.c (symbol_table::remove_unreachable_nodes): Always build type
inheritance.
* ipa-inline-transform.c (inline_transform): Check if there are inlines
to apply even at -O0.
* cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
(analyze_functions): Build type inheritance graph.
* ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
(want_early_inline_function_p, want_inline_small_function_p):
Likewise.
(check_callers): Likewise.
(edge_badness): Likewise.
(inline_small_functions): Always be ready for indirect inlining
to happend.
(ipa_inline): Always use want_inline_function_to_all_callers_p.
(early_inline_small_functions): Use opt_for_fn.
* ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
(estimate_function_body_sizes): Likewise.
(compute_inline_parameters): Likewise.
(estimate_edge_devirt_benefit): Likewise.
(inline_analyze_function): Likewise.
* ipa-devirt.c (ipa_devirt): Likewise.
(gate): Use in_lto_p.
* ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
(try_make_edge_direct_virtual_call): Likewise.
(update_indirect_edges_after_inlining): Likewise.
(ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
* common.opt (findirect-inlining): Turn into optimization.
* ipa-pure-const.c (add_new_function): Use opt_for_fn.
(pure_const_generate_summary): Likewise.
(gate_pure_const): Always enable with in_lto_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217737
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Tue, 18 Nov 2014 20:20:53 +0000 (20:20 +0000)]
2014-11-18 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/43622
gcc/cp/
* rtti.c (emit_support_tinfos): Handle __float128.
libstdc++-v3/
* config/abi/pre/float128.ver: New file.
* configure.ac: Use float128.ver when relevant.
* configure: Regenerate.
* testsuite/util/testsuite_abi.cc (check_version): Accept new
CXXABI_FLOAT128 version.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217735
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 18 Nov 2014 19:09:55 +0000 (19:09 +0000)]
PR c++/63925
* constexpr.c (cxx_eval_increment_expression): Use POINTER_PLUS_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217731
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 18 Nov 2014 17:29:41 +0000 (17:29 +0000)]
compiler: Initialize variables in declaration order.
Fixes issue 8052.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217730
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 18 Nov 2014 17:07:24 +0000 (17:07 +0000)]
PR c++/63934
* constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
rather than VOID_TYPE_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217729
138bc75d-0d04-0410-961f-
82ee72b054a4
macro [Tue, 18 Nov 2014 16:52:02 +0000 (16:52 +0000)]
* config/mips/mips.md (compression): Add `micromips32' setting.
(enabled, length): Handle it.
(shift_compression): Replace `micromips' with `micromips32' in
the `compression' attribute.
(*add<mode>3, sub<mode>3): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217728
138bc75d-0d04-0410-961f-
82ee72b054a4
macro [Tue, 18 Nov 2014 16:46:52 +0000 (16:46 +0000)]
* gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
range, a jump otherwise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217727
138bc75d-0d04-0410-961f-
82ee72b054a4
macro [Tue, 18 Nov 2014 16:34:21 +0000 (16:34 +0000)]
* gcc.dg/atomic/c11-atomic-exec-5.c (dg-timeout-factor): New
setting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217726
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 18 Nov 2014 16:26:02 +0000 (16:26 +0000)]
[ARM/AArch64] Improve modeled latency between FP operations and FP->GP register moves
* config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
Split into...
(cortex_a15_gp_to_vfp): ...This.
(cortex_a15_fp_to_gp): ...And this.
Define and comment bypass from vfp operations to fp->gp moves.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217725
138bc75d-0d04-0410-961f-
82ee72b054a4
marxin [Tue, 18 Nov 2014 16:18:46 +0000 (16:18 +0000)]
fibonacci_heap is used for var-tracking.
* var-tracking.c (vt_find_locations): New fibonacci_node is used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217724
138bc75d-0d04-0410-961f-
82ee72b054a4
marxin [Tue, 18 Nov 2014 16:17:28 +0000 (16:17 +0000)]
bt-load is ported to fibonacci_heap.
* bt-load.c (add_btr_def): New fibonacci_heap is used.
(migrate_btr_defs): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217723
138bc75d-0d04-0410-961f-
82ee72b054a4
marxin [Tue, 18 Nov 2014 16:15:52 +0000 (16:15 +0000)]
tracer ported to new fibonacci_heap data structure.
* tracer.c (tail_duplicate): New fibonacci_heap class is used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217722
138bc75d-0d04-0410-961f-
82ee72b054a4
marxin [Tue, 18 Nov 2014 16:13:05 +0000 (16:13 +0000)]
fibonacci_heap is used for bb-reoder purpose.
* bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
(find_traces): Likewise.
(find_traces_1_round): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217721
138bc75d-0d04-0410-961f-
82ee72b054a4
marxin [Tue, 18 Nov 2014 16:09:11 +0000 (16:09 +0000)]
New template fibonacci_heap class introduced.
* fibonacci_heap.h: New file.
(fibonacci_heap::insert): Created from fibheap_insert.
(fibonacci_heap::empty): Created from fibheap_empty.
(fibonacci_heap::nodes): Created from fibheap_nodes.
(fibonacci_heap::min_key): Created from fibheap_min_key.
(fibonacci_heap::decrease_key): Created from fibheap_replace_key.
(fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
(fibonacci_heap::extract_min): Created from fibheap_extract_min.
(fibonacci_heap::min): Created from fibheap_min.
(fibonacci_heap::replace_data): Created from fibheap_replace_data.
(fibonacci_heap::delete_node): Created from fibheap_delete_node.
(fibonacci_heap::union_with): Created from fibheap_union.
* ipa-inline.c (update_edge_key): New heap API is used.
(update_caller_keys): Likewise.
(update_callee_keys): Likewise.
(lookup_recursive_calls): Likewise.
(recursive_inlining): Likewise.
(add_new_edges_to_heap): Likewise.
(heap_edge_removal_hook): Likewise.
(inline_small_functions): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217720
138bc75d-0d04-0410-961f-
82ee72b054a4