diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1996-07-27 02:52:39 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1996-07-27 02:52:39 +0000 |
commit | 978f1b8e18efed5647513070f53f269049feb83c (patch) | |
tree | ce00da25c18405cf3e6847ad3d72d14d363e98b9 /gnu/usr.bin/gcc/f/gbe | |
parent | e2ce9843b6a157aadf0700edefbe6d916cb98c57 (diff) |
Initial integration of G77.
Please do a make cleandir before rebuilding gcc!
Diffstat (limited to 'gnu/usr.bin/gcc/f/gbe')
-rw-r--r-- | gnu/usr.bin/gcc/f/gbe/2.6.3.diff | 186 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/f/gbe/2.7.0.diff | 70 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/f/gbe/2.7.1.diff | 6 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/f/gbe/2.7.2.diff | 801 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/f/gbe/README | 33 |
5 files changed, 1096 insertions, 0 deletions
diff --git a/gnu/usr.bin/gcc/f/gbe/2.6.3.diff b/gnu/usr.bin/gcc/f/gbe/2.6.3.diff new file mode 100644 index 00000000000..8ceee52de91 --- /dev/null +++ b/gnu/usr.bin/gcc/f/gbe/2.6.3.diff @@ -0,0 +1,186 @@ +*** gcc-2.6.3/Makefile.in Fri Dec 2 16:03:09 1994 +--- g77-2.6.3-0.5.16/Makefile.in Thu Aug 10 04:01:02 1995 +*************** ENQUIRE_CFLAGS = -DNO_MEM -DNO_LONG_DOUB +*** 118,121 **** +--- 118,126 ---- + ENQUIRE_LDFLAGS = $(LDFLAGS) + ++ # NEXT FOUR LINES ADDED BY g77 PATCH ONLY TO ENABLE COMPATIBILITY WITH 2.7.x. ++ # Sed command to transform gcc to installed name. Overwritten by configure. ++ program_transform_name = -e s,x,x, ++ program_transform_cross_name = -e s,^,$(target)-, ++ + # Tools to use when building a cross-compiler. + # These are used because `configure' appends `cross-make' +*************** infodir = $(prefix)/info +*** 176,179 **** +--- 181,188 ---- + # Extension (if any) to put in installed man-page filename. + manext = .1 ++ # NEXT THREE LINES ADDED BY g77 PATCH ONLY TO ENABLE COMPATIBILITY WITH 2.7.x. ++ objext = .o ++ exeext = ++ + # Directory in which to put man pages. + mandir = $(prefix)/man/man1 +*************** c-common.o : c-common.c $(CONFIG_H) $(TR +*** 1010,1014 **** + # Language-independent files. + +! gcc.o: gcc.c $(CONFIG_H) multilib.h config.status + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \ +--- 1019,1023 ---- + # Language-independent files. + +! gcc.o: gcc.c $(CONFIG_H) multilib.h config.status f/lang-specs.h + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \ +*************** stor-layout.o : stor-layout.c $(CONFIG_H +*** 1032,1036 **** + fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H) flags.h + toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h input.h \ +! insn-attr.h xcoffout.h defaults.h + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + $(MAYBE_TARGET_DEFAULT) $(MAYBE_USE_COLLECT2) \ +--- 1041,1045 ---- + fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H) flags.h + toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h input.h \ +! insn-attr.h xcoffout.h defaults.h f/lang-options.h + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + $(MAYBE_TARGET_DEFAULT) $(MAYBE_USE_COLLECT2) \ +*** gcc-2.6.3/fold-const.c Fri Dec 2 16:03:43 1994 +--- g77-2.6.3-0.5.16/fold-const.c Thu Aug 10 04:01:03 1995 +*************** eval_subst (arg, old0, new0, old1, new1) +*** 1938,1943 **** +--- 1938,1948 ---- + switch (code) + { ++ /* ??? Disable this since the SAVE_EXPR might already be in use outside ++ the expression. There may be no way to make this work, but it needs ++ to be looked at again for 2.6. */ ++ #if 0 + case SAVE_EXPR: + return eval_subst (TREE_OPERAND (arg, 0), old0, new0, old1, new1); ++ #endif + + case COMPOUND_EXPR: +*************** fold (expr) +*** 3953,3958 **** +--- 3958,3968 ---- + tree xarg0 = arg0; + ++ /* ??? Disable this since the SAVE_EXPR might already be in use outside ++ the expression. There may be no way to make this work, but it needs ++ to be looked at again for 2.6. */ ++ #if 0 + if (TREE_CODE (xarg0) == SAVE_EXPR) + have_save_expr = 1, xarg0 = TREE_OPERAND (xarg0, 0); ++ #endif + + STRIP_NOPS (xarg0); +*************** fold (expr) +*** 3971,3976 **** +--- 3981,3991 ---- + } + ++ /* ??? Disable this since the SAVE_EXPR might already be in use outside ++ the expression. There may be no way to make this work, but it needs ++ to be looked at again for 2.6. */ ++ #if 0 + if (TREE_CODE (xarg0) == SAVE_EXPR) + have_save_expr = 1, xarg0 = TREE_OPERAND (xarg0, 0); ++ #endif + + STRIP_NOPS (xarg0); +*** gcc-2.6.3/gcc.c Mon Nov 7 11:01:43 1994 +--- g77-2.6.3-0.5.16/gcc.c Thu Aug 10 04:01:03 1995 +*************** static struct compiler default_compilers +*** 712,715 **** +--- 712,716 ---- + %{c:%W{o*}%{!o*:-o %w%b.o}}\ + %{!c:-o %d%w%u.o} %{!pipe:%g.s} %A\n}}}}}} "}, ++ #include "f/lang-specs.h" + /* Mark end of table */ + {0, 0} +*** gcc-2.6.3/obstack.c Sat Nov 12 06:40:02 1994 +--- g77-2.6.3-0.5.16/obstack.c Thu Aug 10 04:01:04 1995 +*************** Foundation, 675 Mass Ave, Cambridge, MA +*** 27,33 **** + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, +! it is simpler to just do this in the source for each such file. */ + +! #if defined (_LIBC) || !defined (__GNU_LIBRARY__) + + +--- 27,40 ---- + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, +! it is simpler to just do this in the source for each such file. + +! Actually, don't comment this code out after all. Else, unless the +! inlining set up by obstack.h also is commented out (and replaced by +! including the system's <obstack.h>), bugs will result on a system +! with an older obstack (with older and different inlining) installed. +! And for now it doesn't seem worth having obstack.h #include <stdio.h>, +! as above, just to get __GNU_LIBRARY__ defined, for example. */ +! +! #if defined (_LIBC) || !defined (__GNU_LIBRARY__) || 1 + + +*** gcc-2.6.3/stor-layout.c Thu Oct 20 09:41:02 1994 +--- g77-2.6.3-0.5.16/stor-layout.c Thu Aug 10 04:01:04 1995 +*************** get_pending_sizes () +*** 80,83 **** +--- 80,93 ---- + } + ++ void ++ put_pending_sizes (chain) ++ tree chain; ++ { ++ if (pending_sizes) ++ abort (); ++ ++ pending_sizes = chain; ++ } ++ + /* Given a size SIZE that isn't constant, return a SAVE_EXPR + to serve as the actual size-expression for a type or decl. */ +*** gcc-2.6.3/toplev.c Tue Oct 25 16:09:12 1994 +--- g77-2.6.3-0.5.16/toplev.c Thu Aug 10 04:01:05 1995 +*************** char *lang_options[] = +*** 725,728 **** +--- 725,730 ---- + "-Wno-protocol", + ++ #include "f/lang-options.h" ++ + /* This is for GNAT and is temporary. */ + "-gnat", +*** gcc-2.6.3/tree.c Fri Dec 2 16:03:49 1994 +--- g77-2.6.3-0.5.16/tree.c Thu Aug 10 04:01:05 1995 +*************** save_expr (expr) +*** 1984,1988 **** + + if (TREE_CONSTANT (t) || (TREE_READONLY (t) && ! TREE_SIDE_EFFECTS (t)) +! || TREE_CODE (t) == SAVE_EXPR) + return t; + +--- 1984,1988 ---- + + if (TREE_CONSTANT (t) || (TREE_READONLY (t) && ! TREE_SIDE_EFFECTS (t)) +! || TREE_CODE (t) == SAVE_EXPR || TREE_CODE (t) == ERROR_MARK) + return t; + +*** gcc-2.6.3/tree.h Thu Sep 8 14:25:41 1994 +--- g77-2.6.3-0.5.16/tree.h Thu Aug 10 04:01:06 1995 +*************** extern tree size_int PROTO((unsigned)) +*** 1245,1248 **** +--- 1245,1249 ---- + extern tree round_up PROTO((tree, int)); + extern tree get_pending_sizes PROTO((void)); ++ extern void put_pending_sizes PROTO((tree)); + + /* Type for sizes of data-type. */ diff --git a/gnu/usr.bin/gcc/f/gbe/2.7.0.diff b/gnu/usr.bin/gcc/f/gbe/2.7.0.diff new file mode 100644 index 00000000000..5144d81128c --- /dev/null +++ b/gnu/usr.bin/gcc/f/gbe/2.7.0.diff @@ -0,0 +1,70 @@ +*** gcc-2.7.0/obstack.c Thu Jun 15 18:12:08 1995 +--- g77-2.7.0-0.5.16/obstack.c Thu Aug 10 04:06:51 1995 +*************** Foundation, 675 Mass Ave, Cambridge, MA +*** 27,33 **** + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, +! it is simpler to just do this in the source for each such file. */ + +! #if defined (_LIBC) || !defined (__GNU_LIBRARY__) + + +--- 27,40 ---- + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, +! it is simpler to just do this in the source for each such file. + +! Actually, don't comment this code out after all. Else, unless the +! inlining set up by obstack.h also is commented out (and replaced by +! including the system's <obstack.h>), bugs will result on a system +! with an older obstack (with older and different inlining) installed. +! And for now it doesn't seem worth having obstack.h #include <stdio.h>, +! as above, just to get __GNU_LIBRARY__ defined, for example. */ +! +! #if defined (_LIBC) || !defined (__GNU_LIBRARY__) || 1 + + +*** gcc-2.7.0/stor-layout.c Thu Jun 15 08:08:47 1995 +--- g77-2.7.0-0.5.16/stor-layout.c Thu Aug 10 14:00:15 1995 +*************** get_pending_sizes () +*** 82,85 **** +--- 82,95 ---- + } + ++ void ++ put_pending_sizes (chain) ++ tree chain; ++ { ++ if (pending_sizes) ++ abort (); ++ ++ pending_sizes = chain; ++ } ++ + /* Given a size SIZE that may not be a constant, return a SAVE_EXPR + to serve as the actual size-expression for a type or decl. */ +*** gcc-2.7.0/tree.c Thu Jun 15 08:10:23 1995 +--- g77-2.7.0-0.5.16/tree.c Mon Aug 28 12:21:15 1995 +*************** save_expr (expr) +*** 2111,2115 **** + + if (TREE_CONSTANT (t) || (TREE_READONLY (t) && ! TREE_SIDE_EFFECTS (t)) +! || TREE_CODE (t) == SAVE_EXPR) + return t; + +--- 2111,2115 ---- + + if (TREE_CONSTANT (t) || (TREE_READONLY (t) && ! TREE_SIDE_EFFECTS (t)) +! || TREE_CODE (t) == SAVE_EXPR || TREE_CODE (t) == ERROR_MARK) + return t; + +*** gcc-2.7.0/tree.h Thu Jun 15 08:10:49 1995 +--- g77-2.7.0-0.5.16/tree.h Thu Aug 10 04:06:52 1995 +*************** extern tree size_int PROTO((unsigned H +*** 1290,1293 **** +--- 1290,1294 ---- + extern tree round_up PROTO((tree, int)); + extern tree get_pending_sizes PROTO((void)); ++ extern void put_pending_sizes PROTO((tree)); + + /* Type for sizes of data-type. */ diff --git a/gnu/usr.bin/gcc/f/gbe/2.7.1.diff b/gnu/usr.bin/gcc/f/gbe/2.7.1.diff new file mode 100644 index 00000000000..e7bd45621e3 --- /dev/null +++ b/gnu/usr.bin/gcc/f/gbe/2.7.1.diff @@ -0,0 +1,6 @@ +1996-03-07 + +This file would have been 124K long in the g77-0.5.18 distribution, +so, since 2.7.2.diff is available, this file has been omitted. +If you insist on using gcc-2.7.1 with g77-0.5.18, you should be +okay, except you won't get some of the nifty new optimizations. diff --git a/gnu/usr.bin/gcc/f/gbe/2.7.2.diff b/gnu/usr.bin/gcc/f/gbe/2.7.2.diff new file mode 100644 index 00000000000..4b27bae56d5 --- /dev/null +++ b/gnu/usr.bin/gcc/f/gbe/2.7.2.diff @@ -0,0 +1,801 @@ +*** gcc-2.7.2/flags.h Thu Jun 15 07:34:11 1995 +--- g77-new/flags.h Wed Mar 6 10:32:55 1996 +*************** extern int flag_unroll_loops; +*** 204,207 **** +--- 204,221 ---- + extern int flag_unroll_all_loops; + ++ /* Nonzero forces all invariant computations in loops to be moved ++ outside the loop. */ ++ ++ extern int flag_move_all_movables; ++ ++ /* Nonzero forces all general induction variables in loops to be ++ strength reduced. */ ++ ++ extern int flag_reduce_all_givs; ++ ++ /* Nonzero gets another run of loop_optimize performed. */ ++ ++ extern int flag_rerun_loop_opt; ++ + /* Nonzero for -fcse-follow-jumps: + have cse follow jumps to do a more extensive job. */ +*** gcc-2.7.2/gcc.info Wed Mar 6 10:23:38 1996 +--- g77-new/gcc.info Fri Mar 15 02:17:17 1996 +*************** Indirect: +*** 34,60 **** + gcc.info-1: 1382 + gcc.info-2: 42854 +! gcc.info-3: 80578 +! gcc.info-4: 127608 +! gcc.info-5: 173792 +! gcc.info-6: 214726 +! gcc.info-7: 235436 +! gcc.info-8: 285158 +! gcc.info-9: 333642 +! gcc.info-10: 382691 +! gcc.info-11: 419654 +! gcc.info-12: 468472 +! gcc.info-13: 517503 +! gcc.info-14: 564845 +! gcc.info-15: 604398 +! gcc.info-16: 654371 +! gcc.info-17: 703324 +! gcc.info-18: 751502 +! gcc.info-19: 797360 +! gcc.info-20: 846162 +! gcc.info-21: 890260 +! gcc.info-22: 933466 +! gcc.info-23: 982355 +! gcc.info-24: 1032258 +! gcc.info-25: 1067513 + + Tag Table: +--- 34,60 ---- + gcc.info-1: 1382 + gcc.info-2: 42854 +! gcc.info-3: 80645 +! gcc.info-4: 129158 +! gcc.info-5: 175342 +! gcc.info-6: 216276 +! gcc.info-7: 236986 +! gcc.info-8: 286708 +! gcc.info-9: 335192 +! gcc.info-10: 384241 +! gcc.info-11: 421204 +! gcc.info-12: 470022 +! gcc.info-13: 519053 +! gcc.info-14: 566395 +! gcc.info-15: 605948 +! gcc.info-16: 655921 +! gcc.info-17: 704874 +! gcc.info-18: 753052 +! gcc.info-19: 798910 +! gcc.info-20: 847712 +! gcc.info-21: 891810 +! gcc.info-22: 935016 +! gcc.info-23: 983905 +! gcc.info-24: 1033808 +! gcc.info-25: 1069063 + + Tag Table: +*************** Node: G++ and GCC37258 +*** 68,297 **** + Node: Invoking GCC39475 + Node: Option Summary42854 +! Node: Overall Options53305 +! Node: Invoking G++57868 +! Node: C Dialect Options59742 +! Node: C++ Dialect Options69842 +! Node: Warning Options80578 +! Node: Debugging Options95513 +! Node: Optimize Options105094 +! Node: Preprocessor Options115596 +! Node: Assembler Options122059 +! Node: Link Options122426 +! Node: Directory Options127608 +! Node: Target Options131100 +! Node: Submodel Options134757 +! Node: M680x0 Options136138 +! Node: VAX Options139647 +! Node: SPARC Options140182 +! Node: Convex Options146602 +! Node: AMD29K Options148783 +! Node: ARM Options151814 +! Node: M88K Options153231 +! Node: RS/6000 and PowerPC Options161178 +! Node: RT Options172088 +! Node: MIPS Options173792 +! Node: i386 Options181418 +! Node: HPPA Options186857 +! Node: Intel 960 Options189953 +! Node: DEC Alpha Options192563 +! Node: Clipper Options194235 +! Node: H8/300 Options194634 +! Node: System V Options195079 +! Node: Code Gen Options195765 +! Node: Environment Variables204274 +! Node: Running Protoize208497 +! Node: Installation214726 +! Node: Configurations235436 +! Node: Other Dir271347 +! Node: Cross-Compiler273063 +! Node: Steps of Cross274894 +! Node: Configure Cross276012 +! Node: Tools and Libraries276649 +! Node: Cross Runtime279092 +! Node: Cross Headers283173 +! Node: Build Cross285158 +! Node: Sun Install287034 +! Node: VMS Install288166 +! Node: Collect2298095 +! Node: Header Dirs300804 +! Node: C Extensions302218 +! Node: Statement Exprs305497 +! Node: Local Labels307391 +! Node: Labels as Values309453 +! Node: Nested Functions311318 +! Node: Constructing Calls315174 +! Node: Naming Types317231 +! Node: Typeof318325 +! Node: Lvalues320190 +! Node: Conditionals322630 +! Node: Long Long323521 +! Node: Complex324965 +! Node: Zero Length326827 +! Node: Variable Length327501 +! Node: Macro Varargs330026 +! Node: Subscripting332129 +! Node: Pointer Arith332612 +! Node: Initializers333177 +! Node: Constructors333642 +! Node: Labeled Elements335336 +! Node: Case Ranges337965 +! Node: Cast to Union338646 +! Node: Function Attributes339724 +! Node: Function Prototypes348987 +! Node: C++ Comments350786 +! Node: Dollar Signs351322 +! Node: Character Escapes352102 +! Node: Alignment352383 +! Node: Variable Attributes353855 +! Node: Type Attributes361763 +! Node: Inline368282 +! Node: Extended Asm372159 +! Node: Asm Labels382691 +! Node: Explicit Reg Vars384010 +! Node: Global Reg Vars385258 +! Node: Local Reg Vars389823 +! Node: Alternate Keywords391415 +! Node: Incomplete Enums392817 +! Node: Function Names393573 +! Node: C++ Extensions394824 +! Node: Naming Results396061 +! Node: Min and Max399375 +! Node: Destructors and Goto400825 +! Node: C++ Interface401375 +! Node: Template Instantiation406598 +! Node: C++ Signatures412330 +! Node: Trouble416674 +! Node: Actual Bugs418385 +! Node: Installation Problems419654 +! Node: Cross-Compiler Problems433440 +! Node: Interoperation434911 +! Node: External Bugs448275 +! Node: Incompatibilities450407 +! Node: Fixed Headers458957 +! Node: Standard Libraries461299 +! Node: Disappointments462546 +! Node: C++ Misunderstandings466771 +! Node: Static Definitions467418 +! Node: Temporaries468472 +! Node: Protoize Caveats470676 +! Node: Non-bugs474632 +! Node: Warnings and Errors483592 +! Node: Bugs485362 +! Node: Bug Criteria486722 +! Node: Bug Lists489152 +! Node: Bug Reporting490545 +! Node: Sending Patches502963 +! Node: Service508350 +! Node: VMS508911 +! Node: Include Files and VMS509304 +! Node: Global Declarations513194 +! Node: VMS Misc517503 +! Node: Portability521829 +! Node: Interface523592 +! Node: Passes528225 +! Node: RTL545568 +! Node: RTL Objects547456 +! Node: Accessors550500 +! Node: Flags555826 +! Node: Machine Modes564845 +! Node: Constants572479 +! Node: Regs and Memory577667 +! Node: Arithmetic589377 +! Node: Comparisons595275 +! Node: Bit Fields599337 +! Node: Conversions600701 +! Node: RTL Declarations603589 +! Node: Side Effects604398 +! Node: Incdec616945 +! Node: Assembler619461 +! Node: Insns620983 +! Node: Calls641836 +! Node: Sharing644431 +! Node: Reading RTL647507 +! Node: Machine Desc648446 +! Node: Patterns650299 +! Node: Example653243 +! Node: RTL Template654371 +! Node: Output Template666569 +! Node: Output Statement670530 +! Node: Constraints674243 +! Node: Simple Constraints675246 +! Node: Multi-Alternative686679 +! Node: Class Preferences689515 +! Node: Modifiers690395 +! Node: Machine Constraints693555 +! Node: No Constraints702203 +! Node: Standard Names703324 +! Node: Pattern Ordering731232 +! Node: Dependent Patterns732458 +! Node: Jump Patterns735273 +! Node: Insn Canonicalizations741089 +! Node: Peephole Definitions744584 +! Node: Expander Definitions751502 +! Node: Insn Splitting758948 +! Node: Insn Attributes765962 +! Node: Defining Attributes767009 +! Node: Expressions769021 +! Node: Tagging Insns775333 +! Node: Attr Example779696 +! Node: Insn Lengths782072 +! Node: Constant Attributes785436 +! Node: Delay Slots786596 +! Node: Function Units789807 +! Node: Target Macros795477 +! Node: Driver797360 +! Node: Run-time Target809090 +! Node: Storage Layout814977 +! Node: Type Layout828925 +! Node: Registers835348 +! Node: Register Basics836328 +! Node: Allocation Order840365 +! Node: Values in Registers841783 +! Node: Leaf Functions846162 +! Node: Stack Registers848637 +! Node: Obsolete Register Macros849470 +! Node: Register Classes852165 +! Node: Stack and Calling871700 +! Node: Frame Layout872136 +! Node: Frame Registers875576 +! Node: Elimination879386 +! Node: Stack Arguments883642 +! Node: Register Arguments890260 +! Node: Scalar Return898935 +! Node: Aggregate Return902898 +! Node: Caller Saves906613 +! Node: Function Entry907763 +! Node: Profiling916691 +! Node: Varargs919595 +! Node: Trampolines927004 +! Node: Library Calls933466 +! Node: Addressing Modes941524 +! Node: Condition Code949112 +! Node: Costs955311 +! Node: Sections963690 +! Node: PIC968479 +! Node: Assembler Format971189 +! Node: File Framework972194 +! Node: Data Output976431 +! Node: Uninitialized Data982355 +! Node: Label Output985062 +! Node: Initialization994456 +! Node: Macros for Initialization1000599 +! Node: Instruction Output1005196 +! Node: Dispatch Tables1013191 +! Node: Alignment Output1015568 +! Node: Debugging Info1017308 +! Node: All Debuggers1017917 +! Node: DBX Options1020331 +! Node: DBX Hooks1025216 +! Node: File Names and DBX1028555 +! Node: SDB and DWARF1030528 +! Node: Cross-compilation1032258 +! Node: Misc1038705 +! Node: Config1055831 +! Node: Fragments1063276 +! Node: Target Fragment1063873 +! Node: Host Fragment1066911 +! Node: Index1067513 + + End Tag Table +--- 68,297 ---- + Node: Invoking GCC39475 + Node: Option Summary42854 +! Node: Overall Options53372 +! Node: Invoking G++57935 +! Node: C Dialect Options59809 +! Node: C++ Dialect Options69909 +! Node: Warning Options80645 +! Node: Debugging Options95580 +! Node: Optimize Options105161 +! Node: Preprocessor Options117146 +! Node: Assembler Options123609 +! Node: Link Options123976 +! Node: Directory Options129158 +! Node: Target Options132650 +! Node: Submodel Options136307 +! Node: M680x0 Options137688 +! Node: VAX Options141197 +! Node: SPARC Options141732 +! Node: Convex Options148152 +! Node: AMD29K Options150333 +! Node: ARM Options153364 +! Node: M88K Options154781 +! Node: RS/6000 and PowerPC Options162728 +! Node: RT Options173638 +! Node: MIPS Options175342 +! Node: i386 Options182968 +! Node: HPPA Options188407 +! Node: Intel 960 Options191503 +! Node: DEC Alpha Options194113 +! Node: Clipper Options195785 +! Node: H8/300 Options196184 +! Node: System V Options196629 +! Node: Code Gen Options197315 +! Node: Environment Variables205824 +! Node: Running Protoize210047 +! Node: Installation216276 +! Node: Configurations236986 +! Node: Other Dir272897 +! Node: Cross-Compiler274613 +! Node: Steps of Cross276444 +! Node: Configure Cross277562 +! Node: Tools and Libraries278199 +! Node: Cross Runtime280642 +! Node: Cross Headers284723 +! Node: Build Cross286708 +! Node: Sun Install288584 +! Node: VMS Install289716 +! Node: Collect2299645 +! Node: Header Dirs302354 +! Node: C Extensions303768 +! Node: Statement Exprs307047 +! Node: Local Labels308941 +! Node: Labels as Values311003 +! Node: Nested Functions312868 +! Node: Constructing Calls316724 +! Node: Naming Types318781 +! Node: Typeof319875 +! Node: Lvalues321740 +! Node: Conditionals324180 +! Node: Long Long325071 +! Node: Complex326515 +! Node: Zero Length328377 +! Node: Variable Length329051 +! Node: Macro Varargs331576 +! Node: Subscripting333679 +! Node: Pointer Arith334162 +! Node: Initializers334727 +! Node: Constructors335192 +! Node: Labeled Elements336886 +! Node: Case Ranges339515 +! Node: Cast to Union340196 +! Node: Function Attributes341274 +! Node: Function Prototypes350537 +! Node: C++ Comments352336 +! Node: Dollar Signs352872 +! Node: Character Escapes353652 +! Node: Alignment353933 +! Node: Variable Attributes355405 +! Node: Type Attributes363313 +! Node: Inline369832 +! Node: Extended Asm373709 +! Node: Asm Labels384241 +! Node: Explicit Reg Vars385560 +! Node: Global Reg Vars386808 +! Node: Local Reg Vars391373 +! Node: Alternate Keywords392965 +! Node: Incomplete Enums394367 +! Node: Function Names395123 +! Node: C++ Extensions396374 +! Node: Naming Results397611 +! Node: Min and Max400925 +! Node: Destructors and Goto402375 +! Node: C++ Interface402925 +! Node: Template Instantiation408148 +! Node: C++ Signatures413880 +! Node: Trouble418224 +! Node: Actual Bugs419935 +! Node: Installation Problems421204 +! Node: Cross-Compiler Problems434990 +! Node: Interoperation436461 +! Node: External Bugs449825 +! Node: Incompatibilities451957 +! Node: Fixed Headers460507 +! Node: Standard Libraries462849 +! Node: Disappointments464096 +! Node: C++ Misunderstandings468321 +! Node: Static Definitions468968 +! Node: Temporaries470022 +! Node: Protoize Caveats472226 +! Node: Non-bugs476182 +! Node: Warnings and Errors485142 +! Node: Bugs486912 +! Node: Bug Criteria488272 +! Node: Bug Lists490702 +! Node: Bug Reporting492095 +! Node: Sending Patches504513 +! Node: Service509900 +! Node: VMS510461 +! Node: Include Files and VMS510854 +! Node: Global Declarations514744 +! Node: VMS Misc519053 +! Node: Portability523379 +! Node: Interface525142 +! Node: Passes529775 +! Node: RTL547118 +! Node: RTL Objects549006 +! Node: Accessors552050 +! Node: Flags557376 +! Node: Machine Modes566395 +! Node: Constants574029 +! Node: Regs and Memory579217 +! Node: Arithmetic590927 +! Node: Comparisons596825 +! Node: Bit Fields600887 +! Node: Conversions602251 +! Node: RTL Declarations605139 +! Node: Side Effects605948 +! Node: Incdec618495 +! Node: Assembler621011 +! Node: Insns622533 +! Node: Calls643386 +! Node: Sharing645981 +! Node: Reading RTL649057 +! Node: Machine Desc649996 +! Node: Patterns651849 +! Node: Example654793 +! Node: RTL Template655921 +! Node: Output Template668119 +! Node: Output Statement672080 +! Node: Constraints675793 +! Node: Simple Constraints676796 +! Node: Multi-Alternative688229 +! Node: Class Preferences691065 +! Node: Modifiers691945 +! Node: Machine Constraints695105 +! Node: No Constraints703753 +! Node: Standard Names704874 +! Node: Pattern Ordering732782 +! Node: Dependent Patterns734008 +! Node: Jump Patterns736823 +! Node: Insn Canonicalizations742639 +! Node: Peephole Definitions746134 +! Node: Expander Definitions753052 +! Node: Insn Splitting760498 +! Node: Insn Attributes767512 +! Node: Defining Attributes768559 +! Node: Expressions770571 +! Node: Tagging Insns776883 +! Node: Attr Example781246 +! Node: Insn Lengths783622 +! Node: Constant Attributes786986 +! Node: Delay Slots788146 +! Node: Function Units791357 +! Node: Target Macros797027 +! Node: Driver798910 +! Node: Run-time Target810640 +! Node: Storage Layout816527 +! Node: Type Layout830475 +! Node: Registers836898 +! Node: Register Basics837878 +! Node: Allocation Order841915 +! Node: Values in Registers843333 +! Node: Leaf Functions847712 +! Node: Stack Registers850187 +! Node: Obsolete Register Macros851020 +! Node: Register Classes853715 +! Node: Stack and Calling873250 +! Node: Frame Layout873686 +! Node: Frame Registers877126 +! Node: Elimination880936 +! Node: Stack Arguments885192 +! Node: Register Arguments891810 +! Node: Scalar Return900485 +! Node: Aggregate Return904448 +! Node: Caller Saves908163 +! Node: Function Entry909313 +! Node: Profiling918241 +! Node: Varargs921145 +! Node: Trampolines928554 +! Node: Library Calls935016 +! Node: Addressing Modes943074 +! Node: Condition Code950662 +! Node: Costs956861 +! Node: Sections965240 +! Node: PIC970029 +! Node: Assembler Format972739 +! Node: File Framework973744 +! Node: Data Output977981 +! Node: Uninitialized Data983905 +! Node: Label Output986612 +! Node: Initialization996006 +! Node: Macros for Initialization1002149 +! Node: Instruction Output1006746 +! Node: Dispatch Tables1014741 +! Node: Alignment Output1017118 +! Node: Debugging Info1018858 +! Node: All Debuggers1019467 +! Node: DBX Options1021881 +! Node: DBX Hooks1026766 +! Node: File Names and DBX1030105 +! Node: SDB and DWARF1032078 +! Node: Cross-compilation1033808 +! Node: Misc1040255 +! Node: Config1057381 +! Node: Fragments1064826 +! Node: Target Fragment1065423 +! Node: Host Fragment1068461 +! Node: Index1069063 + + End Tag Table +*** gcc-2.7.2/gcc.info-2 Wed Mar 6 10:23:35 1996 +--- g77-new/gcc.info-2 Fri Mar 15 02:17:16 1996 +*************** are in the following sections. +*** 92,95 **** +--- 92,96 ---- + -fschedule-insns2 -fstrength-reduce -fthread-jumps + -funroll-all-loops -funroll-loops ++ -fmove-all-movables -freduce-all-givs -frerun-loop-opt + -O -O0 -O1 -O2 -O3 + +*** gcc-2.7.2/gcc.info-3 Wed Mar 6 10:23:35 1996 +--- g77-new/gcc.info-3 Fri Mar 15 02:17:16 1996 +*************** of optimizations to be performed is desi +*** 907,910 **** +--- 907,946 ---- + `-frerun-cse-after-loop'. + ++ `-fmove-all-movables' ++ Forces all invariant computations in loops to be moved outside the ++ loop. This option is provided primarily to improve performance ++ for some Fortran code, though it might improve code written in ++ other languages. ++ ++ *Note:* When compiling programs written in Fortran, this option is ++ enabled by default. ++ ++ Analysis of Fortran code optimization and the resulting ++ optimizations triggered by this option, and the ++ `-freduce-all-givs' and `-frerun-loop-opt' options as well, were ++ contributed by Toon Moene (`toon@moene.indiv.nluug.nl'). ++ ++ Please let us (`fortran@gnu.ai.mit.edu') know how use of these ++ options affects the performance of your production code. We're ++ very interested in code that runs *slower* when these options are ++ *enabled*. ++ ++ `-freduce-all-givs' ++ Forces all general-induction variables in loops to be ++ strength-reduced. This option is provided primarily to improve ++ performance for some Fortran code, though it might improve code ++ written in other languages. ++ ++ *Note:* When compiling programs written in Fortran, this option is ++ enabled by default. ++ ++ `-frerun-loop-opt' ++ Runs loop optimizations a second time. This option is provided ++ primarily to improve performance for some Fortran code, though it ++ might improve code written in other languages. ++ ++ *Note:* When compiling programs written in Fortran, this option is ++ enabled by default. ++ + `-fno-peephole' + Disable any machine-specific peephole optimizations. +*** gcc-2.7.2/gcc.texi Wed Mar 6 10:20:58 1996 +--- g77-new/gcc.texi Wed Mar 6 14:30:40 1996 +*************** original English. +*** 149,152 **** +--- 149,153 ---- + @sp 3 + @center Last updated 26 November 1995 ++ @center (Revised for GNU Fortran 1996-03-06) + @sp 1 + @c The version number appears twice more in this file. +*** gcc-2.7.2/invoke.texi Tue Oct 3 11:40:43 1995 +--- g77-new/invoke.texi Fri Mar 15 01:49:11 1996 +*************** in the following sections. +*** 149,152 **** +--- 149,153 ---- + -fschedule-insns2 -fstrength-reduce -fthread-jumps + -funroll-all-loops -funroll-loops ++ -fmove-all-movables -freduce-all-givs -frerun-loop-opt + -O -O0 -O1 -O2 -O3 + @end smallexample +*************** Perform the optimization of loop unrolli +*** 1940,1943 **** +--- 1941,1985 ---- + and usually makes programs run more slowly. @samp{-funroll-all-loops} + implies @samp{-fstrength-reduce} as well as @samp{-frerun-cse-after-loop}. ++ ++ @item -fmove-all-movables ++ Forces all invariant computations in loops to be moved ++ outside the loop. ++ This option is provided primarily to improve performance ++ for some Fortran code, though it might improve code written ++ in other languages. ++ ++ @emph{Note:} When compiling programs written in Fortran, ++ this option is enabled by default. ++ ++ Analysis of Fortran code optimization and the resulting ++ optimizations triggered by this option, and the ++ @samp{-freduce-all-givs} and @samp{-frerun-loop-opt} ++ options as well, were ++ contributed by Toon Moene (@code{toon@@moene.indiv.nluug.nl}). ++ ++ Please let us (@code{fortran@@gnu.ai.mit.edu}) ++ know how use of these options affects ++ the performance of your production code. ++ We're very interested in code that runs @emph{slower} ++ when these options are @emph{enabled}. ++ ++ @item -freduce-all-givs ++ Forces all general-induction variables in loops to be ++ strength-reduced. ++ This option is provided primarily to improve performance ++ for some Fortran code, though it might improve code written ++ in other languages. ++ ++ @emph{Note:} When compiling programs written in Fortran, ++ this option is enabled by default. ++ ++ @item -frerun-loop-opt ++ Runs loop optimizations a second time. ++ This option is provided primarily to improve performance ++ for some Fortran code, though it might improve code written ++ in other languages. ++ ++ @emph{Note:} When compiling programs written in Fortran, ++ this option is enabled by default. + + @item -fno-peephole +*** gcc-2.7.2/loop.c Tue Oct 3 12:17:16 1995 +--- g77-new/loop.c Wed Mar 6 10:32:58 1996 +*************** move_movables (movables, threshold, insn +*** 1629,1632 **** +--- 1629,1633 ---- + + if (already_moved[regno] ++ || flag_move_all_movables + || (threshold * savings * m->lifetime) >= insn_count + || (m->forces && m->forces->done +*************** strength_reduce (scan_start, end, loop_t +*** 3821,3826 **** + exit. */ + +! if (v->lifetime * threshold * benefit < insn_count +! && ! bl->reversed) + { + if (loop_dump_stream) +--- 3822,3827 ---- + exit. */ + +! if ( ! flag_reduce_all_givs && v->lifetime * threshold * benefit < insn_count +! && ! bl->reversed ) + { + if (loop_dump_stream) +*** gcc-2.7.2/toplev.c Fri Oct 20 17:56:35 1995 +--- g77-new/toplev.c Wed Mar 6 10:32:59 1996 +*************** int flag_unroll_loops; +*** 388,391 **** +--- 388,405 ---- + int flag_unroll_all_loops; + ++ /* Nonzero forces all invariant computations in loops to be moved ++ outside the loop. */ ++ ++ int flag_move_all_movables = 0; ++ ++ /* Nonzero forces all general induction variables in loops to be ++ strength reduced. */ ++ ++ int flag_reduce_all_givs = 0; ++ ++ /* Nonzero gets another run of loop_optimize performed. */ ++ ++ int flag_rerun_loop_opt = 0; ++ + /* Nonzero for -fwritable-strings: + store string constants in data segment and don't uniquize them. */ +*************** struct { char *string; int *variable; in +*** 542,545 **** +--- 556,562 ---- + {"unroll-loops", &flag_unroll_loops, 1}, + {"unroll-all-loops", &flag_unroll_all_loops, 1}, ++ {"move-all-movables", &flag_move_all_movables, 1}, ++ {"reduce-all-givs", &flag_reduce_all_givs, 1}, ++ {"rerun-loop-opt", &flag_rerun_loop_opt, 1}, + {"writable-strings", &flag_writable_strings, 1}, + {"peephole", &flag_no_peephole, 0}, +*************** rest_of_compilation (decl) +*** 2894,2897 **** +--- 2911,2916 ---- + { + loop_optimize (insns, loop_dump_file); ++ if (flag_rerun_loop_opt) ++ loop_optimize (insns, loop_dump_file); + }); + } +*** gcc-2.7.2/tree.c Sun Oct 1 21:26:56 1995 +--- g77-new/tree.c Wed Mar 6 10:33:00 1996 +*************** saveable_tree_cons (purpose, value, chai +*** 1965,1968 **** +--- 1965,1992 ---- + } + ++ /* Try to find out whether the type for which the size is to be determined ++ is an ARRAY(of ARRAY(of ARRAY ... of something with a constant size ++ which is an integral multiple of BITS_PER_UNIT)). ++ In that case, the size in bytes can be determined using an EXACT_DIV_EXPR. ++ */ ++ enum tree_code ++ which_div_expr(type) ++ tree type; ++ { ++ tree t; ++ ++ if (TREE_CODE (type) != POINTER_TYPE && TREE_CODE (type) != ARRAY_TYPE) ++ return CEIL_DIV_EXPR; ++ ++ for (t = TREE_TYPE (type); TREE_CODE (t) == ARRAY_TYPE; t = TREE_TYPE (t)) ++ ; ++ ++ if (TYPE_SIZE (t) != 0 && TREE_CODE (TYPE_SIZE (t)) == INTEGER_CST && ++ TREE_INT_CST_LOW (TYPE_SIZE (t)) % BITS_PER_UNIT == 0) ++ return EXACT_DIV_EXPR; ++ else ++ return CEIL_DIV_EXPR; ++ } ++ + /* Return the size nominally occupied by an object of type TYPE + when it resides in memory. The value is measured in units of bytes, +*************** size_in_bytes (type) +*** 1985,1989 **** + return integer_zero_node; + } +! t = size_binop (CEIL_DIV_EXPR, TYPE_SIZE (type), + size_int (BITS_PER_UNIT)); + if (TREE_CODE (t) == INTEGER_CST) +--- 2009,2013 ---- + return integer_zero_node; + } +! t = size_binop (which_div_expr (type), TYPE_SIZE (type), + size_int (BITS_PER_UNIT)); + if (TREE_CODE (t) == INTEGER_CST) +*************** int_size_in_bytes (type) +*** 2009,2013 **** + if (TREE_INT_CST_HIGH (TYPE_SIZE (type)) != 0) + { +! tree t = size_binop (CEIL_DIV_EXPR, TYPE_SIZE (type), + size_int (BITS_PER_UNIT)); + return TREE_INT_CST_LOW (t); +--- 2033,2037 ---- + if (TREE_INT_CST_HIGH (TYPE_SIZE (type)) != 0) + { +! tree t = size_binop (which_div_expr (type), TYPE_SIZE (type), + size_int (BITS_PER_UNIT)); + return TREE_INT_CST_LOW (t); +*** gcc-2.7.2/version.c Wed Mar 6 10:21:01 1996 +--- g77-new/version.c Mon Mar 25 21:17:27 1996 +*************** +*** 1 **** +! char *version_string = "2.7.2"; +--- 1 ---- +! char *version_string = "2.7.2.f.1"; diff --git a/gnu/usr.bin/gcc/f/gbe/README b/gnu/usr.bin/gcc/f/gbe/README new file mode 100644 index 00000000000..0e7585f90c3 --- /dev/null +++ b/gnu/usr.bin/gcc/f/gbe/README @@ -0,0 +1,33 @@ +951118 + +This directory contains .diff files for various GNU CC distributions. +The name of a file tells which version to which it applies. Prior to +gcc version 2.7.1, g77 will not build without the appropriate .diff +file applied to the GNU CC distribution via patch. That is because +g77 needs certain changes to be made to the GNU CC back end, which +it shares with not only the C front end, but with other GNU front +ends (C++, Objective-C, Pascal, ADA, Chill, ...) as well. Version +2.7.1 of gcc includes the changes needed by g77 versions through 0.5.17. +Future versions of g77 might again require changes to versions 2.7.1, +and later versions, of gcc. + +This distribution of g77 is not supported for versions of gcc prior +to 2.6.2. The 2.6.3 patch file should work for version 2.6.2, but +you should probably use gcc-2.6.3 in any case if that is possible. + +To apply a .diff file to, say, gcc 2.7.0, one might use the following +command: + + patch -p1 -d gcc-2.7.0 < gcc-2.7.0/f/gbe/2.7.0.diff + +If you are using a version of gcc more recent than the most +recent .diff file's version, try the most recent .diff ONLY +if the difference is in the third field. E.g. the above +patch might work on gcc-2.6.4 or gcc-2.6.5 if these were +released. On the other hand, it probably wouldn't work for +a more major release like gcc-2.7.0 or gcc-3.0.0, and you +shouldn't try it. If the .diff file is missing, don't bother +asking `fortran@gnu.ai.mit.edu' for it -- it is certainly +being worked on. In the meantime, watch the usual channels +(see gcc/f/DOC *TROUBLE (BUGS, ETC.)*) for information on +support for the new version of gcc. |