Jakub Jelinek [Thu, 6 Feb 2014 21:54:21 +0000 (22:54 +0100)]
re PR rtl-optimization/60030 (ICE in simplify_subreg, at simplify-rtx.c:5903)
PR rtl-optimization/60030
* internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
lopart with paradoxical subreg before shifting it up by hprec.
Kyrylo Tkachov [Thu, 6 Feb 2014 16:51:03 +0000 (16:51 +0000)]
[ARM] Cortex-A57 rtx costs
* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
Remove extra newline at end of file.
* config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
(arm_issue_rate): Handle cortexa57.
* config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
(cortex-a57.cortex-a53): Likewise.
Jakub Jelinek [Thu, 6 Feb 2014 15:52:36 +0000 (16:52 +0100)]
re PR debug/59575 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2239)
PR target/59575
* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
don't record in REG_FRAME_RELATED_EXPR registers not set in that
bitmask.
(arm_expand_prologue): Adjust all callers.
(arm_unwind_emit_sequence): Allow saved, but not important for unwind
info, registers also at the lowest numbered registers side. Use
gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
XEXP.
Jakub Jelinek [Thu, 6 Feb 2014 15:52:17 +0000 (16:52 +0100)]
re PR debug/59575 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2239)
PR target/59575
* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
don't record in REG_FRAME_RELATED_EXPR registers not set in that
bitmask.
(arm_expand_prologue): Adjust all callers.
(arm_unwind_emit_sequence): Allow saved, but not important for unwind
info, registers also at the lowest numbered registers side. Use
gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
XEXP.
* sem_prag.adb (Analyze_Refined_Pragma): Remove
local variable Pack_Spec. Refinement pragmas may now apply to
bodies of both visible and private subprograms.
2014-02-06 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Expand_Loop_Entry_Attribute):
Minor change (Attr => N) (Expand_Pred_Succ): New name
Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case
Max): Expand into if expression if Modify_Tree_For_C mode.
(Expand_N_Attribute_Reference, case Min): ditto
* sinfo.ads: Modify_Tree_For_C takes care of expanding Min and
Max attributes.
2014-02-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): Do not generate
predicate check if this is an internal declaration with
No_Initialization set, as for an expanded aggregate component.
2014-02-06 Doug Rupp <rupp@adacore.com>
* init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal
conditions with severity of "SUCCESS" or "INFORMATIONAL".
* sem_prag.adb (Analyze_Abstract_State): Update
all calls to Create_Abstract_State to pass the proper state
"declaration".
(Create_Abstract_State): Add new formal parameter
State_Decl along with comment on usage. Establish a link between
the abstract state entity and the state declaration.
Robert Dewar [Thu, 6 Feb 2014 14:09:36 +0000 (14:09 +0000)]
sem_attr.adb (Analyze_Attribute, case Max): Check for improper comparison of unordered enumeration type.
2014-02-06 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Analyze_Attribute, case Max): Check for improper
comparison of unordered enumeration type.
(Analyze_Attribute, case Max): Check for improper comparison of
unordered enumeration type.
* sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to
sem_util.adb.
* sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference):
Moved here from Sem_Res.
Jakub Jelinek [Thu, 6 Feb 2014 10:59:30 +0000 (11:59 +0100)]
re PR middle-end/59150 (ICE: in expand_one_var, at cfgexpand.c:1242 with -fopenmp)
PR middle-end/59150
* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
free_data_ref on the dr first, and before goto again also set dr
to the next dr. For simd_lane_access, free old datarefs[i] before
overwriting it. For get_vectype_for_scalar_type failure, don't
free_data_ref if simd_lane_access.
* sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local
variable Spec. Do not inherit the null indicator from the
subprogram body when generating the spec.
Arnaud Charlet [Thu, 6 Feb 2014 10:23:17 +0000 (11:23 +0100)]
[multiple changes]
2014-02-06 Robert Dewar <dewar@adacore.com>
* casing.adb (Determine_Casing): Consider SPARK_Mode to be
mixed case.
2014-02-06 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false
when the function has a foreign convention, but not if only the
limited return type has such a convention.
* sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local
variable Spec. Comment reformatting. Use Copy_Separate_Tree
rather than New_Copy_Tree when building the corresponding
subprogram declaration.
* gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
gnatmetric.
2014-02-06 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater
than the word size when operating in Modify_Tree_For_C mode.
* sinfo.ads: Add documentation section on Modify_Tree_For_C mode.
2014-02-06 Robert Dewar <dewar@adacore.com>
* erroutc.adb (Warning_Specifically_Suppressed.Matches):
compare is case insensitive.
* gnat_rm.texi: Document that string compare for Warnings Off
is now case insensitive.
* sem_ch10.adb (Analyze_Package_Body_Stub): Maintain
the configuration options of the enclosing context in a
stack-like fasion.
(Analyze_Subprogram_Body_Stub): Maintain the
configuration options of the enclosing context in a stack-like
fashion.
2014-02-06 Robert Dewar <dewar@adacore.com>
* debug.adb: -gnatd.u sets Modify_Tree_For C
* exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out
if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto.
(Expand_N_Op_Arithmetic_Right_Shift): ditto.
* exp_intr.adb (Expand_Shift): Call expander so we do
Modify_Tree_For_C expansions.
* gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
if -gnatd.u set.
2014-02-06 Fedor Rybin <frybin@adacore.com>
* prj-proc.ads (Tree_Loaded_Callback): new type Callback used
after the phase 1 of the processing of each aggregated project
to get access to project trees of aggregated projects.
(Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded
If specified, On_New_Tree_Loaded is called after each aggregated
project has been processed succesfully.
(Process): new parameter On_New_Tree_Loaded.
* prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded
callback added after processing of each aggregated project.
(Recursive_Process): new parameter On_New_Tree_Loaded.
(Process): new parameter On_New_Tree_Loaded.
(Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded.
* prj-conf.ads (Parse_Project_And_Apply_Config): new parameter
On_New_Tree_Loaded.
* prj-conf.adb (Parse_Project_And_Apply_Config): new parameter
On_New_Tree_Loaded.
2014-02-06 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Implement --insert-blank-lines and
--preserve-blank-lines switches.
The symbol classification logic in correctly classifies all
SYMBOL_REF's as SYMBOL_FORCE_TO_MEM, the intention of the code is to
catch only the large memory model case.
* einfo.adb Node29 is now used as BIP_Initialization_Call.
(BIP_Initialization_Call): New routine.
(Set_BIP_Initialization_Call): New routine.
(Write_Field29_Name): Add an entry for constants and variables.
* einfo.ads Add new attribute BIP_Initialization_Call and update
its usage in nodes.
(BIP_Initialization_Call): New routine along with pragma Inline.
(Set_BIP_Initialization_Call): New routine along with pragma Inline.
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
Add local declaration Res_Decl. Capture the build-in-place
initialization call when the related object declaration has
created a transient block.
* exp_ch7.adb (Process_Transient_Objects): Add local variable
Fin_Insrt. Recognize a scenario where an object declaration acts
as a transient context and is initialized by a build-in-place
function call.
Arnaud Charlet [Thu, 6 Feb 2014 10:11:07 +0000 (11:11 +0100)]
[multiple changes]
2014-02-06 Pascal Obry <obry@adacore.com>
* prj-util.adb (For_Interface_Sources): Fix handling of required
bodies for aggregate libs.
2014-02-06 Robert Dewar <dewar@adacore.com>
* nlists.ads: Minor comment clarifications.
2014-02-06 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
if gnatd.V set.
* opt.ads (Modify_Tree_For_C): New flag.
* output.ads, output.adb (Last_Char): New function.
2014-02-06 Pascal Obry <obry@adacore.com>
* projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add
share/gpr for cross-builds.
* sem_prag.adb (Analyze_Depends_In_Decl_Part): Add
local variable Expr. Flag clauses with extra parenthesis as this
is not allowed by the syntax of the pragma. Code reformatting.
* exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize
variables. Rename variabme Tnn to Temp. Do not create a temporary
if assertions are disabled. Find enclosing routine _Postconditions
and insert the temporary that captures the value of the prefix
before the routine.
* exp_ch6.adb (Build_Postconditions_Procedure):
Insert the generated _Postconditions routine
before the first source declaration of the related
subprogram.
(Insert_After_Last_Declaration): Removed.
(Insert_Before_First_Source_Declaration): New routine.
2014-02-06 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb, exp_util.ads (Within_Internal_Subprogram):
Utility to determine whether current expansion is for the body
of a predefined primitive operation.
(Make_Predicate_Check): Use Within_Internal_Subpgram
* checks.adb (Apply_Predicate_Check): Use
Within_Internal_Subprogram
* sem_ch13.adb (Freeze_Entity_Checks): Ditto.
Arnaud Charlet [Thu, 6 Feb 2014 09:58:37 +0000 (10:58 +0100)]
[multiple changes]
2014-02-06 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item):
Take into account the Split_PPC flag to ensure that conjuncts
in a composite postcondition aspect are tested in source order.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal
use of SPARK_Mode.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag
illegal use of SPARK_Mode.
(Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode.
* sem_prag.adb (Analyze_Pragma): Code reformatting.
* sem_util.adb Add with and use clause for Aspects.
(Check_SPARK_Mode_In_Generic): New routine.
* sem_util.ads (Check_SPARK_Mode_In_Generic): New routine.
2014-02-06 Thomas Quinot <quinot@adacore.com>
* a-calend.adb (Formatting_Operations.Split): Ensure that
Time_Error is raised for invalid time values.
* exp_ch7.adb (Is_Subprogram_Call): Inspect
the original tree in certain cases where a construct has been
factored out and replaced by a reference to a temporary.
2014-02-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Full_View): Fix typo in the order of
parameters when propagating predicate function to full view.
(Find_Type_Of_Object): Freeze base type of object type to catch
premature use of discriminated private type without a full view.
* exp_ch4.adb (Process_Transient_Object): Add local variable
Temp_Ins. When the transient object is initialized by an
aggregate, the hook must capture the object after the last
component assignment takes place.
* exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to
routine Is_Subprogram_Call.
(Is_Subprogram_Call): Inspect an
aggregate that has been heavily expanded for subprogram calls.
(Process_Transient_Objects): Add local variables Expr, Ptr_Id
and Temp_Ins. Remove the nested declare block and adjust the
indentation. When the transient object is initialized by an
aggregate, the hook must capture the object after the last
component assignment takes place.
* sem_prag.adb (Analyze_Global_Item): Detect illegal uses of
external states with enabled properties that do not match the
global mode.
(Property_Error): New routine.
* sem_res.adb (Property_Error): New routine.
(Resolve_Actuals): Detect illegal uses of external variables with
enabled properties in procedure calls that do not match the mode of
the corresponding formal parameter.
* sem_util.adb (Has_Enabled_Property): Rename
formal parameter Prop_Nam to Property. Update the comment on usage
and all occurrences in the body. Add local variable Prop_Nam. When
inspecting a property with an expression, the property name
appears as the first choice of the component association.
Bill Schmidt [Wed, 5 Feb 2014 20:07:51 +0000 (20:07 +0000)]
altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
gcc:
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
gen_altivec_vpkuwum.
(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
BYTES_BIG_ENDIAN.
(altivec_vpks<VI_char>ss): Likewise.
(altivec_vpks<VI_char>us): Likewise.
(altivec_vpku<VI_char>us): Likewise.
(altivec_vpku<VI_char>um): Likewise.
(altivec_vpku<VI_char>um_direct): New (copy of
altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
internal use).
(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkhs<VU_char>_direct): New (copy of
altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
use).
(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkls<VU_char>_direct): New (copy of
altivec_vupkls<VU_char> that always emits vupkls*, for internal
use).
(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
little endian and -maltivec=be is not specified.
(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
little endian and -maltivec=be is not specified.
gcc/testsuite:
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Jan Hubicka [Wed, 5 Feb 2014 17:21:07 +0000 (18:21 +0100)]
lto-cgraph.c (asm_nodes_output): Make global.
* lto-cgraph.c (asm_nodes_output): Make global.
* lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
* gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA
parameter
(driver_handle_option): Handle OPT_fwpa.
* lto.c (lto_parallelism): New static var.
(do_stream_out, wait_for_child, stream_out): New static functions.
(lto_wpa_write_files): Add support for parallel streaming.
(do_whole_program_analysis): Set parallelism.
* lang.opt (fwpa): Add parameter.
* lto-lang.c (lto_handle_option): Handle flag_wpa.
(lto_init): Update use of flag_wpa.
* lto-streamer.h (asm_nodes_output): Declare.
Jakub Jelinek [Wed, 5 Feb 2014 15:34:25 +0000 (16:34 +0100)]
re PR ipa/59947 (Segmentation fault with #pragma GCC optimize ("O2"), ICE in get_odr_type)
PR ipa/59947
* ipa-devirt.c (possible_polymorphic_call_targets): Fix
a comment typo and formatting issue. If odr_hash hasn't been
created, return vNULL and set *completep to false.
Richard Biener [Wed, 5 Feb 2014 15:23:36 +0000 (15:23 +0000)]
lto.h (lto_global_var_decls): Remove.
2014-02-05 Richard Biener <rguenther@suse.de>
lto/
* lto.h (lto_global_var_decls): Remove.
* lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
(lto_write_globals): Do nothing in WPA stage, gather globals from
the varpool here ...
* lto.c (lto_main): ... not here.
(materialize_cgraph): Do not call rest_of_decl_compilation
on the empty lto_global_var_decls vector.
(lto_global_var_decls): Remove.
Richard Biener [Wed, 5 Feb 2014 10:28:26 +0000 (10:28 +0000)]
tree-vect-loop.c (vect_analyze_loop_2): Be more informative when not vectorizing because of too many alias checks.
2014-02-05 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vect_analyze_loop_2): Be more informative
when not vectorizing because of too many alias checks.
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
Jan Hubicka [Tue, 4 Feb 2014 23:26:36 +0000 (00:26 +0100)]
ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we know they are controlled by LTO.
* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
groups when we know they are controlled by LTO.
* varasm.c (default_binds_local_p_1): If object is in other partition,
it will be resolved locally.
* lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
needs duplicating, not generic COMDAT.
re PR bootstrap/59913 ([4.9 Regresion] bootstrap failure on arm-linux-gnueabihf)
2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
PR bootstrap/59913
* lra-constraints.c (need_for_split_p): Use more 3 reloads as
threshold for pseudo splitting.
(update_ebb_live_info): Process call argument hard registers and
hard registers from insn definition too.
(max_small_class_regs_num): New constant.
(inherit_in_ebb): Update live hard regs through EBBs. Update
reloads_num only for small register classes. Don't split for
outputs of jumps.
Richard Biener [Tue, 4 Feb 2014 14:53:24 +0000 (14:53 +0000)]
re PR lto/59723 (ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto)
2014-02-04 Richard Biener <rguenther@suse.de>
PR lto/59723
* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
in function context local.
(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
similar to LTO_imported_decl_ref.
Arnaud Charlet [Tue, 4 Feb 2014 14:49:39 +0000 (15:49 +0100)]
[multiple changes]
2014-02-04 Gary Dismukes <dismukes@adacore.com>
* sem_aggr.adb: Change "runtime" to "run time" in warning message,
for consistency with other messages.
2014-02-04 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): For a container element
iterator, indicate that the element is a constant if the container
type does not have a variable indexing aspect.
* sem_ch8.adb (Analyze_Object_Renaming): If the entity is already
marked as constant, do not reset its Ekind, to ensure that
container elements in an element loop are not modified if the
container (e.g. a hashed set) only has a constant indexing aspect.
2014-02-04 Arnaud Charlet <charlet@adacore.com>
* g-souinf.ads: Subprograms in this unit are actually not pure.
* freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics.
* einfo.ads (Is_Pure): Update doc to match implementation.
Arnaud Charlet [Tue, 4 Feb 2014 14:32:37 +0000 (15:32 +0100)]
[multiple changes]
2014-02-04 Gary Dismukes <dismukes@adacore.com>
* exp_ch13.adb: Minor spelling fix.
2014-02-04 Robert Dewar <dewar@adacore.com>
* opt.ads: Minor comment update.
2014-02-04 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite
instead of Replace.
2014-02-04 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings
on null expressions if component type is non-null, when the
corresponding association covers an empty range of index values.
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global
variables Out_Items and Ref_Global. Remove local constant
Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7
and D8. Remove the useless collection of global items as this
was a leftover from an earlier version of the routine. Move
several routines out to avoid deep nesting and indentation.
(Inputs_Match): Add formal parameter Dep_Clause. Rename formal
parameter Do_Checks to Post_Errors. Update the comment on usage.
(Is_Matching_Input): Renamed to Input_Match. Add formal parameters
Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks
to Post_Errors. Update the comment on usage. Account for the
case where a self referential state may have a null input_list.
(Is_Self_Referential): New routine.
2014-02-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the
entity renames an expression, as in the case of an object of
an unconstrained type initialized by a function call, defer the
rewriting of the expression to the expander.
* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
'Alignment): If the entity renames an expression, introduce
temporary to capture value, and rewrite original declaration to
use temporary.
Arnaud Charlet [Tue, 4 Feb 2014 14:25:46 +0000 (15:25 +0100)]
[multiple changes]
2014-02-04 Gary Dismukes <dismukes@adacore.com>
* g-comlin.adb: Minor typo fix.
2014-02-04 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_All): Types derived from a formal
access_to_classwide type do not have a finalization master.
2014-02-04 Robert Dewar <dewar@adacore.com>
* sprint.adb: Minor reformatting.
2014-02-04 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
cases where Actions is a null list.
* sinfo.ads (N_Expression_With_Actions): Actions can be
temporarily empty during semantic analysis, but must be non-empty
in the final expanded tree.
Jakub Jelinek [Tue, 4 Feb 2014 13:08:00 +0000 (14:08 +0100)]
re PR tree-optimization/60023 (ICE: verify_gimple failed: dead STMT in EH table with -O3 -fnon-call-exceptions -mavx2)
PR tree-optimization/60023
* tree-if-conv.c (predicate_mem_writes): Pass true instead of
false to gsi_replace.
* tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
has been in some EH region and vec_stmt could throw, add
vec_stmt into the same EH region.
* tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
has no lhs, ignore it.
* internal-fn.c (expand_MASK_LOAD): Likewise.
Jakub Jelinek [Tue, 4 Feb 2014 12:31:30 +0000 (13:31 +0100)]
re PR other/58712 (issues found by --enable-checking=valgrind)
PR other/58712
* omp-low.c (simd_clone_struct_copy): If from->inbranch
is set, copy one less argument.
(expand_simd_clones): Don't subtract clone_info->inbranch
from simd_clone_struct_alloc argument.
Jakub Jelinek [Tue, 4 Feb 2014 12:14:52 +0000 (13:14 +0100)]
re PR rtl-optimization/57915 (ICE in set_address_disp, at rtlanal.c:5537)
PR rtl-optimization/57915
* recog.c (simplify_while_replacing): If all unary/binary/relational
operation arguments are constant, attempt to simplify those.
Rainer Orth [Tue, 4 Feb 2014 09:31:38 +0000 (09:31 +0000)]
Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788)
gcc:
PR target/59788
* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
(LINK_SPEC): Use it for -shared, -shared-libgcc.
libgcc:
PR target/59788
* config/t-slibgcc-sld (libgcc-unwind.map): New target.
(install-libgcc-unwind-map-forbuild): New target.
(all): Depend on install-libgcc-unwind-map-forbuild.
(install-libgcc-unwind-map): New target.
(install): Depend on install-libgcc-unwind-map.
gcc/testsuite:
PR target/59788
* g++.dg/eh/unwind-direct.C: New test.
toplevel:
PR target/59788
* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
*solaris2*.
Jakub Jelinek [Tue, 4 Feb 2014 07:37:44 +0000 (08:37 +0100)]
re PR sanitizer/60038 (AddressSanitizer CHECK failed ... "((*tls_addr + *tls_size)) <= ((*stk_addr + *stk_size))" on CentOS 5.10)
PR sanitizer/60038
* sanitizer_common/sanitizer_linux_libcdep.cc: Include
sanitizer_atomic.h and unistd.h.
(kThreadDescriptorSize): Made static, remove initializer and const,
change type to atomic_uintptr_t.
(ThreadDescriptorSize): Use confstr(_CS_GNU_LIBC_VERSION, ...) to
query glibc version, compute kThreadDescriptorSize depending on
glibc version minor number.
(GetThreadStackAndTls): Use ThreadDescriptorSize() instead of
kThreadDescriptorSize directly.