gwyn@brl-smoke.UUCP (04/11/87)
More bug fixes and improvements for 5620 DMD 1.3 (M32) SGS optim:
*** $DMDSGS/sgs/mac/common/ofc/optim/optim.c Fri Apr 10 09:49:58 1987
--- $DMDSGS/sgs/mac/common/ofc/optim/optim.c Sat Apr 11 15:54:36 1987
***************
*** 114,114
! #define FLAG(L, LFLAG) case 'L': LFLAG = -1; continue;
--- 114,114 -----
! #define FLAG(L, LFLAG) case 'L': LFLAG = -1; continue; /* DAG -- WARNING: Reiserism */
***************
*** 119,119
! CC, fnum, npass)
--- 119,119 -----
! CC, fnum, npass) /* DAG -- WARNING: Reiserism */
***************
*** 447,447
^ * that prinst() will convert "jbr NULL" back to "ret";
--- 447,448 -----
^ * that prinst() will convert "jbr NULL" back to "ret";
+ DAG -- 3B version doesn't do this; is it really a problem?
***************
*** 576,576
! same(pi, pj) == true; length++) {
--- 577,577 -----
! same(pi, pj); length++) { /* DAG -- removed redundant == true */
*** $DMDSGS/sgs/mac/common/ofc/optim/optim.h Mon Feb 9 06:10:30 1987
--- $DMDSGS/sgs/mac/common/ofc/optim/optim.h Sat Apr 11 15:57:32 1987
***************
*** 130,130
! #define COPY(str, len) ((len) != 0 ? memcpy(getspace(len), str, (int)(len)) : str)
--- 130,130 -----
! #define COPY(str, len) ((len) != 0 ? memcpy(getspace(len), str, (int)(len)) : (str)) /* DAG -- added parens */
*** $DMDSGS/sgs/mac/3b/ofc/optim/defs Fri Apr 10 23:59:59 1987
--- $DMDSGS/sgs/mac/3b/ofc/optim/defs Sat Apr 11 15:57:32 1987
***************
*** 183,189
! # define islabel(p) (p != NULL && (p->op == LABEL || p->op == HLABEL))
! # define ishl(p) (p->opcode[0] != '.' || p->op == HLABEL)
! # define isuncbr(p) (JMP <= p->op && p->op <= SWITCHT)
! # define iscbr(p) (p->op >= JZ && p->op <= JGEU)
! # define isbr(p) (p->op >= JMP && p->op <= JBS && p->op != CALL)
# ifdef N3B
! # define ishb(p) (p->op == RET)
--- 183,190 -----
+ /* DAG -- added parens in following macro bodies: */
! # define islabel(p) ((p) != NULL && ((p)->op == LABEL || (p)->op == HLABEL))
! # define ishl(p) ((p)->opcode[0] != '.' || (p)->op == HLABEL)
! # define isuncbr(p) (JMP <= (p)->op && (p)->op <= SWITCHT)
! # define iscbr(p) ((p)->op >= JZ && (p)->op <= JGEU)
! # define isbr(p) ((p)->op >= JMP && (p)->op <= JBS && (p)->op != CALL)
# ifdef N3B
! # define ishb(p) ((p)->op == RET)
***************
*** 193,197
! # define isrev(p) (p->op >= JZ && p->op <= JBS)
! # define isret(p) (p->op == RET)
! # define iscompare(p) (p->op == CMPW || p->op == CMPB || p->op == CMPH)
! # define setlab(p) (p->op = LABEL)
! # define setbr(p,l) {p->op = JMP; p->opcode = "jmp"; p->op1 = l;}
--- 194,198 -----
! # define isrev(p) ((p)->op >= JZ && (p)->op <= JBS)
! # define isret(p) ((p)->op == RET)
! # define iscompare(p) ((p)->op == CMPW || (p)->op == CMPB || (p)->op == CMPH)
! # define setlab(p) ((p)->op = LABEL)
! # define setbr(p,l) {(p)->op = JMP; (p)->opcode = "jmp"; (p)->op1 = (l);}
*** $DMDSGS/sgs/mac/3b/ofc/optim/local.c Fri Apr 10 23:59:59 1987
--- $DMDSGS/sgs/mac/3b/ofc/optim/local.c Sat Apr 11 15:57:32 1987
***************
*** 544,544
! lineno = lineno * 10 + *str - '0';
--- 544,544 -----
! lineno = lineno * 10 + (*str - '0'); /* DAG -- added parens */
***************
*** 598,599
if( stmpfile == NULL )
stmpfile = tmpopen();
--- 598,601 -----
if( stmpfile == NULL )
stmpfile = tmpopen();
+ if( stmpfile == NULL )
+ FATAL("can't open temp file\n"); /* DAG -- added safety check */
*** $DMDSGS/sgs/mac/3b/ofc/optim/w2opt.c Fri Apr 10 23:59:59 1987
--- $DMDSGS/sgs/mac/3b/ofc/optim/w2opt.c Sat Apr 11 15:57:32 1987
***************
*** 165,165
&& strcmp(dst(pf),pl->op1) == 0
--- 165,166 -----
+ && dst(pf) /* DAG -- bug fix (added safety check) */
&& strcmp(dst(pf),pl->op1) == 0
***************
*** 512,512
--- 513,513 -----
! f = ( isdead(reg,pl) || strcmp(dst(pl),reg) == 0 );
---
! f = ( isdead(reg,pl) || dst(pl) && strcmp(dst(pl),reg) == 0 ); /* DAG -- bug fix (added safety check) */
***************
*** 1210,1210
--- 1211,1211 -----
! (cop1 == ADDW2 || cop2 == SUBW2)
---
! (cop1 == ADDW2 || cop1 == SUBW2) /* DAG -- bug fix (second cop1 was cop2) */
*** $DMDSGS/sgs/mac/3b/ofc/optim/w3opt.c Fri Apr 10 23:59:59 1987
--- $DMDSGS/sgs/mac/3b/ofc/optim/w3opt.c Sat Apr 11 15:57:32 1987
***************
*** 106,106
&& strcmp(dst(pf),pm->op1) == 0
--- 106,107 -----
+ && dst(pf) /* DAG -- bug fix (added safety check) */
&& strcmp(dst(pf),pm->op1) == 0