comparison gcc/resource.c @ 36:855418dad1a3

gcc-4.4-20091020
author e075725
date Tue, 22 Dec 2009 21:19:31 +0900
parents 58ad6c70ea60
children 77e2b8dfacca
comparison
equal deleted inserted replaced
19:58ad6c70ea60 36:855418dad1a3
943 943
944 CLEAR_HARD_REG_SET (pending_dead_regs); 944 CLEAR_HARD_REG_SET (pending_dead_regs);
945 945
946 /* If we found a basic block, get the live registers from it and update 946 /* If we found a basic block, get the live registers from it and update
947 them with anything set or killed between its start and the insn before 947 them with anything set or killed between its start and the insn before
948 TARGET. Otherwise, we must assume everything is live. */ 948 TARGET; this custom life analysis is really about registers so we need
949 to use the LR problem. Otherwise, we must assume everything is live. */
949 if (b != -1) 950 if (b != -1)
950 { 951 {
951 regset regs_live = df_get_live_in (BASIC_BLOCK (b)); 952 regset regs_live = DF_LR_IN (BASIC_BLOCK (b));
952 rtx start_insn, stop_insn; 953 rtx start_insn, stop_insn;
953 954
954 /* Compute hard regs live at start of block. */ 955 /* Compute hard regs live at start of block. */
955 REG_SET_TO_HARD_REG_SET (current_live_regs, regs_live); 956 REG_SET_TO_HARD_REG_SET (current_live_regs, regs_live);
956 957
1050 bb = BLOCK_FOR_INSN (real_insn); 1051 bb = BLOCK_FOR_INSN (real_insn);
1051 if (bb) 1052 if (bb)
1052 { 1053 {
1053 HARD_REG_SET extra_live; 1054 HARD_REG_SET extra_live;
1054 1055
1055 REG_SET_TO_HARD_REG_SET (extra_live, df_get_live_in (bb)); 1056 REG_SET_TO_HARD_REG_SET (extra_live, DF_LR_IN (bb));
1056 IOR_HARD_REG_SET (current_live_regs, extra_live); 1057 IOR_HARD_REG_SET (current_live_regs, extra_live);
1057 } 1058 }
1058 } 1059 }
1059 1060
1060 /* The beginning of the epilogue corresponds to the end of the 1061 /* The beginning of the epilogue corresponds to the end of the