diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-10-17 09:31:36 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-10-17 05:31:36 -0400 |
commit | 738cc472453eb61b6d18e223877e5380d7adb0dd (patch) | |
tree | 3f3a09b804dc2ad899529714f44003c6933712ab /gcc/expr.h | |
parent | 4d8f669f9481e4154eea13098cb6def6b64bcb1f (diff) | |
download | gcc-738cc472453eb61b6d18e223877e5380d7adb0dd.zip gcc-738cc472453eb61b6d18e223877e5380d7adb0dd.tar.gz gcc-738cc472453eb61b6d18e223877e5380d7adb0dd.tar.bz2 |
Makefile.in (print-rtl.o): Depend on TREE_H.
* Makefile.in (print-rtl.o): Depend on TREE_H.
* alias.c (get_alias_set): Make two passes over objects to first
see if inner object is access via restricted pointer.
Defer allocating alias set for restricted pointer until here.
Call find_placeholder with second arg nonzero.
Minor cleanups.
* emit-rtl.c (set_mem_attributes): Set more attributes.
(set_mem_align, change_address, adjust_address_1): New functions.
(change_address_1): Now static.
(adjust_address, adjust_address_nv): Deleted.
(replace_equiv_address): Call change_address_1.
* expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
(find_placeholder): Get starting point from PLIST arg.
(expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
* expr.h (set_mem_align, change_address, adjust_address_1): New decls.
(adjust_address, adjust_address_nv): New macros.
* print-rtl.c (tree.h): New include.
(print_rtx, case MEM): Print all memory attributes.
From-SVN: r46313
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 30 |
1 files changed, 17 insertions, 13 deletions
@@ -500,10 +500,11 @@ extern rtx force_operand PARAMS ((rtx, rtx)); /* Return an object on the placeholder list that matches EXP, a PLACEHOLDER_EXPR. An object "matches" if it is of the type of the - PLACEHOLDER_EXPR or a pointer type to it. For further information, - see tree.def. If no such object is found, abort. If PLIST is nonzero, - it is a location into which a pointer into the placeholder list at - which the object is found is placed. */ + PLACEHOLDER_EXPR or a pointer type to it. For further information, see + tree.def. If no such object is found, abort. If PLIST is nonzero, it is + a location which initially points to a starting location in the + placeholder list (zero means start of the list) and where a pointer into + the placeholder list at which the object is found is placed. */ extern tree find_placeholder PARAMS ((tree, tree *)); /* Generate code for computing expression EXP. @@ -611,23 +612,26 @@ extern rtx memory_address_noforce PARAMS ((enum machine_mode, rtx)); /* Set the alias set of MEM to SET. */ extern void set_mem_alias_set PARAMS ((rtx, HOST_WIDE_INT)); +/* Set the alignment of MEM to ALIGN. */ +extern void set_mem_align PARAMS ((rtx, unsigned int)); + /* Return a memory reference like MEMREF, but with its mode changed to MODE and its address changed to ADDR. (VOIDmode means don't change the mode. - NULL for ADDR means don't change the address.) - VALIDATE is nonzero if the returned memory location is required to be - valid. */ -extern rtx change_address_1 PARAMS ((rtx, enum machine_mode, rtx, int)); - -#define change_address(MEMREF, MODE, ADDR) \ - change_address_1 (MEMREF, MODE, ADDR, 1) + NULL for ADDR means don't change the address.) */ +extern rtx change_address PARAMS ((rtx, enum machine_mode, rtx)); /* Return a memory reference like MEMREF, but with its mode changed to MODE and its address offset by OFFSET bytes. */ -extern rtx adjust_address PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT)); +#define adjust_address(MEMREF, MODE, OFFSET) \ + adjust_address_1 (MEMREF, MODE, OFFSET, 1) /* Likewise, but the reference is not required to be valid. */ -extern rtx adjust_address_nv PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT)); +#define adjust_address_nv(MEMREF, MODE, OFFSET) \ + adjust_address_1 (MEMREF, MODE, OFFSET, 0) + +extern rtx adjust_address_1 PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT, + int)); /* Return a memory reference like MEMREF, but with its address changed to ADDR. The caller is asserting that the actual piece of memory pointed |