This removes the unnecessary restriction to 32-bit (all three ways).
It also scans for mtvsr*, not just mtvsrd. Finally, it uses the "wa"
constraints instead of "wi" in the inline asm statements.
gcc/testsuite/
* gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64. Check for
all mtvsr*, not just mtvsrd. Use "wa" instead of "wi" constraints.
* gcc.target/powerpc/p9-dimode2.c: Ditto.
From-SVN: r271696
* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
Document additional optional parameters.
* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
more than one optional parameter.
* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
the list of supported pragmas. Simplify the handling of parameters
and add support for more than one optional parameter.
* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
used, cold, hot, target and target_clones.
(begin_subprog_body): Do not create the RTL for the subprogram here.
(handle_noicf_attribute): New static function.
(handle_noipa_attribute): Likewise.
(handle_flatten_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_cold_attribute): Likewise.
(handle_hot_attribute): Likewise.
(handle_target_attribute): Likewise.
(handle_target_clones_attribute): Likewise.
From-SVN: r271693
* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
for 'Size too.
(Identifier_to_gnu): Use the actual subtype for a reference to a
packed array in a return statement.
(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
the prefix in every case.
From-SVN: r271691
* gcc-interface/decl.c (components_to_record): Set a name on the type
created for the REP part, if any.
* gcc-interface/utils.c (finish_record_type): Only take the maximum
when merging sizes for a variant part at offset 0.
(merge_sizes): Rename has_rep parameter into max.
From-SVN: r271681
* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
for stack_protect attribute.
(handle_stack_protect_attribute): New static function.
From-SVN: r271680
* omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
critical, taskgroup and section regions when looking for a region
with non-NULL lastprivate_conditional_map.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.
From-SVN: r271672
PR libgomp/90641
* work.c (gomp_init_work_share): Instead of aligning final ordered
value to multiples of long long alignment, align to that the
first part (ordered team ids) and if inline_ordered_team_ids
is not on a long long alignment boundary within the structure,
use __alignof__ (long long) - 1 pad size always.
* loop.c (GOMP_loop_start): Fix *mem computation if
inline_ordered_team_ids is not aligned on long long alignment boundary
within the structure.
* loop-ull.c (GOMP_loop_ull_start): Likewise.
* sections.c (GOMP_sections2_start): Likewise.
From-SVN: r271671
For this test, we can match the codegen expected in the scan-asms
by avoiding the extra indirection that's mandated by the ABI for
common access and by using -mdynamic-no-pic for the 32b case.
gcc/testsuite/
2019-05-27 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr22076.c: Adjust options to
match codegen expected by the scan-asms.
From-SVN: r271670
The assembler code needs to say it uses AltiVec instructions.
libsanitizer/
PR target/90639
* tsan/tsan_rtl_ppc64.S: Add ".machine altivec".
From-SVN: r271668
* config/i386/i386.c (ix86_gen_add3): Remove indirect function.
(*ix86_gen_sub3): Ditto.
(*ix86_gen_sub3_carry): Ditto.
(*ix86_gen_one_cmpl2): Ditto.
(*ix86_gen_andsp): Ditto.
(ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
(gen_and2_insn): New static function.
(ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
Use gen_add3_insn instead of ix86_gen_add3.
(ix86_expand_split_stack_prologue): Use gen_add2_insn
instead of ix86_gen_add3.
(legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
Use gen_sub3_insn instead of ix86_gen_sub3.
* config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
instead of ix86_gen_add3.
(ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
(construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
ix86_gen_one_cmpl2 and ix86_gen_andsp.
From-SVN: r271667
* gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
created out of addressability concerns if it's for the _Init parameter
of an initialization procedure.
From-SVN: r271659
* gcc-interface/ada-builtin-types.def: New file.
* gcc-interface/ada-builtins.def: Likewise.
* gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
(BUILT_IN_UNLIKELY): Likewise.
* gcc-interface/trans.c (independent_iterations_p): Initialize the
auto-vector to 16 elements.
(Call_to_gnu): Remove local variable and change the vector of actual
parameters to an auto-vector. Do not convert actual parameters to
the argument type for front-end built-in functions. Add support for
front-end built-in functions.
(build_noreturn_cond): Use internal instead of built-in function.
* gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
(install_builtin_function_types): Likewise.
(install_builtin_functions): Include ada-builtins.def first.
From-SVN: r271658
* gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
(gnat_to_gnu): Do not convert the result if it is a reference to an
unconstrained array used as the prefix of an attribute reference that
requires an lvalue.
From-SVN: r271653
2019-05-27 Richard Biener <rguenther@suse.de>
PR middle-end/90610
* match.pd (vec_perm): Avoid clobbering op0 when not generating
a bit-insert.
From-SVN: r271652
* gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
(Identifier_to_gnu): Use it to assert that the type of the identifier
and that of its entity are compatible for gigi. Rename a couple of
local variables and separate the processing of the result type.
From-SVN: r271650
* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
count to the unsigned version of its base type before proceeding.
From-SVN: r271646
* config/i386/i386.md (@leave_<mode>): New expander.
(*leave): Rename from leave.
(*leave_rex64): Rename from leave_rex64.
(@monitorx_<mode>): Rename from monitorx_<mode>.
(@clzero_<mode>): Rename from clzero_<mode>.
* config/i386/sse.md (@sse3_monitor_<mode>): Rename from
sse3_monitor_<mode>.
* config/i386/i386.c (*ix86_gen_leave): Remove indirect function.
(*ix86_gen_monitor): Ditto.
(*ix86_gen_monitorx): Ditto.
(*ix86_gen_clzero): Ditto.
(*ix86_gen_one_cmpl2): Ditto.
(ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
* config/i386/i386-expand.c (ix86_expand_builtin)
<case IX86_BUILTIN_MONITOR>: Use gen_sse3_monitor
instead of ix86_gen_monitor.
<case IX86_BUILTIN_MONITORX>: Use gen_monitorx
instead of ix86_gen_monitorx.
<case IX86_BUILTIN_CLZERO>: Use gen_clzero
instead of ix86_gen_clzero.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_leave, ix86_gen_monitor,
ix86_gen_monitorx, ix86_gen_clzero and ix86_gen_one_cmpl2.
* config/i386/i386.md (@tls_global_dynamic_64_<mode>):
Rename from tls_global_dynamic_64_<mode>.
(@tls_local_dynamic_base_64_<mode>): Rename from
tls_local_dynamic_base_64_<mode>.
* config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
Remove indirect function.
(*ix86_gen_tls_local_dynamic_base_64): Ditto.
(legitimize_tls_address): Use gen_tls_global_dynamic_64 function
instead of ix86_gen_tls_global_dynamic_64.
Use gen_tls_local_dynamic_base_64 instead of
ix86_gen_tls_local_dynamic_base_64.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_tls_global_dynamic_64 and
ix86_gen_tls_local_dynamic_base_64.
* config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
Rename from pro_epilogue_adjust_stack_<mode>_add.
(@pro_epilogue_adjust_stack_sub_<mode>)
Rename from pro_epilogue_adjust_stack_<mode>_sub.
(@allocate_stack_worker_probe_<mode>):
Rename from allocate_stack_worker_probe_<mode>.
(allocate_stack): Use gen_allocate_stack_worker_probe.
(probe_stack): Use gen_probe_stack_1.
(@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
(@adjust_stack_and_probe_<mode>): Rename from
adjust_stack_and_probe<mode>.
(@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
(stack_protect_set): Use gen_stack_protect_set_1.
(@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
(stack_protect_test): Use gen_stack_protect_test_1.
(@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
* config/i386/i386.c (*ix86_gen_allocate_stack_worker):
Remove indirect function.
(*ix86_gen_adjust_stack_and_probe): Ditto.
(*ix86_gen_probe_stack_range): Ditto.
(pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
(ix86_adjust_stack_and_probe_stack_clash): Use
gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
(ix86_adjust_stack_and_probe): Ditto.
(ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
of ix86_gen_probe_stack_range.
(ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
* config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
CODE_FOR_stack_protect_test_{si,di}.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_allocate_stack_worker,
ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
From-SVN: r271636
Darwin requires PIC code in order to support PIE, amend the test scan-asms
to match this.
2019-05-26 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to
account for PIC code on Darwin.
* gcc.target/i386/pr39013-2.c: Likewise.
* gcc.target/i386/pr64317.c: Likewise.
From-SVN: r271634
2019-05-26 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90539
* trans-types.c (get_formal_from_actual_arglist): Set rank
and lower bound for assumed size arguments.
From-SVN: r271630
Darwin uses a different spelling for popcnt (popcnt instead of popcntw).
Check for this in the test.
2019-05-25 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr59874-3.c: Use the spelling of popcnt
expected for Darwin.
From-SVN: r271623
The test requests an alignment which exceeds the maximum object
file aligment for Darwin, rather than skipping it - test that we
see the expected error.
2019-05-25 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr89261.c: Test that the alignment required
by the test correctly produces the expected error on Darwin.
From-SVN: r271622