This lets it recognize more preprocessing floating constants.
Tested on x86-64/Linux, applied on the mainline.
2024-05-24 Eric Botcazou
* c-ada-spec.cc (is_cpp_float): New predicate.
(dump_number): Deal with more preprocessing floating constants.
(dump_ada_macros
https://gcc.gnu.org/g:73eef7a04453d01147cbf4642fe6626350dded75
commit r15-826-g73eef7a04453d01147cbf4642fe6626350dded75
Author: Eric Botcazou
Date: Fri May 24 19:48:18 2024 +0200
Small enhancement to implementation of -fdump-ada-spec
This lets it recognize more preprocessing
This avoids generating invalid Ada code for functions with a multidimensional
array parameter and also cleans things up left and right.
Tested on x86-64/Linux, applied on the mainline.
2024-05-23 Eric Botcazou
* c-ada-spec.cc (check_type_name_conflict): Add guard
https://gcc.gnu.org/g:0b3b6a8df77b0ae15078402ea5fb933d6fccd585
commit r15-795-g0b3b6a8df77b0ae15078402ea5fb933d6fccd585
Author: Eric Botcazou
Date: Thu May 23 18:26:12 2024 +0200
Another small fix to implementation of -fdump-ada-spec
This avoids generating invalid Ada code
https://gcc.gnu.org/g:2f0e0862406a17bb8bf4ad948ae22916bae092a0
commit r14-10233-g2f0e0862406a17bb8bf4ad948ae22916bae092a0
Author: Eric Botcazou
Date: Wed May 22 18:10:39 2024 +0200
Fix internal error in seh_cfa_offset with -O2 -fno-omit-frame-pointer
The problem directly comes
https://gcc.gnu.org/g:f14ef5cfd4c1ba1d34afda9174935e40d3c0a3ce
commit r15-776-gf14ef5cfd4c1ba1d34afda9174935e40d3c0a3ce
Author: Eric Botcazou
Date: Wed May 22 18:10:39 2024 +0200
Fix internal error in seh_cfa_offset with -O2 -fno-omit-frame-pointer
The problem directly comes from
Recent changes made to the runtime library broke again its build on Solaris
because it uses Solaris threads instead of POSIX threads on this platform.
Tested by Rainer, applied on the mainline.
2024-05-21 Eric Botcazou
PR ada/115168
* libgnarl/s-taprop__solaris.adb
https://gcc.gnu.org/g:7b215c867629e095a4ac403bd026b6eb293962b4
commit r15-751-g7b215c867629e095a4ac403bd026b6eb293962b4
Author: Eric Botcazou
Date: Tue May 21 11:11:02 2024 +0200
Fix Ada runtime library breakage on Solaris (bis)
Recent changes made to the runtime library broke
Botcazou
PR rtl-optimization/115038
* fold-mem-offsets.cc (fold_offsets): Return 0 if the defining
instruction of the register is frame related.
2024-05-20 Eric Botcazou
* g++.dg/opt/fmo1.C: New test.
--
Eric Botcazoudiff --git a/gcc/fold-mem-offsets.cc b/gcc
Hi,
> Just notice that this patch may result in some ICE when build libc++ for the
> riscv port, details as below. Please note not all configuration can
> reproduce this issue, feel free to ping me if you cannot reproduce this
> issue. CC more riscv port people for awareness.
Sorry for the
https://gcc.gnu.org/g:3db8dd4139a7a5ce941684f1fc05ee0652e35544
commit r15-649-g3db8dd4139a7a5ce941684f1fc05ee0652e35544
Author: Eric Botcazou
Date: Sun May 19 11:38:40 2024 +0200
Fix oversight in latest change to can_mult_highpart_p
gcc/
* optabs-query.cc
The recent changes made to the runtime library broke its build on Solaris
because it uses Solaris threads instead of POSIX threads on this platform.
Tested by Rainer, applied on the mainline.
2024-05-17 Eric Botcazou
Rainer Orth
PR ada/115133
* libgnarl/s
https://gcc.gnu.org/g:5812e1bbb1c8a7a90d995a0165cddae4d450d6cf
commit r15-641-g5812e1bbb1c8a7a90d995a0165cddae4d450d6cf
Author: Eric Botcazou
Date: Sat May 18 00:21:56 2024 +0200
Fix Ada runtime library breakage on Solaris
The recent changes made to the runtime library broke its
https://gcc.gnu.org/g:f53f8a859631bef97adba1522a8049a8fce57c1b
commit r15-623-gf53f8a859631bef97adba1522a8049a8fce57c1b
Author: Eric Botcazou
Date: Wed May 8 10:07:56 2024 +0200
Add widening expansion of MULT_HIGHPART_EXPR for integral modes
For integral modes the expansion
This avoids declaring anonymous array types as having an aliased component
when the layout is packed, as is already done for named array types.
Tested on x86-64/Linux, applied on the mainline.
2024-05-17 Eric Botcazou
* c-ada-spec.cc (bitfield_used): Move around
https://gcc.gnu.org/g:6a0a46c57999d1f805f6c604a8868ae588a104f2
commit r15-625-g6a0a46c57999d1f805f6c604a8868ae588a104f2
Author: Eric Botcazou
Date: Fri May 17 11:44:30 2024 +0200
Small fix to implementation of -fdump-ada-spec
gcc/c-family/
* c-ada-spec.cc
https://gcc.gnu.org/g:4da8be4f46b5dad4f5f610fc142538054446f44b
commit r15-624-g4da8be4f46b5dad4f5f610fc142538054446f44b
Author: Eric Botcazou
Date: Wed May 8 11:20:40 2024 +0200
Remove spurious line
Diff:
---
gcc/ada/ChangeLog | 1 -
1 file changed, 1 deletion(-)
diff --git a/gcc/ada
... which happened in GCC 13.
Validated with W3C's Validator and applied.
--
Eric Botcazoudiff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
index e324b782..3ab4a101 100644
--- a/htdocs/gcc-13/changes.html
+++ b/htdocs/gcc-13/changes.html
@@ -770,8 +770,17 @@ You may also want
---
commit ed9ceba9b8b038f0e0f333798da7abe046679d0c
Author: Eric Botcazou
Date: Thu May 16 12:38:25 2024 +0200
Document reimplementation of GNU threads library on Windows (PR web/115105)
diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
index e324b782..3ab4a101 100644
--- a/htdocs/gcc-13/changes.
https://gcc.gnu.org/g:10e34aa5b1d23e1517f0ca5cfae3cac3b51a7a53
commit r15-314-g10e34aa5b1d23e1517f0ca5cfae3cac3b51a7a53
Author: Eric Botcazou
Date: Mon Apr 29 17:46:20 2024 +0200
Minor tweaks to code computing modular multiplicative inverse
This removes the last parameter
. We'll use that in a
subsequent change to the Ada front-end to generate fast modulo reduction for
modular types with nonbinary modulus (a little controversial Ada 95 feature).
Tested on x86-64/Linux, OK for the mainline?
2024-04-29 Eric Botcazou
* expmed.h
> OK. Consider waiting to commit though as we want to make it easy to
> cherry pick patches over to the release branch if needed.
Sure. There are a couple more changes on top of it, but all can wait a bit.
--
Eric Botcazou
Hi,
this removes the last parameter of choose_multiplier, which is unused, adds
another assertion and more details to the description and various comments.
Likewise to the closely related invert_mod2n, except for the last parameter.
Tested on x86-64/Linux, OK for the mainline?
2024-04-29 Eric
> For the 20th anniversary of https://gcc.gnu.org/gcc-3.4/sparc-abi.html, a
> new calling convention incompatibility with the vendor compiler (and the
> ABI) has been discovered in 64-bit mode, affecting small structures
> containing arrays of floating-point components. The decision has been made
---
commit 688a21c3093f0d3dbf7248066b5c9c00802bdf89
Author: Eric Botcazou
Date: Thu Apr 25 19:37:27 2024 +0200
gcc-14/changes.html: Add SPARC section and fix syntax error
diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index f0f0efe0..83b1016c 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htd
to fix it on Solaris
only at this point.
Bootstrapped/regtested on SPARC/Solaris 11.4 and SPARC64/Linux by Rainer (many
thanks again) and applied on the mainline.
2024-04-25 Eric Botcazou
PR target/114416
* config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro
https://gcc.gnu.org/g:1d238c84025aaef1641e4000bd2a8f4328b474dd
commit r14-10119-g1d238c84025aaef1641e4000bd2a8f4328b474dd
Author: Eric Botcazou
Date: Thu Apr 25 12:44:14 2024 +0200
Fix calling convention incompatibility with vendor compiler
For the 20th anniversary of https
https://gcc.gnu.org/g:618db8d5ecd6d113d3089fda6fbf8bf472ddfc25
commit r13-8436-g618db8d5ecd6d113d3089fda6fbf8bf472ddfc25
Author: Marc Poulhiès
Date: Wed Mar 8 20:39:45 2023 +0100
ada: Fix error message for Aggregate aspect
The error message was wrongly using % instead of & in the
https://gcc.gnu.org/g:6c8e7aa2ce1d51050c59c1492be2a29890d2c172
commit r13-8435-g6c8e7aa2ce1d51050c59c1492be2a29890d2c172
Author: Marc Poulhiès
Date: Mon Mar 6 12:15:13 2023 +0100
ada: Fix (again) incorrect handling of Aggregate aspect
Previous fix stopped the processing of the
https://gcc.gnu.org/g:bc97504e021fd8719fa6d9e31c311b38e87a3900
commit r13-8434-gbc97504e021fd8719fa6d9e31c311b38e87a3900
Author: Marc Poulhiès
Date: Tue Feb 28 17:10:29 2023 +0100
ada: Fix incorrect handling of Aggregate aspect
This change fixes 2 incorrect handlings of the
> Patch is still OK, but ipa-ICF will only identify the functions if
> static chain is unused. Perhaps just picking the winning candidate to be
> version without static chain and making ipa-inline to not ICE when calls
> with static chain lands to function with no static chain would help us
> to
static chain but the other does not. The proposed fix is just to prevent this
identification from occurring.
Tested on x86-64/Linux, OK for all active branches?
2024-03-11 Eric Botcazou
PR ipa/113996
* ipa-icf.h (sem_function): Add static_chain_present member.
* ipa-
They both come from an oversight of mine in the placement of the DIE created
for an enumeration type with reverse scalar storage order.
Tested on x86-64/Linux, both GCC and GDB, applied on mainline as obvious.
2024-03-11 Eric Botcazou
PR debug/113519
PR debug/113777
https://gcc.gnu.org/g:0c4df2c3c38ca15c123e9a801b617e63256c83a3
commit r14-9423-g0c4df2c3c38ca15c123e9a801b617e63256c83a3
Author: Eric Botcazou
Date: Mon Mar 11 09:24:50 2024 +0100
Fix placement of recently implemented DIE
It's the DIE added for enumeration types with reverse
to the resulting access value (after dereference) like in
Expand_Allocator_Expression.
Tested on x86-64/Linux, applied on all active branches.
2024-03-07 Eric Botcazou
PR ada/113979
* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
call
https://gcc.gnu.org/g:b26501b6e310345ad9f6423b3f8b9df178c5e7d9
commit r11-11272-gb26501b6e310345ad9f6423b3f8b9df178c5e7d9
Author: Eric Botcazou
Date: Thu Mar 7 15:05:54 2024 +0100
Fix bogus error on allocator for array type with Dynamic_Predicate
This is a regression present
https://gcc.gnu.org/g:f9e1d7aa8b4f0b8afff1de59fcadf1db0244b4e1
commit r12-10197-gf9e1d7aa8b4f0b8afff1de59fcadf1db0244b4e1
Author: Eric Botcazou
Date: Thu Mar 7 15:05:54 2024 +0100
Fix bogus error on allocator for array type with Dynamic_Predicate
This is a regression present
https://gcc.gnu.org/g:0e591e6f27a20c26672ea8c0550a6ef673c1fccf
commit r13-8409-g0e591e6f27a20c26672ea8c0550a6ef673c1fccf
Author: Eric Botcazou
Date: Thu Mar 7 15:05:54 2024 +0100
Fix bogus error on allocator for array type with Dynamic_Predicate
This is a regression present
https://gcc.gnu.org/g:e71a4e81729516eed8782a255ff37617e6fd4b69
commit r14-9361-ge71a4e81729516eed8782a255ff37617e6fd4b69
Author: Eric Botcazou
Date: Thu Mar 7 15:05:54 2024 +0100
Fix bogus error on allocator for array type with Dynamic_Predicate
This is a regression present
>offset is
byte aligned and that the trimmed bytes are relative to ref->size, so the
patch simply adds an early return if either condition is not fulfilled
Tested on x86-64/Linux, OK for all the affected branches?
2024-02-27 Eric Botcazou
* tree-ssa-dse.cc (compute_trims):
references to the local finalization routine, so
the finalization needs to be dropped in this case and the warning adjusted.
Tested on x86-64/Linux, applied on all active branches.
2024-02-26 Eric Botcazou
PR ada/113893
* exp_ch7.adb (Build_Anonymous_Master): Do not build
It is a regression on the mainline for -fdump-ada-spec in a pathological case.
Tested on x86-64/Linux, applied on the mainline.
2024-01-16 Eric Botcazou
PR ada/113397
* c-ada-spec.cc (check_type_name_conflict): Add guard for the
presence of DECL_NAME on a TYPE_DECL
> Okay, so, the "unsharing everything” is done automatically by the compiler
> before gimplification?
See the blurb at gimplify.cc:835 and below about this.
--
Eric Botcazou
for the reason described above, so the extra parameter is preexisting for
base_type_die, modified_type_die and add_type_attribute.
--
Eric Botcazou
-01-09 Eric Botcazou
* dwarf2out.cc (modified_type_die): Extend the support of reverse
storage order to enumeration types if -gstrict-dwarf is not passed.
(gen_enumeration_type_die): Add REVERSE parameter and generate the
DIE immediately after the existing one
, and moving down the
assertion in Expand_Simple_Function_Return.
Tested on SPARC64/Linux, applied on the mainline and 13 branch.
2024-01-09 Eric Botcazou
PR ada/112781
* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
* exp_ch6.adb
and 13 branch.
2024-01-09 Eric Botcazou
PR ada/112781
* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
consistently to retrieve the ancestor for a derived type.
* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
, applied on the mainline and 13 branch.
2024-01-09 Eric Botcazou
PR ada/113195
* gcc-interface/utils2.cc (build_binary_op) : Relax
assertion for regular pointer types.
2024-01-09 Eric Botcazou
* gnat.dg/specs/anon4.ads: New test.
--
Eric Botcazou-- { dg
of function.
Tested on SPARC64/Linux, applied on the mainline and 13 branch.
2024-01-09 Eric Botcazou
PR rtl-optimization/113140
* reorg.cc (fill_slots_from_thread): If we are to branch after the
last instruction of the function, create an end label.
2024-01-09 Eric
of function.
Tested on SPARC64/Linux, applied on the mainline and 13 branch.
2024-01-09 Eric Botcazou
PR rtl-optimization/113140
* reorg.cc (fill_slots_from_thread): If we are to branch after the
last instruction of the function, create an end label.
2024-01-09 Eric
> Conditional moves are not available in SPARC V8.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/ifcvt-4.c: Skip for SPARC V8
OK.
--
Eric Botcazou
h GCC 10.
I see, thanks for the explanation, the patch is OK then.
> For the OK:ed patches (with your changes), can I push them to
> release/gcc-13 in addition to master?
Sure.
--
Eric Botcazou
C errata workaround.
OK with this change.
--
Eric Botcazou
> This is to handle the membar_empty instruction that can be generated
> when compiling for UT699.
>
> gcc/ChangeLog:
>
> * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated
> as empty
OK without the superfluous parentheses.
--
Eric Botcazou
sn."
>
> gcc/ChangeLog:
>
> * config/sparc/sync.md (*membar_storeload_leon3): Remove
> (*membar_storeload): Enable for LEON
OK.
--
Eric Botcazou
seen it though. Is that really a warning issued by GCC?
--
Eric Botcazou
runk?
Yes, thanks for fixing this.
--
Eric Botcazou
side-effects
> or if they do, there's explicit syntactic sugar to make it clearer.
That sounds totally arbitrary though. Algol-derived languages have had nested
subprograms for ages, e.g. Pascal or Ada, and they can be very useful.
--
Eric Botcazou
; is read but never assigned
> [-gnatwv]
>
> so there is no warning.
Look at the last line of the test (Ada has not used trampolines for ages!).
--
Eric Botcazou
avoid false negatives, just false
> positives. If a pass updates an instruction with a REG_UNUSED note,
> and the pass is no longer sure whether the register is unused or not,
> the pass can just delete the note.)
Reintroducing the manual management of such notes would be a step backward.
--
Eric Botcazou
This is PR ada/109881, a tree sharing issue for the internal return type
synthesized for a function returning a dynamically-sized type and taking an
Out or In/Out parameter passed by copy.
Tested on x86-64/Linux, applied on mainline, 13 and 12 branches.
2023-11-16 Eric Botcazou
PR
for the mainline?
2023-11-11 Eric Botcazou
* ipa-cp.cc (print_ipcp_constant_value): Move to...
(values_equal_for_ipcp_p): Deal with VAR_DECLs from the
constant pool.
* ipa-prop.cc (ipa_print_constant_value): ...here. Likewise
.
Bootstrapped/regtested on x86-64/Linux, OK for the mainline?
2023-11-10 Eric Botcazou
* fold-const.cc (operand_compare::operand_equal_p) :
Deal with nonempty constant CONSTRUCTORs.
(operand_compare::hash_operand) : Hash DECL_FIELD_OFFSET
and DECL_FIELD_BIT_OFFSET
Hi,
the varying case currently falls through to the 1/true case.
Tested on x86_64-suse-linux, OK for mainline, 13 and 12 branches?
2023-09-25 Eric Botcazou
* gimple-range-gori.cc (gori_compute::logical_combine): Add missing
return statement in the varying case.
2023-09-25
ttern of
bits so, in order to have a 1-to-1 mapping, you need to choose a canonical
form. The signed form is probably more natural and, since CONST_INTs have no
mode, the same objects are used for e.g. QImode and HImode, which means that
you need to sign-extend the bit pattern.
--
Eric Botcazou
recision > 1, typically 8.
--
Eric Botcazou
> This should be fixed now. I rewrote the test to check the padding byte
> directly, instead of inspecting a copy of it which might not preserve
> the padding bits.
Great, thanks!
--
Eric Botcazou
e SIGN_EXTRACT:
case ZERO_EXTRACT:
return false;
default:
return true;
}
}
--
Eric Botcazou
> It turns out that adaint.c includes other Windows header files than just
> windows.h, so defining WIN32_LEAN_AND_MEAN is not sufficient for it.
>
> gcc/ada/
>
> * adaint.c [_WIN32]: Undefine 'abort' macro.
I backported it onto the 13 branch.
--
Eric Botcazou
get expanded as records but instead
> as container aggregates.
This is not a regression but the problem is quite visible in Ada 2022 so I
backported the fix onto the 13 branch.
--
Eric Botcazou
e parent
> node is a container aggregate.
This is not a regression but the problem is quite visible in Ada 2022 so I
backported the fix onto the 13 branch.
--
Eric Botcazou
ible in Ada 2022 so I
backported the fix onto the 13 branch.
--
Eric Botcazou
for the
mainline and some branches?
2023-06-30 Eric Botcazou
* gimple-fold.cc (fold_array_ctor_reference): Fix head comment.
(fold_nonarray_ctor_reference): Likewise. Specifically deal
with integral bit-fields.
(fold_ctor_reference): Check that the constructor uses
> Arg, once again, I'm sorry. I don't know how this happened. It would
> be trivial to fix it but since
>
> commit 4a48a38fa99f067b8f3a3d1a5dc7a1e602db351f
> Author: Eric Botcazou
> Date: Wed Jun 21 18:19:36 2023 +0200
>
> ada: Fix build of GNAT tools
>
&g
zation if -fno-delete-dead-exceptions is not specified).
--
Eric Botcazou
n to be unchanging.
>
> Perhaps that should be a new flag that tree_invariant_p can check
> instead of TREE_READONLY.
Richard earlier suggested a langhook; given that Ada will be the main (sole?)
user of it, this would probably be better.
--
Eric Botcazou
understand compilation errors during the build."
--
Eric Botcazou
own set of problems in GENERIC and it will
precisely survive when it is not needed, so I'm not sure that's any better.
--
Eric Botcazou
run time, but that's not the case at compile
time where we have a finer-grained control (and even different rules) so I
don't really see a problem with handling the two cases differently.
--
Eric Botcazou
s INTEGER_CSTs to the other, direct path without the
intermediate conversion to the unsigned type.
Tested on x86-64/Linux, OK for the mainline?
2023-05-24 Eric Botcazou
* match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
on constants.
2023-05-24
ut these non-integral bit-fields (output_constructor et al) so we could
even try to share some code. However, in practice, these cases turn out to be
rare because the tree_output_constant_def path in gimplify_init_constructor is
well guarded.
--
Eric Botcazou
on a byte boundary because they are correctly handled in this case.
Bootstrapped/regtested on x86-64/Linux, OK for mainline and 13 branch?
2023-05-22 Eric Botcazou
* fold-const.cc (native_encode_initializer) : Apply the
specific treatment for bit-fields only if they have
_index) + 1);
or store_constructor
this_node_count = (tree_to_uhwi (hi_index)
- tree_to_uhwi (lo_index) + 1);
so the proposed form looks better for the sake of consistency.
--
Eric Botcazou
in output_constructor_bitfield.
Tested on x86-64/Linux, OK for the mainline?
2023-05-18 Eric Botcazou
* varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
of tree_to_shwi on array indices. Minor tweaks.
2023-05-18 Eric Botcazou
* gnat.dg/specs/array6.ads: New
);
>const bool had_align = TYPE_ALIGN (record_type) > 0;
>/* For all-repped records with a size specified, lay the QUAL_UNION_TYPE
> out just like a UNION_TYPE, since the size will be fixed. */
This one is not an improvement but more of a coincidence; the rest is OK.
--
Eric Botcazou
ined arrays, and I'm
testing a patch to that effect, but the first issue might be annoying too.
--
Eric Botcazou
need to wait for Eric
> before making progress.
Let me have a quick look first, as pessimizing loop optimizations in Ada in
order to fix a 11-year old PR seems to be a little bit hasty.
--
Eric Botcazou
64]/Linux where you *cannot* probe below the stack pointer.
--
Eric Botcazou
> probably also helps PR109612 and the other similar PR referenced therein.
Here's a more aggressive patch in this area, but it regresses guality tests,
for example:
+FAIL: gcc.dg/guality/ipa-sra-1.c -O2 -DPREVENT_OPTIMIZATION line 27 k ==
3
+FAIL: gcc.dg/guality/ipa-sra-1.c -O3 -g
> Haven't looked into detail, but just saving compilation time shouldn't be
> the only factor when deciding about debug info stuff, another and perhaps
> even more important would be whether it affects the emitted debug info.
At least it doesn't change the guality results.
--
Eric Botcazou
/regtested on x86-64/Linux, OK for the mainline?
2023-04-25 Eric Botcazou
* tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
superfluous debug temporaries for single GIMPLE assignments.
--
Eric Botcazoudiff --git a/gcc/tree-ssa.cc b/gcc/tree-ssa.cc
index a5cad2d344e
Botcazou
* configure.ac (TOOLS_TARGET_PAIRS): Remove obsolete settings.
(EXTRA_GNATTOOLS): Likewise.
* configure: Regenerate.
--
Eric Botcazou
diff --git a/gnattools/configure.ac b/gnattools/configure.ac
index 5b6f34ed9f4..38a28b6ee62 100644
--- a/gnattools/configure.ac
+++ b
> That "supposed to" is only *one* possible implementation.
> The one in CRIS - and I believe the preferred one; one I
> should advocate more - is to *always* expose clobbering of
> the flags.
Yes, both approaches are acceptable IMO and should work.
--
Eric Botcazou
capped on selected platforms.
--
Eric Botcazou
diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc
index 851a6745f77..20f43de9ea9 100644
--- a/gcc/ada/gcc-interface/decl.cc
+++ b/gcc/ada/gcc-interface/decl.cc
@@ -4371,10 +4371,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity
S. (thanks!) and on x86-64/Linux by me, and
applied on the mainline.
2023-04-14 Eric Botcazou
PR bootstrap/109510
* gcc-interface/decl.cc (gnat_to_gnu_entity) : Reset align
to zero if its value is equal to TYPE_ALIGN and the type is scalar.
Set TYPE_USER_ALIGN
> I'm assuming the problem also extends to the other __gthr_win32 routines as
> well, __gthr_win32_create just happens to be the first symbol it cannot
> find.
>
> Is there a way to fix this issue?
How did you configure the compiler and what version of MinGW64 do you use?
--
Eric Botcazou
er code for
> WORD_REGISTER_OPERATIONS and sub-word modes which will call nonzero_bits
> again for the word mode and decide if it is still safe.
Does it work to just replace mode by word_mode in the calls to nonzero_bits?
> That patch doesn't change anything at all on the testcase, it is still
> miscompiled.
OK, too bad, thanks for trying it!
--
Eric Botcazou
> If we want to fix it in the combiner, I think the fix would be following.
> The optimization is about
> (and:SI (subreg:SI (reg:HI xxx) 0) (const_int 0x84c))
> and IMHO we can only optimize it into
> (subreg:SI (and:HI (reg:HI xxx) (const_int 0x84c)) 0)
> if we know that the upper bits of the
setter.
That then records among other things nonzero_bits as 0x8084c."
That's a recent addition of mine (ae20d760b1ed69f631c3bf9351bf7e5005d52297)
and I think that it probably abuses WORD_REGISTER_OPERATIONS and should either
be reverted or restricted to the load case documented in its comment. I can
provide testing on SPARC if need be.
--
Eric Botcazou
Eric Botcazou
PR target/109140
* config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
on operand #3 to get the final condition code. Use std::swap.
* config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
(fucmp8_vis): Move around
1 - 100 of 5439 matches
Mail list logo