Georg-Johann Lay
PR target/18145
* config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Move to
config/avr/avr.c
(TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
(ASM_OUTPUT_COMMON): Forward to avr_asm_output_common.
(ASM_OUTPUT_LOCAL): Forward to
Georg-Johann Lay schrieb:
> This is a port of an old patch of mine that got integrated in some
> avr-gcc distributions.
>
> Linking against __do_copy_data resp. __do_clear_bss is only needed if
> there is actually stuff in .[ro]data resp. .bss. This saves some space
&g
Anatoly Sokolov schrieb:
> Hi.
>>
>> +/* To track if code will use .bss and/or .data */
>> +static int avr_need_clear_bss_p = 0;
>> +static int avr_need_copy_data_p = 0;
>
> Change type avr_need_clear_bss_p and avr_need_copy_data_p vars to bool.
>
>> [ASM_OUTPUT_COMMON]
>
> Use ASM_OUTPUT_ALIGNE
Denis Chertykov schrieb:
> 2011/4/18 Georg-Johann Lay :
>> Denis Chertykov schrieb:
>>> 2011/4/17 Denis Chertykov :
>>>> 2011/4/15 Georg-Johann Lay :
>>>>> Finally, I exposed alternative #3 of the insns to the register
>>>>>
Denis Chertykov schrieb:
> 2011/4/19 Georg-Johann Lay :
>> How can add, sub etc. be split? This would need an explicit
>> representation of carry.
>
> Yes.
>
> Look at http://gcc.gnu.org/ml/gcc/2005-03/msg00871.html
Just skimmed the conversation. I thought about makin
This patchlet skips some tests for avr because int is just 16 bits there.
Johann
testsuite/
2011-04-19 Georg-Johann Lay
* gcc.c-torture/compile/pr43191.c: Skip avr due to 16-bit int.
* gcc.dg/torture/pr43165.c: Ditto.
* gcc.dg/torture/pr47228.c: Ditto
Anatoly Sokolov schrieb:
> Hi.
>
>
>> +
>> +/* Implement `ASM_OUTPUT_ALIGNED_DECL_LOCAL' */
>> +/* Track need of __do_clear_bss */
>
> Put dot and two spaces after the end of a sentence. The same for other
> commens in this patch.
>
>> +
>> +void
>> +avr_asm_output_aligned_decl_local (FILE * st
Hans-Peter Nilsson schrieb:
> On Tue, 19 Apr 2011, Georg-Johann Lay wrote:
>> This patchlet skips some tests for avr because int is just 16 bits there.
>
>> 2011-04-19 Georg-Johann Lay
>>
>> * gcc.c-torture/compile/pr43191.c: Skip avr due to 16-bit int.
>
Anatoly Sokolov schrieb:
>
> Hi.
>
>>
>> This patch now uses the same procedure like elfos.h
>>
> ...
>> +#define ASM_OUTPUT_ALIGNED_DECL_COMMON(STREAM, DECL, NAME, SIZE,
>> ALIGN) \
>> + avr_asm_output_aligned_common (STREAM, NAME, SIZE, ALIGN, false)
> ..
>> +#define ASM_OUTPUT_ALIGNED_DECL_LO
Weddington, Eric schrieb:
-Original Message-
From: Richard Henderson [mailto:r...@redhat.com]
Sent: Tuesday, April 19, 2011 1:31 PM
To: Georg-Johann Lay
Cc: gcc-patches@gcc.gnu.org; Weddington, Eric; Denis Chertykov; Anatoly
Sokolov
Subject: Re: [Patch,AVR]: PR18145: do_copy_data
Georg-Johann Lay schrieb:
When I wrote this patch I looked at the default linker script to see
what goes into .data resp .bss; the hard-coded section maned reflect
.names
that. For the linkonce stuff I found no explanation (grepping the
Denis Chertykov schrieb:
> 2011/4/17 Denis Chertykov :
>> 2011/4/15 Georg-Johann Lay :
>>> Finally, I exposed alternative #3 of the insns to the register
>>> allocator, because it is not possible to distinguish between
>>> overlapping or non-overlapping
Denis Chertykov schrieb:
> 2011/4/19 Anatoly Sokolov :
>>
Please use
ASM_OUTPUT_ALIGNED_DECL_COMMON and ASM_OUTPUT_ALIGNED_DECL_LOCAL macros
here.
>>> Confused. These macros are used.
>>>
>>> Johann
>>>
>> Sorry... Im look on function name not on macro definition.
>>
>> I agree with
shift.
Tested on some home-brew example.
Ok if I see no regressions?
Johann
2011-04-20 Georg-Johann Lay
PR target/42210
* config/avr/avr.md ("*movbitqi.1-6.a", "*movbitqi.1-6.b",
"*movbitqi.0", "*movbitqi.7", "*
Georg-Johann Lay schrieb:
> This solves some missed optimization that can be seen when moving
> around bits.
>
> There are 4 combiner patterns that operate on regs and one that uses
> them as intermediate patterns and works on I/O. Even if just an
> intermediate pattern mat
Richard Henderson schrieb:
> On 04/21/2011 05:31 AM, Georg-Johann Lay wrote:
>> +;; Some combiner patterns dealing with bits.
>> +;; See PR42210
>> +
>> +;; Move bit $3.$4 into bit $0.$4
>> +(define_insn "*movbitqi.1-6.a"
> ...
>> +(define_insn &
Richard Henderson schrieb:
> On 04/26/2011 04:51 AM, Georg-Johann Lay wrote:
>> As the SFRs are volatile, insv expander skips
>> them and a combine pattern must care of them. Omitting the complicated
>> bit-plethora patterns I still see long, slow shift loops for HI. So
>&g
Richard Henderson schrieb:
> Why are you adding "optimize" to all these insns? None of them will
> be matched unless combine is run, which implies optimization.
Here is a patch without optimize in the insn conditions.
The optimize condition is still present in the insv expander because I
do not
Georg-Johann Lay schrieb:
> Richard Henderson schrieb:
>
>> Why are you adding "optimize" to all these insns? None of them will
>> be matched unless combine is run, which implies optimization.
>
> Here is a patch without optimize in the insn conditions.
&g
it is still not optimal.
Fixing this by some combine patterns is the only thing the BE can do.
I did not write more complex patterns because things get too complex
with little performance gain.
Tested without regressions.
Johann
2011-05-02 Georg-Johann Lay
PR target/27663
-Johann Lay
PR target/45099
* config/avr/avr.c (avr_function_arg_advance): Error if a fixed
register is needed for a function argument.
Index: config/avr/avr.c
===
--- config/avr/avr.c (Revision 172902
Denis Chertykov schrieb:
> 2011/5/2 Georg-Johann Lay :
>> This is a fix for an optimization flaw when a long value is composed
>> from byte values.
>>
>> For -fsplit-wide-types (which is still default for avr) the code is
>> worse than with -fno-split-wide-typ
Nathan Froyd schrieb:
> On Mon, May 02, 2011 at 05:23:48PM +0200, Georg-Johann Lay wrote:
>> PR45099 is an extension that gives an error when a fixed register is
>> needed to pass a parameter to a function.
>>
>> Because the program will show malfunction when such code
Fixed the build warnings mentioned in PR48896.
Johann
--
2011-05-09 Georg-Johann Lay
PR target/48896
* config/avr/avr.c (avr_ret_register): Return unsigned int
instead of int.
(avr_function_value): Mark fn_decl_or_type as unused, don't pass
Denis Chertykov schrieb:
2011/5/2 Georg-Johann Lay :
This is a fix for an optimization flaw when a long value is composed
from byte values.
For -fsplit-wide-types (which is still default for avr) the code is
worse than with -fno-split-wide-types. The code for the test case is
better in either
Denis Chertykov schrieb:
> 2011/5/6 Georg-Johann Lay :
>> Nathan Froyd schrieb:
>>> On Mon, May 02, 2011 at 05:23:48PM +0200, Georg-Johann Lay wrote:
>>>> PR45099 is an extension that gives an error when a fixed register is
>>>> needed to pass a para
Denis Chertykov schrieb:
> 2011/5/11 Georg-Johann Lay :
>> Denis Chertykov schrieb:
>>> 2011/5/2 Georg-Johann Lay :
>>>
>>>> This is a fix for an optimization flaw when a long value is composed
>>>> from byte values.
>>>>
>>&
Georg-Johann Lay schrieb:
> Richard Henderson schrieb:
>
>> Why are you adding "optimize" to all these insns? None of them will
>> be matched unless combine is run, which implies optimization.
>
> Here is a patch without optimize in the insn conditions.
&g
Denis Chertykov schrieb:
> 2011/2/26 Georg-Johann Lay :
>> Georg-Johann Lay schrieb:
>>
>> http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01441.html
>>
>>> The patch implements target hook TARGET_CANNOT_MODIFY_JUMPS_P in order
>>> to inhibit post-reload
Denis Chertykov schrieb:
Denis.
This are backports to 4.3, 4.4, 4.5 branch, respectively
(branches/gcc-4_*-branch/)
Why you want to backport so deep ?
IMHO trunk and 4.5 is enough.
Applied to 4.5
Denis.
I don't know what the policy concerning the depth of backporting
bugfixes actually is
Weddington, Eric schrieb:
>
>> -Original Message----- From: Georg-Johann Lay
>> [mailto:a...@gjlay.de] Sent: Thursday, March 03, 2011 11:01 AM To:
>> Denis Chertykov Cc: gcc-patches@gcc.gnu.org; Anatoly Sokolov;
>> Weddington, Eric Subject: Re: [Patch, AVR]: PR42240
This patch moves deprecated REGISTER_MOVE_COST resp. MEMORY_MOVE_COST
from avr.h to target hook avr_register_move_cost resp.
avr_memory_move_cost in avr.c.
No functionality added or removed; costs are unchanged.
2011-03-08 Georg-Johann Lay
* config/avr/avr.h (REGISTER_MOVE_COST
et me know if you have suggestion on how call prologues can be
combine with tail calls.
Regards, Johann
2011-03-10 Georg-Johann Lay
* config/avr/avr-protos.h (expand_epilogue): Change prototype
* config/avr/avr.h (struct machine_function): Add field
sibcall_
Weddington, Eric schrieb:
>
>> -Original Message-
>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>> Sent: Friday, March 11, 2011 6:44 AM
>> To: gcc-patches@gcc.gnu.org
>> Cc: Denis Chertykov; Anatoly Sokolov; Weddington, Eric; Boyapati, Anitha
>&
Boyapati, Anitha schrieb:
> To be on same page, can you explain how gcc optimizes above case?
in
void bar0 (void);
int bar1 (int);
int foo (int x)
{
bar0();
return bar1 (x);
}
x must be saved somewhere. avr-gcc choses Y.
Compiled -Os -mmcu=atmega8 -fno-optimize-sibling-calls reads
foo
Richard Henderson schrieb:
> On 03/11/2011 05:43 AM, Georg-Johann Lay wrote:
>> I did not find a way to make this work together with -mcall-prologues.
>> Please let me know if you have suggestion on how call prologues can be
>> combine with tail calls.
>
> You need a ne
Richard Henderson schrieb:
On 03/16/2011 03:32 AM, Georg-Johann Lay wrote:
Richard Henderson schrieb:
On 03/11/2011 05:43 AM, Georg-Johann Lay wrote:
I did not find a way to make this work together with -mcall-prologues.
Please let me know if you have suggestion on how call prologues can
Anatoly Sokolov schrieb:
/* Returns register number for function return value.*/
-int
+static inline int
avr_ret_register (void)
{
return 24;
}
I always wondered why that works.
SI is returned in r22..r25 (not in r24..27)
DI is returnet in r18..r25 (not in r24..31)
So according to
Denis Chertykov schrieb:
> 2011/3/16 Georg-Johann Lay
>> Richard Henderson schrieb:
>>> On 03/16/2011 03:32 AM, Georg-Johann Lay wrote:
>>>
>>>> Richard Henderson schrieb:
>>>>
>>>>> On 03/11/2011 05:43 AM, Georg-Johann Lay wr
Denis Chertykov schrieb:
> 2011/3/18 Georg-Johann Lay :
>
>>> Is it tested for regressions ?
>>>
>>> Denis.
>> I ran tests against svn 170942 (latest 4.7.0 snapshot). Besides
>> timestamps, the diff looks like this:
>>
>> 1435a1436,14
Use define_c_enum instead of magic numbers to get unspec resp.
unspec_volatile constants.
2011-03-23 Georg-Johann Lay
* config/avr/avr.md (define_constants): Move UNSPEC_*
resp. UNSPECV_* defines to...
(define_c_enum "unspec") ...this new
Weddington, Eric schrieb:
>
>> -Original Message----- From: Georg-Johann Lay
>> [mailto:a...@gjlay.de] Sent: Wednesday, March 23, 2011 8:45 AM To:
>> gcc-patches@gcc.gnu.org Cc: Denis Chertykov; Anatoly Sokolov;
>> Weddington, Eric Subject: [Patch][AVR]: Use define_
Weddington, Eric schrieb:
Hi Johann,
Can we hold off on this patch for just a little bit? I agree it would
be good to clean it up, but I would like to get in the attached patch
to add some builtin functions that Anatoly and I worked on. The patch
was (nominally) for 4.4. I need to see if it wil
Target avr now supports tail calls, so don't xfail on that.
testsuite/
2011-03-24 Georg-Johann Lay
* gcc.dg/sibcall-3.c: Don't xfail on AVR.
* gcc.dg/sibcall-4.c: Don't xfail on AVR.
Index: testsuite/gcc
Andreas Krebbel schrieb:
> On 03/22/2011 06:48 PM, Richard Henderson wrote:
>
>> Ok. Watch out for other target problems this week.
libgcc fails to build for avr (SVN 171446)
../../../../../gcc.gnu.org/trunk/libgcc/../gcc/libgcc2.c: In function
'__negdi2':
../../../../../gcc.gnu.org/trunk/libgc
Georg-Johann Lay schrieb:
> Andreas Krebbel schrieb:
>> On 03/22/2011 06:48 PM, Richard Henderson wrote:
>>
>>> Ok. Watch out for other target problems this week.
>
> libgcc fails to build for avr (SVN 171446)
>
> ../../../../../gcc.gnu.org/trunk/libgcc/../gc
Target avr now supports tail calls, so don't xfail on that.
testsuite/
2011-03-29 Georg-Johann Lay
* gcc.dg/sibcall-3.c: Don't xfail on AVR.
* gcc.dg/sibcall-4.c: Don't xfail on AVR.
Index: testsuite/gcc
Richard Henderson schrieb:
> On 03/25/2011 05:41 AM, Georg-Johann Lay wrote:
>>> On 03/22/2011 06:48 PM, Richard Henderson wrote:
>>>
>>>> Ok. Watch out for other target problems this week.
>> libgcc fails to build for avr (SVN 171446)
>>
>> ../
Richard Sandiford schrieb:
> Georg-Johann Lay writes:
>> Richard Henderson schrieb:
>>> On 03/25/2011 05:41 AM, Georg-Johann Lay wrote:
>>>>> On 03/22/2011 06:48 PM, Richard Henderson wrote:
>>>>>
>>>>>> Ok. Watch out for other
This is straight forward fix for PR45263 (R20 clobbered by
constructor/destructor).
Using call-saved register like R15 is undesired because upcoming
ATtiny10 architecture.
2011-04-01 Georg-Johann Lay
PR target/45263
* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors
This is a better fix that does not need push/pop and does not increase
numer of instructions.
r16 takes the role of r20, and the value formerly in r16,
i.e. hh8(__dtors_end resp. __ctors_start) is recreated as needed.
2011-04-02 Georg-Johann Lay
PR target/45263
* config/avr
Weddington, Eric schrieb:
>
>> -Original Message-
>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>> Sent: Friday, April 01, 2011 4:01 PM
>> To: Georg-Johann Lay
>> Cc: gcc-patches@gcc.gnu.org; Denis Chertykov; Anatoly Sokolov; Weddington,
>> Eric
&
Georg-Johann Lay schrieb:
> Target avr now supports tail calls, so don't xfail on that.
>
> testsuite/
>
> 2011-03-29 Georg-Johann Lay
>
> * gcc.dg/sibcall-3.c: Don't xfail on AVR.
> * gcc.dg/sibcall-4.c: Don't xfail on AVR.
>
>
Weddington, Eric schrieb:
>
>> -Original Message-
>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>> Sent: Tuesday, April 05, 2011 3:06 AM
>> To: gcc-patches@gcc.gnu.org
>> Cc: Anatoly Sokolov; Denis Chertykov; Weddington, Eric
>> Subject: Re: [
Weddington, Eric schrieb:
>
>> -Original Message-
>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>> To: Weddington, Eric
>>> Please commit, Johann. Thanks.
>>>
>> I don't have write privilege, and I don't think I want write access
Georg-Johann Lay schrieb:
> Weddington, Eric schrieb:
>>> -Original Message-
>>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>>> Sent: Friday, April 01, 2011 4:01 PM
>>> To: Georg-Johann Lay
>>> Cc: gcc-patches@gcc.gnu.org; Denis
are introduced so that use can easily
query if or if not a specific builtin is available. This might be
useful as builtin support evolves, because #ifdef is easier then to
twiddle out which version brings what builtin.
2011-04-06 Georg-Johann Lay
* config/avr/avr.c: ("insn-co
Patch for user documentation.
2011-04-06 Georg-Johann Lay
* doc/extend.texi (Target Builtins): Add documentation of AVR
built-in functions.
(AVR Built-in Functions): New node
Index: doc/extend.texi
Added Anatoly and Eric to changelog entry
Johann
2011-04-06 Anatoly Sokolov
Eric Weddington
Georg-Johann Lay
* config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
New Includes
(avr_ini
if not this
patch is applied or not.
2011-04-07 Georg-Johann Lay
PR target/44643
* config/avr/avr.c (avr_insert_attributes): Error if non-const
data has attribute progmem.
Index: config/avr/avr.c
===
Gerald Pfeifer schrieb:
> On Wed, 6 Apr 2011, Georg-Johann Lay wrote:
>> I signed a fsf copyright assignment. AFAIK there is no automatism
>> that grants write access when copyright assignment is approved.
>
> Yes, this is correct.
>
>> I would have to be mai
Georg-Johann Lay schrieb:
> This is fix of PR44643 which is triggered by
>
> http://savannah.nongnu.org/bugs/?32988
>
> i.e. include/avr/pgmspace.h:PSTR has to be changed, too: PSTR has to
> generate __c as "static const char[]", not as "static char[]".
Georg-Johann Lay schrieb:
> This patch adds builtin support for some RTL builtins to avr backend.
> One builtin implements loop for delay of specific number of ticks
> (under the assumption IRQs are off), others simply map to machine
> instructions like SEI, CLI, NOP, SLEEP, WDR,
Georg-Johann Lay schrieb:
> Georg-Johann Lay schrieb:
>> Weddington, Eric schrieb:
>>>> -Original Message-----
>>>> From: Georg-Johann Lay [mailto:a...@gjlay.de]
>>>> Sent: Friday, April 01, 2011 4:01 PM
>>>> To: Georg-Johann Lay
&
This patch implements TARGET_FLOATN_MODE which maps
_Float32[x] to SFmode and _Float64[x] to DFmode.
There is currently no library support for extended float types,
but these settings are more reasonable for avr (and they make
more tests pass).
Ok for trunk?
Johann
--
AVR: Implement TARGET_FL
Am 04.10.24 um 16:32 schrieb Jakub Jelinek:
On Fri, Oct 04, 2024 at 08:09:48AM -0600, Jeff Law wrote:
On 10/4/24 7:46 AM, Georg-Johann Lay wrote:
This patch implements TARGET_FLOATN_MODE which maps
_Float32[x] to SFmode and _Float64[x] to DFmode.
There is currently no library support for
Some of the float64 and float32x test cases are using double built-ins
and hence require double64plus resp. double_float32xplus, i.e. double
is at least as good as float32x.
This patch adds according dg-require-effective-target filters.
(But only for test cases where I can verify that they are wo
Added two test cases for that PR.
Johann
--
rtl-optimization/116550 - Add test cases.
PR rtl-optimization/116550
gcc/testsuite/
* gcc.target/avr/torture/lra-pr116550-1.c: New file.
* gcc.target/avr/torture/lra-pr116550-2.c: New file.rtl-optimization/116550 - Add tes
gcc.dg/strict-flex-array-3.c used hard-coded values instead of
__SIZEOF_INT__ or equivalent expressions. Fixed as obvious.
Plus, on AVR, printf doesn't support %zd, so that expect() is
now special-cased.
Johann
--
testsuite/52641 - Make gcc.dg/strict-flex-array-3.c work on int != 32 bits.
This patch is a 2nd take on fixing PR116953:
The output function for avr_out_sbxx_branch() runs
jump_over_one_insn_p() which calls extract for the next insn, which
clobbers recog_data. The previous fix makes local copy of the input
operands[] to avr_out_sbxx_branch() -- which is recog_data.opera
When md_reader is reading insn attributes from md files, it accepts
expressions like (symbol_ref { code }) and (symbol_ref "{ code }")
as valid expressions. However, when generating insn-attrtab.cc, it
would print the {} block as an expression, which is not valid C++ syntax.
The conclusion
This patch uses the new gensupport feature (review pending) that
allows to provide a block of C++ code in a symbol_ref sub-expression
instead of just a C++ expression:
https://gcc.gnu.org/pipermail/gcc-patches/2024-September/664093.html
Ok for trunk (provided the gensupport part is upstream) ?
Applied this patchlet for a build warning.
Johann
--
AVR: avr-passes.cc - Fix a build warning.
gcc/
* config/avr/avr-passes.cc
(avr_split_fake_addressing_move): Fix
a build warning.
diff --git a/gcc/config/avr/avr-passes.cc b/gcc/config/avr/avr-passes.cc
inde
Applied as obvious.
Johann
--
AVR: avr.cc - Drop a superfluous sub-condition in avr_out_compare.
In avr.cc::avr_out_compare() there is this condition:
if (n_bytes == 4
&& eqne_p
&& AVR_HAVE_ADIW
&& REGNO (xreg) >= REG_22
&& (xval == const0
The is patch adds the new target macro RELOAD_ELIMINABLE_REGS
that's needed during the reload -> LRA transition because reload
and LRA disagree on how ELIMINABLE_REGS should represent multi-register
frame pointer eliminations. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116326#c2
As ELIMIN
gcc.dg/pr93820-2.c requires int32, thus added
dg-require-effective-target int32.
Johann
--
testsuite/52641 - Require int32 for gcc.dg/pr93820-2.c.
PR testsuite/52641
gcc/testsuite/
* gcc.dg/pr93820-2.c: Add dg-require-effective-target int32.
diff --git a/gcc/te
gcc.dg/pr113596.c alloca'tes up to 8 KiB on stack,
which is too much for AVR. This patch requests less
memory on AVR.
Johann
--
AVR: Make gcc.dg/pr113596.c work.
gcc/testsuite/
* gcc.dg/pr113596.c: Require less memory so it works on AVR.
diff --git a/gcc/testsuite/gcc.dg
This test failed on int != 32-bit targets due to
a[0] = b[0] = INT_MIN instead of using INT32_MIN.
Johann
--
testsuite/52641 - Fix gcc.dg/signbit-6.c for int != 32-bit targets.
PR testsuite/52641
gcc/testsuite/
* gcc.dg/signbit-6.c (main): Initialize a[0] and b[
gcc.c-torture/execute/ieee/pr108540-1.c obviously requires that double
is a 64-bit type, hence add pr108540-1.x as an according filter.
Ok for trunk?
And is there a reason for why we are still putting test cases in
these old parts of the testsuite that don't support dg-magic-comments
like
/* {
gcc.dg/c23-stdarg-9.c failed because the code requested too
much stack memory. With less stack allocated, this test passes.
Applied as obvious.
Johann
--
AVR: Make gcc.dg/c23-stdarg-9.c work.
gcc/testsuite/
* gcc.dg/c23-stdarg-9.c (struct S) [AVR]: Only use int a[500].
di
avr_out_sbxx_branch calls jump_over_one_insn_p which may clobber
recog_data.operand as is calls extract on the next insn.
A fix is to make a copy of avr_out_sbxx_branch`s incoming operands.
Ok to apply?
Johann
--
AVR: target/116953 - ICE due to operands clobber in avr_out_sbxx_branch.
For operations like X o= CST, regalloc may spill l-reg X to a d-reg:
D = X
D o= CST
X = D
where it is better to instead
D = CST
X o= D
This patch adds an according RTL peephole.
Ok for trunk?
Johann
--
AVR: Add an RTL peephole to tweak lower_reg:QI o= cst.
For operations li
This patch splits 2-byte and 3-byte shifts after reload into
a 3-operand byte shift and a residual 2-operand shift.
The "2op" shift insn alternatives are not needed and removed because
all shift insn already have a "r,0,n" alternative that does the job.
Ok for trunk?
Johann
--
AVR: target/11
but should use Pmode.
PR target/117681
gcc/
* config/avr/avr.cc (TARGET_UNWIND_WORD_MODE): Define to...
(avr_unwind_word_mode): ...this new static function.commit 9e48a5e1dc054959d1dfc2f757d5dcfbdb18e1c3
Author: Georg-Johann Lay
Date: Fri Nov 29 18:26:17 2024 +0100
AVR
Am 18.11.24 um 09:03 schrieb Georg-Johann Lay:
Am 16.11.24 um 13:19 schrieb Gerald Pfeifer:
On Mon, 2 Sep 2024, Georg-Johann Lay wrote:
Atmel is no more the AVR manufacturer. This patch removes the
manufacturer from the file headers.
We also have
AVR
Manufacturer: Atmel
href
/pr116488.c: Require int32plus.
* gcc.dg/torture/pr116915.c: Require int32plus.commit 780720f04b0b83261d6073b92f3b02e8fbef41b9
Author: Georg-Johann Lay
Date: Tue Nov 19 19:32:24 2024 +0100
testsuite/52641 - Skip test cases that are not 16-bit clean.
gcc/testsuite
This patch calculates more accurate shift costs, but makes
the costs for larger offsets no more expensive than the costs
for an unrolled shift.
Ok for trunk?
Johann
--
AVR: target/54378 - Reconsider the default shift costs.
This patch calculates more accurate shift costs, but makes
the costs
Now that the C default is C23, we can use bool in avr.h
(which is still used in libgcc via tm.h).
bool is a keyword in C23, so no stdbool.h is required in libgcc.
No regressions. Ok for trunk?
Johan
--
AVR: Use more bool.
Now that the C default is C23, we can use bool in avr.h
(which is still
Am 19.11.24 um 13:31 schrieb Andreas Schwab:
../../gcc/config/avr/avr-passes.cc: In member function ‘void
{anonymous}::memento_t::apply_insn1(rtx_insn*, bool)’:
../../gcc/config/avr/avr-passes.cc:2119:9: error: no match for ‘operator&=’
(operand types are ‘{anonymous}::gprmask_t’ {aka ‘unsigned
Am 19.11.24 um 14:48 schrieb Georg-Johann Lay:
Am 19.11.24 um 13:31 schrieb Andreas Schwab:
../../gcc/config/avr/avr-passes.cc: In member function ‘void
{anonymous}::memento_t::apply_insn1(rtx_insn*, bool)’:
../../gcc/config/avr/avr-passes.cc:2119:9: error: no match for
‘operator&=’ (ope
This patch adds 3-operand alternatives to the shift insns for
offsets that are one less than the bit-size of the mode.
For example, ashrhi3 can support "r,r,C15" without overhead.
Apart from that, the asm out functions for the shifts now use
avr_asm_len to print assembly and to track the isnsns' l
Applied the patch below as obvious.
It fixes a wrong code bug for u24 << 16 when the
input and output registers are not the same.
Johann
--
AVR: target/117659 - Fix wrong code for u24 << 16.
gcc/
PR target/117659
* config/avr/avr.cc (avr_out_ashlpsi3) [case 16]:
This patch avoids an internal compiler error when a %i gets an operand
that's not valid for %i. It uses output_operand_lossage that outputs
an ordinary error.
Ok to apply?
Johann
--
AVR: target/117500 - Use output_operand_lossage in avr_print_operand.
PR target/117500
gcc/
*
Applied this patch as obvious after the switch to GNU-C23 in
https://gcc.gnu.org/r15-5327
Johann
--
AVR: Fix building LibF7 after switching to C23.
Since r15-5327, GNU-C23 is being used as C language default.
libf7.h doesn't assume headers like stdbool.h are present
and defines bool, true and
Am 16.11.24 um 13:19 schrieb Gerald Pfeifer:
On Mon, 2 Sep 2024, Georg-Johann Lay wrote:
Atmel is no more the AVR manufacturer. This patch removes the
manufacturer from the file headers.
We also have
AVR
Manufacturer: Atmel
https://www.microchip.com/en-us/products
Am 17.11.24 um 15:42 schrieb Georg-Johann Lay:
Here are some examples:
Here are the examples again, but unTABified for legibility:
Without optimization | With optimization
| =
long long fn_zero (void
When splitting multi-byte REG-REG moves in try_split_any(),
it's not clear whether propagating constants will turn
out as profitable. When MOVW is available, split into
REG-REG moves instead of a possible REG-CONST.
Johann
--
AVR: ad target/84211 - Split MOVW into MOVs in try_split_any.
This patch fixed some unrelated coding rule nits.
Johann
--
AVR: Fix some coding rule nits and typos.
gcc/
* config/avr/avr-c.cc: Fix some coding rule nits and typos.
* config/avr/avr-passes.cc: Same
* config/avr/avr.h: Same.
* config/avr/avr.cc: Same.
(
Am 01.12.24 um 05:45 schrieb Maciej W. Rozycki:
On Sat, 30 Nov 2024, Georg-Johann Lay wrote:
The gcc.c-torture/execute/memcpy-a[1248].c tests consumed more time
than the whole rest of the test suite, just to come up with
a "memory full" even at -Os. Skipped thusly.
As a matter o
Logic 8-bit shifts with an offset of 6 can be improved by
supporting them as 3-operand operations.
Ok for trunk?
Johann
--
AVR: Tweak uin8_t << 6 and uint8_t >> 6 shifts.
Logic 8-bit shifts with an offset of 6 can be improved by
supporting them as 3-operand operations.
PR target/1177
1101 - 1200 of 1297 matches
Mail list logo