OLD | NEW |
1 /* Header for code translation functions | 1 /* Header for code translation functions |
2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software | 2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
3 Foundation, Inc. | 3 Free Software Foundation, Inc. |
4 Contributed by Paul Brook | 4 Contributed by Paul Brook |
5 | 5 |
6 This file is part of GCC. | 6 This file is part of GCC. |
7 | 7 |
8 GCC is free software; you can redistribute it and/or modify it under | 8 GCC is free software; you can redistribute it and/or modify it under |
9 the terms of the GNU General Public License as published by the Free | 9 the terms of the GNU General Public License as published by the Free |
10 Software Foundation; either version 3, or (at your option) any later | 10 Software Foundation; either version 3, or (at your option) any later |
11 version. | 11 version. |
12 | 12 |
13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 pointer assignments. */ | 64 pointer assignments. */ |
65 unsigned direct_byref:1; | 65 unsigned direct_byref:1; |
66 | 66 |
67 /* Ignore absent optional arguments. Used for some intrinsics. */ | 67 /* Ignore absent optional arguments. Used for some intrinsics. */ |
68 unsigned ignore_optional:1; | 68 unsigned ignore_optional:1; |
69 | 69 |
70 /* When this is set the data and offset fields of the returned descriptor | 70 /* When this is set the data and offset fields of the returned descriptor |
71 are NULL. Used by intrinsic size. */ | 71 are NULL. Used by intrinsic size. */ |
72 unsigned data_not_needed:1; | 72 unsigned data_not_needed:1; |
73 | 73 |
74 /* If set, gfc_conv_function_call does not put byref calls into se->pre. */ | 74 /* If set, gfc_conv_procedure_call does not put byref calls into se->pre. */ |
75 unsigned no_function_call:1; | 75 unsigned no_function_call:1; |
76 | 76 |
77 /* Scalarization parameters. */ | 77 /* Scalarization parameters. */ |
78 struct gfc_se *parent; | 78 struct gfc_se *parent; |
79 struct gfc_ss *ss; | 79 struct gfc_ss *ss; |
80 struct gfc_loopinfo *loop; | 80 struct gfc_loopinfo *loop; |
81 } | 81 } |
82 gfc_se; | 82 gfc_se; |
83 | 83 |
84 | 84 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 int dim[GFC_MAX_DIMENSIONS]; | 119 int dim[GFC_MAX_DIMENSIONS]; |
120 } | 120 } |
121 gfc_ss_info; | 121 gfc_ss_info; |
122 | 122 |
123 typedef enum | 123 typedef enum |
124 { | 124 { |
125 /* A scalar value. This will be evaluated before entering the | 125 /* A scalar value. This will be evaluated before entering the |
126 scalarization loop. */ | 126 scalarization loop. */ |
127 GFC_SS_SCALAR, | 127 GFC_SS_SCALAR, |
128 | 128 |
129 /* Like GFC_SS_SCALAR except it evaluates a pointer to the expression. | 129 /* Like GFC_SS_SCALAR it evaluates the expression outside the |
130 Used for elemental function parameters. */ | 130 loop. Is always evaluated as a reference to the temporary. |
| 131 Used for elemental function arguments. */ |
131 GFC_SS_REFERENCE, | 132 GFC_SS_REFERENCE, |
132 | 133 |
133 /* An array section. Scalarization indices will be substituted during | 134 /* An array section. Scalarization indices will be substituted during |
134 expression translation. */ | 135 expression translation. */ |
135 GFC_SS_SECTION, | 136 GFC_SS_SECTION, |
136 | 137 |
137 /* A non-elemental function call returning an array. The call is executed | 138 /* A non-elemental function call returning an array. The call is executed |
138 before entering the scalarization loop, storing the result in a | 139 before entering the scalarization loop, storing the result in a |
139 temporary. This temporary is then used inside the scalarization loop. | 140 temporary. This temporary is then used inside the scalarization loop. |
140 Simple assignments, e.g. a(:) = fn(), are handled without a temporary | 141 Simple assignments, e.g. a(:) = fn(), are handled without a temporary |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 void gfc_conv_label_variable (gfc_se * se, gfc_expr * expr); | 304 void gfc_conv_label_variable (gfc_se * se, gfc_expr * expr); |
304 /* If the value is not constant, Create a temporary and copy the value. */ | 305 /* If the value is not constant, Create a temporary and copy the value. */ |
305 tree gfc_evaluate_now (tree, stmtblock_t *); | 306 tree gfc_evaluate_now (tree, stmtblock_t *); |
306 | 307 |
307 /* Intrinsic function handling. */ | 308 /* Intrinsic function handling. */ |
308 void gfc_conv_intrinsic_function (gfc_se *, gfc_expr *); | 309 void gfc_conv_intrinsic_function (gfc_se *, gfc_expr *); |
309 | 310 |
310 /* Does an intrinsic map directly to an external library call. */ | 311 /* Does an intrinsic map directly to an external library call. */ |
311 int gfc_is_intrinsic_libcall (gfc_expr *); | 312 int gfc_is_intrinsic_libcall (gfc_expr *); |
312 | 313 |
313 /* Also used to CALL subroutines. */ | 314 /* Used to call ordinary functions/subroutines |
314 int gfc_conv_function_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, | 315 and procedure pointer components. */ |
315 » » » tree); | 316 int gfc_conv_procedure_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, |
| 317 » » » gfc_expr *, tree); |
316 | 318 |
317 void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent); | 319 void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent, bool); |
318 | 320 |
319 /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */ | 321 /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */ |
320 | 322 |
321 /* Generate code for a scalar assignment. */ | 323 /* Generate code for a scalar assignment. */ |
322 tree gfc_trans_scalar_assign (gfc_se *, gfc_se *, gfc_typespec, bool, bool); | 324 tree gfc_trans_scalar_assign (gfc_se *, gfc_se *, gfc_typespec, bool, bool); |
323 | 325 |
324 /* Translate COMMON blocks. */ | 326 /* Translate COMMON blocks. */ |
325 void gfc_trans_common (gfc_namespace *); | 327 void gfc_trans_common (gfc_namespace *); |
326 | 328 |
327 /* Translate a derived type constructor. */ | 329 /* Translate a derived type constructor. */ |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 | 403 |
402 /* Assign a default initializer to a derived type. */ | 404 /* Assign a default initializer to a derived type. */ |
403 tree gfc_init_default_dt (gfc_symbol *, tree); | 405 tree gfc_init_default_dt (gfc_symbol *, tree); |
404 | 406 |
405 /* Substitute a temporary variable in place of the real one. */ | 407 /* Substitute a temporary variable in place of the real one. */ |
406 void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *); | 408 void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *); |
407 | 409 |
408 /* Restore the original variable. */ | 410 /* Restore the original variable. */ |
409 void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); | 411 void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); |
410 | 412 |
| 413 /* Setting a decl assembler name, mangling it according to target rules |
| 414 (like Windows @NN decorations). */ |
| 415 void gfc_set_decl_assembler_name (tree, tree); |
| 416 |
411 /* Returns true if a variable of specified size should go on the stack. */ | 417 /* Returns true if a variable of specified size should go on the stack. */ |
412 int gfc_can_put_var_on_stack (tree); | 418 int gfc_can_put_var_on_stack (tree); |
413 | 419 |
414 /* Allocate the lang-specific part of a decl node. */ | 420 /* Allocate the lang-specific part of a decl node. */ |
415 void gfc_allocate_lang_decl (tree); | 421 void gfc_allocate_lang_decl (tree); |
416 | 422 |
417 /* Advance along a TREE_CHAIN. */ | 423 /* Advance along a TREE_CHAIN. */ |
418 tree gfc_advance_chain (tree, int); | 424 tree gfc_advance_chain (tree, int); |
419 | 425 |
420 /* Create a decl for a function. */ | 426 /* Create a decl for a function. */ |
421 void gfc_create_function_decl (gfc_namespace *); | 427 void gfc_create_function_decl (gfc_namespace *); |
422 /* Generate the code for a function. */ | 428 /* Generate the code for a function. */ |
423 void gfc_generate_function_code (gfc_namespace *); | 429 void gfc_generate_function_code (gfc_namespace *); |
424 /* Output a BLOCK DATA program unit. */ | 430 /* Output a BLOCK DATA program unit. */ |
425 void gfc_generate_block_data (gfc_namespace *); | 431 void gfc_generate_block_data (gfc_namespace *); |
426 /* Output a decl for a module variable. */ | 432 /* Output a decl for a module variable. */ |
427 void gfc_generate_module_vars (gfc_namespace *); | 433 void gfc_generate_module_vars (gfc_namespace *); |
428 | 434 |
429 struct module_htab_entry GTY(()) | 435 struct GTY(()) module_htab_entry { |
430 { | |
431 const char *name; | 436 const char *name; |
432 tree namespace_decl; | 437 tree namespace_decl; |
433 htab_t GTY ((param_is (union tree_node))) decls; | 438 htab_t GTY ((param_is (union tree_node))) decls; |
434 }; | 439 }; |
435 | 440 |
436 struct module_htab_entry *gfc_find_module (const char *); | 441 struct module_htab_entry *gfc_find_module (const char *); |
437 void gfc_module_add_decl (struct module_htab_entry *, tree); | 442 void gfc_module_add_decl (struct module_htab_entry *, tree); |
438 | 443 |
439 /* Get and set the current location. */ | 444 /* Get and set the current location. */ |
440 void gfc_set_backend_locus (locus *); | 445 void gfc_set_backend_locus (locus *); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 tree gfc_trans_pointer_assignment (gfc_expr *, gfc_expr *); | 492 tree gfc_trans_pointer_assignment (gfc_expr *, gfc_expr *); |
488 | 493 |
489 /* Initialize function decls for library functions. */ | 494 /* Initialize function decls for library functions. */ |
490 void gfc_build_intrinsic_lib_fndecls (void); | 495 void gfc_build_intrinsic_lib_fndecls (void); |
491 /* Create function decls for IO library functions. */ | 496 /* Create function decls for IO library functions. */ |
492 void gfc_trans_io_runtime_check (tree, tree, int, const char *, stmtblock_t *); | 497 void gfc_trans_io_runtime_check (tree, tree, int, const char *, stmtblock_t *); |
493 void gfc_build_io_library_fndecls (void); | 498 void gfc_build_io_library_fndecls (void); |
494 /* Build a function decl for a library function. */ | 499 /* Build a function decl for a library function. */ |
495 tree gfc_build_library_function_decl (tree, tree, int, ...); | 500 tree gfc_build_library_function_decl (tree, tree, int, ...); |
496 | 501 |
| 502 /* Process the local variable decls of a block construct. */ |
| 503 void gfc_process_block_locals (gfc_namespace*); |
| 504 |
| 505 /* Output initialization/clean-up code that was deferred. */ |
| 506 tree gfc_trans_deferred_vars (gfc_symbol*, tree); |
| 507 |
497 /* somewhere! */ | 508 /* somewhere! */ |
498 tree pushdecl (tree); | 509 tree pushdecl (tree); |
499 tree pushdecl_top_level (tree); | 510 tree pushdecl_top_level (tree); |
500 void pushlevel (int); | 511 void pushlevel (int); |
501 tree poplevel (int, int, int); | 512 tree poplevel (int, int, int); |
502 tree getdecls (void); | 513 tree getdecls (void); |
503 tree gfc_truthvalue_conversion (tree); | 514 tree gfc_truthvalue_conversion (tree); |
504 tree gfc_builtin_function (tree); | 515 tree gfc_builtin_function (tree); |
505 struct array_descr_info; | 516 struct array_descr_info; |
506 bool gfc_get_array_descr_info (const_tree, struct array_descr_info *); | 517 bool gfc_get_array_descr_info (const_tree, struct array_descr_info *); |
507 | 518 |
508 /* In trans-openmp.c */ | 519 /* In trans-openmp.c */ |
509 bool gfc_omp_privatize_by_reference (const_tree); | 520 bool gfc_omp_privatize_by_reference (const_tree); |
510 enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree); | 521 enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree); |
| 522 tree gfc_omp_report_decl (tree); |
511 tree gfc_omp_clause_default_ctor (tree, tree, tree); | 523 tree gfc_omp_clause_default_ctor (tree, tree, tree); |
512 tree gfc_omp_clause_copy_ctor (tree, tree, tree); | 524 tree gfc_omp_clause_copy_ctor (tree, tree, tree); |
513 tree gfc_omp_clause_assign_op (tree, tree, tree); | 525 tree gfc_omp_clause_assign_op (tree, tree, tree); |
514 tree gfc_omp_clause_dtor (tree, tree); | 526 tree gfc_omp_clause_dtor (tree, tree); |
515 bool gfc_omp_disregard_value_expr (tree, bool); | 527 bool gfc_omp_disregard_value_expr (tree, bool); |
516 bool gfc_omp_private_debug_clause (tree, bool); | 528 bool gfc_omp_private_debug_clause (tree, bool); |
517 bool gfc_omp_private_outer_ref (tree); | 529 bool gfc_omp_private_outer_ref (tree); |
518 struct gimplify_omp_ctx; | 530 struct gimplify_omp_ctx; |
519 void gfc_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, tree); | 531 void gfc_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, tree); |
520 | 532 |
(...skipping 12 matching lines...) Expand all Loading... |
533 extern GTY(()) tree gfor_fndecl_ttynam; | 545 extern GTY(()) tree gfor_fndecl_ttynam; |
534 extern GTY(()) tree gfor_fndecl_ctime; | 546 extern GTY(()) tree gfor_fndecl_ctime; |
535 extern GTY(()) tree gfor_fndecl_fdate; | 547 extern GTY(()) tree gfor_fndecl_fdate; |
536 extern GTY(()) tree gfor_fndecl_in_pack; | 548 extern GTY(()) tree gfor_fndecl_in_pack; |
537 extern GTY(()) tree gfor_fndecl_in_unpack; | 549 extern GTY(()) tree gfor_fndecl_in_unpack; |
538 extern GTY(()) tree gfor_fndecl_associated; | 550 extern GTY(()) tree gfor_fndecl_associated; |
539 | 551 |
540 /* Math functions. Many other math functions are handled in | 552 /* Math functions. Many other math functions are handled in |
541 trans-intrinsic.c. */ | 553 trans-intrinsic.c. */ |
542 | 554 |
543 typedef struct gfc_powdecl_list GTY(()) | 555 typedef struct GTY(()) gfc_powdecl_list { |
544 { | |
545 tree integer; | 556 tree integer; |
546 tree real; | 557 tree real; |
547 tree cmplx; | 558 tree cmplx; |
548 } | 559 } |
549 gfc_powdecl_list; | 560 gfc_powdecl_list; |
550 | 561 |
551 extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3]; | 562 extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3]; |
552 extern GTY(()) tree gfor_fndecl_math_ishftc4; | 563 extern GTY(()) tree gfor_fndecl_math_ishftc4; |
553 extern GTY(()) tree gfor_fndecl_math_ishftc8; | 564 extern GTY(()) tree gfor_fndecl_math_ishftc8; |
554 extern GTY(()) tree gfor_fndecl_math_ishftc16; | 565 extern GTY(()) tree gfor_fndecl_math_ishftc16; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 | 618 |
608 enum gfc_array_kind | 619 enum gfc_array_kind |
609 { | 620 { |
610 GFC_ARRAY_UNKNOWN, | 621 GFC_ARRAY_UNKNOWN, |
611 GFC_ARRAY_ASSUMED_SHAPE, | 622 GFC_ARRAY_ASSUMED_SHAPE, |
612 GFC_ARRAY_ALLOCATABLE, | 623 GFC_ARRAY_ALLOCATABLE, |
613 GFC_ARRAY_POINTER | 624 GFC_ARRAY_POINTER |
614 }; | 625 }; |
615 | 626 |
616 /* Array types only. */ | 627 /* Array types only. */ |
617 struct lang_type» » GTY(()) | 628 struct GTY(())» lang_type» { |
618 { | |
619 int rank; | 629 int rank; |
620 enum gfc_array_kind akind; | 630 enum gfc_array_kind akind; |
621 tree lbound[GFC_MAX_DIMENSIONS]; | 631 tree lbound[GFC_MAX_DIMENSIONS]; |
622 tree ubound[GFC_MAX_DIMENSIONS]; | 632 tree ubound[GFC_MAX_DIMENSIONS]; |
623 tree stride[GFC_MAX_DIMENSIONS]; | 633 tree stride[GFC_MAX_DIMENSIONS]; |
624 tree size; | 634 tree size; |
625 tree offset; | 635 tree offset; |
626 tree dtype; | 636 tree dtype; |
627 tree dataptr_type; | 637 tree dataptr_type; |
628 tree span; | 638 tree span; |
| 639 tree base_decl[2]; |
629 }; | 640 }; |
630 | 641 |
631 struct lang_decl» » GTY(()) | 642 struct GTY(()) lang_decl { |
632 { | |
633 /* Dummy variables. */ | 643 /* Dummy variables. */ |
634 tree saved_descriptor; | 644 tree saved_descriptor; |
635 /* Assigned integer nodes. Stringlength is the IO format string's length. | 645 /* Assigned integer nodes. Stringlength is the IO format string's length. |
636 Addr is the address of the string or the target label. Stringlength is | 646 Addr is the address of the string or the target label. Stringlength is |
637 initialized to -2 and assigned to -1 when addr is assigned to the | 647 initialized to -2 and assigned to -1 when addr is assigned to the |
638 address of target label. */ | 648 address of target label. */ |
639 tree stringlen; | 649 tree stringlen; |
640 tree addr; | 650 tree addr; |
641 tree span; | 651 tree span; |
642 }; | 652 }; |
(...skipping 29 matching lines...) Expand all Loading... |
672 #define GFC_TYPE_ARRAY_RANK(node) (TYPE_LANG_SPECIFIC(node)->rank) | 682 #define GFC_TYPE_ARRAY_RANK(node) (TYPE_LANG_SPECIFIC(node)->rank) |
673 #define GFC_TYPE_ARRAY_SIZE(node) (TYPE_LANG_SPECIFIC(node)->size) | 683 #define GFC_TYPE_ARRAY_SIZE(node) (TYPE_LANG_SPECIFIC(node)->size) |
674 #define GFC_TYPE_ARRAY_OFFSET(node) (TYPE_LANG_SPECIFIC(node)->offset) | 684 #define GFC_TYPE_ARRAY_OFFSET(node) (TYPE_LANG_SPECIFIC(node)->offset) |
675 #define GFC_TYPE_ARRAY_AKIND(node) (TYPE_LANG_SPECIFIC(node)->akind) | 685 #define GFC_TYPE_ARRAY_AKIND(node) (TYPE_LANG_SPECIFIC(node)->akind) |
676 /* Code should use gfc_get_dtype instead of accessing this directly. It may | 686 /* Code should use gfc_get_dtype instead of accessing this directly. It may |
677 not be known when the type is created. */ | 687 not be known when the type is created. */ |
678 #define GFC_TYPE_ARRAY_DTYPE(node) (TYPE_LANG_SPECIFIC(node)->dtype) | 688 #define GFC_TYPE_ARRAY_DTYPE(node) (TYPE_LANG_SPECIFIC(node)->dtype) |
679 #define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \ | 689 #define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \ |
680 (TYPE_LANG_SPECIFIC(node)->dataptr_type) | 690 (TYPE_LANG_SPECIFIC(node)->dataptr_type) |
681 #define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span) | 691 #define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span) |
| 692 #define GFC_TYPE_ARRAY_BASE_DECL(node, internal) \ |
| 693 (TYPE_LANG_SPECIFIC(node)->base_decl[(internal)]) |
682 | 694 |
683 /* Build an expression with void type. */ | 695 /* Build an expression with void type. */ |
684 #define build1_v(code, arg) fold_build1(code, void_type_node, arg) | 696 #define build1_v(code, arg) fold_build1(code, void_type_node, arg) |
685 #define build2_v(code, arg1, arg2) fold_build2(code, void_type_node, \ | 697 #define build2_v(code, arg1, arg2) fold_build2(code, void_type_node, \ |
686 arg1, arg2) | 698 arg1, arg2) |
687 #define build3_v(code, arg1, arg2, arg3) fold_build3(code, void_type_node, \ | 699 #define build3_v(code, arg1, arg2, arg3) fold_build3(code, void_type_node, \ |
688 arg1, arg2, arg3) | 700 arg1, arg2, arg3) |
689 #define build4_v(code, arg1, arg2, arg3, arg4) build4(code, void_type_node, \ | 701 #define build4_v(code, arg1, arg2, arg3, arg4) build4(code, void_type_node, \ |
690 arg1, arg2, arg3, arg4) | 702 arg1, arg2, arg3, arg4) |
691 | 703 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 void gfc_free_interface_mapping (gfc_interface_mapping *); | 766 void gfc_free_interface_mapping (gfc_interface_mapping *); |
755 void gfc_add_interface_mapping (gfc_interface_mapping *, | 767 void gfc_add_interface_mapping (gfc_interface_mapping *, |
756 gfc_symbol *, gfc_se *, gfc_expr *); | 768 gfc_symbol *, gfc_se *, gfc_expr *); |
757 void gfc_finish_interface_mapping (gfc_interface_mapping *, | 769 void gfc_finish_interface_mapping (gfc_interface_mapping *, |
758 stmtblock_t *, stmtblock_t *); | 770 stmtblock_t *, stmtblock_t *); |
759 void gfc_apply_interface_mapping (gfc_interface_mapping *, | 771 void gfc_apply_interface_mapping (gfc_interface_mapping *, |
760 gfc_se *, gfc_expr *); | 772 gfc_se *, gfc_expr *); |
761 | 773 |
762 | 774 |
763 /* Standard error messages used in all the trans-*.c files. */ | 775 /* Standard error messages used in all the trans-*.c files. */ |
764 extern const char gfc_msg_bounds[]; | |
765 extern const char gfc_msg_fault[]; | 776 extern const char gfc_msg_fault[]; |
766 extern const char gfc_msg_wrong_return[]; | 777 extern const char gfc_msg_wrong_return[]; |
767 | 778 |
| 779 #define OMPWS_WORKSHARE_FLAG 1 /* Set if in a workshare construct. */ |
| 780 #define OMPWS_CURR_SINGLEUNIT 2 /* Set if current gfc_code in workshare |
| 781 construct is not workshared. */ |
| 782 #define OMPWS_SCALARIZER_WS 4 /* Set if scalarizer should attempt |
| 783 to create parallel loops. */ |
| 784 #define OMPWS_NOWAIT 8 /* Use NOWAIT on OMP_FOR. */ |
| 785 extern int ompws_flags; |
768 | 786 |
769 #endif /* GFC_TRANS_H */ | 787 #endif /* GFC_TRANS_H */ |
OLD | NEW |