[tree-ssa] New test
law@redhat.com
law@redhat.com
Wed Aug 13 21:41:00 GMT 2003
Another test for tree-ssa's optimizer. The fix for this missing
optimization will be committed shortly.
* gcc.dg/tree-ssa/20030807-8.c: New test.
Index: 20030807-8.c
===================================================================
RCS file: 20030807-8.c
diff -N 20030807-8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- 20030807-8.c 13 Aug 2003 21:39:35 -0000
***************
*** 0 ****
--- 1,53 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-ssa" } */
+
+ struct die_struct;
+ typedef struct die_struct *dw_die_ref;
+ typedef struct dw_loc_list_struct *dw_loc_list_ref;
+ enum dw_val_class
+ {
+ dw_val_class_loc_list,
+ };
+ typedef struct dw_val_struct
+ {
+ enum dw_val_class val_class;
+ union dw_val_struct_union
+ {
+ dw_loc_list_ref val_loc_list;
+ }
+ v;
+ }
+ dw_val_node;
+ typedef struct dw_attr_struct *dw_attr_ref;
+ typedef struct dw_attr_struct
+ {
+ dw_val_node dw_attr_val;
+ }
+ dw_attr_node;
+
+ extern __inline__ enum dw_val_class
+ AT_class (a)
+ dw_attr_ref a;
+ {
+ return a->dw_attr_val.val_class;
+ }
+ extern __inline__ dw_loc_list_ref
+ AT_loc_list (a)
+ dw_attr_ref a;
+ {
+ if (AT_class (a) == dw_val_class_loc_list)
+ return a->dw_attr_val.v.val_loc_list;
+ }
+ static void
+ output_location_lists (die)
+ dw_die_ref die;
+ {
+ dw_die_ref c;
+ dw_attr_ref d_attr;
+ if (AT_class (d_attr) == dw_val_class_loc_list)
+ output_loc_list (AT_loc_list (d_attr));
+ }
+
+ /* There should be exactly two IF conditionals, one in the AT_loc_list
+ function and another in output_location_lists. */
+ /* { dg-final { scan-tree-dump-times "if " 2 "ssa"} } */
More information about the Gcc-patches
mailing list