platform/upstream/gcc.git
9 years ago[multiple changes]
Arnaud Charlet [Thu, 20 Nov 2014 11:13:40 +0000 (12:13 +0100)]
[multiple changes]

2014-11-20  Pascal Obry  <obry@adacore.com>

* initialize.c (ProcListCS): New extern variable (critical section).
(ProcListEvt): New extern variable (handle).
(__gnat_initialize)[Win32]: Initialize the ProcListCS critical
section object and the ProcListEvt event.
* final.c (__gnat_finalize)[Win32]: Properly finalize the
ProcListCS critical section and the ProcListEvt event.
* adaint.c (ProcListEvt): New Win32 event handle.
(EnterCS): New routine to enter the critical section when dealing with
child processes chain list.
(LeaveCS): As above to exit from the critical section.
(SignalListChanged): Routine to signal that the chain process list has
been updated.
(add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the
handle has been added.
(__gnat_win32_remove_handle): Use EnterCS/LeaveCS,
also call SignalListChanged if the handle has been found and removed.
(remove_handle): Routine removed, implementation merged with the above.
(win32_wait): Use EnterCS/LeaveCS for the critical section. Properly
copy the PID list locally to ensure that even if the list is updated
the local copy remains valid. Add into the hl (handle list) the
ProcListEvt handle. This handle is used to signal that a change has
been made into the process chain list. This is to ensure that a waiting
call can be resumed to take into account new processes. We also make
sure that if the handle was not found into the list we start over
the wait call. Indeed another concurrent call to win32_wait()
could already have handled this process.

2014-11-20  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Actuals): The legality rule concerning
the use of class-wide actuals for a non-controlling formal are
not rechecked in an instance.

2014-11-20  Pascal Obry  <obry@adacore.com>

* g-dirope.ads: Minor typo fix.

2014-11-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference,
Expand_Update_Attribute): Preserve the tag of a prefix by offering
a specific view of the class-wide version of the prefix.

From-SVN: r217837

9 years ago[multiple changes]
Arnaud Charlet [Thu, 20 Nov 2014 11:02:25 +0000 (12:02 +0100)]
[multiple changes]

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.

From-SVN: r217836

9 years ago[multiple changes]
Arnaud Charlet [Thu, 20 Nov 2014 11:00:44 +0000 (12:00 +0100)]
[multiple changes]

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.

From-SVN: r217835

9 years agosem_ch3.adb (Analyze_Object_Declaration): Swap a couple of tests in a condition so...
Eric Botcazou [Thu, 20 Nov 2014 10:56:01 +0000 (10:56 +0000)]
sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of tests in a condition so Following_Address_Clause is invoked...

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.

From-SVN: r217834

9 years agoMinor reformatting.
Arnaud Charlet [Thu, 20 Nov 2014 10:47:23 +0000 (11:47 +0100)]
Minor reformatting.

From-SVN: r217833

9 years agoadaint.c (remove_handle): New local routine without a lock.
Pascal Obry [Thu, 20 Nov 2014 10:47:11 +0000 (10:47 +0000)]
adaint.c (remove_handle): New local routine without a lock.

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.

From-SVN: r217832

9 years ago[multiple changes]
Arnaud Charlet [Thu, 20 Nov 2014 10:46:08 +0000 (11:46 +0100)]
[multiple changes]

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.

From-SVN: r217831

9 years agore PR target/63966 (inconsistent operand constraints compiling build libcpp)
Uros Bizjak [Thu, 20 Nov 2014 10:43:45 +0000 (11:43 +0100)]
re PR target/63966 (inconsistent operand constraints compiling build libcpp)

PR target/63966
* lex.c [__i386__ || __x86_64__]: Include system <cpuid.h> for
GCC_VERSION < 5000.

From-SVN: r217830

9 years ago[multiple changes]
Arnaud Charlet [Thu, 20 Nov 2014 10:01:05 +0000 (11:01 +0100)]
[multiple changes]

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.

From-SVN: r217829

