diff options
author | Richard Guenther <rguenther@suse.de> | 2010-09-06 13:26:13 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-09-06 13:26:13 +0000 |
commit | be1ac4ecae4317082e9a45c86f3b90e0e429e78f (patch) | |
tree | ae7fc5c26853d1f5d2558a8bfd07474392012be4 /gcc/tree.h | |
parent | 863a75787c5765257e516afa538dee2e22d6d0ad (diff) | |
download | gcc-be1ac4ecae4317082e9a45c86f3b90e0e429e78f.zip gcc-be1ac4ecae4317082e9a45c86f3b90e0e429e78f.tar.gz gcc-be1ac4ecae4317082e9a45c86f3b90e0e429e78f.tar.bz2 |
tree.def (MISALIGNED_INDIRECT_REF): Remove.
2010-09-06 Richard Guenther <rguenther@suse.de>
* tree.def (MISALIGNED_INDIRECT_REF): Remove.
* tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
(build_aligned_type): Declare.
* tree.c (check_qualified_type): Also compare TYPE_ALIGN.
(check_aligned_type): New function.
(build_aligned_type): Likewise.
* expr.c (expand_assignment): Handle misaligned stores via
TARGET_MEM_REF and MEM_REF using movmisalign_optab.
(expand_expr_real_1): Likewise.
(safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
* tree-vect-stmts.c (vectorizable_store): Do not build
MISALIGNED_INDIRECT_REF but initialize alignment information.
(vectorizable_load): Likewise.
* builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
handling.
* cfgexpand.c (expand_debug_expr): Likewise.
* dwarf2out.c (loc_list_from_tree): Likewise.
* fold-const.c (maybe_lvalue_p): Likewise.
(operand_equal_p): Likewise.
(build_fold_addr_expr_with_type_loc): Likewise.
* gimplify.c (gimplify_addr_expr): Likewise.
(gimplify_expr): Likewise.
* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
(verify_gimple_assign_single): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
(tree_could_trap_p): Likewise.
* tree-predcom.c (ref_at_iteration): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
(op_code_prio): Likewise.
(op_symbol_code): Likewise.
* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
* tree-ssa-loop-im.c (for_each_index): Likewise.
(gen_lsm_tmp_name): Likewise.
* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
(find_interesting_uses_address): Likewise.
* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
(ao_ref_init_from_vn_reference): Likewise.
* tree.c (staticp): Likewise.
(build1_stat): Likewise.
(reference_alias_ptr_type): Likewise.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
MISALIGNED_INDIRECT_REF handling.
From-SVN: r163915
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -117,8 +117,7 @@ extern const enum tree_code_class tree_code_type[]; ascending code order. */ #define INDIRECT_REF_P(CODE)\ - (TREE_CODE (CODE) == INDIRECT_REF \ - || TREE_CODE (CODE) == MISALIGNED_INDIRECT_REF) + (TREE_CODE (CODE) == INDIRECT_REF) /* Nonzero if CODE represents a reference. */ @@ -602,7 +601,7 @@ struct GTY(()) tree_common { all types TREE_THIS_NOTRAP in - (ALIGN/MISALIGNED_)INDIRECT_REF, ARRAY_REF, ARRAY_RANGE_REF + INDIRECT_REF, ARRAY_REF, ARRAY_RANGE_REF deprecated_flag: @@ -1250,8 +1249,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, /* Nonzero means this node will not trap. In an INDIRECT_REF, means accessing the memory pointed to won't generate a trap. However, this only applies to an object when used appropriately: it doesn't - mean that writing a READONLY mem won't trap. Similarly for - MISALIGNED_INDIRECT_REF. + mean that writing a READONLY mem won't trap. In ARRAY_REF and ARRAY_RANGE_REF means that we know that the index (or slice of the array) always belongs to the range of the array. @@ -4306,6 +4304,10 @@ extern tree get_qualified_type (tree, int); extern tree build_qualified_type (tree, int); +/* Create a variant of type T with alignment ALIGN. */ + +extern tree build_aligned_type (tree, unsigned int); + /* Like build_qualified_type, but only deals with the `const' and `volatile' qualifiers. This interface is retained for backwards compatibility with the various front-ends; new code should use |