Re: [wwwdocs] mention AVR additions

2017-12-18 Thread Georg-Johann Lay

On 14.12.2017 21:44, Gerald Pfeifer wrote:

Hi Johann,

On Wed, 13 Dec 2017, Georg-Johann Lay wrote:

This adds AVR improvements to v8 Release Notes.


that's quite impressive a set of improvements!

Index: changes.html
===
    The new devices are filed under     href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3. 



I'm not sure whether "filed under" is the best choice of wording (and
when I say that, I really am not).  So perhaps use "listed" under or
similar?


Ok.


features like PROGMEM and __flash
are no more needed (as opposed to other AVR families for which


"are not needed any more"


Ok.


that the compiler is used with Binutils2.29 or newer so that
read-only data will be located in flash memory, see feature
https://sourceware.org/PR21472;>PR21472.


How about using "read-only data will be located in flash memory" the
text for that link, and omit the "see feature PR..." part?  That'll
make it easier to read.


Ok.

  A new command line option -mshort-calls is 
supported.


"command-line"


Fixed.


This option is used internally for multilib selection of the
avrxmega3 variants.
It is not an optimization option, and you don't need to set
it by hand.


"do not" to emphasize this more strongly.


Ok.

    The compiler now implements feature href="http://gcc.gnu.org/PR20296;>PR20296

    and will generate more efficient interrupt service routine (ISR)
    prologues and epilogues.


Here I suggest "The compiler now generates..." (and perhaps make this a
link to the PR, but use https here).


Ok.


  A new command line option -mno-gas-isr-prologues


"command-line"


Fixed.


has been added.  It disables the generation of the


How about "A new command line option -mno-gas-isr-prologues
disable the generation..."?  Shorter and easier to read.


Ok.


Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg,


... around SREG, tmp_reg and zero_reg.


Fixed.

  The feature is turned on per default for all optimization 
levels

except for -O0 and -Og. It can still be
  enabled by means of option -mgas-isr-prologues.


"It is explicitly enabled by..."


Ok.


  Support has been added for a new
href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR 
function attribute

no_gccisr.


Is there something missing after "a new"?  "A new" what?


...a new "AVR function attribute" ... where the quoted text is
hyper-linked to the documentation of AVR function attributes.


Please go ahead and commit (taking the above into account) and just
share the final patch here in response.

Thank you for taking the time to document all this!

Gerald


Thank you for the friendly review.  Applied as attached.

Johann

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v
retrieving revision 1.22
diff -r1.22 changes.html
179c179,238
< 
---
> AVR
> 
>   
> The AVR port now supports the following XMEGA-like devices:
> 
>   ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
>   ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617,
>   ATtiny3214, ATtiny3216, ATtiny3217
> 
> The new devices are listed under 
> https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3.
> 
>   These devices see flash memory in the RAM address space, so that
> 	features like PROGMEM and __flash
> 	are not needed any more (as opposed to other AVR families for which
> 	read-only data will be located in RAM except special, non-standard
> 	features are used to locate and access such data). This requires
> 	that the compiler is used with Binutils2.29 or newer so that
> 	https://sourceware.org/PR21472;>read-only data will be
> 	  located in flash memory.
>   A new command-line option -mshort-calls is supported.
> 	This option is used internally for multilib selection of the
> 	avrxmega3 variants. It is
> 	not an optimization option. Do not set it by hand.
> 
>   
>   
> The compiler now generates
> https://gcc.gnu.org/PR20296;> efficient interrupt service routine
>   (ISR) prologues and epilogues.  This is achieved by using the new
> https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html;>
>   AVR pseudo instruction __gcc_isr which is supported
> and resolved by the GNU assembler.
> 
>   As the __gcc_isr pseudo-instruction will be resolved by
> 	the assembler, inline assembly is transparent to the process.
> 	This means that when inline assembly uses an instruction like
> 	INC that clobbers the condition code,
> 	then the assembler will detect this and generate an appropriate
> 	ISR prologue / epilogue chunk to save / restore SREG as needed.
>   A new command-line option -mno-gas-isr-prologues
> 	disables the generation of the __gcc_isr 

Re: [wwwdocs] mention AVR additions

2017-12-14 Thread Gerald Pfeifer

Hi Johann,

On Wed, 13 Dec 2017, Georg-Johann Lay wrote:

This adds AVR improvements to v8 Release Notes.


that's quite impressive a set of improvements!

Index: changes.html
===
The new devices are filed under 
https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3.


I'm not sure whether "filed under" is the best choice of wording (and
when I say that, I really am not).  So perhaps use "listed" under or
similar?


