]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
modula2: tidyup gcc/m2/gm2-compiler/M2GenGCC.mod remove unused parameters/vars
authorGaius Mulley <gaiusmod2@gmail.com>
Fri, 19 Jan 2024 17:16:38 +0000 (17:16 +0000)
committerGaius Mulley <gaiusmod2@gmail.com>
Fri, 19 Jan 2024 17:16:38 +0000 (17:16 +0000)
This patch removes unused parameters and local variables from
M2GenGCC.mod.  It required ForeachScopeBlockDo2 to be implemented and
exported affecting any module indirectly calling ConvertQuadsToTree.

gcc/m2/ChangeLog:

* gm2-compiler/M2BasicBlock.mod (InitBasicBlocks): Rename
ForeachScopeBlockDo to ForeachScopeBlockDo3.
* gm2-compiler/M2Code.mod: Import ForeachScopeBlockDo2.
(OptimizeScopeBlock): Call ForeachScopeBlockDo3 for
procedures with three parameters and ForeachScopeBlockDo2
for two parameters.
(CodeBlock): Ditto.
* gm2-compiler/M2GCCDeclare.mod (DeclareTypesConstantsProcedures):
Rename ForeachScopeBlockDo to ForeachScopeBlockDo3.
* gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): Remove Scope
parameter.
* gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): Remove Scope
parameter.
(MaybeDebugBuiltinMemcpy): Remove parameter tok.
(MaybeDebugBuiltinMemset): Remove.
(MakeCopyUse): Remove tokenno from call to
MaybeDebugBuiltinMemcpy.
(PerformFoldBecomes): Remove desloc and exprloc.
(checkArrayElements): Remove location.  Remove virtpos
as a parameter to MaybeDebugBuiltinMemcpy.
(NoWalkProcedure): Add attribute unused.
(CheckElementSetTypes): Remove parameter p.
Remove CurrentQuadToken in call to MaybeDebugBuiltinMemcpy.
Remove NoWalkProcedure from call to CheckElementSetTypes.
Remove tokenno from call to MaybeDebugBuiltinMemcpy.
* gm2-compiler/M2Optimize.mod (RemoveProcedures): Replace
two parameter indirect procedure iterator with
ForeachScopeBlockDo2.
* gm2-compiler/M2SSA.mod: Remove ForeachScopeBlockDo.
* gm2-compiler/M2Scope.def (ForeachScopeBlockDo2): New
declaration.
(ForeachScopeBlockDo): Rename ...
(ForeachScopeBlockDo3): ... to this.
(ScopeProcedure2): New declaration.
* gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): New
procedure.
(ForeachScopeBlockDo): Rename ...
(ForeachScopeBlockDo3): ... to this.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
gcc/m2/gm2-compiler/M2BasicBlock.mod
gcc/m2/gm2-compiler/M2Code.mod
gcc/m2/gm2-compiler/M2GCCDeclare.mod
gcc/m2/gm2-compiler/M2GenGCC.def
gcc/m2/gm2-compiler/M2GenGCC.mod
gcc/m2/gm2-compiler/M2Optimize.mod
gcc/m2/gm2-compiler/M2SSA.mod
gcc/m2/gm2-compiler/M2Scope.def
gcc/m2/gm2-compiler/M2Scope.mod

index 007fe77f7000d06470bd87ab51f9399d06ce5af2..f4b9cb021c814fa571f7bff311c56a0a30961c3d 100644 (file)
@@ -37,8 +37,7 @@ FROM M2Quads IMPORT IsReferenced, IsConditional, IsUnConditional, IsCall,
                     GetNextQuad, GetQuad, QuadOperator,
                     SubQuad, DisplayQuadRange ;
 
-FROM M2Scope IMPORT ScopeBlock, ForeachScopeBlockDo ;
-FROM M2GenGCC IMPORT ConvertQuadsToTree ;
+FROM M2Scope IMPORT ScopeBlock, ForeachScopeBlockDo3 ;
 
 
 CONST