9 years agore PR tree-optimization/63962 ([x86] Code pessimization after r217213)
Richard Biener [Thu, 20 Nov 2014 09:26:48 +0000 (09:26 +0000)]
re PR tree-optimization/63962 ([x86] Code pessimization after r217213)

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.

From-SVN: r217828

9 years agore PR tree-optimization/63677 (Failure to constant fold with vectorization.)
Richard Biener [Thu, 20 Nov 2014 08:40:52 +0000 (08:40 +0000)]
re PR tree-optimization/63677 (Failure to constant fold with vectorization.)

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.

From-SVN: r217827

9 years agoFix missing output formatter.
Ramana Radhakrishnan [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.

From-SVN: r217826

9 years agore PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with ...
Igor Zamyatin [Thu, 20 Nov 2014 08:15:21 +0000 (08:15 +0000)]
re PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with -fpic)

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.

From-SVN: r217825

9 years agotree.c (free_lang_data_in_type): If BINFO has no important information in it, set...
Jan Hubicka [Thu, 20 Nov 2014 06:15:03 +0000 (07:15 +0100)]
tree.c (free_lang_data_in_type): If BINFO has no important information in it, set it to NULL.

* 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.

From-SVN: r217824

9 years agore PR c++/56041 (Constexpr conversion function definition not found in template argum...
Jason Merrill [Thu, 20 Nov 2014 03:25:26 +0000 (22:25 -0500)]
re PR c++/56041 (Constexpr conversion function definition not found in template argument context)

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.

From-SVN: r217823

9 years agoDaily bump.
GCC Administrator [Thu, 20 Nov 2014 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217822

9 years agore PR sanitizer/63939 (Massive asan failures (356) on darwin)
Francois-Xavier Coudert [Wed, 19 Nov 2014 22:33:36 +0000 (22:33 +0000)]
re PR sanitizer/63939 (Massive asan failures (356) on darwin)

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.

From-SVN: r217817

9 years agore PR sanitizer/63939 (Massive asan failures (356) on darwin)
Francois-Xavier Coudert [Wed, 19 Nov 2014 22:06:47 +0000 (22:06 +0000)]
re PR sanitizer/63939 (Massive asan failures (356) on darwin)

PR sanitizer/63939
* g++.dg/asan/large-func-test-1.C: Ajust dg-output.

From-SVN: r217816

9 years agore PR c++/63885 (ICE in static assert of constexpr forwarding xvalue container member...
Jason Merrill [Wed, 19 Nov 2014 22:06:26 +0000 (17:06 -0500)]
re PR c++/63885 (ICE in static assert of constexpr forwarding xvalue container member rvalue reference)

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.

From-SVN: r217815

9 years agore PR c++/57979 (G++ accepts constant expression defined using floating point non...
Jason Merrill [Wed, 19 Nov 2014 22:06:17 +0000 (17:06 -0500)]
re PR c++/57979 (G++ accepts constant expression defined using floating point non-constexpr glvalue)

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.

From-SVN: r217814

9 years agore PR sanitizer/63939 (Massive asan failures (356) on darwin)
Francois-Xavier Coudert [Wed, 19 Nov 2014 21:31:23 +0000 (21:31 +0000)]
re PR sanitizer/63939 (Massive asan failures (356) on darwin)

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.

From-SVN: r217813

9 years agoPR jit/63854: Fix leaks in test-fuzzer.c
David Malcolm [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.

From-SVN: r217812

9 years agoPR jit/63854: Fix leak in ipa-icf.c
David Malcolm [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 *.

From-SVN: r217811

9 years agore PR target/63947 (Wrong fcmov suffix)
Uros Bizjak [Wed, 19 Nov 2014 20:38:59 +0000 (21:38 +0100)]
re PR target/63947 (Wrong fcmov suffix)

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.

From-SVN: r217810

9 years agore PR lto/63963 (LTO doesn't work with __attribute__((__target__("sse4.2"))))
Jan Hubicka [Wed, 19 Nov 2014 20:35:49 +0000 (21:35 +0100)]
re PR lto/63963 (LTO doesn't work with __attribute__((__target__("sse4.2"))))

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.

From-SVN: r217809

9 years agoPR jit/63854: Fix leaking vec in jit
David Malcolm [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.

From-SVN: r217808

9 years agoPR jit/63854: Add all_late_ipa_passes to GCC_PASS_LISTS
David Malcolm [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.

From-SVN: r217807

9 years agoPR jit/63854: lra.c: Fix leak of point_freq_vec's buffer when calling lra_inheritance
David Malcolm [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.

From-SVN: r217806

9 years agoPR jit/63854: Fix leak of paths within jump threading
David Malcolm [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.

From-SVN: r217804

9 years agoPR jit/63854: Fix leak of "avail" within tree-ssa-pre.c
David Malcolm [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.

From-SVN: r217803

9 years agoPR jit/63854: Fix leak of worklist within jit-recording.c
David Malcolm [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.

From-SVN: r217802

9 years agoPR jit/63854: Don't leak producer_string in dwarf2out.c
David Malcolm [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.

From-SVN: r217801

9 years agoPR jit/63854: Add ira_costs_c_finalize
David Malcolm [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.

From-SVN: r217800

9 years agoPR jit/63854: Fix leak of optimization_summary_obstack
David Malcolm [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.

From-SVN: r217797

9 years agoPR jit/63854: Fix leak of opts_obstack
David Malcolm [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.

From-SVN: r217796

9 years agoPR jit/63854: Fix memory leak of save_decoded_options
David Malcolm [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.

From-SVN: r217795

9 years agoPR jit/63854: Fix memory leak within bb-reorder.c
David Malcolm [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<>.

From-SVN: r217794

9 years agoPR jit/63854: Fix memory leaks within context/pass_manager/dump_manager
David Malcolm [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.

From-SVN: r217793

9 years agoPR jit/63854: Fix memory leak of reginfo.c: valid_mode_changes_obstack
David Malcolm [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.

From-SVN: r217792

9 years agoPR jit/63854: Fix memory leak within gcc_options
David Malcolm [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.

From-SVN: r217791

9 years agore PR c++/63928 (use after free in cp/constexpr.c)
Jason Merrill [Wed, 19 Nov 2014 19:03:20 +0000 (14:03 -0500)]
re PR c++/63928 (use after free in cp/constexpr.c)

PR c++/63928
* constexpr.c (cxx_eval_store_expression): Return init, not *valp.

From-SVN: r217790

9 years agore PR driver/36312 (should refuse to overwrite input file with output file)
Manuel López-Ibáñez [Wed, 19 Nov 2014 18:11:54 +0000 (18:11 +0000)]
re PR driver/36312 (should refuse to overwrite input file with output file)

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.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r217789

9 years agore PR c++/55425 (constexpr does not work in many situations (both built-in and user...
Paolo Carlini [Wed, 19 Nov 2014 17:40:42 +0000 (17:40 +0000)]
re PR c++/55425 (constexpr does not work in many situations  (both built-in and user supplied literals))

/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

From-SVN: r217788

9 years agoMerger of git branch "gimple-classes-v2-option-3"
David Malcolm [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 *.

From-SVN: r217787

9 years ago[AArch64] Implement <su><maxmin>v2di3 pattern
Renlin Li [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.

From-SVN: r217786

9 years agors6000: Fix signed integer overflows
Markus Trippelsdorf [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.

From-SVN: r217785

9 years agoFix up accidentally twice-applied patch.
Marek Polacek [Wed, 19 Nov 2014 16:15:34 +0000 (16:15 +0000)]
Fix up accidentally twice-applied patch.

From-SVN: r217784

9 years agore PR middle-end/63762 ([ARM]GCC generates UNPREDICTABLE STR with Rn = Rt when hard...
Renlin Li [Wed, 19 Nov 2014 15:15:51 +0000 (15:15 +0000)]
re PR middle-end/63762 ([ARM]GCC generates UNPREDICTABLE STR with Rn = Rt when hard-float abi is used)

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.

From-SVN: r217783

9 years agoMAINTAINERS (OS Port Maintainers): Add overdue maintainership note from 2 years ago.
Maxim Kuvyrkov [Wed, 19 Nov 2014 15:09:29 +0000 (15:09 +0000)]
MAINTAINERS (OS Port Maintainers): Add overdue maintainership note from 2 years ago.

* MAINTAINERS (OS Port Maintainers): Add overdue maintainership note
from 2 years ago.

From-SVN: r217782

9 years agogimple.h (gimple_build_assign_with_ops): Add unary arg overload.
Jakub Jelinek [Wed, 19 Nov 2014 14:43:02 +0000 (15:43 +0100)]
gimple.h (gimple_build_assign_with_ops): Add unary arg overload.

* 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.

From-SVN: r217781

9 years ago[AArch64] Adjust generic move costs
Wilco Dijkstra [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.

From-SVN: r217780

9 years agoFixing the mess I did with the two previous commits. Sorry!
François-Xavier Coudert [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.

From-SVN: r217779

9 years agore PR sanitizer/63690 (ICE: tree check: expected class 'expression', have 'constant...
Marek Polacek [Wed, 19 Nov 2014 14:32:02 +0000 (14:32 +0000)]
re PR sanitizer/63690 (ICE: tree check: expected class 'expression', have 'constant' (string_cst) with -fsanitize=undefined)

PR sanitizer/63690
* ubsan.c (instrument_object_size): Check for MEM_REF.

* gcc.dg/ubsan/pr63690.c: New test.

From-SVN: r217778

9 years agore PR sanitizer/62132 (FAIL: c-c++-common/asan/misalign-[12].c after r213807 on x86_6...
François-Xavier Coudert [Wed, 19 Nov 2014 14:29:43 +0000 (14:29 +0000)]
re PR sanitizer/62132 (FAIL: c-c++-common/asan/misalign-[12].c after r213807 on x86_64-apple-darwin13 with -m32)

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.

From-SVN: r217777

9 years agore PR sanitizer/62132 (FAIL: c-c++-common/asan/misalign-[12].c after r213807 on x86_6...
Francois-Xavier Coudert [Wed, 19 Nov 2014 14:28:23 +0000 (14:28 +0000)]
re PR sanitizer/62132 (FAIL: c-c++-common/asan/misalign-[12].c after r213807 on x86_64-apple-darwin13 with -m32)

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.

From-SVN: r217776

9 years agoMAINTAINERS (Write After Approval): Revert my previous change.
Alex Velenko [Wed, 19 Nov 2014 14:09:26 +0000 (14:09 +0000)]
MAINTAINERS (Write After Approval): Revert my previous change.

* MAINTAINERS (Write After Approval): Revert my previous change.

From-SVN: r217775

9 years agoMAINTAINERS (Write After Approval): Revert my previous change.
Renlin Li [Wed, 19 Nov 2014 14:03:47 +0000 (14:03 +0000)]
MAINTAINERS (Write After Approval): Revert my previous change.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

        * MAINTAINERS (Write After Approval): Revert my previous change.

From-SVN: r217774

9 years agore PR regression/63868 (Multiple failures in the libgomp test suite between r217458...
Ilya Verbin [Wed, 19 Nov 2014 13:52:12 +0000 (13:52 +0000)]
re PR regression/63868 (Multiple failures in the libgomp test suite between r217458 and r217501.)

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.

From-SVN: r217773

9 years agore PR target/59593 ([arm big-endian] using "ldrh" access a immediate which stored...
Felix Yang [Wed, 19 Nov 2014 13:46:16 +0000 (13:46 +0000)]
re PR target/59593 ([arm big-endian] using "ldrh" access a  immediate  which stored in a memory by word)

        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.

Co-Authored-By: Shanyao Chen <chenshanyao@huawei.com>
From-SVN: r217772

9 years agoAllow the static chain to be set from C
Richard Henderson [Wed, 19 Nov 2014 13:31:24 +0000 (05:31 -0800)]
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.

From-SVN: r217771

9 years agoAllow the front-end to create calls with a static chain
Richard Henderson [Wed, 19 Nov 2014 13:30:59 +0000 (05:30 -0800)]
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.

From-SVN: r217770

9 years agoMake TARGET_STATIC_CHAIN allow a function type
Richard Henderson [Wed, 19 Nov 2014 13:30:34 +0000 (05:30 -0800)]
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.

From-SVN: r217769

9 years agoThis is simple patch to add more conditional macros defined in ACLE 2.0.
Renlin Li [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.

From-SVN: r217768

9 years agoMAINTAINERS (Write After Approval): Add myself.
Renlin Li [Wed, 19 Nov 2014 12:30:32 +0000 (12:30 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

        * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r217767

9 years agore PR middle-end/63879 (ICE compiling Linux Kernel fs/ext3/namei.c with -fsanitize...
Marek Polacek [Wed, 19 Nov 2014 12:03:04 +0000 (12:03 +0000)]
re PR middle-end/63879 (ICE compiling Linux Kernel fs/ext3/namei.c with -fsanitize=undefined)

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.

From-SVN: r217766

9 years agocollect2.c (main): Don't call fatal_error before diagnostic_initialize.
Ilya Tocar [Wed, 19 Nov 2014 11:48:48 +0000 (11:48 +0000)]
collect2.c (main): Don't call fatal_error before diagnostic_initialize.

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.

From-SVN: r217765

9 years ago* MAINTAINERS: Added myself to maintainers.
Alex Velenko [Wed, 19 Nov 2014 10:47:58 +0000 (10:47 +0000)]
* MAINTAINERS: Added myself to maintainers.

From-SVN: r217762

9 years agoFix tail-merge pass for dead type-unsafe code
Tom de 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.

From-SVN: r217761

9 years agoe.53.5.c: Require vect_simd_clones effective target.
Uros Bizjak [Wed, 19 Nov 2014 10:30:29 +0000 (11:30 +0100)]
e.53.5.c: Require vect_simd_clones effective target.

* 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.

From-SVN: r217760

9 years agore PR tree-optimization/63915 (gomp/pr60823-2.c:31:1: error: dead STMT in EH table)
Jakub Jelinek [Wed, 19 Nov 2014 09:50:58 +0000 (10:50 +0100)]
re PR tree-optimization/63915 (gomp/pr60823-2.c:31:1: error: dead STMT in EH table)

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.

From-SVN: r217759

9 years agore PR sanitizer/63520 (ICE: in get_biv_step, at loop-iv.c:824 with -fsanitize=undefin...
Jakub Jelinek [Wed, 19 Nov 2014 09:49:18 +0000 (10:49 +0100)]
re PR sanitizer/63520 (ICE: in get_biv_step, at loop-iv.c:824 with -fsanitize=undefined on ppc64)

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.

From-SVN: r217758

9 years agore PR tree-optimization/63844 (open mp parallelization prevents vectorization)
Richard Biener [Wed, 19 Nov 2014 09:47:19 +0000 (09:47 +0000)]
re PR tree-optimization/63844 (open mp parallelization prevents vectorization)

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.

From-SVN: r217757

9 years agore PR c++/57654 ([c++11] static class member reference-to-a-reference will not compile)
Paolo Carlini [Wed, 19 Nov 2014 09:36:40 +0000 (09:36 +0000)]
re PR c++/57654 ([c++11] static class member reference-to-a-reference will not compile)

2014-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/57654
* g++.dg/cpp0x/constexpr-ref7.C: New.

From-SVN: r217756

9 years agore PR sanitizer/63913 (ICE: verify_gimple failed: statement marked for throw, but...
Jakub Jelinek [Wed, 19 Nov 2014 09:27:30 +0000 (10:27 +0100)]
re PR sanitizer/63913 (ICE: verify_gimple failed: statement marked for throw, but doesn't with -fnon-call-exceptions -fsanitize=bool)

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.

From-SVN: r217755

9 years ago* gcc.dg/pure-2.c: Update line numbers.
Andreas Schwab [Wed, 19 Nov 2014 08:48:54 +0000 (08:48 +0000)]
* gcc.dg/pure-2.c: Update line numbers.

From-SVN: r217754

9 years agore PR rtl-optimization/63843 (wrong code generation at -O1 and higher)
Jakub Jelinek [Wed, 19 Nov 2014 08:18:53 +0000 (09:18 +0100)]
re PR rtl-optimization/63843 (wrong code generation at -O1 and higher)

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.

From-SVN: r217753

9 years agoattribs.c (decl_attributes): Remove always true condition, TREE_TYPE(x) will never...
Andrew MacLeod [Wed, 19 Nov 2014 03:37:34 +0000 (03:37 +0000)]
attribs.c (decl_attributes): Remove always true condition, TREE_TYPE(x) will never compare equal to a TYPE_DECL.

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.

From-SVN: r217750

9 years agore PR c++/63924 (Constexpr constructible expression "is not constexpr" when used...
Jason Merrill [Wed, 19 Nov 2014 03:03:45 +0000 (22:03 -0500)]
re PR c++/63924 (Constexpr constructible expression "is not constexpr" when used in a template non-type argument)

PR c++/63924
* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: A load
from a variable of empty class type is constant.

From-SVN: r217749

9 years agoconstexpr.c (cxx_eval_statement_list): Handle statement-expressions.
Jason Merrill [Wed, 19 Nov 2014 03:03:39 +0000 (22:03 -0500)]
constexpr.c (cxx_eval_statement_list): Handle statement-expressions.

* constexpr.c (cxx_eval_statement_list): Handle statement-expressions.
(potential_constant_expression_1): Handle STMT_EXPR.

From-SVN: r217748

9 years agoconstexpr.c (cxx_eval_constant_expression): Give jump_target a default argument.
Jason Merrill [Wed, 19 Nov 2014 03:03:34 +0000 (22:03 -0500)]
constexpr.c (cxx_eval_constant_expression): Give jump_target a default argument.

* constexpr.c (cxx_eval_constant_expression): Give jump_target a
default argument.
(lots): Omit NULL jump_target arguments.

From-SVN: r217747

9 years agoconstexpr.c (struct constexpr_ctx): Add quiet field.
Jason Merrill [Wed, 19 Nov 2014 03:03:28 +0000 (22:03 -0500)]
constexpr.c (struct constexpr_ctx): Add quiet field.

* 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.

From-SVN: r217746

9 years agoDaily bump.
GCC Administrator [Wed, 19 Nov 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217745

9 years ago[Patch] PR target/63937 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P should take an unsigned...
James Greenhalgh [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.

From-SVN: r217742

9 years agore PR sanitizer/63813 ([UBSAN] ICE in ubsan_type_descriptor, at ubsan.c:346)
Jakub Jelinek [Tue, 18 Nov 2014 22:15:42 +0000 (23:15 +0100)]
re PR sanitizer/63813 ([UBSAN] ICE in ubsan_type_descriptor, at ubsan.c:346)

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.

From-SVN: r217741

9 years agore PR tree-optimization/61042 (ICE on valid code at -O3 on x86_64-linux-gnu)
Jakub Jelinek [Tue, 18 Nov 2014 22:13:16 +0000 (23:13 +0100)]
re PR tree-optimization/61042 (ICE on valid code at -O3 on x86_64-linux-gnu)

PR tree-optimization/61042
* gcc.c-torture/compile/pr61042.c: New test.

From-SVN: r217740

9 years agomt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than overwriting.
Bob Dunlop [Tue, 18 Nov 2014 22:12:52 +0000 (22:12 +0000)]
mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than overwriting.

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.

From-SVN: r217739

9 years agore PR c++/63940 (C++ constexpr errors on AIX)
Jason Merrill [Tue, 18 Nov 2014 21:14:49 +0000 (16:14 -0500)]
re PR c++/63940 (C++ constexpr errors on AIX)

PR c++/63940
* constexpr.c (cxx_eval_binary_expression): Don't assume the
expression was already folded.
(cxx_eval_unary_expression): Likewise.

From-SVN: r217738

9 years agoipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
Jan Hubicka [Tue, 18 Nov 2014 20:44:16 +0000 (21:44 +0100)]
ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.

* 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.

From-SVN: r217737

9 years agore PR libstdc++/43622 (Incomplete C++ library support for __float128)
Marc Glisse [Tue, 18 Nov 2014 20:20:53 +0000 (21:20 +0100)]
re PR libstdc++/43622 (Incomplete C++ library support for __float128)

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.

From-SVN: r217735

9 years agore PR c++/63925 (ICE with C++14 constexpr when trying to constexprify std::min)
Jason Merrill [Tue, 18 Nov 2014 19:09:55 +0000 (14:09 -0500)]
re PR c++/63925 (ICE with C++14 constexpr when trying to constexprify std::min)

PR c++/63925
* constexpr.c (cxx_eval_increment_expression): Use POINTER_PLUS_EXPR.

From-SVN: r217731

9 years agocompiler: Initialize variables in declaration order.
Ian Lance Taylor [Tue, 18 Nov 2014 17:29:41 +0000 (17:29 +0000)]
compiler: Initialize variables in declaration order.

Fixes issue 8052.

From-SVN: r217730

9 years agore PR c++/63934 ([C++] internal compiler error: in adjust_temp_type, at cp/constexpr...
Jason Merrill [Tue, 18 Nov 2014 17:07:24 +0000 (12:07 -0500)]
re PR c++/63934 ([C++] internal compiler error: in adjust_temp_type, at cp/constexpr.c:1020)

PR c++/63934
* constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
rather than VOID_TYPE_P.

From-SVN: r217729

9 years agomips.md (compression): Add `micromips32' setting.
Maciej W. Rozycki [Tue, 18 Nov 2014 16:52:02 +0000 (16:52 +0000)]
mips.md (compression): Add `micromips32' setting.

* 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.

From-SVN: r217728

9 years agomips.md (*jump_absolute): Use a branch when in range, a jump otherwise.
Maciej W. Rozycki [Tue, 18 Nov 2014 16:46:52 +0000 (16:46 +0000)]
mips.md (*jump_absolute): Use a branch when in range, a jump otherwise.

* gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
range, a jump otherwise.

From-SVN: r217727

9 years agoc11-atomic-exec-5.c (dg-timeout-factor): New setting.
Maciej W. Rozycki [Tue, 18 Nov 2014 16:34:21 +0000 (16:34 +0000)]
c11-atomic-exec-5.c (dg-timeout-factor): New setting.

* gcc.dg/atomic/c11-atomic-exec-5.c (dg-timeout-factor): New
setting.

From-SVN: r217726

9 years ago[ARM/AArch64] Improve modeled latency between FP operations and FP->GP register moves
Kyrylo Tkachov [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.

From-SVN: r217725

9 years agofibonacci_heap is used for var-tracking.
Martin Liska [Tue, 18 Nov 2014 16:18:46 +0000 (17:18 +0100)]
fibonacci_heap is used for var-tracking.

* var-tracking.c (vt_find_locations): New fibonacci_node is used.

From-SVN: r217724

9 years agobt-load is ported to fibonacci_heap.
Martin Liska [Tue, 18 Nov 2014 16:17:28 +0000 (17:17 +0100)]
bt-load is ported to fibonacci_heap.

* bt-load.c (add_btr_def): New fibonacci_heap is used.
(migrate_btr_defs): Likewise.

From-SVN: r217723

9 years agotracer ported to new fibonacci_heap data structure.
Martin Liska [Tue, 18 Nov 2014 16:15:52 +0000 (17:15 +0100)]
tracer ported to new fibonacci_heap data structure.

* tracer.c (tail_duplicate): New fibonacci_heap class is used.

From-SVN: r217722

9 years agofibonacci_heap is used for bb-reoder purpose.
Martin Liska [Tue, 18 Nov 2014 16:13:05 +0000 (17:13 +0100)]
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.

From-SVN: r217721