features like PROGMEM and __flash
are no more needed (as opposed to other AVR families for which


"are not needed any more"


that the compiler is used with Binutils2.29 or newer so that
read-only data will be located in flash memory, see feature
https://sourceware.org/PR21472;>PR21472.


How about using "read-only data will be located in flash memory" the
text for that link, and omit the "see feature PR..." part?  That'll
make it easier to read.


  A new command line option -mshort-calls is supported.


"command-line"


This option is used internally for multilib selection of the
avrxmega3 variants.
It is not an optimization option, and you don't need to set
it by hand.


"do not" to emphasize this more strongly.


The compiler now implements feature http://gcc.gnu.org/PR20296;>PR20296
and will generate more efficient interrupt service routine (ISR)
prologues and epilogues.


Here I suggest "The compiler now generates..." (and perhaps make this a
link to the PR, but use https here).


  A new command line option -mno-gas-isr-prologues


"command-line"


has been added.  It disables the generation of the


How about "A new command line option -mno-gas-isr-prologues
disable the generation..."?  Shorter and easier to read.


Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg,


... around SREG, tmp_reg and zero_reg.


  The feature is turned on per default for all optimization levels
except for -O0 and -Og. It can still be
  enabled by means of option -mgas-isr-prologues.


"It is explicitly enabled by..."


  Support has been added for a new
https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR 
function attribute
no_gccisr.


Is there something missing after "a new"?  "A new" what?


Please go ahead and commit (taking the above into account) and just
share the final patch here in response.

Thank you for taking the time to document all this!

Gerald


[wwwdocs] mention AVR additions

2017-12-13 Thread Georg-Johann Lay

This adds AVR improvements to v8 Release Notes.

Ok?

Johann

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v
retrieving revision 1.22
diff -r1.22 changes.html
179c179,240
< 
---
> AVR
> 
>   
> The avr port now supports the following XMEGA-like devices:
> 
>   ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
>   ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617,
>   ATtiny3214, ATtiny3216, ATtiny3217
> 
> The new devices are filed under 
> https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3.
> 
>   These devices see flash memory in the RAM address space, so that
> 	features like PROGMEM and __flash
> 	are no more needed (as opposed to other AVR families for which
> 	read-only data will be located in RAM except special, non-standard
> 	features are used to locate and access such data). This requires
> 	that the compiler is used with Binutils2.29 or newer so that
> 	read-only data will be located in flash memory, see feature
> 	https://sourceware.org/PR21472;>PR21472.
>   A new command line option -mshort-calls is supported.
> 	This option is used internally for multilib selection of the
> 	avrxmega3 variants.
> 	It is not an optimization option, and you don't need to set
> 	it by hand.
> 
>   
>   
> The compiler now implements feature http://gcc.gnu.org/PR20296;>PR20296
> and will generate more efficient interrupt service routine (ISR)
> prologues and epilogues.  This is achieved by using the new pseudo
> instruction __gcc_isr which is supported and resolved by
> the GNU assembler.
> 
>   As the __gcc_isr pseudo-instruction will be resolved by
> 	the assembler, inline assembly is transparent to the process.
> 	This means that when inline assembly uses an instruction like
> 	INC that clobbers the condition code,
> 	then the assembler will detect this and generate an appropriate
> 	ISR prologue / epilogue chunk to save / restore SREG as needed.
>   A new command line option -mno-gas-isr-prologues
> 	has been added.  It disables the generation of the
> 	__gcc_isr pseudo instruction.
> 	Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg,
> 	no matter whether the respective register is clobbered or used.
>   The feature is turned on per default for all optimization levels
> 	except for -O0 and -Og. It can still be
>   enabled by means of option -mgas-isr-prologues.
>   Support has been added for a new
> 	https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR function attribute
> 	no_gccisr. It can be used to disable
> 	__gcc_isr pseudo instruction generation for
> 	individual ISRs.
>   This optimization is only available if GCC is configured with
> 	GNU Binutils2.29; or at least with a version of Binutils that
> 	implements feature
> 	https://sourceware.org/PR21683;>PR21683.
> 	For technical details and an example, see the
> 	https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html;>GNU AVR assembler manual.
> 
>   
>