dpatel 02/11/26 17:28:06
Modified: live/gcc3/gcc function.c rtl.h
live/gcc3/gcc/pfe freeze-thaw.c
Log:
Partial fix for 3108047 PFE doesn't handle function bodies well
Revision Changes Path
1.50 +7 -0 src/live/gcc3/gcc/function.c
Index: function.c
===================================================================
RCS file: /cvs/Darwin/src/live/gcc3/gcc/function.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- function.c 2002/10/24 23:42:58 1.49
+++ function.c 2002/11/27 01:28:04 1.50
@@ -8125,10 +8125,17 @@
int i, j;
rtx *x_regno_reg_rtx;
tree *regno_decl;
+ rtx insn, next_insn;
if (!es)
return;
+ for (insn = es->x_first_insn; insn;)
+ {
+ next_insn = pfe_real_ptr (NEXT_INSN (insn));
+ PFE_FREEZE_THAW_RTX (insn);
+ insn = next_insn;
+ }
PFE_FREEZE_THAW_RTX (es->x_first_insn);
PFE_FREEZE_THAW_RTX (es->x_last_insn);
PFE_FREEZE_THAW_WALK (es->sequence_rtl_expr);
1.39 +6 -0 src/live/gcc3/gcc/rtl.h
Index: rtl.h
===================================================================
RCS file: /cvs/Darwin/src/live/gcc3/gcc/rtl.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- rtl.h 2002/10/24 23:43:08 1.38
+++ rtl.h 2002/11/27 01:28:05 1.39
@@ -783,6 +783,12 @@
between ints and pointers if we use a different macro for the block number.)
*/
+/* APPLE LOCAL PFE begin */
+/* Note: Here 4th field is used here for NOTEs. And pfe/freeze-thaw.c needs to
+ know that number. At one point it was 3rd field. If it is changed in future
+ do not forget to make appropriate changes in pfe/freeze-thaw.c */
+/* APPLE LOCAL PFE end */
+
#define NOTE_SOURCE_FILE(INSN) XCSTR (INSN, 4, NOTE)
#define NOTE_BLOCK(INSN) XCTREE (INSN, 4, NOTE)
#define NOTE_EH_HANDLER(INSN) XCINT (INSN, 4, NOTE)
1.18 +3 -1 src/live/gcc3/gcc/pfe/freeze-thaw.c
Index: freeze-thaw.c
===================================================================
RCS file: /cvs/Darwin/src/live/gcc3/gcc/pfe/freeze-thaw.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- freeze-thaw.c 2002/09/20 01:34:58 1.17
+++ freeze-thaw.c 2002/11/27 01:28:05 1.18
@@ -954,7 +954,9 @@
break;
case '0':
- if (i == 3 && GET_CODE (x) == NOTE)
+ /* '4' is based on NOTE_BLOCK define in rtl.h
+ It may change in future. At one point it was '3'. */
+ if (i == 4 && GET_CODE (x) == NOTE)
{
switch (NOTE_LINE_NUMBER (x))
{