[Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-18 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-18 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-19 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: FIX ICE in optabs due to bad rotate expander.

2011-04-19 Thread Georg-Johann Lay
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 >>>>>

Re: [Patch,AVR]: FIX ICE in optabs due to bad rotate expander.

2011-04-19 Thread Georg-Johann Lay
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

[testsuite]: Skip some tests for avr

2011-04-19 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-19 Thread Georg-Johann Lay
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

Re: [testsuite]: Skip some tests for avr

2011-04-19 Thread Georg-Johann Lay
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. >

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-19 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-19 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-19 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: FIX ICE in optabs due to bad rotate expander.

2011-04-20 Thread 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 >>> allocator, because it is not possible to distinguish between >>> overlapping or non-overlapping

Re: [Patch,AVR]: PR18145: do_copy_data & do_clear_bss only if needed

2011-04-20 Thread Georg-Johann Lay
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

[Patch,AVR]: Solve PR42210

2011-04-20 Thread Georg-Johann Lay
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", "*

Re: [Patch,AVR]: Solve PR42210

2011-04-21 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Solve PR42210

2011-04-26 Thread Georg-Johann Lay
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 &

Re: [Patch,AVR]: Solve PR42210

2011-04-26 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Solve PR42210

2011-04-27 Thread Georg-Johann Lay
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

Ping #1: [Patch,AVR]: Solve PR42210

2011-05-02 Thread Georg-Johann Lay
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

[Patch,AVR]: Fix PR27663

2011-05-02 Thread Georg-Johann Lay
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

[Patch,AVR]: Fix PR45099

2011-05-02 Thread Georg-Johann Lay
-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

Re: [Patch,AVR]: Fix PR27663

2011-05-06 Thread 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. >> >> For -fsplit-wide-types (which is still default for avr) the code is >> worse than with -fno-split-wide-typ

Re: [Patch,AVR]: Fix PR45099

2011-05-06 Thread 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 parameter to a function. >> >> Because the program will show malfunction when such code

[Patch,AVR]: Fix PR48896

2011-05-09 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Fix PR27663

2011-05-11 Thread 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. 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

Re: [Patch,AVR]: Fix PR45099

2011-05-16 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Fix PR27663

2011-05-16 Thread Georg-Johann Lay
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. >>>> >>&

Re: [Patch,AVR]: Solve PR42210

2011-05-16 Thread Georg-Johann Lay
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

Re: [Patch, AVR]: PR42240 - Fix epilogue of naked functions

2011-03-03 Thread Georg-Johann Lay
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

Re: [Patch, AVR]: PR42240 - Fix epilogue of naked functions

2011-03-03 Thread Georg-Johann Lay
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

Re: [Patch, AVR]: PR42240 - Fix epilogue of naked functions

2011-03-04 Thread Georg-Johann Lay
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

[Patch, AVR] Housekeeping: Hookize REGISTER_MOVE_COST, MEMORY_MOVE_COST

2011-03-08 Thread Georg-Johann Lay
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

[Patch][AVR]: Support tail calls

2011-03-11 Thread Georg-Johann Lay
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_

Re: [Patch][AVR]: Support tail calls

2011-03-11 Thread Georg-Johann Lay
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 >&

Re: [Patch][AVR]: Support tail calls

2011-03-14 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Support tail calls

2011-03-16 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Support tail calls

2011-03-16 Thread 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 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

Re: [AVR] Hookize LIBCALL_VALUE and FUNCTION_VALUE_REGNO_P

2011-03-16 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Support tail calls

2011-03-18 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Support tail calls

2011-03-21 Thread Georg-Johann Lay
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

[Patch][AVR]: Use define_c_enum where appropriate

2011-03-23 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Use define_c_enum where appropriate

2011-03-23 Thread Georg-Johann Lay
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_

Re: [Patch][AVR]: Use define_c_enum where appropriate

2011-03-23 Thread Georg-Johann Lay
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

[Patch, testsuite]: Don't xfail sibcalls on AVR

2011-03-24 Thread Georg-Johann Lay
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

Re: Cleaning up expand optabs code

2011-03-25 Thread Georg-Johann Lay
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

Re: Cleaning up expand optabs code

2011-03-25 Thread Georg-Johann Lay
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

[Ping][Patch, testsuite]: Don't xfail sibcalls on AVR

2011-03-29 Thread Georg-Johann Lay
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

Re: Cleaning up expand optabs code

2011-03-31 Thread Georg-Johann Lay
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) >> >> ../

Re: Cleaning up expand optabs code

2011-04-01 Thread Georg-Johann Lay
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

[Patch,AVR]: Fix PR45263

2011-04-01 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Fix PR45263

2011-04-01 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Fix PR45263

2011-04-04 Thread Georg-Johann Lay
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 &

