[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