@@ -68,7 +67,7 @@ VAR
 PROCEDURE InitBasicBlocks (sb: ScopeBlock) : BasicBlock ;
 BEGIN
    HeadOfBasicBlock := NIL ;
-   ForeachScopeBlockDo (sb, ConvertQuads2BasicBlock) ;
+   ForeachScopeBlockDo3 (sb, ConvertQuads2BasicBlock) ;
    RETURN HeadOfBasicBlock
 END InitBasicBlocks ;
 
index 1c7ff83479f85cdf39323756b19796f244239760..010e1d02fca89ba841dcf2acc1eae056bc95455e 100644 (file)
@@ -61,7 +61,9 @@ FROM M2GCCDeclare IMPORT FoldConstants, StartDeclareScope,
                          DeclareProcedure, InitDeclarations,
                          DeclareModuleVariables, MarkExported ;
 
-FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock, ForeachScopeBlockDo ;
+FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock,
+                    ForeachScopeBlockDo2, ForeachScopeBlockDo3 ;
+
 FROM m2top IMPORT StartGlobalContext, EndGlobalContext, SetFlagUnitAtATime ;
 FROM M2Error IMPORT FlushErrors, FlushWarnings ;
 FROM M2Swig IMPORT GenerateSwigFile ;
@@ -402,15 +404,15 @@ BEGIN
    InitOptimizeVariables ;
    OptimTimes := 1 ;
    Current := CountQuads () ;
-   ForeachScopeBlockDo (sb, InitialDeclareAndOptimize) ;
-   ForeachScopeBlockDo (sb, ScopeBlockVariableAnalysis) ;
+   ForeachScopeBlockDo3 (sb, InitialDeclareAndOptimize) ;
+   ForeachScopeBlockDo3 (sb, ScopeBlockVariableAnalysis) ;
    REPEAT
-      ForeachScopeBlockDo (sb, SecondDeclareAndOptimize) ;
+      ForeachScopeBlockDo3 (sb, SecondDeclareAndOptimize) ;
       Previous := Current ;
       Current := CountQuads () ;
       INC (OptimTimes)
    UNTIL (OptimTimes=MaxOptimTimes) OR (Current=Previous) ;
-   ForeachScopeBlockDo (sb, LoopAnalysis)
+   ForeachScopeBlockDo3 (sb, LoopAnalysis)
 END OptimizeScopeBlock ;
 
 
@@ -476,30 +478,30 @@ BEGIN
       THEN
          n := GetSymName(scope) ;
          printf1('before coding procedure %a\n', n) ;
-         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
+         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
          printf0('===============\n')
       END ;
-      ForeachScopeBlockDo(sb, ConvertQuadsToTree)
+      ForeachScopeBlockDo(sb, ConvertQuadsToTree)
    ELSIF IsModuleWithinProcedure(scope)
    THEN
       IF DisplayQuadruples
       THEN
          n := GetSymName(scope) ;
          printf1('before coding module %a within procedure\n', n) ;
-         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
+         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
          printf0('===============\n')
       END ;
-      ForeachScopeBlockDo(sb, ConvertQuadsToTree) ;
+      ForeachScopeBlockDo(sb, ConvertQuadsToTree) ;
       ForeachProcedureDo(scope, CodeBlock)
    ELSE
       IF DisplayQuadruples
       THEN
          n := GetSymName(scope) ;
          printf1('before coding module %a\n', n) ;
-         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
+         ForeachScopeBlockDo(sb, DisplayQuadRange) ;
          printf0('===============\n')
       END ;
-      ForeachScopeBlockDo(sb, ConvertQuadsToTree) ;
+      ForeachScopeBlockDo(sb, ConvertQuadsToTree) ;
       IF WholeProgram
       THEN
          ForeachSourceModuleDo(CodeProcedures)
index 594178f826d17ab5ef156b0f78af1c42ced62d16..643374db0a64543b13e4eaf75dc288dce0e5f5b5 100644 (file)
@@ -144,7 +144,7 @@ FROM M2System IMPORT IsPseudoSystemFunction, IsSystemType,
 FROM M2Bitset IMPORT Bitset, Bitnum ;
 FROM SymbolConversion IMPORT AddModGcc, Mod2Gcc, GccKnowsAbout, Poison, RemoveMod2Gcc ;
 FROM M2GenGCC IMPORT ResolveConstantExpressions ;
-FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock, ForeachScopeBlockDo ;
+FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock, ForeachScopeBlockDo3 ;
 
 FROM M2ALU IMPORT Addn, Sub, Equ, GreEqu, Gre, Less, PushInt, PushCard, ConvertToType,
                   PushIntegerTree, PopIntegerTree, PopRealTree, ConvertToInt, PopSetTree,
@@ -2865,7 +2865,7 @@ BEGIN
    PushBinding (scope) ;
    REPEAT
       copy := DupGroup (copy) ;
-      ForeachScopeBlockDo (sb, DeclareTypesConstantsProceduresInRange)
+      ForeachScopeBlockDo3 (sb, DeclareTypesConstantsProceduresInRange)
    UNTIL EqualGroup (copy, GlobalGroup) ;
    KillGroup (copy) ;
    PopBinding (scope) ;
index bb755a3f2f30ea187739f7e5e786809f126713ab..3e4705ec235070ebf99d06c53d634d4979e5ffbf 100644 (file)
@@ -45,7 +45,7 @@ EXPORT QUALIFIED ConvertQuadsToTree, ResolveConstantExpressions,
                         the GCC tree structure.
 *)
 
-PROCEDURE ConvertQuadsToTree (Scope: CARDINAL; Start, End: CARDINAL) ;
+PROCEDURE ConvertQuadsToTree (Start, End: CARDINAL) ;
 
 
 (*
index 2261cb0348af6473c0177e02a095781984c266df..ced4724f4c0ff0a344f8571fac24678994ddb99b 100644 (file)
@@ -415,7 +415,7 @@ END IsExportedGcc ;
                         the GCC tree structure.
 *)
 
-PROCEDURE ConvertQuadsToTree (Scope: CARDINAL; Start, End: CARDINAL) ;
+PROCEDURE ConvertQuadsToTree (Start, End: CARDINAL) ;
 BEGIN
    REPEAT
       CodeStatement (Start) ;
@@ -1311,7 +1311,9 @@ END GetSizeOfHighFromUnbounded ;
 
 
 (*
-   MaybeDebugBuiltinAlloca -
+   MaybeDebugBuiltinAlloca - if DebugBuiltins is set
+                             then call Builtins.alloca_trace
+                             else call Builtins.alloca.
 *)
 
 PROCEDURE MaybeDebugBuiltinAlloca (location: location_t; tok: CARDINAL; high: Tree) : Tree ;
@@ -1339,10 +1341,12 @@ END MaybeDebugBuiltinAlloca ;
 
 
 (*
-   MaybeDebugBuiltinMemcpy -
+   MaybeDebugBuiltinMemcpy - if DebugBuiltins is set
+                             then call memcpy
+                             else call Builtins.memcpy.
 *)
 
-PROCEDURE MaybeDebugBuiltinMemcpy (location: location_t; tok: CARDINAL; src, dest, nbytes: Tree) : Tree ;
+PROCEDURE MaybeDebugBuiltinMemcpy (location: location_t; src, dest, nbytes: Tree) : Tree ;
 VAR
    call,
    func: Tree ;
@@ -1359,28 +1363,6 @@ BEGIN
 END MaybeDebugBuiltinMemcpy ;
 
 
