Using and Porting GNU CC - Constant Attributes

Node: Constant Attributes Next: Delay Slots Prev: Insn Lengths Up: Insn Attributes

Constant Attributes

A special form of define_attr , where the expression for the default value is a const expression, indicates an attribute that is constant for a given run of the compiler. Constant attributes may be used to specify which variety of processor is used. For example,

	(define_attr "cpu" "m88100,m88110,m88000"
	 (const
	  (cond [(symbol_ref "TARGET_88100") (const_string "m88100")
	         (symbol_ref "TARGET_88110") (const_string "m88110")]
	        (const_string "m88000"))))
	
	(define_attr "memory" "fast,slow"
	 (const
	  (if_then_else (symbol_ref "TARGET_FAST_MEM")
	                (const_string "fast")
	                (const_string "slow"))))

The routine generated for constant attributes has no parameters as it does not depend on any particular insn. RTL expressions used to define the value of a constant attribute may use the symbol_ref form, but may not use either the match_operand form or eq_attr forms involving insn attributes.


Next: Delay Slots Up: Insn Attributes