Re: [Ping #2][Patch, testsuite]: Don't xfail sibcalls on AVR

2011-04-05 Thread Georg-Johann Lay
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. > >

Re: [Ping #2][Patch, testsuite]: Don't xfail sibcalls on AVR

2011-04-06 Thread Georg-Johann Lay
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: [

Re: [Ping #2][Patch, testsuite]: Don't xfail sibcalls on AVR

2011-04-06 Thread Georg-Johann Lay
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

Re: [Patch,AVR]: Fix PR45263

2011-04-06 Thread Georg-Johann Lay
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

[Patch][AVR]: Initial builtins support

2011-04-06 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Initial builtins support

2011-04-06 Thread Georg-Johann Lay
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

Re: [Patch][AVR]: Initial builtins support

2011-04-06 Thread Georg-Johann Lay
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

[Patch,AVR]: Fix PR target/44643

2011-04-07 Thread Georg-Johann Lay
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 ===

Re: [Ping #2][Patch, testsuite]: Don't xfail sibcalls on AVR

2011-04-08 Thread Georg-Johann Lay
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

Re: Ping [Patch,AVR]: Fix PR target/44643

2011-04-11 Thread Georg-Johann Lay
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[]".

Re:Ping: [Patch][AVR]: Initial builtins support

2011-04-11 Thread Georg-Johann Lay
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,

Re: Ping: [Patch,AVR]: Fix PR45263

2011-04-11 Thread Georg-Johann Lay
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 &

[patch,avr] Implement TARGET_FLOATN_MODE

2024-10-04 Thread 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

Re: [patch,avr] Implement TARGET_FLOATN_MODE

2024-10-04 Thread Georg-Johann Lay
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

[patch,testsuite] Some float64 and float32x test require double64plus.

2024-10-04 Thread Georg-Johann Lay
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

[patch,avr,applied] Add test cases for PR116550

2024-10-17 Thread Georg-Johann Lay
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

[patch, testsuite, applied] ad PR52641: Make strict-flex-array-3.c work on int != 32-bit targets

2024-10-02 Thread Georg-Johann Lay
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.

[patch,avr] Fix PR116953 trouble with global state recog_data

2024-10-22 Thread Georg-Johann Lay
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

[patch,gensupport] Support (symbol_ref { code }) in insn attributes.

2024-09-29 Thread Georg-Johann Lay
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

[patch,avr] Use (symbol_ref { code }) in insn length computation.

2024-09-29 Thread Georg-Johann Lay
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) ?

[patch,avr,applied] Fix a build warning in avr-passes.cc

2024-10-01 Thread Georg-Johann Lay
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

[patch,avr,applied] Drop a superfluous sub-condition in avr_out_compare.

2024-10-01 Thread Georg-Johann Lay
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

[patch,reload] Add target macro RELOAD_ELIMINABLE_REGS (PR116326)

2024-09-18 Thread Georg-Johann Lay
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

[patch,testsuite,applied] ad PR52641: Require int32 for gcc.dg/pr93820-2.c

2024-10-02 Thread Georg-Johann Lay
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

[patch,avr,applied] Make gcc.dg/pr113596.c work on AVR

2024-10-02 Thread Georg-Johann Lay
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

[patch,testsuite,applied] Fix gcc.dg/signbit-6.c for int != 32-bit targets

2024-10-02 Thread Georg-Johann Lay
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[

[patch,testsuite] Fix gcc.c-torture/execute/ieee/pr108540-1.c

2024-10-03 Thread Georg-Johann Lay
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 /* {

[patch,avr,applied] Make gcc.dg/c23-stdarg-9.c work

2024-10-03 Thread Georg-Johann Lay
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

[patch,avr] Fix PR116953 - jump_over_one_insn_p clobbers recog_data.operand in avr_out_sbxx_branch

2024-10-03 Thread Georg-Johann Lay
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.

[patch,avr] Add an RTL peephole to tweak lower_reg:QI o= cst.

2024-11-06 Thread Georg-Johann Lay
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

[patch,avr] PR117726: Post-reload split 2-byte and 3-byte shifts

2024-11-29 Thread Georg-Johann Lay
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

[patch,avr] Fix PR117681 build warning for libgcc/unwind-sjlj.c

2024-11-29 Thread Georg-Johann Lay
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

Re: [patch,avr] Adjust comment headers

2024-11-20 Thread Georg-Johann Lay
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

[patch,testsuite,applied] Skip 2 tests that are not int16 clean

2024-11-19 Thread Georg-Johann Lay
/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

[patch,avr] PR54378 Reconsider the default shift costs.

2024-11-19 Thread Georg-Johann Lay
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

[patch,avr] Use more bool

2024-11-19 Thread Georg-Johann Lay
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

Re: [patch,avr] PR84211: Add a new post reload optimization pass

2024-11-19 Thread 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&=’ (operand types are ‘{anonymous}::gprmask_t’ {aka ‘unsigned

[patch,avr,applied] ad PR84211: Fix build fallout from PR84211 on some hosts

2024-11-19 Thread Georg-Johann Lay
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

[patch,avr] Overhaul shift insns

2024-11-19 Thread Georg-Johann Lay
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

[patch,avr,applied] Fix PR117659: Wrong code for shift u24 << 16

2024-11-18 Thread Georg-Johann Lay
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]:

[patch,avr] Fix PR117500: Don't ICE on invalid asm operands.

2024-11-09 Thread Georg-Johann Lay
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/ *

[patch, avr, applied] Fix broken libgcc/libf7 build after switching to C23

2024-11-16 Thread Georg-Johann Lay
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

Re: [patch,avr] Adjust comment headers

2024-11-18 Thread 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 https://www.microchip.com/en-us/products

Re: [patch,avr] PR84211: Add a new post reload optimization pass

2024-11-17 Thread Georg-Johann Lay
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

[patch, avr] ad PR84211: Prefer split into reg-reg move over reg-const move

2024-11-30 Thread Georg-Johann Lay
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.

[patch,avr,applied] Fix some coding rule nits

2024-11-30 Thread Georg-Johann Lay
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. (

Re: [patch,avr,testsuite,applied] gcc.c-torture/execute/memcpy-a*.c

2024-12-01 Thread Georg-Johann Lay
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

[patch, avr] ad PR117726: Improve logic 8-bit shifts with an offset of 6

2024-12-02 Thread Georg-Johann Lay
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

<    7   8   9   10   11   12   13   >