PATCH for IA64 MASK defines

Steve Ellcey sje@cup.hp.com
Mon Feb 2 21:30:00 GMT 2004


I have been looking to IA64 performance a bit and discovered that we
cannot inline floating point division without also inlining integer
division because we have multiple MASK definitions in config/ia64/ia64.h
with the same value.  This patch makes all the MASK values distinct.

Currently:
	MASK_INLINE_FLOAT_DIV_LAT == MASK_INLINE_INT_DIV_LAT
	MASK_INLINE_FLOAT_DIV_THR == MASK_INLINE_INT_DIV_THR
	MASK_INLINE_SQRT_LAT == MASK_EARLY_STOP_BITS

I am still testing but I don't expect any problems.  OK to check in
assuming my testing finishes with no problems?

Steve Ellcey
sje@cup.hp.com


2004-02-02  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
	(MASK_INLINE_INT_DIV_THR): Ditto.
	(MASK_INLINE_SQRT_LAT): Ditto.
	(MASK_INLINE_SQRT_THR): Ditto.
	(MASK_DWARF2_ASM): Ditto.
	(MASK_EARLY_STOP_BITS): Ditto.

*** gcc.orig/gcc/gcc/config/ia64/ia64.h	Mon Feb  2 13:19:18 2004
--- gcc/gcc/gcc/config/ia64/ia64.h	Mon Feb  2 13:22:07 2004
*************** extern int target_flags;
*** 83,99 ****
  
  #define MASK_INLINE_FLOAT_DIV_THR 0x00001000 /* inline div, max throughput.  */
  
! #define MASK_INLINE_INT_DIV_LAT   0x00000800 /* inline div, min latency.  */
  
! #define MASK_INLINE_INT_DIV_THR   0x00001000 /* inline div, max throughput.  */
  
! #define MASK_INLINE_SQRT_LAT      0x00002000 /* inline sqrt, min latency.  */
  
! #define MASK_INLINE_SQRT_THR      0x00004000 /* inline sqrt, max throughput. */
  
! #define MASK_DWARF2_ASM 0x40000000	/* test dwarf2 line info via gas.  */
  
! #define MASK_EARLY_STOP_BITS 0x00002000 /* tune stop bits for the model.  */
  
  #define TARGET_BIG_ENDIAN	(target_flags & MASK_BIG_ENDIAN)
  
--- 83,99 ----
  
  #define MASK_INLINE_FLOAT_DIV_THR 0x00001000 /* inline div, max throughput.  */
  
! #define MASK_INLINE_INT_DIV_LAT   0x00002000 /* inline div, min latency.  */
  
! #define MASK_INLINE_INT_DIV_THR   0x00004000 /* inline div, max throughput.  */
  
! #define MASK_INLINE_SQRT_LAT      0x00008000 /* inline sqrt, min latency.  */
  
! #define MASK_INLINE_SQRT_THR      0x00010000 /* inline sqrt, max throughput. */
  
! #define MASK_DWARF2_ASM 0x00020000	/* test dwarf2 line info via gas.  */
  
! #define MASK_EARLY_STOP_BITS 0x00040000 /* tune stop bits for the model.  */
  
  #define TARGET_BIG_ENDIAN	(target_flags & MASK_BIG_ENDIAN)
  



More information about the Gcc-patches mailing list