This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] fix tree-optimization PRs: 22543 and 22228





A detailed description of the problem can be found here:
http://gcc.gnu.org/ml/gcc/2005-08/msg00320.html

The bottom line is that during loop-peeling we can't update the ssa-form
for variables that are not in loop-closed-ssa-form, and virtual-variables
are not guaranteed to be in loop-closed-form. The solution is to mark these
virtual variables for renaming.
Because there's a call to delete_update_ssa() between the point where
peeling takes place and the call to update_ssa(), we don't mark the
variables for renaming directly during peeling, but just record them in a
bitmap, and mark them for renaming later, just before the call to
update_ssa().

Bootstrapped (with vectorization enabled) on powerpc-darwin, tested on the
vectorizer testcases.
Verified that the testcases from PR22543 and PR22228 are solved both on
powerpc-darwin and i686-pc-linux-gnu.

ok to commit?

thanks,
dorit

:ADDPATCH SSA:

Changelog:

      PR tree-optimization/22228
      * tree-ssa-loop (pass_vectorize): Replace PROP_ssa with
      TODO_verify_loops in required properties for this pass.
      * tree-vect-transform.c (vect_transform_loop): Mark the variables
that
      are recorded in vect_vnames_to_rename for renaming.
      * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
      (slpeel_update_phi_nodes_for_guard1): Record virtual vars for
renaming
      in vect_vnames_to_rename.
      (vectorize_loops): Allocate and free the vect_vnames_to_rename
bitmap.
      * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.

Patch:

(See attached file: aug14.updatessa_patch)

Attachment: aug14.updatessa_patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]