- 15 Feb, 2006 26 commits
-
-
2006-02-13 Pat Rogers <rogers@adacore.com> * a-rttiev.adb, a-rttiev.ads: New files. From-SVN: r111040
Pat Rogers committed -
2006-02-13 Nicolas Roche <roche@adacore.com> * a-envvar.adb, a-envvar.ads: New files. From-SVN: r111039
Nicolas Roche committed -
2006-02-13 Robert Dewar <dewar@adacore.com> * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec) * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files. From-SVN: r111038
Robert Dewar committed -
2006-02-13 Eric Botcazou <ebotcazou@adacore.com> * lang.opt: Wvariadic-macros: New option. Wold-style-definition: Likewise. Wmissing-format-attribute: Likewise. * misc.c (gnat_handle_option): New cases for -Wvariadic-macros, -Wold-style-definition and -Wmissing-format-attribute. From-SVN: r111037
Eric Botcazou committed -
2006-02-13 Matthew Heaney <heaney@adacore.com> * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of quicksort. From-SVN: r111036
Matthew Heaney committed -
2006-02-13 Matthew Heaney <heaney@adacore.com> * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, a-cohase.adb: All explicit raise statements now include an exception message. * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb (Update_Element_Preserving_Key): renamed op to just Update_Element. Explicit raise statements now include an exception message * a-cihase.ads, a-cohase.ads: Removed comment. * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb, a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads, a-szbzha.adb, a-szfzha.ads: New files. From-SVN: r111035
Matthew Heaney committed -
* s-parame-mingw.adb, s-parame-linux.adb, s-parame-solaris.adb: Removed, replaced by s-parame.adb * s-parame-vxworks.ads: Fix typo. * s-parame-vxworks.adb: New file. * s-parame.adb: Version now used by all native platforms. (Default_Stack_Size): Use 2 megs for default stack size and use __gl_default_stack_size when available. (Minimum_Stack_Size): Use 12K. * s-taprop-mingw.adb: Set default stack size linker switch to 2megs. (Create_Task): Refine implementation taking advantage of the XP stack size support. On XP, we now create the thread using the flag STACK_SIZE_PARAM_IS_A_RESERVATION. * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant. * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows XP and 0 on older Windows versions. * interfac-vms.ads: Removed, no longer used. From-SVN: r111034
Arnaud Charlet committed -
* a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice index. * a-stwima.adb (To_Set): Add extra check when N = 0. * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow. From-SVN: r111033
Arnaud Charlet committed -
2006-02-13 Thomas Quinot <quinot@adacore.com> Vincent Celier <celier@adacore.com> Robert Dewar <dewar@adacore.com> * ali-util.adb (Get_File_Checksum): Update to account for change in profile of Initialize_Scanner. * gprep.adb (Gnatprep): Update to account for change in profile of Initialize_Scanner. (Process_One_File): Same. * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the common code between Get_Code_Unit and Get_Source_Unit. Reimplement that behaviour using the new Unit information recorded in the source files table, rather than going through all units every time. (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit. (Get_Source_Unit): Same. * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for change in profile of Initialize_Scanner. (Prepare_To_Preprocess): Same. * lib.ads: Fix typo in comment (templace -> template). * prj-part.adb (Parse_Single_Project): Update to account for change in profile of Initialize_Scanner. * scn.adb (Initialize_Scanner): Account for change in profile of Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng. Also record the association of the given Source_File_Index to the corresponding Unit_Number_Type. * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove procedure. (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords. Remove Unit formal for generic scanner: this formal is only relevant to Scn (the scanner instance used to parse Ada source files), not to other instances. Update comment accordingly. (Scan): Use new function Snames.Is_Keyword_Name. * sinfo-cn.adb: Fix typo in comment. * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute Unit. * sinput.ads (Source_File_Record): New component Unit, used to capture the unit identifier (if any) associated to a source file. * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component Unit in Source_File_Record. * sinput-p.adb (Source_File_Is_Subunit): Update to account for change in profile of Initialize_Scanner. * scans.adb (Initialize_Ada_Keywords): New procedure * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the Ada keywords in the Namet table, without the need to call Initialize_Scanner. * snames.adb: Add pragma Ada_2005 (synonym for Ada_05) (Is_Keyword_Name): New function * snames.ads: Add subtype Configuration_Pragma_Names Add pragma Ada_2005 (synonym for Ada_05) (Is_Keyword_Name): New function * snames.h: Add pragma Ada_2005 (synonym for Ada_05) From-SVN: r111032
Thomas Quinot committed -
Robert Dewar <dewar@adacore.com> * a-exexpr.adb, a-exexpr-gcc.adb (Process_Raise_Exception): Removed, merged with Propagate_Exception. (Propagate_Exception): Now take extra From_Signal_Handler parameter. Remove code unused for exception propagation for the compiler itself from a-except.adb and update to still share separate packages. * a-except.ads, a-except.adb: Ditto. Add comments that this version is now used only by the compiler and other basic tools. The full version that includes the Ada 2005 stuff is in separate files a-except-2005.ads/adb. The reason is that we do not want to cause bootstrap problems with compilers not recognizing Wide_Wide_String. Add exception reason code PE_Implicit_Return Add new exception reason code (Null Exception_Id) * a-except-2005.adb, a-except-2005.ads: New files. * s-wchcon.ads: (Get_WC_Encoding_Method): New function. * s-wchcon.adb: New file. * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c. (traceback.o deps): Likewise. (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris. Activate build of GMEM instrumentation library on VMS targets. (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib. Use a-except-2005.ads/adb for all run-time library builds unless specified otherwise. [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads. Use s-parame.adb on all native platforms. Use s-parame-vxworks.adb on all vxworks platforms. Add env.c env.h in LIBGNAT_SRCS Add env.o in LIBGNAT_OBJS (GNATMAKE_OBJS): Remove ctrl_c.o object. (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that supports VxWorks 6 RTPs. (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. * types.h, types.ads (Terminate_Program): New exception Add comment on modifying multiple versions of a-except.adb when the table of exception reasons is modified. Add exception reason code PE_Implicit_Return Add new exception reason code (Null Exception_Id) * clean.adb (Initialize): Get the target parameters before checking if target is OpenVMS. Move the OpenVMS specific code here from package body elaboration code. From-SVN: r111031
Arnaud Charlet committed -
2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Olivier Hainque <hainque@adacore.com> Eric Botcazou <ebotcazou@adacore.com> * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted. * gigi.h (value_factor_p): Add prototype and description, now public. * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type promotion for field with rep clause if the associated size was proven to be in error. Expand comments describing attempts to use a packable type. (gnat_to_gnu_entity) <E_Signed_Integer_Subtype, E_Floating_Point_Subtype>: Inherit alias set of what we are making a subtype of to ensure conflicts amongst all subtypes in a hierarchy, necessary since these are not different types and pointers may actually designate any subtype in this hierarchy. (gnat_to_gnu_entity, case E_Record_Type): Always make fields for discriminants but put them into record only if not Unchecked_Union; pass flag to components_to_record showing Unchecked_Union. (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no components before variants; don't set TYPE_UNCHECKED_UNION_P. (components_to_record): New argument UNCHECKED_UNION. Remove special case code for Unchecked_Union and instead use main code with small changes. PR ada/26096 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning variable with the expression being built, only its inner field. * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to emit_sequence_entry_statements. (emit_sequence_entry_statements, body_with_handlers_p): Delete. (establish_gnat_vms_condition_handler): Move before Subprogram_Body_to_gnu. (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler for a subprogram if it has a foreign convention or is exported. (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is substituted for a CONST_DECL. (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass Etype to assoc_to_constructor. (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore discriminants of Unchecked_Union. (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses don't need cluttering preprocessor directives. (establish_gnat_vms_condition_handler): New function. Establish the GNAT condition handler as current in the compiled function. (body_with_handlers_p): New function. Tell whether a given sequence of statements node is attached to a package or subprogram body and involves exception handlers possibly nested within inner block statements. (emit_sequence_entry_statements): New function, to emit special statements on entry of sequences when necessary. Establish GNAT condition handler in the proper cases for VMS. (Handled_Sequence_Of_Statements_to_gnu): Start block code with emit_sequence_entry_statements. * utils2.c (find_common_type): If both input types are BLKmode and have a constant size, use the smaller one. (build_simple_component_ref): Also match if FIELD and NEW_FIELD are the same. * utils.c (value_factor_p): Make public, to allow uses from other gigi units. (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types. (convert, case UNION_TYPE): Remove special treatment for unchecked unions. PR ada/18659 (update_pointer_to): Update variants of pointer types to unconstrained arrays by attaching the list of fields of the main variant. From-SVN: r111030
Richard Kenner committed -
2006-02-13 Pascal Obry <obry@adacore.com> Nicolas Roche <roche@adacore.com> Arnaud Charlet <charlet@adacore.com> * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode support. (__gnat_try_lock): Add unicode support by using a specific section on Windows. (__gnat_get_current_dir): Idem. (__gnat_open_read): Idem. (__gnat_open_rw): Idem. (__gnat_open_create): Idem. (__gnat_create_output_file): Idem. (__gnat_open_append): Idem. (__gnat_open_new): Idem. (__gnat_file_time_name): Idem. (__gnat_set_file_time_name): Idem. (__gnat_stat): Idem. (win32_no_block_spawn): Idem. (__gnat_locate_exec_on_path): Idem. (__gnat_opendir): New routine. (__gnat_closedir): Idem. (__gnat_readdir): Add new parameter length (pointer to int). Update implementation to use it and add specific Win32 code for Unicode support. (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c (convert_addresses): Do not define this dummy routine on VMS. * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT runtime Unicode support will be activated. (S2WS): String to Wide-String conversion. This version just copy a string in non Unicode version. (WS2S): Wide-String to String conversion. This version just copy a string in non Unicode version. * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c. (Open): Now import __gnat_opendir from adaint.c. (Read): Change the implementation to support unicode characters. It is not possible to use strlen() on Windows as this version supports only standard ASCII characters. So the length of the directory entry is now returned from the imported __gnat_readdir routine. Update copyright notice. * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c. (opendir): Moved to adaint.c. * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation. (Get_Directory): Fix wrong indexing. (Getenv): replace __gnat_get_env_value_ptr from adaint.c by __gnat_getenv from env.c (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv from env.c * env.h, env.c: New file. * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from adaint.c by __gnat_getenv from env.c * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from adaint.c by __gnat_getenv from env.c * Make-lang.in: Add env.o in the list of C object needed by gnat1 and gnatbind. Update dependencies. From-SVN: r111029
Pascal Obry committed -
2006-02-13 Nicolas Setton <setton@adacore.com> * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types. (get_encoding): New subprogram. Extracts the encodings from an encoded Ada name. From-SVN: r111028
Nicolas Setton committed -
system-mingw.ads (Underlying_Priorities): Update the priority mapping table to take advantage of the 16 priority levels... 2006-02-13 Pascal Obry <obry@adacore.com> * system-mingw.ads (Underlying_Priorities): Update the priority mapping table to take advantage of the 16 priority levels available on Windows 2000 and XP. On NT4 there are only 7 priority levels, this is properly supported by this new mapping. From-SVN: r111027
Pascal Obry committed -
2006-02-13 Pascal Obry <obry@adacore.com> * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vms.adb (Create_Task): Remove task adjustment code. This adjustement is already done when calling this routine. From-SVN: r111026
Pascal Obry committed -
* s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed, replaced by anonymous access type. (pthread_sigmask): Now take an access sigset_t * s-osinte-hpux.ads: Ditto. (pthread_mutex_t, pthread_cond_t): Update definitions to support properly 32 and 64 bit ABIs. From-SVN: r111025
Arnaud Charlet committed -
2006-02-13 Hristian Kirtchev <kirtchev@adacore.com> * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb, s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb, s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb, s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb, a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb, s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb, a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb, s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb, s-tataat.adb, s-tpobop.adb: Remove redundant with clauses. From-SVN: r111024
Hristian Kirtchev committed -
2006-02-13 Robert Dewar <dewar@adacore.com> * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb, a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb, a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb, a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads, a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads, a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb, a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads, a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb, a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads, a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb, a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb, a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb, g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb, g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb, mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb, prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb, s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb, s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads, s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb, s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads, s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb, a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb, fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb, par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb, system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor reformatting. From-SVN: r111023
Robert Dewar committed -
a-taster.adb (Current_Task_Fallback_Handler): Document why explicit protection against race conditions is not needed. 2006-02-13 Jose Ruiz <ruiz@adacore.com> * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit protection against race conditions is not needed. (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the fallback handler. (Set_Specific_Handler): Add mutual exclusive access to the specific handler. (Specific_Handler): Add mutual exclusive access for retrieving the specific handler. * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall back handler. * s-taskin.ads (Common_ATCB): Remove pragma Atomic for Fall_Back_Handler and Specific_Handler. * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task termination handlers. Set two different owerflow depending on the maximal stack size. * s-solita.adb (Task_Termination_Handler_T): Document why explicit protection against race conditions is not needed when executing the task termination handler. From-SVN: r111022
Jose Ruiz committed -
* a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads, g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb, s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb, s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb, s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb, s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb, s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads, s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed, no longer used. From-SVN: r111021
Arnaud Charlet committed -
2006-02-15 Paolo Bonzini <bonzini@gnu.org> * cfg.c (dump_flow_info): Get dump flags as an additional parameter. (debug_flow_info): Pass it. * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info. * bb-reorder.c (reorder_basic_blocks): Likewise. * cfgcleanup.c (rest_of_handle_jump2): Likewise. * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise. * flow.c (life_analysis, recompute_reg_usage): Likewise. * gcse.c (gcse_main, bypass_jumps): Likewise. * ifcvt.c (rest_of_handle_if_conversion): Likewise. * local-alloc.c (rest_of_handle_local_alloc): Likewise. * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise. * profile.c (compute_branch_probabilities, branch_prob): Likewise. * rtl.h (dump_flow_info): Adjust prototype. * tracer.c (rest_of_handle_tracer, tracer): Likewise. * var-tracking.c (variable_tracking_main): Likewise. * passes.c (execute_todo): Obey TDF_BLOCKS for RTL. * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks options. From-SVN: r111020
Paolo Bonzini committed -
2006-02-15 Marcin Dalecki <martin@dalecki.de> * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression construction. From-SVN: r111019
Marcin Dalecki committed -
PR libgomp/25938 PR libgomp/25984 fortran/ * Make-lang.in (install-finclude-dir): New goal. (fortran.install-common): Depend on install-finclude-dir. * lang-specs.h: If not -nostdinc, add -I finclude. libgomp/ * Makefile.am (fincludedir): New variable. (nodist_include_HEADERS): Remove Fortran files. (nodist_finclude_HEADERS): New variable. * Makefile.in: Regenerated. From-SVN: r111018
Jakub Jelinek committed -
2006-02-15 Matthias Klose <doko@debian.org> * gnu/java/nio/charset, gnu/java/net/protocol/file, gnu/regexp: Remove empty directories. From-SVN: r111015
Matthias Klose committed -
2006-02-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> * MAINTAINERS: Add self to fortran 95 maintainers. From-SVN: r111009
Jerry DeLisle committed -
From-SVN: r111005
GCC Administrator committed
-
- 14 Feb, 2006 14 commits
-
-
PR tree-optimization/26209 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. * tree-cfgcleanup.c (cleanup_control_flow): Remove dead eh edges. * tree-cfg.c (replace_uses_by): Do not alter cfg. From-SVN: r110999
Zdenek Dvorak committed -
2006-02-16 Thomas Koenig <Thomas.Koenig@online.de> * MAINTAINERS (Write After Approval): Remove myself. (Language Front End Maintainers): Add myself as fortran 95 maintainer. From-SVN: r110998
Thomas Koenig committed -
PR middle-end/23670 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into (X,Y) and the corresponding symmetry related transformations. (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into (X,Y) and its symmetry related transformations. * gcc.dg/tree-ssa/andor-2.c: New test case. From-SVN: r110997
Roger Sayle committed -
2006-02-14 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/25045 * check.c (dim_check): Perform all checks if dim is optional. (gfc_check_minloc_maxloc): Use dim_check and dim_rank_check to check dim argument. (check_reduction): Likewise. 2006-02-14 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/25045 * optional_dim.f90: New test. From-SVN: r110994
Thomas Koenig committed -
fortran/ PR fortran/26277 * io.c (match_ltag): Mark label as referenced. testsuite/ PR fortran/26277 * gfortran.dg/label_4.f90: New. From-SVN: r110993
Tobias Schlüter committed -
* dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU and GEU. From-SVN: r110992
Roger Sayle committed -
From-SVN: r110990
Adam Nemet committed -
PR bootstrap/26053 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers support COMDAT group. * configure: Regenerate. From-SVN: r110985
Rainer Orth committed -
gcc/fortran/ 2006-02-14 Jakub Jelinek <jakub@redhat.com> Richard Henderson <rth@redhat.com> Diego Novillo <dnovillo@redhat.com> * invoke.texi: Document -fopenmp. * gfortran.texi (Extensions): Document OpenMP. Backport from gomp-20050608-branch * trans-openmp.c: Call build_omp_clause instead of make_node when creating OMP_CLAUSE_* trees. (gfc_trans_omp_reduction_list): Remove argument 'code'. Adjust all callers. * trans.h (build4_v): Define. * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes. Call build3_v to create OMP_SECTIONS nodes. PR fortran/25162 * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced on all symbols added to the variable list. * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC procedure symbol in REDUCTION. * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE. * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in that statement block. (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do for non-ordered non-static combined loops. (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do. * openmp.c: Include target.h and toplev.h. (gfc_match_omp_threadprivate): Emit diagnostic if target does not support TLS. * Make-lang.in (fortran/openmp.o): Add dependencies on target.h and toplev.h. * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT. * trans-openmp.c (gfc_omp_privatize_by_reference): Make DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT. (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT. (gfc_trans_omp_variable): New function. (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it. * trans.h (GFC_DECL_RESULT): Define. * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function. * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype. * trans-openmp.c (gfc_omp_privatize_by_reference): Return true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set. (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New functions. (gfc_trans_omp_clauses): Add WHERE argument. Call gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list for reductions. (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, gfc_trans_omp_single): Adjust gfc_trans_omp_clauses callers. * openmp.c (omp_current_do_code): New var. (gfc_resolve_omp_do_blocks): New function. (gfc_resolve_omp_parallel_blocks): Call it. (gfc_resolve_do_iterator): Add CODE argument. Don't propagate predetermination if argument is !$omp do or !$omp parallel do iteration variable. * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller. * fortran.h (gfc_resolve_omp_do_blocks): New prototype. (gfc_resolve_do_iterator): Add CODE argument. * trans.h (gfc_omp_predetermined_sharing, gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New prototypes. (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define. * trans-openmp.c (gfc_omp_predetermined_sharing, gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New functions. * trans-common.c (build_equiv_decl, build_common_decl, create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls. * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE on the decl. * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING, LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define. * openmp.c (resolve_omp_clauses): Remove extraneous comma. * symbol.c (check_conflict): Add conflict between cray_pointee and threadprivate. * openmp.c (gfc_match_omp_threadprivate): Fail if gfc_add_threadprivate returned FAILURE. (resolve_omp_clauses): Diagnose Cray pointees in SHARED, {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in {FIRST,LAST}PRIVATE and REDUCTION clauses. * resolve.c (omp_workshare_flag): New variable. (resolve_function): Diagnose use of non-ELEMENTAL user defined function in WORKSHARE construct. (resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag is set to correct value in different contexts. * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing variable name. (resolve_omp_atomic): Likewise. PR fortran/24493 * scanner.c (skip_free_comments): Set at_bol at the beginning of the loop, not before it. (skip_fixed_comments): Handle ! comments in the middle of line here as well. (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if not at BOL. (gfc_next_char_literal): Fix expected canonicalized *$omp string. * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit initialization to build OMP_FOR instead of build. * trans-decl.c (gfc_gimplify_function): Invoke diagnose_omp_structured_block_errors. * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER. (gfc_trans_omp_ordered): Use OMP_ORDERED. * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks, gfc_resolve_omp_parallel_blocks): New prototypes. * resolve.c (resolve_blocks): Renamed to... (gfc_resolve_blocks): ... this. Remove static. (gfc_resolve_forall): Adjust caller. (resolve_code): Only call gfc_resolve_blocks if code->block != 0 and not for EXEC_OMP_PARALLEL* directives. Call gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives. Call gfc_resolve_do_iterator if resolved successfully EXEC_DO iterator. * openmp.c: Include pointer-set.h. (omp_current_ctx): New variable. (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New functions. * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h. * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor, look up symbol if it exists, use its name instead and, if it is not INTRINSIC, issue diagnostics. * parse.c (parse_omp_do): Handle implied end do properly. (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO, return it instead of continuing. * trans-openmp.c (gfc_trans_omp_critical): Update for changed operand numbering. (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, gfc_trans_omp_single): Likewise. * trans.h (gfc_omp_privatize_by_reference): New prototype. * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine to gfc_omp_privatize_by_reference. * trans-openmp.c (gfc_omp_privatize_by_reference): New function. * trans-stmt.h (gfc_trans_omp_directive): Add comment. * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument. Disallow COMMON matching if it is set. (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers. (resolve_omp_clauses): Show locus in error messages. Check that variable types in reduction clauses are appropriate for reduction operators. * resolve.c (resolve_symbol): Don't error if a threadprivate module variable isn't SAVEd. * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY. Fix typo in condition. Fix DOVAR initialization. * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor rather than .min. etc. * trans-openmpc.c (omp_not_yet): Remove. (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel. Force creation of BIND_EXPR around the workshare construct. (gfc_trans_omp_parallel_sections): Likewise. (gfc_trans_omp_parallel_workshare): Likewise. * types.def (BT_I16, BT_FN_I16_VPTR_I16, BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT. (gfc_trans_omp_code): New function. (gfc_trans_omp_do): Use it, remove omp_not_yet uses. (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise. (gfc_trans_omp_sections): Likewise. Only treat empty last section specially if lastprivate clause is present. * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP builtin. * trans-openmp.c (gfc_trans_omp_variable_list): Update for OMP_CLAUSE_DECL name change. (gfc_trans_omp_do): Likewise. * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION clauses. (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding sync builtins directly. (gfc_trans_omp_single): Build OMP_SINGLE statement. * trans-openmp.c (gfc_trans_add_clause): New. (gfc_trans_omp_variable_list): Take a tree code and build the clause node here. Link it to the head of a list. (gfc_trans_omp_clauses): Update to match. (gfc_trans_omp_do): Use gfc_trans_add_clause. * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to gfc_omp_clauses *. Use gfc_evaluate_now instead of creating temporaries by hand. (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros. (gfc_trans_omp_do): New function. (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL. (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller. Use buildN_v macros. (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, gfc_trans_omp_single, gfc_trans_omp_workshare): New functions. (gfc_trans_omp_directive): Use them. * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP. * openmp.c (resolve_omp_clauses): Check for list items present in multiple clauses. (resolve_omp_do): Check that iteration variable is not THREADPRIVATE and is not present in any clause variable lists other than PRIVATE or LASTPRIVATE. * gfortran.h (symbol_attribute): Add threadprivate bit. (gfc_common_head): Add threadprivate member, change use_assoc and saved into char to save space. (gfc_add_threadprivate): New prototype. * symbol.c (check_conflict): Handle threadprivate. (gfc_add_threadprivate): New function. (gfc_copy_attr): Copy threadprivate. * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and OMP_CLAUSE_ORDERED. * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol outside a module and not in COMMON has is not SAVEd. (resolve_equivalence): Ensure THREADPRIVATE objects don't get EQUIVALENCEd. * trans-common.c: Include target.h and rtl.h. (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE. * trans-decl.c: Include rtl.h. (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE. * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE. * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H). (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H). * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block is from current namespace. (gfc_match_omp_threadprivate): Rewrite. (resolve_omp_clauses): Check some clause restrictions. * module.c (ab_attribute): Add AB_THREADPRIVATE. (attr_bits): Add THREADPRIVATE. (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate. (load_commons, write_common, write_blank_common): Adjust for type change of saved, store/load threadprivate bit from the integer as well. * types.def (BT_FN_UINT_UINT): New. (BT_FN_VOID_UINT_UINT): Remove. * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier, gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master, gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions. (gfc_trans_omp_directive): Use them. * openmp.c (expr_references_sym): Add SE argument, don't look into SE tree. (is_conversion): New function. (resolve_omp_atomic): Adjust expr_references_sym callers. Handle promoted expressions. * trans-openmp.c (gfc_trans_omp_atomic): New function. (gfc_trans_omp_directive): Call it. * f95-lang.c (builtin_type_for_size): New function. (gfc_init_builtin_functions): Initialize synchronization and OpenMP builtins. * types.def: New file. * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and fortran/types.def. * trans-openmp.c: Rename GOMP_* tree codes into OMP_*. * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name is NULL. * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New functions. (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes. * parse.c (parse_omp_do): Call pop_state before next_statement. * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do): New functions. (gfc_resolve_omp_directive): Call them. * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement leaves an OpenMP structured block or if EXIT terminates !$omp do loop. * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o. (F95_OBJS): Add fortran/trans-openmp.o. (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS). * lang.opt: Add -fopenmp option. * options.c (gfc_init_options): Initialize it. (gfc_handle_option): Handle it. * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL, ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER, ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO, ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE, ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE, ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED, ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New statement codes. (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE, OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM): New OpenMP variable list types. (gfc_omp_clauses): New typedef. (gfc_get_omp_clauses): Define. (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER, EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO, EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE, EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes. (struct gfc_code): Add omp_clauses, omp_name, omp_namelist and omp_bool fields to ext union. (flag_openmp): Declare. (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes. * scanner.c (openmp_flag, openmp_locus): New variables. (skip_free_comments, skip_fixed_comments, gfc_next_char_literal): Handle OpenMP directive lines and conditional compilation magic comments. * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state. * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic, parse_omp_structured_block): New functions. (next_free, next_fixed): Parse OpenMP directives. (case_executable, case_exec_markers, case_decl): Add ST_OMP_* codes. (gfc_ascii_statement): Handle ST_OMP_* codes. (parse_executable): Rearrange the loop slightly, so that parse_omp_do can return next_statement. * match.h (gfc_match_omp_eos, gfc_match_omp_atomic, gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do, gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered, gfc_match_omp_parallel, gfc_match_omp_parallel_do, gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, gfc_match_omp_sections, gfc_match_omp_single, gfc_match_omp_threadprivate, gfc_match_omp_workshare, gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes. * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives. (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_* directives. * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for EXEC_OMP_* directives. * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing. * trans-stmt.h (gfc_trans_omp_directive): New prototype. * openmp.c: New file. * trans-openmp.c: New file. gcc/testsuite/ 2006-02-14 Jakub Jelinek <jakub@redhat.com> Diego Novillo <dnovillo@redhat.com> Uros Bizjak <uros@kss-loka.si> * gfortran.dg/gomp: New directory. libgomp/ 2006-02-14 Jakub Jelinek <jakub@redhat.com> * testsuite/libgomp.fortran/vla7.f90: Add -w to options. Remove tests for returning assumed character length arrays. Co-Authored-By: Diego Novillo <dnovillo@redhat.com> Co-Authored-By: Richard Henderson <rth@redhat.com> Co-Authored-By: Uros Bizjak <uros@kss-loka.si> From-SVN: r110984
Jakub Jelinek committed -
PR middle-end/26279 PR middle-end/26280 PR middle-end/26283 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. From-SVN: r110983
Roger Sayle committed -
* call.c (standard_conversion): Return NULL instead of 0. (build_user_type_conversion_1): Likewise. (tourney): Likewise. * decl.c (redeclaration_error_message): Likewise. * error.c (language_to_string): Likewise. From-SVN: r110976
Volker Reichelt committed -
2006-02-14 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/26260 * doc/invoke.texi (max-fields-for-field-sensitive): Document param. * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New. * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto. * tree-ssa-structalias.c (create_variable_info_for): Use MAX_FIELDS_FOR_FIELD_SENSITIVE. From-SVN: r110972
Daniel Berlin committed -
From-SVN: r110965
Zdenek Dvorak committed -
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl): Document. * tree-ssa-loop-niter.c (number_of_iterations_ne, number_of_iterations_lt, number_of_iterations_cond): Remember the shape of the ending condition. * tree-ssa-loop-manip.c: Include params.h. (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, tree_unroll_loop): New functions. * tree-pass.h (pass_loop_prefetch): Declare. * loop.c (rest_of_handle_loop_optimize): Test for -fprefetch-loop-arrays-rtl. * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. * timevar.def (TV_TREE_PREFETCH): New timevar. * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, pass_loop_prefetch): New. * tree-cfgcleanup.c: Include tree-scalar-evolution.h. (cleanup_tree_cfg_loop): Call scev_reset. * common.opt (fprefetch-loop-arrays-rtl): Add. * tree-ssa-loop-prefetch.c: New file. * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. (new_temp_expr_table): Initialize expr_vars. (free_temp_expr_table): Cleanup expr_vars. (check_replaceable, find_replaceable_in_bb): Prevent accumulating expressions from being merged into one. * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. (struct tree_niter_desc): Add control, bound and cmp fields. (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): Declare. * Makefile.in (tree-ssa-loop-prefetch.o): Add. (tree-cfgcleanup.o): Add SCEV_H dependency. (tree-ssa-loop-manip.o): Add PARAMS_H dependency. * passes.c (init_optimization_passes): Add pass_loop_prefetch. From-SVN: r110964
Zdenek Dvorak committed
-