------- Comment #8 from jvdelisle at gcc dot gnu dot org 2010-02-13 06:17 ------- Created an attachment (id=19856) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19856&action=view) Prelinary patch to fix this
The attached patch is preliminary. It borrows the existing gfc_trans_do code and creates special versions just for implied do loops in I/O statements. This adds a simple test to exit the loop on iostat of END, EOR, or EOF. The overhead is light relative to the I/O. Speeds up the testcase from: real 0m2.100s user 0m0.777s sys 0m0.009s to: real 0m0.013s user 0m0.000s sys 0m0.004s I plan to refactor the code to simplify it all. This first patch is just proof of principle and does pass regression tests. -- jvdelisle at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |jvdelisle at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32382