GCC Middle and Back End API Reference
tree-ssa-address.h File Reference

Go to the source code of this file.

Functions

rtx addr_for_mem_ref (struct mem_address *, addr_space_t, bool)
rtx addr_for_mem_ref (tree exp, addr_space_t as, bool really_expand)
void get_address_description (tree, struct mem_address *)
tree tree_mem_ref_addr (tree, tree)
tree create_mem_ref (gimple_stmt_iterator *, tree, struct affine_tree_combination *, tree, tree, tree, bool)
void copy_ref_info (tree, tree)
tree maybe_fold_tmr (tree)

Function Documentation

rtx addr_for_mem_ref ( struct mem_address addr,
addr_space_t  as,
bool  really_expand 
)
   Returns address for TARGET_MEM_REF with parameters given by ADDR
   in address space AS.
   If REALLY_EXPAND is false, just make fake registers instead
   of really expanding the operands, and perform the expansion in-place
   by using one of the "templates".  
         Reuse the templates for addresses, so that we do not waste memory.  
     Otherwise really expand the expressions.  
rtx addr_for_mem_ref ( tree  exp,
addr_space_t  as,
bool  really_expand 
)
void copy_ref_info ( tree  ,
tree   
)
tree create_mem_ref ( gimple_stmt_iterator gsi,
tree  type,
aff_tree addr,
tree  alias_ptr_type,
tree  iv_cand,
tree  base_hint,
bool  speed 
)
   Creates and returns a TARGET_MEM_REF for address ADDR.  If necessary
   computations are emitted in front of GSI.  TYPE is the mode
   of created memory reference. IV_CAND is the selected iv candidate in ADDR,
   and BASE_HINT is non NULL if IV_CAND comes from a base address
   object.  
     The expression is too complicated.  Try making it simpler.  
         Move the multiplication to index.  
         Add the symbol to base, eventually forcing it to register.  
         Add index to base.  
         Try adding offset to base.  
     Verify that the address is in the simplest possible shape
     (only a register).  If we cannot create such a memory reference,
     something is really wrong.  

References mem_address::base, force_gimple_operand_gsi_1(), GSI_SAME_STMT, mem_address::index, is_gimple_mem_ref_addr(), and useless_type_conversion_p().

void get_address_description ( tree  ,
struct mem_address  
)
tree maybe_fold_tmr ( tree  )
tree tree_mem_ref_addr ( tree  ,
tree   
)