-(*
-   MaybeDebugBuiltinMemset -
-*)
-
-PROCEDURE MaybeDebugBuiltinMemset (location: location_t; tok: CARDINAL;
-                                   ptr, bytevalue, nbytes: Tree) : Tree ;
-VAR
-   call,
-   func: Tree ;
-BEGIN
-   IF DebugBuiltins
-   THEN
-      func := Mod2Gcc (Memset) ;
-      call := BuildCall3 (location, func, GetPointerType (), ptr, bytevalue, nbytes) ;
-   ELSE
-      call := BuiltinMemSet (location, ptr, bytevalue, nbytes)
-   END ;
-   SetLastFunction (call) ;
-   RETURN BuildFunctValue (location, call)
-END MaybeDebugBuiltinMemset ;
-
-
 (*
    MakeCopyUse - make a copy of the unbounded array and alter all references
                  from the old unbounded array to the new unbounded array.
@@ -1411,7 +1393,7 @@ BEGIN
    Addr := GetAddressOfUnbounded (location, param) ;
 
    NewArray := MaybeDebugBuiltinAlloca (location, tokenno, High) ;
-   NewArray := MaybeDebugBuiltinMemcpy (location, tokenno, NewArray, Addr, High) ;
+   NewArray := MaybeDebugBuiltinMemcpy (location, NewArray, Addr, High) ;
 
    (* now assign  param.Addr := ADR(NewArray) *)
 
@@ -2784,7 +2766,6 @@ VAR
    exprpos, becomespos,
    virtpos            : CARDINAL ;
    op                 : QuadOperator ;
-   desloc, exprloc    : location_t ;
 BEGIN
    GetQuadOtok (quad, becomespos, op,
                 des, op2, expr, overflowChecking,
@@ -3106,9 +3087,8 @@ END PrepareCopyString ;
 
 PROCEDURE checkArrayElements (des, expr: CARDINAL; virtpos, despos, exprpos: CARDINAL) : BOOLEAN ;
 VAR
-   e1, e3  : Tree ;
-   t1, t3  : CARDINAL ;
-   location: location_t ;
+   e1, e3: Tree ;
+   t1, t3: CARDINAL ;
 BEGIN
    t1 := GetType (des) ;
    t3 := GetType (expr) ;
@@ -3304,7 +3284,7 @@ BEGIN
                       expr, des)
       END ;
       AddStatement (location,
-                    MaybeDebugBuiltinMemcpy (location, virtpos,
+                    MaybeDebugBuiltinMemcpy (location,
                                              BuildAddr (location, Mod2Gcc (des), FALSE),
                                              BuildAddr (location, exprt, FALSE),
                                              length))
@@ -3319,7 +3299,7 @@ BEGIN
       THEN
          checkDeclare (des) ;
          AddStatement (location,
-                       MaybeDebugBuiltinMemcpy (location, virtpos,
+                       MaybeDebugBuiltinMemcpy (location,
                                                 BuildAddr(location, Mod2Gcc (des), FALSE),
                                                 BuildAddr(location, Mod2Gcc (expr), FALSE),
                                                 BuildSize(location, Mod2Gcc (des), FALSE)))
@@ -3624,7 +3604,7 @@ END CodeBinary ;
    NoWalkProcedure -
 *)
 
-PROCEDURE NoWalkProcedure (param: CARDINAL) ;
+PROCEDURE NoWalkProcedure (param: CARDINAL <* unused *>) ;
 BEGIN
 END NoWalkProcedure ;
 
@@ -3688,12 +3668,12 @@ END CheckBinaryExpressionTypes ;
 
 (*
    CheckElementSetTypes - returns TRUE if all expression checks pass.
-                                If the expression check fails quad is removed,
-                                the walk procedure (des) is called and NoChange is
-                                set to FALSE.
+                          If the expression check fails quad is removed,
+                          the walk procedure (des) is called and NoChange is
+                          set to FALSE.
 *)
 
-PROCEDURE CheckElementSetTypes (quad: CARDINAL; p: WalkAction) : BOOLEAN ;
+PROCEDURE CheckElementSetTypes (quad: CARDINAL) : BOOLEAN ;
 VAR
    lefttype,
    righttype,
@@ -6472,7 +6452,7 @@ BEGIN
             (* does not work t := BuildCoerce(Mod2Gcc(op1), Mod2Gcc(op2), Mod2Gcc(op3)) *)
             checkDeclare (op1) ;
             AddStatement (location,
-                          MaybeDebugBuiltinMemcpy(location, CurrentQuadToken,
+                          MaybeDebugBuiltinMemcpy(location,
                                                   BuildAddr(location, Mod2Gcc(op1), FALSE),
                                                   BuildAddr(location, Mod2Gcc(op3), FALSE),
                                                   FindSize(CurrentQuadToken, op2)))
@@ -7371,7 +7351,7 @@ BEGIN
    IF IsConst(op1) AND IsConst(op2)
    THEN
       InternalError ('should not get to here (if we do we should consider calling FoldIfIn)')
-   ELSIF CheckElementSetTypes (quad, NoWalkProcedure)
+   ELSIF CheckElementSetTypes (quad)
    THEN
       IF IsConst(op1)
       THEN
@@ -7438,7 +7418,7 @@ BEGIN
    IF IsConst(op1) AND IsConst(op2)
    THEN
       InternalError ('should not get to here (if we do we should consider calling FoldIfIn)')
-   ELSIF CheckElementSetTypes (quad, NoWalkProcedure)
+   ELSIF CheckElementSetTypes (quad)
    THEN
       IF IsConst(op1)
       THEN
@@ -7576,7 +7556,7 @@ BEGIN
                       op3, op1)
       END ;
       AddStatement (location,
-                    MaybeDebugBuiltinMemcpy (location, tokenno,
+                    MaybeDebugBuiltinMemcpy (location,
                                              Mod2Gcc (op1),
                                              BuildAddr (location, newstr, FALSE),
                                              length))
index 1a653c00dd917ef0aff16fca1205929e492e7962..29fda9a6dd704e07eb0e3080bb00bf7a471d458a 100644 (file)
@@ -38,7 +38,8 @@ FROM NumberIO IMPORT WriteCard ;
 FROM M2Error IMPORT InternalError ;
 FROM M2Batch IMPORT GetModuleNo ;
 FROM M2Quiet IMPORT qprintf1 ;
-FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock, ForeachScopeBlockDo ;
+FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock,
+                    ForeachScopeBlockDo2, ForeachScopeBlockDo3 ;
 
 FROM SymbolTable IMPORT GetSymName,
                         GetProcedureQuads, GetModuleQuads,
@@ -336,13 +337,13 @@ BEGIN
    IF IsProcedure(scope)
    THEN
       PutProcedureReachable(scope) ;
-      ForeachScopeBlockDo(sb, KnownReachable)
+      ForeachScopeBlockDo(sb, KnownReachable)
    ELSIF IsModuleWithinProcedure(scope)
    THEN
-      ForeachScopeBlockDo(sb, KnownReachable) ;
+      ForeachScopeBlockDo(sb, KnownReachable) ;
       ForeachProcedureDo(scope, CheckExportedReachable)
    ELSE
-      ForeachScopeBlockDo(sb, KnownReachable) ;
+      ForeachScopeBlockDo(sb, KnownReachable) ;
       ForeachProcedureDo(scope, CheckExportedReachable)
    END ;
    ForeachInnerModuleDo(scope, RemoveProcedures) ;
@@ -351,8 +352,7 @@ BEGIN
 END RemoveProcedures ;
 
 
-PROCEDURE KnownReachable (Scope: CARDINAL;
-                          Start, End: CARDINAL) ;
+PROCEDURE KnownReachable (Start, End: CARDINAL) ;
 VAR
    Op           : QuadOperator ;
    Op1, Op2, Op3: CARDINAL ;
index c984c629e38d187ee830e3a1e9ede3bffd8a0a54..e59428c4db6cd4de7b474a54166dd1fac878dbd6 100644 (file)
@@ -31,7 +31,7 @@ FROM NumberIO IMPORT WriteCard ;
 FROM M2Error IMPORT InternalError ;
 FROM M2Batch IMPORT GetModuleNo ;
 FROM M2Quiet IMPORT qprintf1 ;
-FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock, ForeachScopeBlockDo ;
+FROM M2Scope IMPORT ScopeBlock, InitScopeBlock, KillScopeBlock ;
 FROM M2StackWord IMPORT StackOfWord, InitStackWord, KillStackWord, PushWord, PopWord, PeepWord ;
 FROM M2Options IMPORT CompilerDebugging ;
 FROM Lists IMPORT InitList, KillList, List, IncludeItemIntoList, IsItemInList ;
index bdb063dc89e22d408cdfa81f1a0db2bb4f45432f..917229f887b96346b83cb8c0b658275303fe536e 100644 (file)
@@ -31,13 +31,10 @@ DEFINITION MODULE M2Scope ;
                  which were generated within a scope.
 *)
 
-EXPORT QUALIFIED ScopeBlock, ScopeProcedure,
-                 InitScopeBlock, KillScopeBlock,
-                 ForeachScopeBlockDo ;
-
 TYPE
    ScopeBlock ;
-   ScopeProcedure = PROCEDURE (CARDINAL, CARDINAL, CARDINAL) ;
+   ScopeProcedure2 = PROCEDURE (CARDINAL, CARDINAL) ;
+   ScopeProcedure3 = PROCEDURE (CARDINAL, CARDINAL, CARDINAL) ;
 
 
 (*
@@ -55,11 +52,19 @@ PROCEDURE KillScopeBlock (VAR sb: ScopeBlock) ;
 
 
 (*
-   ForeachScopeBlockDo - calls a procedure, p, for each block of contigeous quadruples
-                         defining an outer scope, sb.
+   ForeachScopeBlockDo2 - calls a procedure p for each block of contigeous quadruples
+                          defining an outer scope sb.
+*)
+
+PROCEDURE ForeachScopeBlockDo2 (sb: ScopeBlock; p: ScopeProcedure2) ;
+
+
+(*
+   ForeachScopeBlockDo3 - calls a procedure p for each block of contigeous quadruples
+                          defining an outer scope sb.
 *)
 
-PROCEDURE ForeachScopeBlockDo (sb: ScopeBlock; p: ScopeProcedure) ;
+PROCEDURE ForeachScopeBlockDo3 (sb: ScopeBlock; p: ScopeProcedure3) ;
 
 
 END M2Scope.
index 570bb04e430cd5eb452f889e2b61da188550ab24..f157ad42ba6f746e79d92157d46e91e81444db9c 100644 (file)
@@ -410,10 +410,44 @@ END KillScopeBlock ;
 
 
 (*
-   ForeachScopeBlockDo -
+   ForeachScopeBlockDo2 - calls a procedure p for each block of contigeous quadruples
+                          defining an outer scope sb.
 *)
 
-PROCEDURE ForeachScopeBlockDo (sb: ScopeBlock; p: ScopeProcedure) ;
+PROCEDURE ForeachScopeBlockDo2 (sb: ScopeBlock; p: ScopeProcedure2) ;
+BEGIN
+   IF DisplayQuadruples
+   THEN
+      printf0 ("ForeachScopeBlockDo\n")
+   END ;
+   WHILE sb#NIL DO
+      WITH sb^ DO
+         IF DisplayQuadruples
+         THEN
+            DisplayScope (sb)
+         END ;
+         enter (sb) ;
+         IF (low # 0) AND (high # 0)
+         THEN
+            p (low, high)
+         END ;
+         leave (sb)
+      END ;
+      sb := sb^.next
+   END ;
+   IF DisplayQuadruples
+   THEN
+      printf0 ("end ForeachScopeBlockDo\n\n")
+   END ;
+END ForeachScopeBlockDo2 ;
+
+
+(*
+   ForeachScopeBlockDo3 - calls a procedure p for each block of contigeous quadruples
+                          defining an outer scope sb.
+*)
+
+PROCEDURE ForeachScopeBlockDo3 (sb: ScopeBlock; p: ScopeProcedure3) ;
 BEGIN
    IF DisplayQuadruples
    THEN
@@ -438,7 +472,7 @@ BEGIN
    THEN
       printf0 ("end ForeachScopeBlockDo\n\n")
    END ;
-END ForeachScopeBlockDo ;
+END ForeachScopeBlockDo3 ;
 
 
 (*